{"version":3,"file":"js/383-c7cda8017595d40e6ac7.js","mappings":"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","sources":["webpack://avala/./app/javascript/components/asker/outbox/style.js","webpack://avala/./app/javascript/components/asker/outbox/reducer.js","webpack://avala/./app/javascript/components/asker/outbox/index.js","webpack://avala/./app/javascript/components/modals/ChooseEmailTemplateModal/components/TemplatesList/index.js","webpack://avala/./app/javascript/components/modals/ChooseEmailTemplateModal/index.js","webpack://avala/./app/javascript/components/modals/EmailBuilderModal/components/Footer/index.js","webpack://avala/./app/javascript/components/modals/BuildEmailTemplateModal/components/EditableTemplateName/index.js","webpack://avala/./app/javascript/components/modals/EmailBuilderModal/components/Header/index.js","webpack://avala/./app/javascript/components/settings/BillingPage/components/PlanCard/components/FeePercentageText/index.js","webpack://avala/./app/javascript/components/settings/BillingPage/components/PlanCard/components/CostSection/index.js","webpack://avala/./app/javascript/components/settings/BillingPage/components/PlanCard/index.js","webpack://avala/./app/javascript/components/settings/BillingPage/components/PlanCard/useCostSectionsList.js","webpack://avala/./app/javascript/components/settings/BillingPage/components/BillingOverview/index.js","webpack://avala/./app/javascript/components/settings/BillingPage/index.js","webpack://avala/./app/javascript/components/settings/BrandingPage/cropImage.js","webpack://avala/./app/javascript/components/settings/BrandingPage/components/ImageCropper/style.js","webpack://avala/./app/javascript/components/settings/BrandingPage/components/ImageCropper/index.js","webpack://avala/./app/javascript/components/settings/BrandingPage/components/UploadForm/style.js","webpack://avala/./app/javascript/components/settings/BrandingPage/components/UploadForm/index.js","webpack://avala/./app/javascript/components/settings/BrandingPage/components/LogoPreview/style.js","webpack://avala/./app/javascript/components/settings/BrandingPage/components/LogoPreview/index.js","webpack://avala/./app/javascript/components/settings/BrandingPage/index.js","webpack://avala/./app/javascript/components/shared/EmailEditor/index.js"],"sourcesContent":["export const styles = {\n container: {\n width: '100%',\n height: '100%',\n },\n innerContainer: {\n width: '100%',\n maxWidth: 458,\n height: '100%',\n bgcolor: 'background.default',\n ml: 'auto',\n mr: 'auto',\n mb: 2,\n },\n chatContainer: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n height: '100%',\n minHeight: 200,\n minWidth: 280,\n bgcolor: 'background.default',\n border: 1,\n borderColor: 'grey.400',\n borderRadius: 1,\n },\n messageItem: {\n lineHeight: '16px',\n fontSize: 14,\n p: 1,\n width: 'fit-content',\n bgcolor: '#e2e2e2',\n ml: 0,\n color: 'text.primary',\n borderRadius: '12px 12px 12px 0px',\n },\n currentMessage: {\n maxHeight: 200,\n borderTop: 1,\n borderColor: 'grey.400',\n overflow: 'auto',\n },\n textarea: {\n '& .MuiInputBase-root.Mui-focused .MuiOutlinedInput-notchedOutline': {\n border: 0,\n },\n '& .MuiOutlinedInput-notchedOutline': {\n border: 0,\n },\n },\n};\n","import copyObject from 'fast-copy';\n\nexport function initState() {\n const urlParams = new URLSearchParams(window.location.search);\n const autopilotResponseFilter = urlParams.get('filter') || 'all';\n\n return {\n messages: [],\n conversation: [],\n conversationFetched: false,\n globalTotalMessages: '',\n currentMessage: null,\n error: null,\n autopilotResponseFilter,\n };\n}\n\nexport function reducer(state, action) {\n const nextState = copyObject(state);\n\n switch (action.type) {\n case 'fetchMessages':\n const messages = action.payload.messages;\n const nextMessage = messages[0];\n const currentMessage = state.currentMessage;\n\n nextState.conversation = [];\n nextState.conversationFetched = false;\n nextState.messages = messages;\n nextState.globalTotalMessages = action.payload.total;\n\n if (!nextMessage) {\n nextState.currentMessage = null;\n } else if (!currentMessage) {\n nextState.currentMessage = nextMessage;\n } else if (nextMessage.id !== currentMessage.id) {\n nextState.currentMessage = nextMessage;\n }\n\n return nextState;\n case 'actOnMessage':\n const nextMessages = nextState.messages.slice(1);\n\n return {\n ...nextState,\n messages: nextMessages,\n currentMessage: copyObject(nextMessages[0]) || null,\n globalTotalMessages: state.globalTotalMessages - 1,\n conversation: [],\n conversationFetched: false,\n error: null,\n };\n case 'changeTexts':\n const texts = action.payload.texts;\n\n return {\n ...nextState,\n currentMessage: {\n ...state.currentMessage,\n manual: texts !== state.messages[0].texts,\n texts,\n },\n };\n case 'setConversation':\n if (\n action.payload.sessionId !==\n (state.currentMessage && state.currentMessage.autopilotSessionId)\n ) {\n return state;\n } else {\n return {\n ...nextState,\n conversation: action.payload.conversation,\n conversationFetched: true,\n };\n }\n case 'setError':\n if (state.error === action.payload.message) {\n return state;\n } else {\n return { ...nextState, error: action.payload.message };\n }\n case 'removeError':\n if (state.error === null) {\n return state;\n } else {\n return { ...nextState, error: null };\n }\n case 'resetConversation':\n return { ...nextState, conversation: [], conversationFetched: false };\n case 'reset':\n return {\n ...nextState,\n messages: [],\n currentMessage: null,\n conversation: [],\n conversationFetched: false,\n error: null,\n globalTotalMessages: 0,\n };\n default:\n throw new Error();\n }\n}\n","import React, { useEffect, useRef } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport ReportIcon from '@mui/icons-material/Report';\nimport InboxIcon from '@mui/icons-material/Inbox';\nimport MessageIcon from '@mui/icons-material/Message';\nimport ReplyIcon from '@mui/icons-material/Reply';\nimport {\n Box,\n Button,\n ButtonGroup,\n Select,\n Stack,\n MenuItem,\n FormControl,\n ListItemIcon,\n ListItemText,\n Typography,\n TextField,\n} from '@mui/material';\nimport { styles } from './style';\nimport {\n getAutopilotResponses,\n approveAutopilotResponse,\n ignoreAutopilotResponse,\n ignoreAllInitialResponses,\n getAutopilotSessions,\n autopilotSessionOptOut,\n} from '../../api';\nimport { reducer, initState } from './reducer';\nimport { useSnackbar } from 'notistack';\n\nconst menuItems = [\n { icon: , title: 'All Outbox', value: 'all' },\n { icon: , title: 'Initial Sends', value: 'initial' },\n { icon: , title: 'Replies', value: 'replies' },\n];\n\nfunction Outbox() {\n const [buttonIsDisabled, setButtonIsDisabled] = React.useState(false);\n const messagesListRef = useRef(null);\n const [state, dispatch] = React.useReducer(reducer, initState());\n const {\n messages,\n conversation,\n globalTotalMessages,\n autopilotResponseFilter,\n conversationFetched,\n currentMessage,\n error,\n } = state;\n const { enqueueSnackbar } = useSnackbar();\n\n useEffect(() => {\n fetchAutopilotResponses();\n }, []);\n\n useEffect(() => {\n if (currentMessage && currentMessage.texts === '') {\n dispatch({\n type: 'setError',\n payload: {\n message: 'Send a response or ignore',\n },\n });\n } else {\n dispatch({ type: 'removeError' });\n }\n }, [currentMessage && currentMessage.texts]);\n\n useEffect(() => {\n if (currentMessage !== null && conversationFetched === false) {\n fetchConversation(currentMessage.autopilotSessionId);\n }\n }, [currentMessage]);\n\n const prepareMessages = ({ id, attributes }) => ({\n id,\n ...attributes,\n texts: attributes.texts.join('\\n'),\n });\n\n const prepareParams = () => {\n if (autopilotResponseFilter === 'initial') {\n return { initial: true };\n } else if (autopilotResponseFilter === 'replies') {\n return { initial: false };\n } else {\n return {};\n }\n };\n\n const fetchConversation = (autopilotSessionId) => {\n getAutopilotSessions(autopilotSessionId)\n .then(({ data }) => {\n dispatch({\n type: 'setConversation',\n payload: {\n sessionId: autopilotSessionId,\n conversation: data.map(prepareMessages),\n },\n });\n\n if (data.length > 1 && messagesListRef.current) {\n const lastMessage = messagesListRef.current.children[data.length - 2];\n if (lastMessage) {\n lastMessage.scrollIntoView();\n }\n }\n })\n .catch(handleErrorOnLoadConversation);\n };\n\n const fetchAutopilotResponses = () => {\n const params = prepareParams();\n\n getAutopilotResponses(params)\n .then(({ data, meta: { total } }) => {\n const messages = data.map(prepareMessages);\n dispatch({\n type: 'fetchMessages',\n payload: { messages, total },\n });\n })\n .catch(resetAndRenderError);\n };\n\n const resetAndRenderError = () => {\n dispatch({ type: 'reset' });\n enqueueSnackbar(\n 'Something went wrong. Try refreshing the page. If there is still an error please contact the Experience team.',\n { variant: 'error', autoHideDuration: 3000 },\n );\n };\n\n const handleErrorOnLoadConversation = () => {\n dispatch({ type: 'resetConversation' });\n enqueueSnackbar(\n \"Can't load conversation. Try refreshing the page. If there is still an error please contact the Experience team.\",\n { variant: 'error', autoHideDuration: 3000 },\n );\n };\n\n const actOnMessage = (action, id) => () => {\n setButtonIsDisabled(true);\n\n const params = {};\n if (currentMessage.manual) {\n params.manual = currentMessage.manual;\n params.texts = currentMessage.texts;\n }\n\n action(id, params)\n .then(() => {\n if (action === autopilotSessionOptOut) {\n fetchAutopilotResponses();\n } else {\n dispatch({ type: 'actOnMessage' });\n }\n })\n .catch((e) => {\n const perrors = JSON.parse(e.message);\n\n if (perrors.errors) {\n const errors = Object.values(perrors.errors).join(', ');\n\n dispatch({\n type: 'setError',\n payload: { message: errors },\n });\n } else {\n throw `Not supported errors: ${e.message}`;\n }\n })\n .finally(() => {\n setButtonIsDisabled(false);\n });\n };\n\n const handleTextareChange = (e) => {\n const texts = e.currentTarget.value;\n dispatch({ type: 'changeTexts', payload: { texts } });\n };\n\n const handleIgnoreAll = () => {\n ignoreAllInitialResponses()\n .then(() => {\n location.reload();\n })\n .catch(() => {\n enqueueSnackbar(\"Can't ignore all initial messages\", {\n variant: 'error',\n autoHideDuration: 3000,\n });\n });\n };\n\n const handleChange = (e) => {\n const url = new URL(window.location.href);\n url.searchParams.set('filter', e.target.value);\n\n window.location.href = url.href;\n };\n\n const numberWithCommas = (number) => {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n };\n\n const selectRenderValue = (value) => {\n const itemLabel = menuItems.find((item) => item.value === value).title;\n const messagecCount = numberWithCommas(globalTotalMessages);\n\n return `${itemLabel} (${messagecCount})`;\n };\n\n return (\n \n \n \n {!isEmpty(currentMessage) && (\n \n TO: {currentMessage.to}\n \n )}\n {autopilotResponseFilter === 'initial' && (\n {\n window.confirm(\n 'Are you sure you want to delete all initial messages?',\n ) && handleIgnoreAll();\n }}\n disabled={messages.length < 1}\n variant=\"outlined\"\n size=\"small\"\n >\n Ignore All\n \n )}\n \n \n {menuItems.map(({ title, value, icon }) => (\n \n {icon}\n {title}\n \n ))}\n \n \n \n \n {!isEmpty(currentMessage) && (\n \n {currentMessage.experienceTitle}\n \n )}\n \n {conversation.map((message) => (\n \n {message.originText && message.originText.length > 0 && (\n {message.originText}\n )}\n {message.status === 'approved' && (\n \n {message.texts}\n \n )}\n \n ))}\n \n \n {isEmpty(currentMessage) ? (\n \n No message to approve...\n \n ) : (\n \n \n \n )}\n \n \n \n {messages.length < 1 ? (\n \n ) : (\n <>\n \n \n \n \n Ignore\n \n \n Send Text\n \n \n )}\n \n \n \n );\n}\n\nexport default Outbox;\n","import React from 'react';\nimport Grid from '@mui/material/Grid';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport AddIcon from '@mui/icons-material/Add';\n\nfunction Item({\n id,\n name,\n description,\n previewUrl,\n selected,\n onClick,\n}) {\n const borderColor = selected ? '#ff4200' : 'transparent';\n\n return (\n \n \n {id === 'new' ? (\n \n \n \n ) : (\n \n )}\n \n \n {name}\n \n \n {description}\n \n \n );\n}\n\nexport default function TemplatesList({ items, selected, setSelected }) {\n return (\n \n {items.map(({ id, name, description, previewUrl }) => (\n \n setSelected(id)}\n />\n \n ))}\n \n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Box,\n Dialog,\n DialogTitle,\n IconButton,\n Divider,\n DialogContent,\n DialogActions,\n Typography,\n Button,\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport TemplatesList from './components/TemplatesList';\nimport { getEmailTemplates } from '../../api';\nimport { Label } from '../../globals';\n\nconst TYPE_CUSTOM = 'CustomEmail';\nconst TYPE_WORKSPACE = 'WorkspaceEmailTemplate';\nconst TYPE_PRODUCT = 'ProductEmailTemplate';\n\nconst listMapper = {\n product: TYPE_PRODUCT,\n workspace: TYPE_WORKSPACE,\n};\n\nfunction ChooseEmailTemplateModal({ variant, isOpen, hideModal, onContinue }) {\n if (!isOpen) {\n return null;\n }\n\n const [templates, setTemplates] = React.useState({\n [TYPE_CUSTOM]: [],\n [TYPE_WORKSPACE]: [],\n [TYPE_PRODUCT]: [],\n });\n const [selectedTemplate, setSelectedTemplate] = React.useState({\n id: 'new',\n type: TYPE_CUSTOM,\n });\n\n const handleContinue = () => {\n onContinue(\n templates[selectedTemplate.type].find(\n (t) => t.id === selectedTemplate.id,\n ),\n );\n hideModal();\n };\n\n React.useEffect(() => {\n getEmailTemplates().then(({ data }) => {\n const sortedTemplates = data.reduce(\n (acc, obj) => {\n const type = obj.attributes.emailTemplatableType;\n acc[type] = [...acc[type], obj.attributes];\n\n return acc;\n },\n {\n [TYPE_CUSTOM]: [],\n [TYPE_WORKSPACE]: [],\n [TYPE_PRODUCT]: [],\n },\n );\n setTemplates(sortedTemplates);\n });\n }, []);\n\n return (\n \n \n Choose a template\n \n \n \n \n \n \n \n Select a template\n \n \n Start from scratch or reuse your past templates\n \n {templates[listMapper[variant]].length > 0 && (\n <>\n \n \n \n \n \n setSelectedTemplate({ id, type: listMapper[variant] })\n }\n />\n \n )}\n {templates[TYPE_CUSTOM].length > 0 && (\n <>\n \n \n \n \n \n setSelectedTemplate({ id, type: TYPE_CUSTOM })\n }\n />\n \n )}\n \n \n \n \n Continue\n \n \n \n );\n}\n\nChooseEmailTemplateModal.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n hideModal: PropTypes.func.isRequired,\n onContinue: PropTypes.func.isRequired,\n};\n\nexport default ChooseEmailTemplateModal;\n","import React from 'react';\nimport Box from '@mui/material/Box';\n\nexport default function Footer({ children }) {\n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport Input from '@mui/material/Input';\nimport IconButton from '@mui/material/IconButton';\nimport EditIcon from '@mui/icons-material/Edit';\n\nexport default function EditableTemplateName({ defaultName, onBlur }) {\n const [name, setName] = React.useState(defaultName);\n const [editState, setEditState] = React.useState(false);\n const [inputWidth, setInputWidth] = React.useState(5);\n const inputRef = React.useRef(null);\n const hiddenSpanRef = React.useRef(null);\n\n React.useEffect(() => {\n if (inputRef.current && editState) {\n inputRef.current.focus();\n }\n }, [editState]);\n\n React.useEffect(() => {\n if (hiddenSpanRef.current) {\n setInputWidth(hiddenSpanRef.current.offsetWidth + 1);\n }\n }, [name]);\n\n const onNameBlur = () => {\n if (defaultName === name) {\n setEditState(false);\n } else if (!name.length) {\n setName(defaultName);\n setEditState(false);\n } else {\n onBlur(name);\n setEditState(false);\n }\n };\n\n const onKeyPress = (e) => {\n if (e.key === 'Enter') {\n onNameBlur();\n }\n };\n return (\n \n \n {name}\n \n \n {editState ? (\n setName(event.target.value)}\n onBlur={onNameBlur}\n inputRef={inputRef}\n onKeyPress={onKeyPress}\n />\n ) : (\n \n {name}\n \n )}\n \n {!editState && (\n \n setEditState(true)}>\n \n \n \n )}\n \n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport { XCircle } from 'react-feather';\nimport EditableTemplateName from '../../../BuildEmailTemplateModal/components/EditableTemplateName';\n\nfunction Header({ title, onCancel, onEdit }) {\n return (\n \n {onEdit ? (\n \n ) : (\n {title}\n )}\n \n \n );\n}\n\nHeader.propTypes = {\n onCancel: PropTypes.func.isRequired,\n};\n\nexport default Header;\n","import React from 'react';\nimport Box from '@mui/material/Box';\n\nconst buildFeeMinMaxText = (feeMin, feeMax) => {\n if (feeMin && feeMax) {\n return `; capped at ${feeMax}, minimum ${feeMin}`;\n }\n\n if (feeMax) {\n return `; capped at ${feeMax}`;\n }\n\n if (feeMin) {\n return `; minimum ${feeMin}`;\n }\n};\n\nfunction StyledText({ percentage, text }) {\n return (\n <>\n {percentage}%{' '}\n \n plus Stripe fees{text}\n \n \n );\n}\n\nexport default function FeePercentageText({ percentage, feeMin, feeMax }) {\n return (\n \n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Typography, Box } from '@mui/material';\n\nfunction CostSection({ title, price, frequency }) {\n return (\n \n {title}\n \n {price} \n \n {frequency}\n \n \n \n );\n}\n\nCostSection.propTypes = {\n price: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n title: PropTypes.string.isRequired,\n frequency: PropTypes.string,\n};\n\nexport default CostSection;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport Loader from '../../../../loader';\nimport useWorkspace from '../../../../hooks/useWorkspace';\n\nimport { Button, Card, Divider, Box, Typography } from '@mui/material';\nimport CheckIcon from '@mui/icons-material/Check';\nimport useCostSectionsList from './useCostSectionsList';\nimport CostSection from './components/CostSection';\n\nfunction PlanCard({\n id,\n title,\n price,\n state,\n disabled,\n isLoading,\n withSubscription,\n changePlan,\n usageName,\n usageLimit,\n free,\n phoneNumberPrice,\n platformPercentFee,\n platformUsBankAccountFeePercentage,\n platformUsBankAccountFeeMin,\n platformUsBankAccountFeeMax,\n smsPrice,\n mmsPrice,\n}) {\n const workspaceId = useWorkspace();\n const isCurrent = state === 'current';\n const submitLink = `/${workspaceId}/settings/billing_plans/${id}/checkout`;\n const costSections = useCostSectionsList(\n phoneNumberPrice,\n smsPrice,\n mmsPrice,\n platformPercentFee,\n platformUsBankAccountFeePercentage,\n platformUsBankAccountFeeMin,\n platformUsBankAccountFeeMax,\n );\n\n const cta = useMemo(() => {\n if (isCurrent) {\n return (\n <>\n }\n disabled\n fullWidth\n >\n Current Plan\n \n \n );\n }\n\n if (withSubscription || free) {\n return (\n <>\n \n Choose Plan\n {isLoading && }\n \n \n );\n }\n\n return (\n
\n \n Choose Plan\n \n \n );\n }, [isCurrent, disabled, submitLink, isLoading, withSubscription]);\n\n return (\n \n \n {title}\n \n \n \n \n {price}\n \n \n / month\n \n \n \n {usageLimit} \n {usageName} \n \n / month\n \n \n \n {costSections.map(({ price, title, frequency }) => (\n \n \n \n \n ))}\n {cta}\n \n );\n}\n\nPlanCard.propTypes = {\n id: PropTypes.number,\n title: PropTypes.string,\n price: PropTypes.string,\n state: PropTypes.string,\n isLoading: PropTypes.bool,\n disabled: PropTypes.bool,\n withSubscription: PropTypes.bool,\n changePlan: PropTypes.func,\n usageName: PropTypes.string,\n usageLimit: PropTypes.string,\n free: PropTypes.bool,\n phoneNumberPrice: PropTypes.string,\n platformPercentFee: PropTypes.string,\n smsPrice: PropTypes.string,\n mmsPrice: PropTypes.string,\n};\n\nexport default PlanCard;\n","import React from 'react';\nimport _compact from 'lodash/compact';\nimport FeePercentageText from './components/FeePercentageText';\n\nexport default function useCostSectionsList(\n phoneNumberPrice,\n smsPrice,\n mmsPrice,\n platformPercentFee,\n platformUsBankAccountFeePercentage,\n platformUsBankAccountFeeMin,\n platformUsBankAccountFeeMax,\n) {\n const list = _compact([\n phoneNumberPrice && {\n title: 'Phone Numbers',\n price: phoneNumberPrice,\n frequency: '/ phone number',\n },\n smsPrice && {\n title: 'SMS',\n price: smsPrice,\n frequency: '/ SMS segment',\n },\n mmsPrice && {\n title: 'MMS',\n price: mmsPrice,\n frequency: '/ MMS segment',\n },\n platformPercentFee && {\n title: 'Card Transaction Fee',\n price: ,\n },\n platformUsBankAccountFeePercentage && {\n title: 'ACH Transaction Fee',\n price: (\n \n ),\n },\n ]);\n\n return list;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Button, Typography } from '@mui/material';\n\nfunction BillingOverview({ planCounter, manageLink, activeSubscription }) {\n const {\n viewsUsage,\n smsUsage,\n mmsUsage,\n currentPeriodEnd,\n phoneNumbersUsage,\n } = activeSubscription;\n\n const countersList = [\n {\n subtitle: 'Block Views',\n text: `You've used ${viewsUsage || 0} of ${planCounter}`,\n additionalText: `(Resets on ${currentPeriodEnd})`,\n },\n {\n subtitle: 'active numbers',\n text: `${phoneNumbersUsage || 0} / month`,\n },\n {\n subtitle: 'SMS count',\n text: `${smsUsage} / month`,\n },\n {\n subtitle: 'MMS count',\n text: `${mmsUsage} / month`,\n },\n ];\n\n return (\n \n Billing Overview\n {countersList.map(({ subtitle, text, additionalText }) => (\n \n \n {subtitle}\n {' '}\n {text}{' '}\n {additionalText && (\n \n {additionalText}\n \n )}\n \n ))}\n {manageLink && (\n \n
\n \n
\n
\n )}\n \n );\n}\n\nBillingOverview.propTypes = {\n planCounter: PropTypes.string,\n manageLink: PropTypes.string,\n activeSubscription: PropTypes.shape({\n viewsUsage: PropTypes.string,\n smsUsage: PropTypes.number,\n mmsUsage: PropTypes.number,\n currentPeriodEnd: PropTypes.string,\n phoneNumbersUsage: PropTypes.number,\n }),\n};\n\nexport default BillingOverview;\n","import React from 'react';\nimport _cloneDeep from 'lodash/cloneDeep';\nimport PlanCard from './components/PlanCard';\nimport { Alert, Button, Typography } from '@mui/material';\nimport Grid from '@mui/material/Unstable_Grid2';\nimport { useSnackbar } from 'notistack';\nimport {\n getBillingPlans,\n changeBillingPlan,\n cancelBillingPlanDowngrade,\n getBillingActiveSubscription,\n} from '../../api';\nimport BillingOverview from './components/BillingOverview';\n\nconst DowngradeInfo = (handleClick, nextPlanName, currentPeriodEnd) => (\n <>\n Your subscription will be downgraded to {nextPlanName} at {currentPeriodEnd}\n .{' '}\n \n \n);\n\nfunction BillingPage() {\n const [plans, setPlans] = React.useState(null);\n const [manageLink, setManageLink] = React.useState(null);\n const [cancelLink, setCancelLink] = React.useState(null);\n const [alertMessage, setAlertMessage] = React.useState(null);\n const [currentPlan, setCurrentPlan] = React.useState(null);\n const [nextPlan, setNextPlan] = React.useState(null);\n const [activeSubscription, setActiveSubscription] = React.useState(null);\n const { enqueueSnackbar } = useSnackbar();\n\n const loadPlans = () => {\n const subPromise = new Promise((resolve, _) => {\n getBillingActiveSubscription().then(({ data }) => {\n if (data) {\n setActiveSubscription(data.attributes);\n }\n\n resolve();\n });\n });\n\n const billingPromise = new Promise((resolve, _) => {\n getBillingPlans().then(({ data, meta }) => {\n const plans = data.map(({ attributes }) => {\n if (attributes.state === 'current') {\n setCurrentPlan(attributes);\n } else if (attributes.state === 'next') {\n setNextPlan(attributes);\n }\n return {\n ...attributes,\n loading: false,\n disabled: false,\n };\n });\n\n setPlans(plans);\n setManageLink(meta?.manage_path);\n setCancelLink(meta?.cancel_path);\n resolve();\n });\n });\n\n return [subPromise, billingPromise];\n };\n\n const handleError = (error) => {\n const messages = JSON.parse(error.message).errors;\n\n for (const key of Object.keys(messages)) {\n switch (key) {\n case 'card':\n enqueueSnackbar(messages.card[0], {\n variant: 'error',\n persist: true,\n action: (key) => (\n <>\n
\n \n
\n \n ),\n });\n break;\n default:\n throw new Error('Unsupported error');\n }\n }\n };\n const handleCancelDowngrade = () => {\n cancelBillingPlanDowngrade(cancelLink).then(() => { loadPlans(); });\n };\n\n const changePlan = (planId) => () => {\n const nextPlans = plans.map((plan) => ({\n ...plan,\n disabled: true,\n loading: planId === plan.id,\n }));\n setPlans(nextPlans);\n\n changeBillingPlan(planId)\n .then(() => loadPlans())\n .catch((err) => {\n setPlans(_cloneDeep(plans));\n handleError(err);\n });\n };\n\n React.useEffect(() => {\n loadPlans();\n }, []);\n\n React.useEffect(() => {\n if (cancelLink && nextPlan && activeSubscription) {\n setAlertMessage(\n DowngradeInfo(\n handleCancelDowngrade,\n nextPlan.name,\n activeSubscription.currentPeriodEnd,\n ),\n );\n } else {\n setAlertMessage(null);\n }\n }, [cancelLink, nextPlan, activeSubscription]);\n\n if (!plans) {\n return null;\n }\n\n return (\n <>\n {alertMessage && (\n \n {alertMessage}\n \n )}\n {currentPlan && activeSubscription && (\n \n )}\n \n Plans\n \n \n {plans.map(\n ({\n id,\n name,\n price,\n state,\n disabled,\n loading,\n usageName,\n usageLimit,\n free,\n phoneNumberPrice,\n platformPercentFee,\n platformUsBankAccountFeePercentage,\n platformUsBankAccountFeeMin,\n platformUsBankAccountFeeMax,\n smsPrice,\n mmsPrice,\n }) => (\n \n \n \n ),\n )}\n \n \n );\n}\n\nexport default BillingPage;\n","const createImage = (url) =>\n new Promise((resolve, reject) => {\n const image = new Image();\n image.addEventListener('load', () => resolve(image));\n image.addEventListener('error', (error) => reject(error));\n image.setAttribute('crossOrigin', 'anonymous'); // needed to avoid cross-origin issues on CodeSandbox\n image.src = url;\n });\n\nfunction getRadianAngle(degreeValue) {\n return (degreeValue * Math.PI) / 180;\n}\n\n/**\n * This function was adapted from the one in the ReadMe of https://github.com/DominicTobias/react-image-crop\n * @param {File} image - Image File url\n * @param {Object} pixelCrop - pixelCrop Object provided by react-easy-crop\n * @param {number} rotation - optional rotation parameter\n */\nexport default async function getCroppedImg(imageSrc, pixelCrop, rotation = 0) {\n const image = await createImage(imageSrc);\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n\n const maxSize = Math.max(image.width, image.height);\n const safeArea = 2 * ((maxSize / 2) * Math.sqrt(2));\n\n // set each dimensions to double largest dimension to allow for a safe area for the\n // image to rotate in without being clipped by canvas context\n canvas.width = safeArea;\n canvas.height = safeArea;\n\n // translate canvas context to a central location on image to allow rotating around the center.\n ctx.translate(safeArea / 2, safeArea / 2);\n ctx.rotate(getRadianAngle(rotation));\n ctx.translate(-safeArea / 2, -safeArea / 2);\n\n // draw rotated image and store data.\n ctx.drawImage(\n image,\n safeArea / 2 - image.width * 0.5,\n safeArea / 2 - image.height * 0.5,\n );\n const data = ctx.getImageData(0, 0, safeArea, safeArea);\n\n // set canvas width to final desired crop size - this will clear existing context\n canvas.width = pixelCrop.width;\n canvas.height = pixelCrop.height;\n\n // paste generated rotate image with correct offsets for x,y crop values.\n ctx.putImageData(\n data,\n Math.round(0 - safeArea / 2 + image.width * 0.5 - pixelCrop.x),\n Math.round(0 - safeArea / 2 + image.height * 0.5 - pixelCrop.y),\n );\n\n // As Base64 string\n // return canvas.toDataURL('image/jpeg');\n\n // As a blob\n return new Promise((resolve) => {\n canvas.toBlob((file) => {\n resolve(file);\n }, 'image/png');\n });\n}\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: relative;\n width: 100%;\n height: 228px;\n`;\n\nexport const SliderWrapper = styled.div`\n position: absolute;\n width: 192px;\n bottom: -9px;\n left: 50%;\n transform: translateX(-50%);\n`;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport Slider, { sliderClasses } from '@mui/material/Slider';\nimport Cropper from 'react-easy-crop';\nimport { Container, SliderWrapper } from './style';\n\nconst sliderStyles = {\n [`& .${sliderClasses.root}`]: {\n color: 'var(--primary-color)',\n height: 3,\n width: '100%',\n },\n [`& .${sliderClasses.thumb}`]: {\n height: 12,\n width: 12,\n backgroundColor: '#fff',\n [`&:focus, &:hover, &.${sliderClasses.active}`]: {\n boxShadow: 'inherit',\n },\n },\n [`& .${sliderClasses.valueLabel}`]: {\n left: 'calc(-50% + 4px)',\n },\n [`& .${sliderClasses.track}`]: {\n backgroundColor: 'var(--primary-color)',\n height: 3,\n borderRadius: '27px',\n border: 0,\n },\n [`& .${sliderClasses.rail}`]: {\n height: 3,\n borderRadius: '27px',\n color: '#fff',\n },\n};\n\nfunction ImageCropper({ uploadedImage, setCroppedAreaPixels }) {\n const [crop, setCrop] = React.useState({ x: 0, y: 0 });\n const [zoom, setZoom] = React.useState(1);\n\n const onCropComplete = useCallback((_croppedArea, croppedAreaPixels) => {\n setCroppedAreaPixels(croppedAreaPixels);\n }, []);\n\n return (\n \n \n \n setZoom(zoom)}\n />\n \n \n );\n}\n\nImageCropper.propTypes = {\n uploadedImage: PropTypes.string.isRequired,\n setCroppedAreaPixels: PropTypes.func.isRequired,\n};\n\nexport default ImageCropper;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n background-color: var(--upload-media-background);\n border: 1px solid var(--border-color-primary);\n border-radius: 8px;\n`;\n\nexport const SubmitButtonWrapper = styled.div`\n width: 100%;\n max-width: 168px;\n margin-top: 28px;\n`;\n\nexport const HelperText = styled.p`\n font-size: 14px;\n color: var(--font-color-secondary--light);\n text-align: center;\n margin-bottom: 40px;\n`;\n\nexport const Logo = styled.div`\n width: 104px;\n height: 104px;\n background-color: #000;\n background-image: url(${(props) => props.logoUrl});\n background-size: cover;\n background-position: center;\n border: 1px dashed #727278;\n border-radius: 50%;\n margin-bottom: 20px;\n`;\n\nexport const DeleteButtonWrapper = styled.div`\n position: absolute;\n right: 18px;\n top: 18px;\n color: var(--font-color-secondary--light);\n cursor: pointer;\n z-index: 1;\n`;\n\nexport const ErrorWrapper = styled.div`\n position: absolute;\n top: -12px;\n right: 8px;\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImageCropper from '../ImageCropper';\nimport { X } from 'react-feather';\nimport { DeleteButtonWrapper, ErrorWrapper } from './style';\nimport { ErrorMessage } from '../../../../globals';\nimport { Button, Card, Typography } from '@mui/material';\n\nfunction UploadForm({\n uploadedImage,\n setUploadedImage,\n setCroppedAreaPixels,\n error,\n}) {\n const inputFileRef = React.useRef(null);\n\n const uploadImage = () => {\n inputFileRef.current.click();\n };\n\n const removeBrandingLogo = () => {\n setUploadedImage(null);\n };\n\n const handleImageUpload = (e) => {\n if (e.target.files[0]) {\n setUploadedImage(URL.createObjectURL(e.target.files[0]));\n }\n };\n\n return (\n \n {uploadedImage && (\n \n \n \n )}\n {uploadedImage ? (\n \n ) : (\n <>\n \n Upload image\n \n \n Works with png, svg, jpg, gif\n \n \n )}\n \n {error && (\n \n \n {error}\n \n \n )}\n \n );\n}\n\nUploadForm.propTypes = {\n uploadedImage: PropTypes.string,\n setUploadedImage: PropTypes.func.isRequired,\n setCroppedAreaPixels: PropTypes.func.isRequired,\n error: PropTypes.string,\n};\n\nexport default UploadForm;\n","import styled from 'styled-components';\n\nexport const Logo = styled.div`\n width: 35px;\n height: 35px;\n flex-shrink: 0;\n background-image: url(${(props) => props.logoUrl});\n background-size: cover;\n background-position: center;\n border-radius: 50%;\n margin-right: 7px;\n`;\n\nexport const Title = styled.div`\n font-size: 12px;\n letter-spacing: 1px;\n flex: 1;\n margin-right: 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Logo, Title } from './style';\nimport { Card, IconButton } from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\n\nfunction LogoPreview({ logoUrl, title, setLogoAttached}) {\n return (\n \n \n \n {title}\n \n setLogoAttached(false)}\n aria-label='delete logo'\n >\n \n \n \n );\n};\n\nLogoPreview.propTypes = {\n logoUrl: PropTypes.string,\n title: PropTypes.string,\n setLogoAttached: PropTypes.func.isRequired,\n};\n\nexport default LogoPreview;\n","import React, { useEffect } from 'react';\nimport { useSnackbar } from 'notistack';\nimport getCroppedImage from './cropImage';\nimport { getBranding, updateBranding } from '../../api';\nimport UploadForm from './components/UploadForm';\nimport LogoPreview from './components/LogoPreview';\nimport {\n Box,\n Button,\n TextField,\n FormLabel,\n FormControl,\n Typography,\n Divider,\n} from '@mui/material';\nimport { useTranslation } from '../../../i18n';\n\nfunction ElementsWrapper({ fullWidth, children }) {\n return (\n \n \n {children}\n \n \n );\n}\n\nfunction BrandingPage() {\n const [imageIsUploading, setImageIsUploading] = React.useState(false);\n const [uploadedImage, setUploadedImage] = React.useState(null);\n const [errors, setErrors] = React.useState({});\n const [croppedAreaPixels, setCroppedAreaPixels] = React.useState(null);\n\n const [name, setName] = React.useState('');\n const [url, setUrl] = React.useState('');\n const [address, setAddress] = React.useState('');\n const [logoAttached, setLogoAttached] = React.useState(null);\n const [currentLogoUrl, setCurrentLogoUrl] = React.useState(null);\n const { enqueueSnackbar } = useSnackbar();\n const { t } = useTranslation('translation', {\n keyPrefix: 'WorkspaceSettings.Branding',\n });\n\n useEffect(() => {\n getBranding().then((response) => {\n if (response.data) {\n const { name, url, address, logoUrl } = response.data.attributes;\n\n setName(name);\n setUrl(url);\n setAddress(address);\n setLogoAttached(logoUrl);\n setCurrentLogoUrl(logoUrl);\n }\n });\n }, []);\n\n const handleFormSubmit = async (e) => {\n e.preventDefault();\n\n let croppedImage = '';\n const formData = new FormData();\n\n if (uploadedImage) {\n croppedImage = await getCroppedImage(uploadedImage, croppedAreaPixels);\n croppedImage.lastModifiedDate = new Date();\n croppedImage.name = 'image.png';\n\n // Do not rewrite uploaded image after save if there is no uploadedImage\n formData.append('branding[logo]', croppedImage);\n }\n\n // Logo was deleted\n if (!logoAttached && !croppedImage) {\n formData.append('branding[logo]', croppedImage);\n }\n\n formData.append('branding[name]', name);\n formData.append('branding[url]', url);\n formData.append('branding[address]', address);\n\n setImageIsUploading(true);\n\n updateBranding(formData)\n .then(() => {\n enqueueSnackbar('Changes has been saved!', { variant: 'success' });\n\n if (croppedImage) {\n setLogoAttached(true);\n setCurrentLogoUrl(URL.createObjectURL(croppedImage));\n }\n\n setErrors({});\n })\n .catch((e) => {\n const catchedErrors = JSON.parse(e.message).errors;\n setErrors({\n ...catchedErrors,\n });\n })\n .finally(() => {\n setUploadedImage(null);\n setImageIsUploading(false);\n });\n };\n\n return (\n <>\n \n Display name\n setName(e.target.value)}\n error={errors.name && errors.name[0]}\n helperText={errors.name && errors.name[0]}\n />\n \n \n Clickthru url\n setUrl(e.target.value)}\n error={errors.url && errors.url[0]}\n helperText={errors.url && errors.url[0]}\n />\n \n \n {logoAttached ? (\n <>\n Logo / Favicon\n \n \n ) : (\n <>\n Logo / Favicon\n \n \n )}\n \n \n \n Workspace address\n \n \n {t('addressSubtitle')}\n \n \n Address\n setAddress(e.target.value)}\n error={errors.address && errors.address[0]}\n helperText={errors.address && errors.address[0]}\n />\n \n \n Save Changes\n \n \n );\n}\n\nexport default BrandingPage;\n","import React from 'react';\nimport ReactEmailEditor from 'react-email-editor';\n\nexport default function EmailEditor({\n init,\n emailEditorRef,\n customJS,\n onReady,\n}) {\n return (\n \n );\n}\n"],"names":["styles","container","width","height","innerContainer","maxWidth","bgcolor","ml","mr","mb","chatContainer","display","flexDirection","justifyContent","minHeight","minWidth","border","borderColor","borderRadius","messageItem","lineHeight","fontSize","p","color","currentMessage","maxHeight","borderTop","overflow","textarea","reducer","state","action","nextState","copyObject","type","messages","payload","nextMessage","conversation","conversationFetched","globalTotalMessages","total","id","nextMessages","slice","error","texts","manual","sessionId","autopilotSessionId","message","Error","menuItems","icon","Inbox","title","value","Message","Reply","React","buttonIsDisabled","setButtonIsDisabled","messagesListRef","useRef","autopilotResponseFilter","URLSearchParams","window","location","search","get","dispatch","enqueueSnackbar","useSnackbar","useEffect","fetchAutopilotResponses","fetchConversation","prepareMessages","attributes","join","getAutopilotSessions","then","data","map","length","current","lastMessage","children","scrollIntoView","catch","handleErrorOnLoadConversation","params","initial","getAutopilotResponses","meta","resetAndRenderError","variant","autoHideDuration","actOnMessage","autopilotSessionOptOut","e","perrors","JSON","parse","errors","Object","values","finally","Box","sx","Stack","direction","alignItems","isEmpty","Typography","letterSpacing","to","Button","onClick","confirm","ignoreAllInitialResponses","reload","disabled","size","FormControl","Select","renderValue","itemLabel","find","item","messagecCount","toString","replace","onChange","url","URL","href","searchParams","set","target","MenuItem","key","ListItemIcon","ListItemText","mt","textAlign","textTransform","experienceTitle","m","ref","originText","status","alignSelf","fontWeight","TextField","currentTarget","placeholder","multiline","fullWidth","helperText","ButtonGroup","Report","ignoreAutopilotResponse","approveAutopilotResponse","Item","name","description","previewUrl","selected","cursor","borderStyle","borderWidth","Add","opacity","objectFit","component","src","TemplatesList","items","setSelected","Grid","spacing","TYPE_CUSTOM","TYPE_WORKSPACE","TYPE_PRODUCT","listMapper","product","workspace","isOpen","hideModal","onContinue","templates","setTemplates","selectedTemplate","setSelectedTemplate","getEmailTemplates","sortedTemplates","reduce","acc","obj","emailTemplatableType","Dialog","open","onClose","DialogTitle","px","IconButton","position","right","top","Close","Divider","DialogContent","my","DialogActions","disableRipple","t","Footer","padding","EditableTemplateName","defaultName","onBlur","setName","editState","setEditState","inputWidth","setInputWidth","inputRef","hiddenSpanRef","focus","offsetWidth","onNameBlur","zIndex","whiteSpace","Input","inputProps","boxShadow","event","onKeyPress","Edit","onCancel","onEdit","left","background","style","buildFeeMinMaxText","feeMin","feeMax","StyledText","percentage","text","FeePercentageText","price","frequency","isLoading","withSubscription","changePlan","usageName","usageLimit","free","phoneNumberPrice","platformPercentFee","platformUsBankAccountFeePercentage","platformUsBankAccountFeeMin","platformUsBankAccountFeeMax","smsPrice","mmsPrice","workspaceId","useWorkspace","isCurrent","submitLink","costSections","_compact","useCostSectionsList","cta","useMemo","startIcon","Check","loader","method","Card","planCounter","manageLink","activeSubscription","viewsUsage","smsUsage","mmsUsage","currentPeriodEnd","phoneNumbersUsage","countersList","subtitle","additionalText","plans","setPlans","setManageLink","cancelLink","setCancelLink","alertMessage","setAlertMessage","currentPlan","setCurrentPlan","nextPlan","setNextPlan","setActiveSubscription","loadPlans","subPromise","Promise","resolve","_","getBillingActiveSubscription","billingPromise","getBillingPlans","loading","manage_path","cancel_path","handleCancelDowngrade","cancelBillingPlanDowngrade","planId","nextPlans","plan","changeBillingPlan","err","_cloneDeep","keys","card","persist","handleError","handleClick","nextPlanName","Alert","severity","xs","md","lg","createImage","reject","image","Image","addEventListener","setAttribute","getRadianAngle","degreeValue","Math","PI","getCroppedImg","imageSrc","pixelCrop","rotation","canvas","document","createElement","ctx","getContext","maxSize","max","safeArea","sqrt","translate","rotate","drawImage","getImageData","putImageData","round","x","y","toBlob","file","Container","styled","SliderWrapper","sliderStyles","sliderClasses","backgroundColor","uploadedImage","setCroppedAreaPixels","crop","setCrop","zoom","setZoom","onCropComplete","useCallback","_croppedArea","croppedAreaPixels","aspect","onCropChange","showGrid","onZoomChange","cropAreaStyle","Slider","min","step","_e","DeleteButtonWrapper","props","logoUrl","ErrorWrapper","setUploadedImage","inputFileRef","click","pt","accept","files","createObjectURL","Logo","Title","setLogoAttached","i","ElementsWrapper","imageIsUploading","setImageIsUploading","setErrors","setUrl","address","setAddress","logoAttached","currentLogoUrl","setCurrentLogoUrl","useTranslation","keyPrefix","getBranding","response","handleFormSubmit","preventDefault","croppedImage","formData","FormData","getCroppedImage","lastModifiedDate","Date","append","updateBranding","catchedErrors","FormLabel","maxLength","logo","EmailEditor","init","emailEditorRef","customJS","onReady","options","projectId","project_id","user","user_id","signature","customCSS","designTags","design_tags","fonts","showDefaultFonts","customFonts","custom_fonts","features","colorPicker","presets","palette_colors","marginTop","flex"],"sourceRoot":""}