@bigbinary/neeto-message-templates-frontend 2.0.13 → 2.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -2
- package/dist/.ready +1 -1
- package/dist/ApiTemplates.js +4 -2
- package/dist/ApiTemplates.js.map +1 -1
- package/dist/MessageTemplates.js +46 -8
- package/dist/MessageTemplates.js.map +1 -1
- package/dist/{utils-Cz5W3I3l.js → SaveAsTemplate-B0HZhYfJ.js} +1 -8
- package/dist/SaveAsTemplate-B0HZhYfJ.js.map +1 -0
- package/dist/{utils-DddrNhQe.js → SaveAsTemplate-CueK8whg.js} +2 -8
- package/dist/SaveAsTemplate-CueK8whg.js.map +1 -0
- package/dist/{utils-BGEmI_om.js → SaveAsTemplate-DwPF4y1M.js} +2 -8
- package/dist/SaveAsTemplate-DwPF4y1M.js.map +1 -0
- package/dist/{utils-CLc_-Ysi.js → SaveAsTemplate-GtRE2UkX.js} +1 -8
- package/dist/SaveAsTemplate-GtRE2UkX.js.map +1 -0
- package/dist/SendMessagePane.js +11 -3
- package/dist/SendMessagePane.js.map +1 -1
- package/dist/SendToApiPane.js +7 -3
- package/dist/SendToApiPane.js.map +1 -1
- package/dist/cjs/ApiTemplates.js +4 -2
- package/dist/cjs/ApiTemplates.js.map +1 -1
- package/dist/cjs/MessageTemplates.js +47 -9
- package/dist/cjs/MessageTemplates.js.map +1 -1
- package/dist/cjs/SendMessagePane.js +12 -4
- package/dist/cjs/SendMessagePane.js.map +1 -1
- package/dist/cjs/SendToApiPane.js +8 -4
- package/dist/cjs/SendToApiPane.js.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/v2/ApiTemplates.js +4 -2
- package/dist/cjs/v2/ApiTemplates.js.map +1 -1
- package/dist/cjs/v2/MessageTemplates.js +44 -10
- package/dist/cjs/v2/MessageTemplates.js.map +1 -1
- package/dist/cjs/v2/SendMessagePane.js +12 -4
- package/dist/cjs/v2/SendMessagePane.js.map +1 -1
- package/dist/cjs/v2/SendToApiPane.js +8 -4
- package/dist/cjs/v2/SendToApiPane.js.map +1 -1
- package/dist/cjs/v2/index.js +4 -2
- package/dist/cjs/v2/index.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/utils-B4JstKAU.js +16 -0
- package/dist/utils-B4JstKAU.js.map +1 -0
- package/dist/utils-Bqi4fltZ.js +13 -0
- package/dist/utils-Bqi4fltZ.js.map +1 -0
- package/dist/utils-Cje7oYAU.js +13 -0
- package/dist/utils-Cje7oYAU.js.map +1 -0
- package/dist/utils-DLBeeHEL.js +16 -0
- package/dist/utils-DLBeeHEL.js.map +1 -0
- package/dist/v2/ApiTemplates.js +4 -2
- package/dist/v2/ApiTemplates.js.map +1 -1
- package/dist/v2/MessageTemplates.js +43 -9
- package/dist/v2/MessageTemplates.js.map +1 -1
- package/dist/v2/SendMessagePane.js +11 -3
- package/dist/v2/SendMessagePane.js.map +1 -1
- package/dist/v2/SendToApiPane.js +7 -3
- package/dist/v2/SendToApiPane.js.map +1 -1
- package/dist/v2/index.js +4 -2
- package/dist/v2/index.js.map +1 -1
- package/package.json +7 -7
- package/types.d.ts +9 -1
- package/dist/utils-BGEmI_om.js.map +0 -1
- package/dist/utils-CLc_-Ysi.js.map +0 -1
- package/dist/utils-Cz5W3I3l.js.map +0 -1
- package/dist/utils-DddrNhQe.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SendMessagePane.js","sources":["../../app/javascript/src/v2/components/commons/NoDataPage.jsx","../../app/javascript/src/v2/components/SendMessagePane/constants.js","../../app/javascript/src/v2/components/SendMessagePane/Form/EmailAndSms.jsx","../../app/javascript/src/v2/components/SendMessagePane/Form/Whatsapp.jsx","../../app/javascript/src/v2/components/SendMessagePane/index.jsx"],"sourcesContent":["import { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { MESSAGE_TEMPLATES, MESSAGE_TYPES } from \"v2/components/constants\";\n\nconst NoDataPage = ({ type, helpDocUrl = \"\" }) => {\n const { t } = useTranslation();\n\n const { label } = MESSAGE_TEMPLATES[type];\n\n if (type === MESSAGE_TYPES.whatsapp) {\n return (\n <div className=\"flex h-full w-full items-center justify-center px-6 text-center\">\n <Typography>\n {t(\"neetoMessageTemplate.template.emptyState\", {\n type: t(\"neetoMessageTemplate.template.whatsappTemplates\"),\n })}{\" \"}\n {helpDocUrl && (\n <Trans\n i18nKey=\"neetoMessageTemplate.template.whatsapp.helpDocText\"\n components={{\n Link: <Button href={helpDocUrl} size=\"lg\" variant=\"link\" />,\n }}\n />\n )}\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"flex h-full w-full flex-col items-center justify-center\">\n <Typography>\n {t(\"neetoMessageTemplate.template.emptyState\", {\n type: label,\n })}\n </Typography>\n </div>\n );\n};\n\nexport default NoDataPage;\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nconst formatEditorContent = value =>\n value?.replaceAll(/<\\/?(?!img)\\w*\\b[^>]*>/gi, \"\").trim();\n\nexport const SEND_MESSAGE_INITIAL_VALUES = {\n subject: \"\",\n body: \"\",\n shouldSaveAsTemplate: false,\n templateName: \"\",\n};\n\nexport const EMAIL_MESSAGE_FORM_SCHEMA = yup.object().shape({\n subject: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.subjectPresence\")),\n body: yup\n .string()\n .test(\n \"body\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n )\n .required(t(\"neetoMessageTemplate.template.validation.bodyPresence\")),\n templateName: yup.string().when(\"shouldSaveAsTemplate\", {\n is: true,\n then: yup.string().required(\n t(\"neetoMessageTemplate.template.validation.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.templateName\"),\n })\n ),\n }),\n});\n\nexport const SMS_MESSAGE_FORM_VALIDATION_SCHEMA = yup.object().shape({\n body: yup\n .string()\n .required(t(\"neetoMessageTemplate.template.validation.bodyPresence\"))\n .test(\n \"body\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n ),\n templateName: yup.string().when(\"shouldSaveAsTemplate\", {\n is: true,\n then: yup.string().required(\n t(\"neetoMessageTemplate.template.validation.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.templateName\"),\n })\n ),\n }),\n});\n\nexport const WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA = yup.object().shape({\n variableContents: yup.object().shape({\n body: yup\n .array()\n .of(\n yup\n .string()\n .required(\n t(\"neetoMessageTemplate.template.validation.variablePresence\")\n )\n ),\n }),\n});\n","import { useRef } from \"react\";\n\nimport { Select, Sheet } from \"@bigbinary/neeto-atoms\";\nimport { ActionBlock, Form, Input } from \"@bigbinary/neeto-atoms/formik\";\nimport { findBy, isPresent, renameKeys } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor/v2\";\nimport { mergeAll, omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport SaveAsTemplate from \"v2/components/commons/SaveAsTemplate\";\nimport { DEFAULT_EDITOR_ROW_COUNT } from \"v2/components/constants\";\nimport { areValuesEqual } from \"v2/components/utils\";\n\nimport {\n EMAIL_MESSAGE_FORM_SCHEMA,\n SEND_MESSAGE_INITIAL_VALUES,\n SMS_MESSAGE_FORM_VALIDATION_SCHEMA,\n} from \"../constants\";\n\nconst EmailAndSms = ({\n canManageTemplates,\n onClose,\n templates,\n setFocusField,\n templateVariables,\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n type,\n handleSubmit,\n isSaveAsTemplateEnabled,\n customFieldsBelowBody,\n helpPopoverProps = {},\n}) => {\n const editorRef = useRef(null);\n const { t } = useTranslation();\n\n const isEmailTemplate = type === \"email\";\n const [INITIAL_VALUES, SEND_MESSAGE_FORM_SCHEMA] = isEmailTemplate\n ? [SEND_MESSAGE_INITIAL_VALUES, EMAIL_MESSAGE_FORM_SCHEMA]\n : [\n omit([\"subject\"], SEND_MESSAGE_INITIAL_VALUES),\n SMS_MESSAGE_FORM_VALIDATION_SCHEMA,\n ];\n\n const updatedInitialValues = mergeAll([\n INITIAL_VALUES,\n customFieldsInitialValues,\n ]);\n\n const updatedValidationSchema = yup.object().shape({\n ...SEND_MESSAGE_FORM_SCHEMA?.fields,\n ...customFieldsValidationSchema?.fields,\n });\n\n const shouldShowSaveAsTemplate = ({ id, subject, body } = {}) => {\n if (!isSaveAsTemplateEnabled) return false;\n\n const template = findBy({ id }, templates);\n const hasContent = isPresent(subject) || isPresent(body);\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.subject, subject) && template?.body === body\n );\n\n return hasContent && isContentDifferentFromTemplate;\n };\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n return (\n <Form\n formProps={{\n noValidate: true,\n className: \"flex min-h-0 w-full flex-1 flex-col\",\n }}\n formikProps={{\n initialValues: updatedInitialValues,\n validationSchema: updatedValidationSchema,\n onSubmit: handleSubmit,\n }}\n >\n {({ setValues, values }) => {\n const handleTemplateChange = templateId => {\n if (!templateId) return;\n\n const template = findBy({ id: templateId }, templates);\n setValues({ ...values, ...template });\n editorRef.current?.editor?.commands?.setContent(template.body);\n };\n\n return (\n <>\n <Sheet.Body>\n <div className=\"flex w-full flex-col gap-y-4 pb-6\">\n {isTemplateSelectionEnabled && (\n <Select\n isClearable\n isSearchable\n label={t(\"neetoMessageTemplate.template.title\")}\n labelProps={helpPopoverProps?.[type]?.template}\n ref={setFocusField}\n options={renameKeys(\n { name: \"label\", id: \"value\" },\n templates\n )}\n placeholder={t(\n \"neetoMessageTemplate.sendMessage.selectTemplate\"\n )}\n onChange={handleTemplateChange}\n />\n )}\n {customFields}\n {isEmailTemplate && (\n <Input\n required\n label={t(\"neetoMessageTemplate.template.subject\")}\n labelProps={helpPopoverProps?.email?.subject}\n name=\"subject\"\n ref={isTemplateSelectionEnabled ? null : setFocusField}\n />\n )}\n <FormikEditor\n hideSlashCommands\n required\n autoFocus={!(isTemplateSelectionEnabled || isEmailTemplate)}\n contentClassName=\"max-h-40\"\n defaults={isEmailTemplate ? undefined : []}\n label={t(\"neetoMessageTemplate.template.body\")}\n name=\"body\"\n ref={editorRef}\n rows={DEFAULT_EDITOR_ROW_COUNT}\n variables={templateVariables}\n />\n {customFieldsBelowBody}\n {canManageTemplates && shouldShowSaveAsTemplate(values) && (\n <SaveAsTemplate />\n )}\n </div>\n </Sheet.Body>\n <Sheet.Footer>\n <ActionBlock\n cancelButtonProps={{\n \"data-testid\": \"message-template-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-testid\": \"message-template-send-button\",\n label: t(\"neetoMessageTemplate.template.send\"),\n }}\n />\n </Sheet.Footer>\n </>\n );\n }}\n </Form>\n );\n};\nexport default EmailAndSms;\n","import { Select, Sheet, Textarea, Typography } from \"@bigbinary/neeto-atoms\";\nimport { ActionBlock, Form, Input } from \"@bigbinary/neeto-atoms/formik\";\nimport {\n capitalize,\n nullSafe,\n findBy,\n isNotEmpty,\n renameKeys,\n} from \"neetocist\";\nimport { mergeAll, omit, pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport { WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA } from \"../constants\";\n\nconst Whatsapp = ({\n templates,\n onClose,\n handleSubmit,\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n}) => {\n const { t } = useTranslation();\n\n const getInitialVariableComponents = variables => {\n const initialComponents = {};\n\n variables?.forEach(({ type, count }) => {\n initialComponents[type] = Array(count).fill(\"\");\n });\n\n return initialComponents;\n };\n\n const getTemplateMessage = components =>\n nullSafe(pluck)(\"text\", components)?.join(\"\\n\");\n\n const initialFormValues = {\n selectedTemplate: { label: templates[0]?.name, value: templates[0]?.id },\n templateMessage: getTemplateMessage(templates[0]?.components),\n variableContents: getInitialVariableComponents(templates[0]?.variableCount),\n };\n\n const updatedInitialValues = mergeAll([\n initialFormValues,\n customFieldsInitialValues,\n ]);\n\n const updatedValidationSchema = yup.object().shape({\n ...WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA?.fields,\n ...customFieldsValidationSchema?.fields,\n });\n\n const initialValueKeys = Object.keys(initialFormValues);\n\n return (\n <Form\n formProps={{\n noValidate: true,\n className: \"flex min-h-0 w-full flex-1 flex-col\",\n }}\n formikProps={{\n initialValues: updatedInitialValues,\n validationSchema: updatedValidationSchema,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setValues }) => {\n // `selectedTemplate` is kept as a `{ label, value }` object in Formik\n // state to preserve the payload shape v1 handed to `handleSubmit`.\n // atoms' Select is value-based, hence the plain (non-Formik) Select\n // driven off `values.selectedTemplate.value`.\n const handleTemplateChange = templateId => {\n if (!templateId) return;\n\n const template = findBy({ id: templateId }, templates);\n const customFieldValues = omit(initialValueKeys, values);\n setValues({\n selectedTemplate: { label: template.name, value: template.id },\n templateMessage: getTemplateMessage(template.components),\n variableContents: getInitialVariableComponents(\n template.variableCount\n ),\n ...customFieldValues,\n });\n };\n\n return (\n <>\n <Sheet.Body>\n <div className=\"flex w-full flex-col gap-y-4 pb-6\">\n <Select\n required\n label={t(\"neetoMessageTemplate.template.title\")}\n name=\"selectedTemplate\"\n value={values.selectedTemplate?.value}\n options={renameKeys(\n { name: \"label\", id: \"value\" },\n templates\n )}\n onChange={handleTemplateChange}\n />\n {customFields}\n <Textarea\n disabled\n nakedTextarea\n label={t(\"neetoMessageTemplate.template.preview\")}\n value={values.templateMessage}\n />\n {isNotEmpty(values.variableContents) && (\n <>\n {Object.keys(values.variableContents).map(group => (\n <div className=\"flex flex-col gap-y-2\" key={group}>\n <Typography variant=\"h4\">\n {t(\"neetoMessageTemplate.template.resolveVariable\", {\n type: capitalize(group),\n })}\n </Typography>\n {values.variableContents[group].map((_, index) => (\n <div key={`${group}-${index}`}>\n <Input\n required\n key={`${group}-${index}`}\n label={`{{${index + 1}}}`}\n name={`variableContents.${group}.${index}`}\n />\n </div>\n ))}\n </div>\n ))}\n </>\n )}\n </div>\n </Sheet.Body>\n <Sheet.Footer>\n <ActionBlock\n cancelButtonProps={{\n \"data-testid\": \"message-template-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-testid\": \"message-template-send-button\",\n label: t(\"neetoMessageTemplate.template.send\"),\n }}\n />\n </Sheet.Footer>\n </>\n );\n }}\n </Form>\n );\n};\n\nexport default Whatsapp;\n","import { useRef } from \"react\";\n\nimport { Sheet, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { noop } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchTemplates } from \"hooks/reactQuery/useTemplatesApi\";\nimport NoDataPage from \"v2/components/commons/NoDataPage\";\nimport { MESSAGE_TEMPLATES, MESSAGE_TYPES } from \"v2/components/constants\";\n\nimport EmailAndSms from \"./Form/EmailAndSms\";\nimport WhatsappForm from \"./Form/Whatsapp\";\n\nconst SendMessagePane = props => {\n const { isOpen, onClose, paneSize = \"large\" } = props;\n const setFocusField = useRef(null);\n\n return (\n <Sheet\n {...{ isOpen, onClose }}\n initialFocusRef={setFocusField}\n size={paneSize}\n >\n <SendMessageForm {...{ ...props, setFocusField }} />\n </Sheet>\n );\n};\n\nconst SendMessageForm = ({\n type = \"\",\n handleSubmit = noop,\n onClose = noop,\n customFields = null,\n customFieldsBelowBody = null,\n customFieldsInitialValues = {},\n customFieldsValidationSchema = {},\n templateVariables = {},\n ownerId = \"\", // Optional by default. Required in case if the owner of message-templates is not the Organization\n helpDocUrl = \"\",\n isSaveAsTemplateEnabled = true,\n canManageTemplates = true,\n setFocusField,\n helpPopoverProps,\n}) => {\n const { t } = useTranslation();\n\n const { value } = MESSAGE_TEMPLATES[type];\n const isWhatsappTemplate = type === \"whatsapp\";\n const templateParams = {\n status: \"active\",\n templateType: value,\n ownerId,\n };\n\n const { data: { templates = [] } = {}, isLoading } =\n useFetchTemplates(templateParams);\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n if (isWhatsappTemplate && isEmpty(templates)) {\n return <NoDataPage {...{ helpDocUrl, type }} />;\n }\n\n return (\n <>\n <Sheet.Header>\n <Sheet.Title>\n {t(\"neetoMessageTemplate.common.send\")} {MESSAGE_TYPES[type]}\n </Sheet.Title>\n </Sheet.Header>\n {isWhatsappTemplate ? (\n <WhatsappForm\n {...{\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n handleSubmit,\n onClose,\n templates,\n }}\n />\n ) : (\n <EmailAndSms\n {...{\n canManageTemplates,\n customFields,\n customFieldsBelowBody,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n handleSubmit,\n helpPopoverProps,\n isSaveAsTemplateEnabled,\n onClose,\n setFocusField,\n templateVariables,\n templates,\n type,\n }}\n />\n )}\n </>\n );\n};\n\nexport default SendMessagePane;\n"],"names":["NoDataPage","_ref","type","_ref$helpDocUrl","helpDocUrl","_useTranslation","useTranslation","t","label","MESSAGE_TEMPLATES","MESSAGE_TYPES","whatsapp","_jsx","className","children","_jsxs","Typography","Trans","i18nKey","components","Link","Button","href","size","variant","formatEditorContent","value","replaceAll","trim","SEND_MESSAGE_INITIAL_VALUES","subject","body","shouldSaveAsTemplate","templateName","EMAIL_MESSAGE_FORM_SCHEMA","yup","object","shape","string","required","test","when","is","then","entity","SMS_MESSAGE_FORM_VALIDATION_SCHEMA","WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA","variableContents","array","of","EmailAndSms","canManageTemplates","onClose","templates","setFocusField","templateVariables","customFields","customFieldsInitialValues","customFieldsValidationSchema","handleSubmit","isSaveAsTemplateEnabled","customFieldsBelowBody","_ref$helpPopoverProps","helpPopoverProps","editorRef","useRef","isEmailTemplate","_ref2","omit","_ref3","_slicedToArray","INITIAL_VALUES","SEND_MESSAGE_FORM_SCHEMA","updatedInitialValues","mergeAll","updatedValidationSchema","_objectSpread","fields","shouldShowSaveAsTemplate","_ref4","arguments","length","undefined","id","template","findBy","hasContent","isPresent","isContentDifferentFromTemplate","areValuesEqual","isTemplateSelectionEnabled","Form","formProps","noValidate","formikProps","initialValues","validationSchema","onSubmit","_ref5","_helpPopoverProps$typ","_helpPopoverProps$ema","setValues","values","handleTemplateChange","templateId","_editorRef$current","current","editor","commands","setContent","_Fragment","Sheet","Body","Select","isClearable","isSearchable","labelProps","ref","options","renameKeys","name","placeholder","onChange","Input","email","FormikEditor","hideSlashCommands","autoFocus","contentClassName","defaults","rows","DEFAULT_EDITOR_ROW_COUNT","variables","SaveAsTemplate","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps","Whatsapp","_templates$","_templates$2","_templates$3","_templates$4","getInitialVariableComponents","initialComponents","forEach","count","Array","fill","getTemplateMessage","_nullSafe","nullSafe","pluck","join","initialFormValues","selectedTemplate","templateMessage","variableCount","initialValueKeys","Object","keys","_values$selectedTempl","customFieldValues","Textarea","disabled","nakedTextarea","isNotEmpty","map","group","capitalize","_","index","concat","SendMessagePane","props","isOpen","_props$paneSize","paneSize","initialFocusRef","SendMessageForm","_ref$type","_ref$handleSubmit","noop","_ref$onClose","_ref$customFields","_ref$customFieldsBelo","_ref$customFieldsInit","_ref$customFieldsVali","_ref$templateVariable","_ref$ownerId","ownerId","_ref$isSaveAsTemplate","_ref$canManageTemplat","isWhatsappTemplate","templateParams","status","templateType","_useFetchTemplates","useFetchTemplates","_useFetchTemplates$da","data","_useFetchTemplates$da2","_useFetchTemplates$da3","isLoading","Spinner","isEmpty","Header","Title","WhatsappForm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA,EAAkC;AAAA,EAAA,IAA5BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAAC,eAAA,GAAAF,IAAA,CAAEG,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,eAAA;AACzC,EAAA,IAAAE,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAET,EAAA,IAAQC,KAAK,GAAKC,iBAAiB,CAACP,IAAI,CAAC,CAAjCM,KAAK;AAEb,EAAA,IAAIN,IAAI,KAAKQ,aAAa,CAACC,QAAQ,EAAE;AACnC,IAAA,oBACEC,GAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,iEAAiE;MAAAC,QAAA,eAC9EC,IAAA,CAACC,UAAU,EAAA;AAAAF,QAAAA,QAAA,EAAA,CACRP,CAAC,CAAC,0CAA0C,EAAE;UAC7CL,IAAI,EAAEK,CAAC,CAAC,iDAAiD;SAC1D,CAAC,EAAE,GAAG,EACNH,UAAU,iBACTQ,GAAA,CAACK,KAAK,EAAA;AACJC,UAAAA,OAAO,EAAC,oDAAoD;AAC5DC,UAAAA,UAAU,EAAE;YACVC,IAAI,eAAER,GAAA,CAACS,MAAM,EAAA;AAACC,cAAAA,IAAI,EAAElB,UAAW;AAACmB,cAAAA,IAAI,EAAC,IAAI;AAACC,cAAAA,OAAO,EAAC;aAAQ;AAC5D;AAAE,SACH,CACF;OACS;AAAC,KACV,CAAC;AAEV,EAAA;AAEA,EAAA,oBACEZ,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,yDAAyD;IAAAC,QAAA,eACtEF,GAAA,CAACI,UAAU,EAAA;AAAAF,MAAAA,QAAA,EACRP,CAAC,CAAC,0CAA0C,EAAE;AAC7CL,QAAAA,IAAI,EAAEM;OACP;KACS;AAAC,GACV,CAAC;AAEV,CAAC;;ACpCD,IAAMiB,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGC,KAAK,EAAA;AAAA,EAAA,OAC/BA,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEC,UAAU,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAACC,IAAI,EAAE;AAAA,CAAA;AAEnD,IAAMC,2BAA2B,GAAG;AACzCC,EAAAA,OAAO,EAAE,EAAE;AACXC,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,oBAAoB,EAAE,KAAK;AAC3BC,EAAAA,YAAY,EAAE;AAChB,CAAC;AAEM,IAAMC,yBAAyB,GAAGC,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAC;AAC1DP,EAAAA,OAAO,EAAEK,GAAG,CACTG,MAAM,EAAE,CACRV,IAAI,EAAE,CACNW,QAAQ,CAAChC,CAAC,CAAC,0DAA0D,CAAC,CAAC;AAC1EwB,EAAAA,IAAI,EAAEI,GAAG,CACNG,MAAM,EAAE,CACRE,IAAI,CACH,MAAM,EACNjC,CAAC,CAAC,uDAAuD,CAAC,EAC1D,UAAAmB,KAAK,EAAA;AAAA,IAAA,OAAI,CAAC,CAACD,mBAAmB,CAACC,KAAK,CAAC;EAAA,CACvC,CAAC,CACAa,QAAQ,CAAChC,CAAC,CAAC,uDAAuD,CAAC,CAAC;EACvE0B,YAAY,EAAEE,GAAG,CAACG,MAAM,EAAE,CAACG,IAAI,CAAC,sBAAsB,EAAE;AACtDC,IAAAA,EAAE,EAAE,IAAI;AACRC,IAAAA,IAAI,EAAER,GAAG,CAACG,MAAM,EAAE,CAACC,QAAQ,CACzBhC,CAAC,CAAC,yDAAyD,EAAE;MAC3DqC,MAAM,EAAErC,CAAC,CAAC,4CAA4C;AACxD,KAAC,CACH;GACD;AACH,CAAC,CAAC;AAEK,IAAMsC,kCAAkC,GAAGV,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAC;EACnEN,IAAI,EAAEI,GAAG,CACNG,MAAM,EAAE,CACRC,QAAQ,CAAChC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CACpEiC,IAAI,CACH,MAAM,EACNjC,CAAC,CAAC,uDAAuD,CAAC,EAC1D,UAAAmB,KAAK,EAAA;AAAA,IAAA,OAAI,CAAC,CAACD,mBAAmB,CAACC,KAAK,CAAC;AAAA,EAAA,CACvC,CAAC;EACHO,YAAY,EAAEE,GAAG,CAACG,MAAM,EAAE,CAACG,IAAI,CAAC,sBAAsB,EAAE;AACtDC,IAAAA,EAAE,EAAE,IAAI;AACRC,IAAAA,IAAI,EAAER,GAAG,CAACG,MAAM,EAAE,CAACC,QAAQ,CACzBhC,CAAC,CAAC,yDAAyD,EAAE;MAC3DqC,MAAM,EAAErC,CAAC,CAAC,4CAA4C;AACxD,KAAC,CACH;GACD;AACH,CAAC,CAAC;AAEK,IAAMuC,wCAAwC,GAAGX,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAC;EACzEU,gBAAgB,EAAEZ,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAC;IACnCN,IAAI,EAAEI,GAAG,CACNa,KAAK,EAAE,CACPC,EAAE,CACDd,GAAG,CACAG,MAAM,EAAE,CACRC,QAAQ,CACPhC,CAAC,CAAC,2DAA2D,CAC/D,CACJ;GACH;AACH,CAAC,CAAC;;;;AC/CF,IAAM2C,WAAW,GAAG,SAAdA,WAAWA,CAAAjD,IAAA,EAcX;AAAA,EAAA,IAbJkD,kBAAkB,GAAAlD,IAAA,CAAlBkD,kBAAkB;IAClBC,OAAO,GAAAnD,IAAA,CAAPmD,OAAO;IACPC,SAAS,GAAApD,IAAA,CAAToD,SAAS;IACTC,aAAa,GAAArD,IAAA,CAAbqD,aAAa;IACbC,iBAAiB,GAAAtD,IAAA,CAAjBsD,iBAAiB;IACjBC,YAAY,GAAAvD,IAAA,CAAZuD,YAAY;IACZC,yBAAyB,GAAAxD,IAAA,CAAzBwD,yBAAyB;IACzBC,4BAA4B,GAAAzD,IAAA,CAA5ByD,4BAA4B;IAC5BxD,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJyD,YAAY,GAAA1D,IAAA,CAAZ0D,YAAY;IACZC,uBAAuB,GAAA3D,IAAA,CAAvB2D,uBAAuB;IACvBC,qBAAqB,GAAA5D,IAAA,CAArB4D,qBAAqB;IAAAC,qBAAA,GAAA7D,IAAA,CACrB8D,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;AAErB,EAAA,IAAME,SAAS,GAAGC,MAAM,CAAC,IAAI,CAAC;AAC9B,EAAA,IAAA5D,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAET,EAAA,IAAM2D,eAAe,GAAGhE,IAAI,KAAK,OAAO;EACxC,IAAAiE,KAAA,GAAmDD,eAAe,GAC9D,CAACrC,2BAA2B,EAAEK,yBAAyB,CAAC,GACxD,CACEkC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAEvC,2BAA2B,CAAC,EAC9CgB,kCAAkC,CACnC;IAAAwB,KAAA,GAAAC,cAAA,CAAAH,KAAA,EAAA,CAAA,CAAA;AALEI,IAAAA,cAAc,GAAAF,KAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,wBAAwB,GAAAH,KAAA,CAAA,CAAA,CAAA;EAO/C,IAAMI,oBAAoB,GAAGC,QAAQ,CAAC,CACpCH,cAAc,EACdd,yBAAyB,CAC1B,CAAC;AAEF,EAAA,IAAMkB,uBAAuB,GAAGxC,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAAuC,eAAA,CAAAA,eAAA,CAAA,EAAA,EAC7CJ,wBAAwB,KAAA,IAAA,IAAxBA,wBAAwB,KAAA,MAAA,GAAA,MAAA,GAAxBA,wBAAwB,CAAEK,MAAM,CAAA,EAChCnB,4BAA4B,KAAA,IAAA,IAA5BA,4BAA4B,KAAA,MAAA,GAAA,MAAA,GAA5BA,4BAA4B,CAAEmB,MAAM,CACxC,CAAC;AAEF,EAAA,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,GAAmC;AAAA,IAAA,IAAAC,KAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAP,EAAE;MAAxBG,EAAE,GAAAJ,KAAA,CAAFI,EAAE;MAAErD,OAAO,GAAAiD,KAAA,CAAPjD,OAAO;MAAEC,IAAI,GAAAgD,KAAA,CAAJhD,IAAI;AACnD,IAAA,IAAI,CAAC6B,uBAAuB,EAAE,OAAO,KAAK;IAE1C,IAAMwB,QAAQ,GAAGC,MAAM,CAAC;AAAEF,MAAAA,EAAE,EAAFA;KAAI,EAAE9B,SAAS,CAAC;IAC1C,IAAMiC,UAAU,GAAGC,SAAS,CAACzD,OAAO,CAAC,IAAIyD,SAAS,CAACxD,IAAI,CAAC;IACxD,IAAMyD,8BAA8B,GAAG,EACrCC,cAAc,CAACL,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,GAAA,MAAA,GAARA,QAAQ,CAAEtD,OAAO,EAAEA,OAAO,CAAC,IAAI,CAAAsD,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,GAAA,MAAA,GAARA,QAAQ,CAAErD,IAAI,MAAKA,IAAI,CACtE;IAED,OAAOuD,UAAU,IAAIE,8BAA8B;EACrD,CAAC;AAED,EAAA,IAAME,0BAA0B,GAAGH,SAAS,CAAClC,SAAS,CAAC;EAEvD,oBACEzC,GAAA,CAAC+E,IAAI,EAAA;AACHC,IAAAA,SAAS,EAAE;AACTC,MAAAA,UAAU,EAAE,IAAI;AAChBhF,MAAAA,SAAS,EAAE;KACX;AACFiF,IAAAA,WAAW,EAAE;AACXC,MAAAA,aAAa,EAAEtB,oBAAoB;AACnCuB,MAAAA,gBAAgB,EAAErB,uBAAuB;AACzCsB,MAAAA,QAAQ,EAAEtC;KACV;AAAA7C,IAAAA,QAAA,EAED,SAAAA,QAAAA,CAAAoF,KAAA,EAA2B;MAAA,IAAAC,qBAAA,EAAAC,qBAAA;AAAA,MAAA,IAAxBC,SAAS,GAAAH,KAAA,CAATG,SAAS;QAAEC,MAAM,GAAAJ,KAAA,CAANI,MAAM;AACnB,MAAA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGC,UAAU,EAAI;AAAA,QAAA,IAAAC,kBAAA;QACzC,IAAI,CAACD,UAAU,EAAE;QAEjB,IAAMpB,QAAQ,GAAGC,MAAM,CAAC;AAAEF,UAAAA,EAAE,EAAEqB;SAAY,EAAEnD,SAAS,CAAC;QACtDgD,SAAS,CAAAzB,eAAA,CAAAA,eAAA,KAAM0B,MAAM,CAAA,EAAKlB,QAAQ,CAAE,CAAC;AACrC,QAAA,CAAAqB,kBAAA,GAAAzC,SAAS,CAAC0C,OAAO,MAAA,IAAA,IAAAD,kBAAA,KAAA,MAAA,IAAA,CAAAA,kBAAA,GAAjBA,kBAAA,CAAmBE,MAAM,MAAA,IAAA,IAAAF,kBAAA,KAAA,MAAA,IAAA,CAAAA,kBAAA,GAAzBA,kBAAA,CAA2BG,QAAQ,cAAAH,kBAAA,KAAA,MAAA,IAAnCA,kBAAA,CAAqCI,UAAU,CAACzB,QAAQ,CAACrD,IAAI,CAAC;MAChE,CAAC;MAED,oBACEhB,IAAA,CAAA+F,QAAA,EAAA;AAAAhG,QAAAA,QAAA,EAAA,cACEF,GAAA,CAACmG,KAAK,CAACC,IAAI,EAAA;AAAAlG,UAAAA,QAAA,eACTC,IAAA,CAAA,KAAA,EAAA;AAAKF,YAAAA,SAAS,EAAC,mCAAmC;AAAAC,YAAAA,QAAA,EAAA,CAC/C4E,0BAA0B,iBACzB9E,GAAA,CAACqG,MAAM,EAAA;cACLC,WAAW,EAAA,IAAA;cACXC,YAAY,EAAA,IAAA;AACZ3G,cAAAA,KAAK,EAAED,CAAC,CAAC,qCAAqC,CAAE;AAChD6G,cAAAA,UAAU,EAAErD,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,KAAA,MAAA,IAAA,CAAAoC,qBAAA,GAAhBpC,gBAAgB,CAAG7D,IAAI,CAAC,MAAA,IAAA,IAAAiG,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAxBA,qBAAA,CAA0Bf,QAAS;AAC/CiC,cAAAA,GAAG,EAAE/D,aAAc;cACnBgE,OAAO,EAAEC,UAAU,CACjB;AAAEC,gBAAAA,IAAI,EAAE,OAAO;AAAErC,gBAAAA,EAAE,EAAE;eAAS,EAC9B9B,SACF,CAAE;AACFoE,cAAAA,WAAW,EAAElH,CAAC,CACZ,iDACF,CAAE;AACFmH,cAAAA,QAAQ,EAAEnB;aACX,CACF,EACA/C,YAAY,EACZU,eAAe,iBACdtD,GAAA,CAAC+G,KAAK,EAAA;cACJpF,QAAQ,EAAA,IAAA;AACR/B,cAAAA,KAAK,EAAED,CAAC,CAAC,uCAAuC,CAAE;AAClD6G,cAAAA,UAAU,EAAErD,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,gBAAAqC,qBAAA,GAAhBrC,gBAAgB,CAAE6D,KAAK,MAAA,IAAA,IAAAxB,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAvBA,qBAAA,CAAyBtE,OAAQ;AAC7C0F,cAAAA,IAAI,EAAC,SAAS;AACdH,cAAAA,GAAG,EAAE3B,0BAA0B,GAAG,IAAI,GAAGpC;AAAc,aACxD,CACF,eACD1C,GAAA,CAACiH,YAAY,EAAA;cACXC,iBAAiB,EAAA,IAAA;cACjBvF,QAAQ,EAAA,IAAA;AACRwF,cAAAA,SAAS,EAAE,EAAErC,0BAA0B,IAAIxB,eAAe,CAAE;AAC5D8D,cAAAA,gBAAgB,EAAC,UAAU;AAC3BC,cAAAA,QAAQ,EAAE/D,eAAe,GAAGgB,SAAS,GAAG,EAAG;AAC3C1E,cAAAA,KAAK,EAAED,CAAC,CAAC,oCAAoC,CAAE;AAC/CiH,cAAAA,IAAI,EAAC,MAAM;AACXH,cAAAA,GAAG,EAAErD,SAAU;AACfkE,cAAAA,IAAI,EAAEC,wBAAyB;AAC/BC,cAAAA,SAAS,EAAE7E;AAAkB,aAC9B,CAAC,EACDM,qBAAqB,EACrBV,kBAAkB,IAAI2B,wBAAwB,CAACwB,MAAM,CAAC,iBACrD1F,GAAA,CAACyH,cAAc,IAAE,CAClB;WACE;AAAC,SACI,CAAC,eACbzH,GAAA,CAACmG,KAAK,CAACuB,MAAM,EAAA;UAAAxH,QAAA,eACXF,GAAA,CAAC2H,WAAW,EAAA;AACVC,YAAAA,iBAAiB,EAAE;AACjB,cAAA,aAAa,EAAE,gCAAgC;AAC/CC,cAAAA,OAAO,EAAErF;aACT;AACFsF,YAAAA,iBAAiB,EAAE;AACjB,cAAA,aAAa,EAAE,8BAA8B;cAC7ClI,KAAK,EAAED,CAAC,CAAC,oCAAoC;AAC/C;WACD;AAAC,SACU,CAAC;AAAA,OACf,CAAC;AAEP,IAAA;AAAC,GACG,CAAC;AAEX,CAAC;;;;AC9ID,IAAMoI,QAAQ,GAAG,SAAXA,QAAQA,CAAA1I,IAAA,EAOR;AAAA,EAAA,IAAA2I,WAAA,EAAAC,YAAA,EAAAC,YAAA,EAAAC,YAAA;AAAA,EAAA,IANJ1F,SAAS,GAAApD,IAAA,CAAToD,SAAS;IACTD,OAAO,GAAAnD,IAAA,CAAPmD,OAAO;IACPO,YAAY,GAAA1D,IAAA,CAAZ0D,YAAY;IACZH,YAAY,GAAAvD,IAAA,CAAZuD,YAAY;IACZC,yBAAyB,GAAAxD,IAAA,CAAzBwD,yBAAyB;IACzBC,4BAA4B,GAAAzD,IAAA,CAA5ByD,4BAA4B;AAE5B,EAAA,IAAArD,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAET,EAAA,IAAMyI,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAGZ,SAAS,EAAI;IAChD,IAAMa,iBAAiB,GAAG,EAAE;IAE5Bb,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,IAATA,SAAS,CAAEc,OAAO,CAAC,UAAA/E,KAAA,EAAqB;AAAA,MAAA,IAAlBjE,IAAI,GAAAiE,KAAA,CAAJjE,IAAI;QAAEiJ,KAAK,GAAAhF,KAAA,CAALgF,KAAK;AAC/BF,MAAAA,iBAAiB,CAAC/I,IAAI,CAAC,GAAGkJ,KAAK,CAACD,KAAK,CAAC,CAACE,IAAI,CAAC,EAAE,CAAC;AACjD,IAAA,CAAC,CAAC;AAEF,IAAA,OAAOJ,iBAAiB;EAC1B,CAAC;AAED,EAAA,IAAMK,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAGnI,UAAU,EAAA;AAAA,IAAA,IAAAoI,SAAA;AAAA,IAAA,OAAA,CAAAA,SAAA,GACnCC,QAAQ,CAACC,KAAK,CAAC,CAAC,MAAM,EAAEtI,UAAU,CAAC,MAAA,IAAA,IAAAoI,SAAA,KAAA,MAAA,GAAA,MAAA,GAAnCA,SAAA,CAAqCG,IAAI,CAAC,IAAI,CAAC;AAAA,EAAA,CAAA;AAEjD,EAAA,IAAMC,iBAAiB,GAAG;AACxBC,IAAAA,gBAAgB,EAAE;AAAEpJ,MAAAA,KAAK,EAAA,CAAAoI,WAAA,GAAEvF,SAAS,CAAC,CAAC,CAAC,MAAA,IAAA,IAAAuF,WAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,WAAA,CAAcpB,IAAI;MAAE9F,KAAK,EAAA,CAAAmH,YAAA,GAAExF,SAAS,CAAC,CAAC,CAAC,MAAA,IAAA,IAAAwF,YAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,YAAA,CAAc1D;KAAI;AACxE0E,IAAAA,eAAe,EAAEP,kBAAkB,CAAA,CAAAR,YAAA,GAACzF,SAAS,CAAC,CAAC,CAAC,cAAAyF,YAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,YAAA,CAAc3H,UAAU,CAAC;AAC7D4B,IAAAA,gBAAgB,EAAEiG,4BAA4B,CAAA,CAAAD,YAAA,GAAC1F,SAAS,CAAC,CAAC,CAAC,MAAA,IAAA,IAAA0F,YAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,YAAA,CAAce,aAAa;GAC3E;EAED,IAAMrF,oBAAoB,GAAGC,QAAQ,CAAC,CACpCiF,iBAAiB,EACjBlG,yBAAyB,CAC1B,CAAC;AAEF,EAAA,IAAMkB,uBAAuB,GAAGxC,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAAuC,eAAA,CAAAA,eAAA,CAAA,EAAA,EAC7C9B,wCAAwC,KAAA,IAAA,IAAxCA,wCAAwC,KAAA,MAAA,GAAA,MAAA,GAAxCA,wCAAwC,CAAE+B,MAAM,CAAA,EAChDnB,4BAA4B,KAAA,IAAA,IAA5BA,4BAA4B,KAAA,MAAA,GAAA,MAAA,GAA5BA,4BAA4B,CAAEmB,MAAM,CACxC,CAAC;AAEF,EAAA,IAAMkF,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACN,iBAAiB,CAAC;EAEvD,oBACE/I,GAAA,CAAC+E,IAAI,EAAA;AACHC,IAAAA,SAAS,EAAE;AACTC,MAAAA,UAAU,EAAE,IAAI;AAChBhF,MAAAA,SAAS,EAAE;KACX;AACFiF,IAAAA,WAAW,EAAE;AACXC,MAAAA,aAAa,EAAEtB,oBAAoB;AACnCuB,MAAAA,gBAAgB,EAAErB,uBAAuB;AACzCsB,MAAAA,QAAQ,EAAEtC;KACV;AAAA7C,IAAAA,QAAA,EAED,SAAAA,QAAAA,CAAAuD,KAAA,EAA2B;AAAA,MAAA,IAAA6F,qBAAA;AAAA,MAAA,IAAxB5D,MAAM,GAAAjC,KAAA,CAANiC,MAAM;QAAED,SAAS,GAAAhC,KAAA,CAATgC,SAAS;AACnB;AACA;AACA;AACA;AACA,MAAA,IAAME,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGC,UAAU,EAAI;QACzC,IAAI,CAACA,UAAU,EAAE;QAEjB,IAAMpB,QAAQ,GAAGC,MAAM,CAAC;AAAEF,UAAAA,EAAE,EAAEqB;SAAY,EAAEnD,SAAS,CAAC;AACtD,QAAA,IAAM8G,iBAAiB,GAAG/F,IAAI,CAAC2F,gBAAgB,EAAEzD,MAAM,CAAC;AACxDD,QAAAA,SAAS,CAAAzB,eAAA,CAAA;AACPgF,UAAAA,gBAAgB,EAAE;YAAEpJ,KAAK,EAAE4E,QAAQ,CAACoC,IAAI;YAAE9F,KAAK,EAAE0D,QAAQ,CAACD;WAAI;AAC9D0E,UAAAA,eAAe,EAAEP,kBAAkB,CAAClE,QAAQ,CAACjE,UAAU,CAAC;AACxD4B,UAAAA,gBAAgB,EAAEiG,4BAA4B,CAC5C5D,QAAQ,CAAC0E,aACX;SAAC,EACEK,iBAAiB,CACrB,CAAC;MACJ,CAAC;MAED,oBACEpJ,IAAA,CAAA+F,QAAA,EAAA;AAAAhG,QAAAA,QAAA,EAAA,cACEF,GAAA,CAACmG,KAAK,CAACC,IAAI,EAAA;AAAAlG,UAAAA,QAAA,eACTC,IAAA,CAAA,KAAA,EAAA;AAAKF,YAAAA,SAAS,EAAC,mCAAmC;YAAAC,QAAA,EAAA,cAChDF,GAAA,CAACqG,MAAM,EAAA;cACL1E,QAAQ,EAAA,IAAA;AACR/B,cAAAA,KAAK,EAAED,CAAC,CAAC,qCAAqC,CAAE;AAChDiH,cAAAA,IAAI,EAAC,kBAAkB;cACvB9F,KAAK,EAAA,CAAAwI,qBAAA,GAAE5D,MAAM,CAACsD,gBAAgB,MAAA,IAAA,IAAAM,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAvBA,qBAAA,CAAyBxI,KAAM;cACtC4F,OAAO,EAAEC,UAAU,CACjB;AAAEC,gBAAAA,IAAI,EAAE,OAAO;AAAErC,gBAAAA,EAAE,EAAE;eAAS,EAC9B9B,SACF,CAAE;AACFqE,cAAAA,QAAQ,EAAEnB;AAAqB,aAChC,CAAC,EACD/C,YAAY,eACb5C,GAAA,CAACwJ,QAAQ,EAAA;cACPC,QAAQ,EAAA,IAAA;cACRC,aAAa,EAAA,IAAA;AACb9J,cAAAA,KAAK,EAAED,CAAC,CAAC,uCAAuC,CAAE;cAClDmB,KAAK,EAAE4E,MAAM,CAACuD;aACf,CAAC,EACDU,UAAU,CAACjE,MAAM,CAACvD,gBAAgB,CAAC,iBAClCnC,GAAA,CAAAkG,QAAA,EAAA;AAAAhG,cAAAA,QAAA,EACGkJ,MAAM,CAACC,IAAI,CAAC3D,MAAM,CAACvD,gBAAgB,CAAC,CAACyH,GAAG,CAAC,UAAAC,KAAK,EAAA;AAAA,gBAAA,oBAC7C1J,IAAA,CAAA,KAAA,EAAA;AAAKF,kBAAAA,SAAS,EAAC,uBAAuB;kBAAAC,QAAA,EAAA,cACpCF,GAAA,CAACI,UAAU,EAAA;AAACQ,oBAAAA,OAAO,EAAC,IAAI;AAAAV,oBAAAA,QAAA,EACrBP,CAAC,CAAC,+CAA+C,EAAE;sBAClDL,IAAI,EAAEwK,UAAU,CAACD,KAAK;qBACvB;AAAC,mBACQ,CAAC,EACZnE,MAAM,CAACvD,gBAAgB,CAAC0H,KAAK,CAAC,CAACD,GAAG,CAAC,UAACG,CAAC,EAAEC,KAAK,EAAA;AAAA,oBAAA,oBAC3ChK,GAAA,CAAA,KAAA,EAAA;sBAAAE,QAAA,eACEF,GAAA,CAAC+G,KAAK,EAAA;wBACJpF,QAAQ,EAAA,IAAA;AAER/B,wBAAAA,KAAK,OAAAqK,MAAA,CAAOD,KAAK,GAAG,CAAC,EAAA,IAAA,CAAK;AAC1BpD,wBAAAA,IAAI,sBAAAqD,MAAA,CAAsBJ,KAAK,EAAA,GAAA,CAAA,CAAAI,MAAA,CAAID,KAAK;AAAG,uBAAA,EAAA,EAAA,CAAAC,MAAA,CAFnCJ,KAAK,OAAAI,MAAA,CAAID,KAAK,CAGvB;qBAAC,EAAA,EAAA,CAAAC,MAAA,CANSJ,KAAK,EAAA,GAAA,CAAA,CAAAI,MAAA,CAAID,KAAK,CAOtB,CAAC;AAAA,kBAAA,CACP,CAAC;AAAA,iBAAA,EAfwCH,KAgBvC,CAAC;cAAA,CACP;AAAC,aACF,CACH;WACE;AAAC,SACI,CAAC,eACb7J,GAAA,CAACmG,KAAK,CAACuB,MAAM,EAAA;UAAAxH,QAAA,eACXF,GAAA,CAAC2H,WAAW,EAAA;AACVC,YAAAA,iBAAiB,EAAE;AACjB,cAAA,aAAa,EAAE,gCAAgC;AAC/CC,cAAAA,OAAO,EAAErF;aACT;AACFsF,YAAAA,iBAAiB,EAAE;AACjB,cAAA,aAAa,EAAE,8BAA8B;cAC7ClI,KAAK,EAAED,CAAC,CAAC,oCAAoC;AAC/C;WACD;AAAC,SACU,CAAC;AAAA,OACf,CAAC;AAEP,IAAA;AAAC,GACG,CAAC;AAEX,CAAC;;;;AC1ID,IAAMuK,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,KAAK,EAAI;AAC/B,EAAA,IAAQC,MAAM,GAAkCD,KAAK,CAA7CC,MAAM;IAAE5H,OAAO,GAAyB2H,KAAK,CAArC3H,OAAO;IAAA6H,eAAA,GAAyBF,KAAK,CAA5BG,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,eAAA,KAAA,MAAA,GAAG,OAAO,GAAAA,eAAA;AAC3C,EAAA,IAAM3H,aAAa,GAAGW,MAAM,CAAC,IAAI,CAAC;EAElC,oBACErD,GAAA,CAACmG,KAAK,EAAA;AACEiE,IAAAA,MAAM,EAANA,MAAM;AAAE5H,IAAAA,OAAO,EAAPA,OAAO;AACrB+H,IAAAA,eAAe,EAAE7H,aAAc;AAC/B/B,IAAAA,IAAI,EAAE2J,QAAS;IAAApK,QAAA,eAEfF,GAAA,CAACwK,eAAe,EAAAxG,aAAA,CAAA,EAAA,EAAAA,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAUmG,KAAK,CAAA,EAAA,EAAA,EAAA;AAAEzH,MAAAA,aAAa,EAAbA;KAAa,CAAA,CAAK;AAAC,GAC/C,CAAC;AAEZ;AAEA,IAAM8H,eAAe,GAAG,SAAlBA,eAAeA,CAAAnL,IAAA,EAef;AAAA,EAAA,IAAAoL,SAAA,GAAApL,IAAA,CAdJC,IAAI;AAAJA,IAAAA,IAAI,GAAAmL,SAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,SAAA;IAAAC,iBAAA,GAAArL,IAAA,CACT0D,YAAY;AAAZA,IAAAA,YAAY,GAAA2H,iBAAA,KAAA,MAAA,GAAGC,IAAI,GAAAD,iBAAA;IAAAE,YAAA,GAAAvL,IAAA,CACnBmD,OAAO;AAAPA,IAAAA,OAAO,GAAAoI,YAAA,KAAA,MAAA,GAAGD,IAAI,GAAAC,YAAA;IAAAC,iBAAA,GAAAxL,IAAA,CACduD,YAAY;AAAZA,IAAAA,YAAY,GAAAiI,iBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,iBAAA;IAAAC,qBAAA,GAAAzL,IAAA,CACnB4D,qBAAqB;AAArBA,IAAAA,qBAAqB,GAAA6H,qBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,qBAAA;IAAAC,qBAAA,GAAA1L,IAAA,CAC5BwD,yBAAyB;AAAzBA,IAAAA,yBAAyB,GAAAkI,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAC,qBAAA,GAAA3L,IAAA,CAC9ByD,4BAA4B;AAA5BA,IAAAA,4BAA4B,GAAAkI,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAC,qBAAA,GAAA5L,IAAA,CACjCsD,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAsI,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAC,YAAA,GAAA7L,IAAA,CACtB8L,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,YAAA;IAAA3L,eAAA,GAAAF,IAAA,CACZG,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,eAAA;IAAA6L,qBAAA,GAAA/L,IAAA,CACf2D,uBAAuB;AAAvBA,IAAAA,uBAAuB,GAAAoI,qBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,qBAAA;IAAAC,qBAAA,GAAAhM,IAAA,CAC9BkD,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAA8I,qBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,qBAAA;IACzB3I,aAAa,GAAArD,IAAA,CAAbqD,aAAa;IACbS,gBAAgB,GAAA9D,IAAA,CAAhB8D,gBAAgB;AAEhB,EAAA,IAAA1D,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAET,EAAA,IAAQmB,KAAK,GAAKjB,iBAAiB,CAACP,IAAI,CAAC,CAAjCwB,KAAK;AACb,EAAA,IAAMwK,kBAAkB,GAAGhM,IAAI,KAAK,UAAU;AAC9C,EAAA,IAAMiM,cAAc,GAAG;AACrBC,IAAAA,MAAM,EAAE,QAAQ;AAChBC,IAAAA,YAAY,EAAE3K,KAAK;AACnBqK,IAAAA,OAAO,EAAPA;GACD;AAED,EAAA,IAAAO,kBAAA,GACEC,iBAAiB,CAACJ,cAAc,CAAC;IAAAK,qBAAA,GAAAF,kBAAA,CAD3BG,IAAI;AAAAC,IAAAA,sBAAA,GAAAF,qBAAA,KAAA,MAAA,GAAuB,EAAE,GAAAA,qBAAA;IAAAG,sBAAA,GAAAD,sBAAA,CAArBrJ,SAAS;AAATA,IAAAA,SAAS,GAAAsJ,sBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,sBAAA;IAASC,SAAS,GAAAN,kBAAA,CAATM,SAAS;AAGhD,EAAA,IAAIA,SAAS,EAAE;AACb,IAAA,oBACEhM,GAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,gDAAgD;AAAAC,MAAAA,QAAA,eAC7DF,GAAA,CAACiM,OAAO,EAAA,EAAE;AAAC,KACR,CAAC;AAEV,EAAA;AAEA,EAAA,IAAIX,kBAAkB,IAAIY,OAAO,CAACzJ,SAAS,CAAC,EAAE;IAC5C,oBAAOzC,GAAA,CAACZ,UAAU,EAAA;AAAOI,MAAAA,UAAU,EAAVA,UAAU;AAAEF,MAAAA,IAAI,EAAJA;AAAI,KAAK,CAAC;AACjD,EAAA;EAEA,oBACEa,IAAA,CAAA+F,QAAA,EAAA;AAAAhG,IAAAA,QAAA,EAAA,cACEF,GAAA,CAACmG,KAAK,CAACgG,MAAM,EAAA;AAAAjM,MAAAA,QAAA,eACXC,IAAA,CAACgG,KAAK,CAACiG,KAAK,EAAA;QAAAlM,QAAA,EAAA,CACTP,CAAC,CAAC,kCAAkC,CAAC,EAAC,GAAC,EAACG,aAAa,CAACR,IAAI,CAAC;OACjD;AAAC,KACF,CAAC,EACdgM,kBAAkB,gBACjBtL,GAAA,CAACqM,QAAY,EAAA;AAETzJ,MAAAA,YAAY,EAAZA,YAAY;AACZC,MAAAA,yBAAyB,EAAzBA,yBAAyB;AACzBC,MAAAA,4BAA4B,EAA5BA,4BAA4B;AAC5BC,MAAAA,YAAY,EAAZA,YAAY;AACZP,MAAAA,OAAO,EAAPA,OAAO;AACPC,MAAAA,SAAS,EAATA;AAAS,KAEZ,CAAC,gBAEFzC,GAAA,CAACsC,WAAW,EAAA;AAERC,MAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBK,MAAAA,YAAY,EAAZA,YAAY;AACZK,MAAAA,qBAAqB,EAArBA,qBAAqB;AACrBJ,MAAAA,yBAAyB,EAAzBA,yBAAyB;AACzBC,MAAAA,4BAA4B,EAA5BA,4BAA4B;AAC5BC,MAAAA,YAAY,EAAZA,YAAY;AACZI,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBH,MAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBR,MAAAA,OAAO,EAAPA,OAAO;AACPE,MAAAA,aAAa,EAAbA,aAAa;AACbC,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBF,MAAAA,SAAS,EAATA,SAAS;AACTnD,MAAAA,IAAI,EAAJA;AAAI,KAEP,CACF;AAAA,GACD,CAAC;AAEP,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"SendMessagePane.js","sources":["../../app/javascript/src/v2/components/commons/NoDataPage.jsx","../../app/javascript/src/v2/components/SendMessagePane/constants.js","../../app/javascript/src/v2/components/SendMessagePane/Form/EmailAndSms.jsx","../../app/javascript/src/v2/components/SendMessagePane/Form/Whatsapp.jsx","../../app/javascript/src/v2/components/SendMessagePane/index.jsx"],"sourcesContent":["import { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { MESSAGE_TEMPLATES, MESSAGE_TYPES } from \"v2/components/constants\";\n\nconst NoDataPage = ({ type, helpDocUrl = \"\" }) => {\n const { t } = useTranslation();\n\n const { label } = MESSAGE_TEMPLATES[type];\n\n if (type === MESSAGE_TYPES.whatsapp) {\n return (\n <div className=\"flex h-full w-full items-center justify-center px-6 text-center\">\n <Typography>\n {t(\"neetoMessageTemplate.template.emptyState\", {\n type: t(\"neetoMessageTemplate.template.whatsappTemplates\"),\n })}{\" \"}\n {helpDocUrl && (\n <Trans\n i18nKey=\"neetoMessageTemplate.template.whatsapp.helpDocText\"\n components={{\n Link: <Button href={helpDocUrl} size=\"lg\" variant=\"link\" />,\n }}\n />\n )}\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"flex h-full w-full flex-col items-center justify-center\">\n <Typography>\n {t(\"neetoMessageTemplate.template.emptyState\", {\n type: label,\n })}\n </Typography>\n </div>\n );\n};\n\nexport default NoDataPage;\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nconst formatEditorContent = value =>\n value?.replaceAll(/<\\/?(?!img)\\w*\\b[^>]*>/gi, \"\").trim();\n\nexport const SEND_MESSAGE_INITIAL_VALUES = {\n subject: \"\",\n body: \"\",\n shouldSaveAsTemplate: false,\n templateName: \"\",\n};\n\nexport const EMAIL_MESSAGE_FORM_SCHEMA = yup.object().shape({\n subject: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.subjectPresence\")),\n body: yup\n .string()\n .test(\n \"body\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n )\n .required(t(\"neetoMessageTemplate.template.validation.bodyPresence\")),\n templateName: yup.string().when(\"shouldSaveAsTemplate\", {\n is: true,\n then: yup.string().required(\n t(\"neetoMessageTemplate.template.validation.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.templateName\"),\n })\n ),\n }),\n});\n\nexport const SMS_MESSAGE_FORM_VALIDATION_SCHEMA = yup.object().shape({\n body: yup\n .string()\n .required(t(\"neetoMessageTemplate.template.validation.bodyPresence\"))\n .test(\n \"body\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n ),\n templateName: yup.string().when(\"shouldSaveAsTemplate\", {\n is: true,\n then: yup.string().required(\n t(\"neetoMessageTemplate.template.validation.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.templateName\"),\n })\n ),\n }),\n});\n\nexport const WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA = yup.object().shape({\n variableContents: yup.object().shape({\n body: yup\n .array()\n .of(\n yup\n .string()\n .required(\n t(\"neetoMessageTemplate.template.validation.variablePresence\")\n )\n ),\n }),\n});\n","import { useRef } from \"react\";\n\nimport { Select, Sheet } from \"@bigbinary/neeto-atoms\";\nimport { ActionBlock, Form, Input } from \"@bigbinary/neeto-atoms/formik\";\nimport { findBy, isPresent, renameKeys } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor/v2\";\nimport { mergeAll, omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport SaveAsTemplate from \"v2/components/commons/SaveAsTemplate\";\nimport { DEFAULT_EDITOR_ROW_COUNT } from \"v2/components/constants\";\nimport { areValuesEqual, getEditorAddons } from \"v2/components/utils\";\n\nimport {\n EMAIL_MESSAGE_FORM_SCHEMA,\n SEND_MESSAGE_INITIAL_VALUES,\n SMS_MESSAGE_FORM_VALIDATION_SCHEMA,\n} from \"../constants\";\n\nconst EmailAndSms = ({\n canManageTemplates,\n onClose,\n templates,\n setFocusField,\n templateVariables,\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n type,\n handleSubmit,\n isSaveAsTemplateEnabled,\n customFieldsBelowBody,\n helpPopoverProps = {},\n allowAddingImagesToEmail,\n}) => {\n const editorRef = useRef(null);\n const { t } = useTranslation();\n\n const isEmailTemplate = type === \"email\";\n const [INITIAL_VALUES, SEND_MESSAGE_FORM_SCHEMA] = isEmailTemplate\n ? [SEND_MESSAGE_INITIAL_VALUES, EMAIL_MESSAGE_FORM_SCHEMA]\n : [\n omit([\"subject\"], SEND_MESSAGE_INITIAL_VALUES),\n SMS_MESSAGE_FORM_VALIDATION_SCHEMA,\n ];\n\n const editorAddons = getEditorAddons(\n allowAddingImagesToEmail,\n isEmailTemplate\n );\n\n const updatedInitialValues = mergeAll([\n INITIAL_VALUES,\n customFieldsInitialValues,\n ]);\n\n const updatedValidationSchema = yup.object().shape({\n ...SEND_MESSAGE_FORM_SCHEMA?.fields,\n ...customFieldsValidationSchema?.fields,\n });\n\n const shouldShowSaveAsTemplate = ({ id, subject, body } = {}) => {\n if (!isSaveAsTemplateEnabled) return false;\n\n const template = findBy({ id }, templates);\n const hasContent = isPresent(subject) || isPresent(body);\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.subject, subject) && template?.body === body\n );\n\n return hasContent && isContentDifferentFromTemplate;\n };\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n return (\n <Form\n formProps={{\n noValidate: true,\n className: \"flex min-h-0 w-full flex-1 flex-col\",\n }}\n formikProps={{\n initialValues: updatedInitialValues,\n validationSchema: updatedValidationSchema,\n onSubmit: handleSubmit,\n }}\n >\n {({ setValues, values }) => {\n const handleTemplateChange = templateId => {\n if (!templateId) return;\n\n const template = findBy({ id: templateId }, templates);\n setValues({ ...values, ...template });\n editorRef.current?.editor?.commands?.setContent(template.body);\n };\n\n return (\n <>\n <Sheet.Body>\n <div className=\"flex w-full flex-col gap-y-4 pb-6\">\n {isTemplateSelectionEnabled && (\n <Select\n isClearable\n isSearchable\n label={t(\"neetoMessageTemplate.template.title\")}\n labelProps={helpPopoverProps?.[type]?.template}\n ref={setFocusField}\n options={renameKeys(\n { name: \"label\", id: \"value\" },\n templates\n )}\n placeholder={t(\n \"neetoMessageTemplate.sendMessage.selectTemplate\"\n )}\n onChange={handleTemplateChange}\n />\n )}\n {customFields}\n {isEmailTemplate && (\n <Input\n required\n label={t(\"neetoMessageTemplate.template.subject\")}\n labelProps={helpPopoverProps?.email?.subject}\n name=\"subject\"\n ref={isTemplateSelectionEnabled ? null : setFocusField}\n />\n )}\n <FormikEditor\n hideSlashCommands\n required\n addons={editorAddons}\n autoFocus={!(isTemplateSelectionEnabled || isEmailTemplate)}\n contentClassName=\"max-h-40\"\n defaults={isEmailTemplate ? undefined : []}\n label={t(\"neetoMessageTemplate.template.body\")}\n name=\"body\"\n ref={editorRef}\n rows={DEFAULT_EDITOR_ROW_COUNT}\n variables={templateVariables}\n />\n {customFieldsBelowBody}\n {canManageTemplates && shouldShowSaveAsTemplate(values) && (\n <SaveAsTemplate />\n )}\n </div>\n </Sheet.Body>\n <Sheet.Footer>\n <ActionBlock\n cancelButtonProps={{\n \"data-testid\": \"message-template-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-testid\": \"message-template-send-button\",\n label: t(\"neetoMessageTemplate.template.send\"),\n }}\n />\n </Sheet.Footer>\n </>\n );\n }}\n </Form>\n );\n};\nexport default EmailAndSms;\n","import { Select, Sheet, Textarea, Typography } from \"@bigbinary/neeto-atoms\";\nimport { ActionBlock, Form, Input } from \"@bigbinary/neeto-atoms/formik\";\nimport {\n capitalize,\n nullSafe,\n findBy,\n isNotEmpty,\n renameKeys,\n} from \"neetocist\";\nimport { mergeAll, omit, pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport { WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA } from \"../constants\";\n\nconst Whatsapp = ({\n templates,\n onClose,\n handleSubmit,\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n}) => {\n const { t } = useTranslation();\n\n const getInitialVariableComponents = variables => {\n const initialComponents = {};\n\n variables?.forEach(({ type, count }) => {\n initialComponents[type] = Array(count).fill(\"\");\n });\n\n return initialComponents;\n };\n\n const getTemplateMessage = components =>\n nullSafe(pluck)(\"text\", components)?.join(\"\\n\");\n\n const initialFormValues = {\n selectedTemplate: { label: templates[0]?.name, value: templates[0]?.id },\n templateMessage: getTemplateMessage(templates[0]?.components),\n variableContents: getInitialVariableComponents(templates[0]?.variableCount),\n };\n\n const updatedInitialValues = mergeAll([\n initialFormValues,\n customFieldsInitialValues,\n ]);\n\n const updatedValidationSchema = yup.object().shape({\n ...WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA?.fields,\n ...customFieldsValidationSchema?.fields,\n });\n\n const initialValueKeys = Object.keys(initialFormValues);\n\n return (\n <Form\n formProps={{\n noValidate: true,\n className: \"flex min-h-0 w-full flex-1 flex-col\",\n }}\n formikProps={{\n initialValues: updatedInitialValues,\n validationSchema: updatedValidationSchema,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setValues }) => {\n // `selectedTemplate` is kept as a `{ label, value }` object in Formik\n // state to preserve the payload shape v1 handed to `handleSubmit`.\n // atoms' Select is value-based, hence the plain (non-Formik) Select\n // driven off `values.selectedTemplate.value`.\n const handleTemplateChange = templateId => {\n if (!templateId) return;\n\n const template = findBy({ id: templateId }, templates);\n const customFieldValues = omit(initialValueKeys, values);\n setValues({\n selectedTemplate: { label: template.name, value: template.id },\n templateMessage: getTemplateMessage(template.components),\n variableContents: getInitialVariableComponents(\n template.variableCount\n ),\n ...customFieldValues,\n });\n };\n\n return (\n <>\n <Sheet.Body>\n <div className=\"flex w-full flex-col gap-y-4 pb-6\">\n <Select\n required\n label={t(\"neetoMessageTemplate.template.title\")}\n name=\"selectedTemplate\"\n value={values.selectedTemplate?.value}\n options={renameKeys(\n { name: \"label\", id: \"value\" },\n templates\n )}\n onChange={handleTemplateChange}\n />\n {customFields}\n <Textarea\n disabled\n nakedTextarea\n label={t(\"neetoMessageTemplate.template.preview\")}\n value={values.templateMessage}\n />\n {isNotEmpty(values.variableContents) && (\n <>\n {Object.keys(values.variableContents).map(group => (\n <div className=\"flex flex-col gap-y-2\" key={group}>\n <Typography variant=\"h4\">\n {t(\"neetoMessageTemplate.template.resolveVariable\", {\n type: capitalize(group),\n })}\n </Typography>\n {values.variableContents[group].map((_, index) => (\n <div key={`${group}-${index}`}>\n <Input\n required\n key={`${group}-${index}`}\n label={`{{${index + 1}}}`}\n name={`variableContents.${group}.${index}`}\n />\n </div>\n ))}\n </div>\n ))}\n </>\n )}\n </div>\n </Sheet.Body>\n <Sheet.Footer>\n <ActionBlock\n cancelButtonProps={{\n \"data-testid\": \"message-template-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-testid\": \"message-template-send-button\",\n label: t(\"neetoMessageTemplate.template.send\"),\n }}\n />\n </Sheet.Footer>\n </>\n );\n }}\n </Form>\n );\n};\n\nexport default Whatsapp;\n","import { useRef } from \"react\";\n\nimport { Sheet, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { noop } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchTemplates } from \"hooks/reactQuery/useTemplatesApi\";\nimport NoDataPage from \"v2/components/commons/NoDataPage\";\nimport { MESSAGE_TEMPLATES, MESSAGE_TYPES } from \"v2/components/constants\";\n\nimport EmailAndSms from \"./Form/EmailAndSms\";\nimport WhatsappForm from \"./Form/Whatsapp\";\n\nconst SendMessagePane = props => {\n const { isOpen, onClose, paneSize = \"large\" } = props;\n const setFocusField = useRef(null);\n\n return (\n <Sheet\n {...{ isOpen, onClose }}\n initialFocusRef={setFocusField}\n size={paneSize}\n >\n <SendMessageForm {...{ ...props, setFocusField }} />\n </Sheet>\n );\n};\n\nconst SendMessageForm = ({\n type = \"\",\n handleSubmit = noop,\n onClose = noop,\n customFields = null,\n customFieldsBelowBody = null,\n customFieldsInitialValues = {},\n customFieldsValidationSchema = {},\n templateVariables = {},\n ownerId = \"\", // Optional by default. Required in case if the owner of message-templates is not the Organization\n helpDocUrl = \"\",\n isSaveAsTemplateEnabled = true,\n canManageTemplates = true,\n setFocusField,\n helpPopoverProps,\n allowAddingImagesToEmail = false,\n}) => {\n const { t } = useTranslation();\n\n const { value } = MESSAGE_TEMPLATES[type];\n const isWhatsappTemplate = type === \"whatsapp\";\n const templateParams = {\n status: \"active\",\n templateType: value,\n ownerId,\n };\n\n const { data: { templates = [] } = {}, isLoading } =\n useFetchTemplates(templateParams);\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n if (isWhatsappTemplate && isEmpty(templates)) {\n return <NoDataPage {...{ helpDocUrl, type }} />;\n }\n\n return (\n <>\n <Sheet.Header>\n <Sheet.Title>\n {t(\"neetoMessageTemplate.common.send\")} {MESSAGE_TYPES[type]}\n </Sheet.Title>\n </Sheet.Header>\n {isWhatsappTemplate ? (\n <WhatsappForm\n {...{\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n handleSubmit,\n onClose,\n templates,\n }}\n />\n ) : (\n <EmailAndSms\n {...{\n allowAddingImagesToEmail,\n canManageTemplates,\n customFields,\n customFieldsBelowBody,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n handleSubmit,\n helpPopoverProps,\n isSaveAsTemplateEnabled,\n onClose,\n setFocusField,\n templateVariables,\n templates,\n type,\n }}\n />\n )}\n </>\n );\n};\n\nexport default SendMessagePane;\n"],"names":["NoDataPage","_ref","type","_ref$helpDocUrl","helpDocUrl","_useTranslation","useTranslation","t","label","MESSAGE_TEMPLATES","MESSAGE_TYPES","whatsapp","_jsx","className","children","_jsxs","Typography","Trans","i18nKey","components","Link","Button","href","size","variant","formatEditorContent","value","replaceAll","trim","SEND_MESSAGE_INITIAL_VALUES","subject","body","shouldSaveAsTemplate","templateName","EMAIL_MESSAGE_FORM_SCHEMA","yup","object","shape","string","required","test","when","is","then","entity","SMS_MESSAGE_FORM_VALIDATION_SCHEMA","WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA","variableContents","array","of","EmailAndSms","canManageTemplates","onClose","templates","setFocusField","templateVariables","customFields","customFieldsInitialValues","customFieldsValidationSchema","handleSubmit","isSaveAsTemplateEnabled","customFieldsBelowBody","_ref$helpPopoverProps","helpPopoverProps","allowAddingImagesToEmail","editorRef","useRef","isEmailTemplate","_ref2","omit","_ref3","_slicedToArray","INITIAL_VALUES","SEND_MESSAGE_FORM_SCHEMA","editorAddons","getEditorAddons","updatedInitialValues","mergeAll","updatedValidationSchema","_objectSpread","fields","shouldShowSaveAsTemplate","_ref4","arguments","length","undefined","id","template","findBy","hasContent","isPresent","isContentDifferentFromTemplate","areValuesEqual","isTemplateSelectionEnabled","Form","formProps","noValidate","formikProps","initialValues","validationSchema","onSubmit","_ref5","_helpPopoverProps$typ","_helpPopoverProps$ema","setValues","values","handleTemplateChange","templateId","_editorRef$current","current","editor","commands","setContent","_Fragment","Sheet","Body","Select","isClearable","isSearchable","labelProps","ref","options","renameKeys","name","placeholder","onChange","Input","email","FormikEditor","hideSlashCommands","addons","autoFocus","contentClassName","defaults","rows","DEFAULT_EDITOR_ROW_COUNT","variables","SaveAsTemplate","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps","Whatsapp","_templates$","_templates$2","_templates$3","_templates$4","getInitialVariableComponents","initialComponents","forEach","count","Array","fill","getTemplateMessage","_nullSafe","nullSafe","pluck","join","initialFormValues","selectedTemplate","templateMessage","variableCount","initialValueKeys","Object","keys","_values$selectedTempl","customFieldValues","Textarea","disabled","nakedTextarea","isNotEmpty","map","group","capitalize","_","index","concat","SendMessagePane","props","isOpen","_props$paneSize","paneSize","initialFocusRef","SendMessageForm","_ref$type","_ref$handleSubmit","noop","_ref$onClose","_ref$customFields","_ref$customFieldsBelo","_ref$customFieldsInit","_ref$customFieldsVali","_ref$templateVariable","_ref$ownerId","ownerId","_ref$isSaveAsTemplate","_ref$canManageTemplat","_ref$allowAddingImage","isWhatsappTemplate","templateParams","status","templateType","_useFetchTemplates","useFetchTemplates","_useFetchTemplates$da","data","_useFetchTemplates$da2","_useFetchTemplates$da3","isLoading","Spinner","isEmpty","Header","Title","WhatsappForm"],"mappings":"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"}
|
package/dist/v2/SendToApiPane.js
CHANGED
|
@@ -8,7 +8,8 @@ import { equals, modify } from 'ramda';
|
|
|
8
8
|
import { useTranslation } from 'react-i18next';
|
|
9
9
|
import { b as useFetchTemplates } from '../useTemplatesApi-CMkDeBa9.js';
|
|
10
10
|
import { V as VALID_URL_REGEX, C as CUSTOM_HEADERS_INITIAL_VALUE, d as buildHelpPopoverProps, S as SAMPLE_URL, c as CustomHeaders, J as JsonEditor, a as API_TEMPLATE_TYPE, r as rejectEmptyKeyValuePairs } from '../JsonEditor-BHy4s0Bo.js';
|
|
11
|
-
import { S as SaveAsTemplate
|
|
11
|
+
import { S as SaveAsTemplate } from '../SaveAsTemplate-DwPF4y1M.js';
|
|
12
|
+
import { a as areValuesEqual } from '../utils-Cje7oYAU.js';
|
|
12
13
|
import { t } from 'i18next';
|
|
13
14
|
import * as yup from 'yup';
|
|
14
15
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -25,6 +26,7 @@ import '@bigbinary/neeto-icons/Help';
|
|
|
25
26
|
import '@bigbinary/neeto-molecules/v2/DynamicVariables';
|
|
26
27
|
import '../json_editor-Co5e3Chh.js';
|
|
27
28
|
import '../inject-css-C2dztUxs.js';
|
|
29
|
+
import '@bigbinary/neeto-editor/v2/constants';
|
|
28
30
|
|
|
29
31
|
var SEND_TO_API_FORM_INITIAL_VALUES = {
|
|
30
32
|
endpoint: "",
|
|
@@ -82,13 +84,15 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
82
84
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
83
85
|
var SendToApiPane = function SendToApiPane(props) {
|
|
84
86
|
var isOpen = props.isOpen,
|
|
85
|
-
onClose = props.onClose
|
|
87
|
+
onClose = props.onClose,
|
|
88
|
+
_props$paneSize = props.paneSize,
|
|
89
|
+
paneSize = _props$paneSize === void 0 ? "large" : _props$paneSize;
|
|
86
90
|
var setFocusField = useRef(null);
|
|
87
91
|
return /*#__PURE__*/jsx(Sheet, {
|
|
88
92
|
isOpen: isOpen,
|
|
89
93
|
onClose: onClose,
|
|
90
94
|
initialFocusRef: setFocusField,
|
|
91
|
-
size:
|
|
95
|
+
size: paneSize,
|
|
92
96
|
children: /*#__PURE__*/jsx(SendToApiForm, _objectSpread({}, _objectSpread(_objectSpread({}, props), {}, {
|
|
93
97
|
setFocusField: setFocusField
|
|
94
98
|
})))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SendToApiPane.js","sources":["../../app/javascript/src/v2/components/Api/SendToApiPane/constants.js","../../app/javascript/src/v2/components/Api/SendToApiPane/utils.js","../../app/javascript/src/v2/components/Api/SendToApiPane/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isNotPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE, VALID_URL_REGEX } from \"../constants\";\n\nexport const SEND_TO_API_FORM_INITIAL_VALUES = {\n endpoint: \"\",\n enableCustomHeaders: false,\n customHeaders: [CUSTOM_HEADERS_INITIAL_VALUE],\n body: \"{}\",\n shouldSaveAsTemplate: false,\n templateName: \"\",\n};\n\nexport const SEND_TO_API_FORM_VALIDATION_SCHEMA = yup.object({\n endpoint: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n body: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n })\n )\n .test(\"is-valid-json-and-not-empty\", (value, context) => {\n if (!value) return true;\n\n try {\n const parsedValue = JSON.parse(value);\n\n if (isNotPresent(parsedValue)) {\n return context.createError({\n message: t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n }),\n });\n }\n\n return true;\n } catch {\n return context.createError({\n message: t(\"neetoMessageTemplate.api.validation.invalidJsonBody\"),\n });\n }\n }),\n});\n","import { isPresent } from \"neetocist\";\nimport { equals } from \"ramda\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"../constants\";\n\nexport const formatCustomHeaders = customHeaders =>\n isPresent(customHeaders) ? customHeaders : [CUSTOM_HEADERS_INITIAL_VALUE];\n\nexport const areHeadersSame = (\n enableCustomHeaders,\n customHeaders,\n template = {}\n) => {\n const {\n enableCustomHeaders: templateHasCustomHeaders,\n customHeaders: templateHeaders,\n } = template;\n if (!enableCustomHeaders && !templateHasCustomHeaders) return true;\n\n if (enableCustomHeaders !== templateHasCustomHeaders) return false;\n\n return equals(customHeaders, templateHeaders);\n};\n\nexport const isBodyAvailable = body => {\n try {\n const data = JSON.parse(body);\n\n return isPresent(data);\n } catch {\n return false;\n }\n};\n","import { useRef } from \"react\";\n\nimport { Select, Sheet, Spinner } from \"@bigbinary/neeto-atoms\";\nimport {\n ActionBlock,\n Input,\n Form as NeetoUIForm,\n} from \"@bigbinary/neeto-atoms/formik\";\nimport { findBy, isPresent, renameKeys } from \"neetocist\";\nimport HelpPopover from \"neetomolecules/v2/HelpPopover\";\nimport { equals, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchTemplates } from \"hooks/reactQuery/useTemplatesApi\";\nimport { SAMPLE_URL } from \"v2/components/Api/ApiTemplates/constants\";\nimport {\n API_TEMPLATE_TYPE,\n CUSTOM_HEADERS_INITIAL_VALUE,\n} from \"v2/components/Api/constants\";\nimport {\n buildHelpPopoverProps,\n rejectEmptyKeyValuePairs,\n} from \"v2/components/Api/utils\";\nimport SaveAsTemplate from \"v2/components/commons/SaveAsTemplate\";\nimport { areValuesEqual } from \"v2/components/utils\";\n\nimport {\n SEND_TO_API_FORM_INITIAL_VALUES,\n SEND_TO_API_FORM_VALIDATION_SCHEMA,\n} from \"./constants\";\nimport { areHeadersSame, formatCustomHeaders, isBodyAvailable } from \"./utils\";\n\nimport CustomHeaders from \"../CustomHeaders\";\nimport JsonEditor from \"../JsonEditor\";\n\nconst SendToApiPane = props => {\n const { isOpen, onClose } = props;\n const setFocusField = useRef(null);\n\n return (\n <Sheet\n {...{ isOpen, onClose }}\n initialFocusRef={setFocusField}\n size=\"large\"\n >\n <SendToApiForm {...{ ...props, setFocusField }} />\n </Sheet>\n );\n};\n\nconst SendToApiForm = ({\n ownerId,\n onClose,\n onSubmit,\n isSubmitting,\n templateVariables,\n canManageTemplates = true,\n helpPopoverProps = {},\n setFocusField,\n}) => {\n const { t } = useTranslation();\n\n const { data: { templates = [] } = {}, isLoading: isLoadingTemplates } =\n useFetchTemplates({\n status: \"active\",\n templateType: API_TEMPLATE_TYPE,\n ownerId,\n });\n\n const handleTemplateChange = (setValues, values, templateId) => {\n if (!templateId) return;\n\n const template = findBy({ id: templateId }, templates);\n setValues({\n ...values,\n ...modify(\"customHeaders\", formatCustomHeaders, template),\n });\n };\n\n const handleSubmit = formValues => {\n const customHeadersModifiedFormValues = modify(\n \"customHeaders\",\n rejectEmptyKeyValuePairs,\n formValues\n );\n\n onSubmit(customHeadersModifiedFormValues);\n };\n\n const shouldShowSaveAsTemplate = ({\n id,\n endpoint,\n enableCustomHeaders,\n customHeaders = [CUSTOM_HEADERS_INITIAL_VALUE],\n body,\n } = {}) => {\n const template = findBy({ id }, templates);\n const hasContent =\n isPresent(endpoint) ||\n isPresent(rejectEmptyKeyValuePairs(customHeaders)) ||\n isBodyAvailable(body);\n\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.endpoint, endpoint) &&\n areHeadersSame(enableCustomHeaders, customHeaders, template) &&\n equals(template?.body, body)\n );\n\n return hasContent && isContentDifferentFromTemplate;\n };\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n const {\n sendToApi: sendToApiHelpPopoverProps,\n customHeaders: customHeadersHelpPopoverProps,\n body: bodyHelpPopoverProps,\n } = buildHelpPopoverProps(helpPopoverProps);\n\n if (isLoadingTemplates) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <Sheet.Header>\n <Sheet.Title>\n {t(\"neetoMessageTemplate.api.sendToApi\")}\n <HelpPopover className=\"ms-2\" {...sendToApiHelpPopoverProps} />\n </Sheet.Title>\n </Sheet.Header>\n <NeetoUIForm\n formProps={{ className: \"flex min-h-0 flex-1 flex-col\" }}\n formikProps={{\n initialValues: SEND_TO_API_FORM_INITIAL_VALUES,\n validationSchema: SEND_TO_API_FORM_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setValues }) => (\n <>\n <Sheet.Body>\n <div className=\"mb-10 w-full space-y-5\">\n {isTemplateSelectionEnabled && (\n <Select\n label={t(\"neetoMessageTemplate.template.title\")}\n ref={setFocusField}\n options={renameKeys(\n { name: \"label\", id: \"value\" },\n templates\n )}\n placeholder={t(\n \"neetoMessageTemplate.sendMessage.selectTemplate\"\n )}\n onChange={templateId =>\n handleTemplateChange(setValues, values, templateId)\n }\n />\n )}\n <Input\n required\n label={t(\"neetoMessageTemplate.api.endpoint\")}\n name=\"endpoint\"\n placeholder={SAMPLE_URL}\n ref={isTemplateSelectionEnabled ? null : setFocusField}\n />\n <CustomHeaders\n helpPopoverProps={customHeadersHelpPopoverProps}\n />\n <JsonEditor\n {...{ templateVariables }}\n helpPopoverProps={bodyHelpPopoverProps}\n initialValue={values.body}\n name=\"body\"\n />\n {canManageTemplates && shouldShowSaveAsTemplate(values) && (\n <SaveAsTemplate />\n )}\n </div>\n </Sheet.Body>\n <Sheet.Footer>\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n onClick: onClose,\n \"data-testid\": \"api-template-cancel-button\",\n }}\n submitButtonProps={{\n label: t(\"neetoMessageTemplate.template.send\"),\n \"data-testid\": \"api-template-send-button\",\n }}\n />\n </Sheet.Footer>\n </>\n )}\n </NeetoUIForm>\n </>\n );\n};\n\nexport default SendToApiPane;\n"],"names":["SEND_TO_API_FORM_INITIAL_VALUES","endpoint","enableCustomHeaders","customHeaders","CUSTOM_HEADERS_INITIAL_VALUE","body","shouldSaveAsTemplate","templateName","SEND_TO_API_FORM_VALIDATION_SCHEMA","yup","object","string","trim","required","t","matches","VALID_URL_REGEX","entity","test","value","context","parsedValue","JSON","parse","isNotPresent","createError","message","_unused","formatCustomHeaders","isPresent","areHeadersSame","template","arguments","length","undefined","templateHasCustomHeaders","templateHeaders","equals","isBodyAvailable","data","SendToApiPane","props","isOpen","onClose","setFocusField","useRef","_jsx","Sheet","initialFocusRef","size","children","SendToApiForm","_objectSpread","_ref","ownerId","onSubmit","isSubmitting","templateVariables","_ref$canManageTemplat","canManageTemplates","_ref$helpPopoverProps","helpPopoverProps","_useTranslation","useTranslation","_useFetchTemplates","useFetchTemplates","status","templateType","API_TEMPLATE_TYPE","_useFetchTemplates$da","_useFetchTemplates$da2","_useFetchTemplates$da3","templates","isLoadingTemplates","isLoading","handleTemplateChange","setValues","values","templateId","findBy","id","modify","handleSubmit","formValues","customHeadersModifiedFormValues","rejectEmptyKeyValuePairs","shouldShowSaveAsTemplate","_ref2","_ref2$customHeaders","hasContent","isContentDifferentFromTemplate","areValuesEqual","isTemplateSelectionEnabled","_buildHelpPopoverProp","buildHelpPopoverProps","sendToApiHelpPopoverProps","sendToApi","customHeadersHelpPopoverProps","bodyHelpPopoverProps","className","Spinner","_jsxs","_Fragment","Header","Title","HelpPopover","NeetoUIForm","formProps","formikProps","initialValues","validationSchema","_ref3","Body","Select","label","ref","options","renameKeys","name","placeholder","onChange","Input","SAMPLE_URL","CustomHeaders","JsonEditor","initialValue","SaveAsTemplate","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SendToApiPane.js","sources":["../../app/javascript/src/v2/components/Api/SendToApiPane/constants.js","../../app/javascript/src/v2/components/Api/SendToApiPane/utils.js","../../app/javascript/src/v2/components/Api/SendToApiPane/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isNotPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE, VALID_URL_REGEX } from \"../constants\";\n\nexport const SEND_TO_API_FORM_INITIAL_VALUES = {\n endpoint: \"\",\n enableCustomHeaders: false,\n customHeaders: [CUSTOM_HEADERS_INITIAL_VALUE],\n body: \"{}\",\n shouldSaveAsTemplate: false,\n templateName: \"\",\n};\n\nexport const SEND_TO_API_FORM_VALIDATION_SCHEMA = yup.object({\n endpoint: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n body: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n })\n )\n .test(\"is-valid-json-and-not-empty\", (value, context) => {\n if (!value) return true;\n\n try {\n const parsedValue = JSON.parse(value);\n\n if (isNotPresent(parsedValue)) {\n return context.createError({\n message: t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n }),\n });\n }\n\n return true;\n } catch {\n return context.createError({\n message: t(\"neetoMessageTemplate.api.validation.invalidJsonBody\"),\n });\n }\n }),\n});\n","import { isPresent } from \"neetocist\";\nimport { equals } from \"ramda\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"../constants\";\n\nexport const formatCustomHeaders = customHeaders =>\n isPresent(customHeaders) ? customHeaders : [CUSTOM_HEADERS_INITIAL_VALUE];\n\nexport const areHeadersSame = (\n enableCustomHeaders,\n customHeaders,\n template = {}\n) => {\n const {\n enableCustomHeaders: templateHasCustomHeaders,\n customHeaders: templateHeaders,\n } = template;\n if (!enableCustomHeaders && !templateHasCustomHeaders) return true;\n\n if (enableCustomHeaders !== templateHasCustomHeaders) return false;\n\n return equals(customHeaders, templateHeaders);\n};\n\nexport const isBodyAvailable = body => {\n try {\n const data = JSON.parse(body);\n\n return isPresent(data);\n } catch {\n return false;\n }\n};\n","import { useRef } from \"react\";\n\nimport { Select, Sheet, Spinner } from \"@bigbinary/neeto-atoms\";\nimport {\n ActionBlock,\n Input,\n Form as NeetoUIForm,\n} from \"@bigbinary/neeto-atoms/formik\";\nimport { findBy, isPresent, renameKeys } from \"neetocist\";\nimport HelpPopover from \"neetomolecules/v2/HelpPopover\";\nimport { equals, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchTemplates } from \"hooks/reactQuery/useTemplatesApi\";\nimport { SAMPLE_URL } from \"v2/components/Api/ApiTemplates/constants\";\nimport {\n API_TEMPLATE_TYPE,\n CUSTOM_HEADERS_INITIAL_VALUE,\n} from \"v2/components/Api/constants\";\nimport {\n buildHelpPopoverProps,\n rejectEmptyKeyValuePairs,\n} from \"v2/components/Api/utils\";\nimport SaveAsTemplate from \"v2/components/commons/SaveAsTemplate\";\nimport { areValuesEqual } from \"v2/components/utils\";\n\nimport {\n SEND_TO_API_FORM_INITIAL_VALUES,\n SEND_TO_API_FORM_VALIDATION_SCHEMA,\n} from \"./constants\";\nimport { areHeadersSame, formatCustomHeaders, isBodyAvailable } from \"./utils\";\n\nimport CustomHeaders from \"../CustomHeaders\";\nimport JsonEditor from \"../JsonEditor\";\n\nconst SendToApiPane = props => {\n const { isOpen, onClose, paneSize = \"large\" } = props;\n const setFocusField = useRef(null);\n\n return (\n <Sheet\n {...{ isOpen, onClose }}\n initialFocusRef={setFocusField}\n size={paneSize}\n >\n <SendToApiForm {...{ ...props, setFocusField }} />\n </Sheet>\n );\n};\n\nconst SendToApiForm = ({\n ownerId,\n onClose,\n onSubmit,\n isSubmitting,\n templateVariables,\n canManageTemplates = true,\n helpPopoverProps = {},\n setFocusField,\n}) => {\n const { t } = useTranslation();\n\n const { data: { templates = [] } = {}, isLoading: isLoadingTemplates } =\n useFetchTemplates({\n status: \"active\",\n templateType: API_TEMPLATE_TYPE,\n ownerId,\n });\n\n const handleTemplateChange = (setValues, values, templateId) => {\n if (!templateId) return;\n\n const template = findBy({ id: templateId }, templates);\n setValues({\n ...values,\n ...modify(\"customHeaders\", formatCustomHeaders, template),\n });\n };\n\n const handleSubmit = formValues => {\n const customHeadersModifiedFormValues = modify(\n \"customHeaders\",\n rejectEmptyKeyValuePairs,\n formValues\n );\n\n onSubmit(customHeadersModifiedFormValues);\n };\n\n const shouldShowSaveAsTemplate = ({\n id,\n endpoint,\n enableCustomHeaders,\n customHeaders = [CUSTOM_HEADERS_INITIAL_VALUE],\n body,\n } = {}) => {\n const template = findBy({ id }, templates);\n const hasContent =\n isPresent(endpoint) ||\n isPresent(rejectEmptyKeyValuePairs(customHeaders)) ||\n isBodyAvailable(body);\n\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.endpoint, endpoint) &&\n areHeadersSame(enableCustomHeaders, customHeaders, template) &&\n equals(template?.body, body)\n );\n\n return hasContent && isContentDifferentFromTemplate;\n };\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n const {\n sendToApi: sendToApiHelpPopoverProps,\n customHeaders: customHeadersHelpPopoverProps,\n body: bodyHelpPopoverProps,\n } = buildHelpPopoverProps(helpPopoverProps);\n\n if (isLoadingTemplates) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <Sheet.Header>\n <Sheet.Title>\n {t(\"neetoMessageTemplate.api.sendToApi\")}\n <HelpPopover className=\"ms-2\" {...sendToApiHelpPopoverProps} />\n </Sheet.Title>\n </Sheet.Header>\n <NeetoUIForm\n formProps={{ className: \"flex min-h-0 flex-1 flex-col\" }}\n formikProps={{\n initialValues: SEND_TO_API_FORM_INITIAL_VALUES,\n validationSchema: SEND_TO_API_FORM_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setValues }) => (\n <>\n <Sheet.Body>\n <div className=\"mb-10 w-full space-y-5\">\n {isTemplateSelectionEnabled && (\n <Select\n label={t(\"neetoMessageTemplate.template.title\")}\n ref={setFocusField}\n options={renameKeys(\n { name: \"label\", id: \"value\" },\n templates\n )}\n placeholder={t(\n \"neetoMessageTemplate.sendMessage.selectTemplate\"\n )}\n onChange={templateId =>\n handleTemplateChange(setValues, values, templateId)\n }\n />\n )}\n <Input\n required\n label={t(\"neetoMessageTemplate.api.endpoint\")}\n name=\"endpoint\"\n placeholder={SAMPLE_URL}\n ref={isTemplateSelectionEnabled ? null : setFocusField}\n />\n <CustomHeaders\n helpPopoverProps={customHeadersHelpPopoverProps}\n />\n <JsonEditor\n {...{ templateVariables }}\n helpPopoverProps={bodyHelpPopoverProps}\n initialValue={values.body}\n name=\"body\"\n />\n {canManageTemplates && shouldShowSaveAsTemplate(values) && (\n <SaveAsTemplate />\n )}\n </div>\n </Sheet.Body>\n <Sheet.Footer>\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n onClick: onClose,\n \"data-testid\": \"api-template-cancel-button\",\n }}\n submitButtonProps={{\n label: t(\"neetoMessageTemplate.template.send\"),\n \"data-testid\": \"api-template-send-button\",\n }}\n />\n </Sheet.Footer>\n </>\n )}\n </NeetoUIForm>\n </>\n );\n};\n\nexport default SendToApiPane;\n"],"names":["SEND_TO_API_FORM_INITIAL_VALUES","endpoint","enableCustomHeaders","customHeaders","CUSTOM_HEADERS_INITIAL_VALUE","body","shouldSaveAsTemplate","templateName","SEND_TO_API_FORM_VALIDATION_SCHEMA","yup","object","string","trim","required","t","matches","VALID_URL_REGEX","entity","test","value","context","parsedValue","JSON","parse","isNotPresent","createError","message","_unused","formatCustomHeaders","isPresent","areHeadersSame","template","arguments","length","undefined","templateHasCustomHeaders","templateHeaders","equals","isBodyAvailable","data","SendToApiPane","props","isOpen","onClose","_props$paneSize","paneSize","setFocusField","useRef","_jsx","Sheet","initialFocusRef","size","children","SendToApiForm","_objectSpread","_ref","ownerId","onSubmit","isSubmitting","templateVariables","_ref$canManageTemplat","canManageTemplates","_ref$helpPopoverProps","helpPopoverProps","_useTranslation","useTranslation","_useFetchTemplates","useFetchTemplates","status","templateType","API_TEMPLATE_TYPE","_useFetchTemplates$da","_useFetchTemplates$da2","_useFetchTemplates$da3","templates","isLoadingTemplates","isLoading","handleTemplateChange","setValues","values","templateId","findBy","id","modify","handleSubmit","formValues","customHeadersModifiedFormValues","rejectEmptyKeyValuePairs","shouldShowSaveAsTemplate","_ref2","_ref2$customHeaders","hasContent","isContentDifferentFromTemplate","areValuesEqual","isTemplateSelectionEnabled","_buildHelpPopoverProp","buildHelpPopoverProps","sendToApiHelpPopoverProps","sendToApi","customHeadersHelpPopoverProps","bodyHelpPopoverProps","className","Spinner","_jsxs","_Fragment","Header","Title","HelpPopover","NeetoUIForm","formProps","formikProps","initialValues","validationSchema","_ref3","Body","Select","label","ref","options","renameKeys","name","placeholder","onChange","Input","SAMPLE_URL","CustomHeaders","JsonEditor","initialValue","SaveAsTemplate","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
|
package/dist/v2/index.js
CHANGED
|
@@ -28,16 +28,18 @@ import 'qs';
|
|
|
28
28
|
import 'react/jsx-runtime';
|
|
29
29
|
import '@bigbinary/neeto-atoms/formik';
|
|
30
30
|
import '@bigbinary/neeto-editor/v2/FormikEditor';
|
|
31
|
+
import 'yup';
|
|
31
32
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
32
33
|
import 'formik';
|
|
34
|
+
import '../utils-Cje7oYAU.js';
|
|
35
|
+
import '@bigbinary/neeto-editor/v2/constants';
|
|
33
36
|
import '@bigbinary/neeto-molecules/v2/PhoneNumber';
|
|
34
|
-
import 'yup';
|
|
35
37
|
import '@babel/runtime/helpers/asyncToGenerator';
|
|
36
38
|
import '@babel/runtime/helpers/toConsumableArray';
|
|
37
39
|
import '@bigbinary/neeto-commons-frontend/v2/react-utils';
|
|
38
40
|
import '@bigbinary/neeto-filters-frontend/v2/utils';
|
|
39
41
|
import 'lucide-react';
|
|
40
|
-
import '../
|
|
42
|
+
import '../SaveAsTemplate-DwPF4y1M.js';
|
|
41
43
|
import '../JsonEditor-BHy4s0Bo.js';
|
|
42
44
|
import '@bigbinary/neeto-icons/Delete';
|
|
43
45
|
import '@monaco-editor/react';
|
package/dist/v2/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-message-templates-frontend",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.15",
|
|
4
4
|
"description": "To manage message templates across neeto products.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"homepage": "https://github.com/bigbinary/neeto-message-templates-nano",
|
|
@@ -72,13 +72,13 @@
|
|
|
72
72
|
"@babel/runtime": "7.29.7",
|
|
73
73
|
"@bigbinary/babel-preset-neeto": "^1.0.3",
|
|
74
74
|
"@bigbinary/eslint-plugin-neeto": "1.9.1",
|
|
75
|
-
"@bigbinary/neeto-atoms": "1.0.
|
|
75
|
+
"@bigbinary/neeto-atoms": "1.0.117",
|
|
76
76
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
77
77
|
"@bigbinary/neeto-commons-frontend": "4.13.152",
|
|
78
|
-
"@bigbinary/neeto-editor": "1.47.
|
|
78
|
+
"@bigbinary/neeto-editor": "1.47.135",
|
|
79
79
|
"@bigbinary/neeto-filters-frontend": "4.3.43",
|
|
80
80
|
"@bigbinary/neeto-icons": "1.20.89",
|
|
81
|
-
"@bigbinary/neeto-molecules": "5.3.
|
|
81
|
+
"@bigbinary/neeto-molecules": "5.3.7",
|
|
82
82
|
"@bigbinary/neetoui": "8.8.3",
|
|
83
83
|
"@emotion/is-prop-valid": "1.2.0",
|
|
84
84
|
"@faker-js/faker": "8.2.0",
|
|
@@ -185,13 +185,13 @@
|
|
|
185
185
|
"peerDependencies": {
|
|
186
186
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
187
187
|
"@babel/runtime": "7.29.7",
|
|
188
|
-
"@bigbinary/neeto-atoms": "1.0.
|
|
188
|
+
"@bigbinary/neeto-atoms": "1.0.117",
|
|
189
189
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
190
190
|
"@bigbinary/neeto-commons-frontend": "4.13.152",
|
|
191
|
-
"@bigbinary/neeto-editor": "1.47.
|
|
191
|
+
"@bigbinary/neeto-editor": "1.47.135",
|
|
192
192
|
"@bigbinary/neeto-filters-frontend": "4.3.43",
|
|
193
193
|
"@bigbinary/neeto-icons": "1.20.89",
|
|
194
|
-
"@bigbinary/neeto-molecules": "5.3.
|
|
194
|
+
"@bigbinary/neeto-molecules": "5.3.7",
|
|
195
195
|
"@bigbinary/neetoui": "8.8.3",
|
|
196
196
|
"@honeybadger-io/js": "6.10.1",
|
|
197
197
|
"@honeybadger-io/react": "6.1.25",
|
package/types.d.ts
CHANGED
|
@@ -69,8 +69,13 @@ interface MessageTemplatesProps {
|
|
|
69
69
|
ownerId?: string;
|
|
70
70
|
isTestingTemplateDisabled?: boolean;
|
|
71
71
|
manageTemplatesPaneCustomFields?: ReactNode;
|
|
72
|
+
customFieldsBelowBody?: ReactNode;
|
|
73
|
+
customFieldsInitialValues?: { [key: string]: any };
|
|
74
|
+
customFieldsValidationSchema?: { [key: string]: any };
|
|
72
75
|
onMutationSuccess?: (...args: any[]) => void;
|
|
73
76
|
helpPopoverProps?: PopoverProps;
|
|
77
|
+
paneSize?: "small" | "large" | "extraLarge";
|
|
78
|
+
allowAddingImagesToEmailTemplate?: boolean;
|
|
74
79
|
}
|
|
75
80
|
|
|
76
81
|
interface SendMessagePaneProps {
|
|
@@ -89,6 +94,7 @@ interface SendMessagePaneProps {
|
|
|
89
94
|
isSaveAsTemplateEnabled?: boolean;
|
|
90
95
|
canManageTemplates?: boolean;
|
|
91
96
|
helpPopoverProps?: SendMessagePaneHelpPopoverProps;
|
|
97
|
+
allowAddingImagesToEmail?: boolean;
|
|
92
98
|
}
|
|
93
99
|
|
|
94
100
|
interface ApiTemplatesProps {
|
|
@@ -98,6 +104,7 @@ interface ApiTemplatesProps {
|
|
|
98
104
|
initialPayload?: object;
|
|
99
105
|
templateVariables?: TemplateVariables[];
|
|
100
106
|
helpPopoverProps?: ApiTemplatesHelpPopoverProps;
|
|
107
|
+
paneSize?: "small" | "large" | "extraLarge";
|
|
101
108
|
}
|
|
102
109
|
|
|
103
110
|
interface SendToApiPaneProps {
|
|
@@ -109,9 +116,10 @@ interface SendToApiPaneProps {
|
|
|
109
116
|
canManageTemplates?: boolean;
|
|
110
117
|
templateVariables?: TemplateVariables[];
|
|
111
118
|
helpPopoverProps?: SendToApiHelpPopoverProps;
|
|
119
|
+
paneSize?: "small" | "large" | "extraLarge";
|
|
112
120
|
}
|
|
113
121
|
|
|
114
122
|
export const MessageTemplates = React.FC<MessageTemplatesProps>;
|
|
115
123
|
export const SendToApiPane = React.FC<SendToApiPaneProps>;
|
|
116
124
|
export const SendMessagePane = React.FC<SendMessagePaneProps>;
|
|
117
|
-
export const ApiTemplates = React.FC<ApiTemplatesProps
|
|
125
|
+
export const ApiTemplates = React.FC<ApiTemplatesProps>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-BGEmI_om.js","sources":["../app/javascript/src/v2/components/commons/SaveAsTemplate.jsx","../app/javascript/src/v2/components/utils.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { Input, Switch } from \"@bigbinary/neeto-atoms/formik\";\nimport { useFormikContext } from \"formik\";\nimport { hyphenate } from \"neetocist\";\nimport { useTranslation } from \"react-i18next\";\n\nconst SaveAsTemplate = () => {\n const {\n values: { shouldSaveAsTemplate },\n setFieldValue,\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n useEffect(\n () => () => {\n setFieldValue(\"shouldSaveAsTemplate\", false);\n setFieldValue(\"templateName\", \"\");\n },\n []\n );\n\n const handleCheckedChange = checked => {\n if (!checked) {\n setFieldValue(\"templateName\", \"\");\n }\n\n setFieldValue(\"shouldSaveAsTemplate\", checked);\n };\n\n return (\n <div className=\"flex flex-col space-y-4\">\n <Switch\n data-testid={`neeto-message-template-${hyphenate(t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\"))}-switch`}\n label={t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\")}\n name=\"shouldSaveAsTemplate\"\n onCheckedChange={handleCheckedChange}\n />\n {shouldSaveAsTemplate && (\n <Input\n autoFocus\n required\n label={t(\"neetoMessageTemplate.template.templateName\")}\n name=\"templateName\"\n />\n )}\n </div>\n );\n};\n\nexport default SaveAsTemplate;\n","import { eqBy, is, trim, when } from \"ramda\";\n\nexport const areValuesEqual = (value1, value2) => {\n const normalize = when(is(String), trim);\n\n return eqBy(normalize, value1, value2);\n};\n"],"names":["SaveAsTemplate","_useFormikContext","useFormikContext","shouldSaveAsTemplate","values","setFieldValue","_useTranslation","useTranslation","t","useEffect","handleCheckedChange","checked","_jsxs","className","children","_jsx","Switch","concat","hyphenate","label","name","onCheckedChange","Input","autoFocus","required","areValuesEqual","value1","value2","normalize","when","is","String","trim","eqBy"],"mappings":";;;;;;;;AAOA,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,GAAS;AAC3B,EAAA,IAAAC,iBAAA,GAGIC,gBAAgB,EAAE;AAFVC,IAAAA,oBAAoB,GAAAF,iBAAA,CAA9BG,MAAM,CAAID,oBAAoB;IAC9BE,aAAa,GAAAJ,iBAAA,CAAbI,aAAa;AAGf,EAAA,IAAAC,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAETC,EAAAA,SAAS,CACP,YAAA;AAAA,IAAA,OAAM,YAAM;AACVJ,MAAAA,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAAC;AAC5CA,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;IACnC,CAAC;AAAA,EAAA,CAAA,EACD,EACF,CAAC;AAED,EAAA,IAAMK,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGC,OAAO,EAAI;IACrC,IAAI,CAACA,OAAO,EAAE;AACZN,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;AACnC,IAAA;AAEAA,IAAAA,aAAa,CAAC,sBAAsB,EAAEM,OAAO,CAAC;EAChD,CAAC;AAED,EAAA,oBACEC,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,yBAAyB;IAAAC,QAAA,EAAA,cACtCC,GAAA,CAACC,MAAM,EAAA;MACL,aAAA,EAAA,yBAAA,CAAAC,MAAA,CAAuCC,SAAS,CAACV,CAAC,CAAC,iDAAiD,CAAC,CAAC,EAAA,SAAA,CAAU;AAChHW,MAAAA,KAAK,EAAEX,CAAC,CAAC,iDAAiD,CAAE;AAC5DY,MAAAA,IAAI,EAAC,sBAAsB;AAC3BC,MAAAA,eAAe,EAAEX;AAAoB,KACtC,CAAC,EACDP,oBAAoB,iBACnBY,GAAA,CAACO,KAAK,EAAA;MACJC,SAAS,EAAA,IAAA;MACTC,QAAQ,EAAA,IAAA;AACRL,MAAAA,KAAK,EAAEX,CAAC,CAAC,4CAA4C,CAAE;AACvDY,MAAAA,IAAI,EAAC;AAAc,KACpB,CACF;AAAA,GACE,CAAC;AAEV;;AC/CO,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,MAAM,EAAEC,MAAM,EAAK;EAChD,IAAMC,SAAS,GAAGC,IAAI,CAACC,EAAE,CAACC,MAAM,CAAC,EAAEC,IAAI,CAAC;AAExC,EAAA,OAAOC,IAAI,CAACL,SAAS,EAAEF,MAAM,EAAEC,MAAM,CAAC;AACxC;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-CLc_-Ysi.js","sources":["../app/javascript/src/v2/components/commons/SaveAsTemplate.jsx","../app/javascript/src/v2/components/utils.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { Input, Switch } from \"@bigbinary/neeto-atoms/formik\";\nimport { useFormikContext } from \"formik\";\nimport { hyphenate } from \"neetocist\";\nimport { useTranslation } from \"react-i18next\";\n\nconst SaveAsTemplate = () => {\n const {\n values: { shouldSaveAsTemplate },\n setFieldValue,\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n useEffect(\n () => () => {\n setFieldValue(\"shouldSaveAsTemplate\", false);\n setFieldValue(\"templateName\", \"\");\n },\n []\n );\n\n const handleCheckedChange = checked => {\n if (!checked) {\n setFieldValue(\"templateName\", \"\");\n }\n\n setFieldValue(\"shouldSaveAsTemplate\", checked);\n };\n\n return (\n <div className=\"flex flex-col space-y-4\">\n <Switch\n data-testid={`neeto-message-template-${hyphenate(t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\"))}-switch`}\n label={t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\")}\n name=\"shouldSaveAsTemplate\"\n onCheckedChange={handleCheckedChange}\n />\n {shouldSaveAsTemplate && (\n <Input\n autoFocus\n required\n label={t(\"neetoMessageTemplate.template.templateName\")}\n name=\"templateName\"\n />\n )}\n </div>\n );\n};\n\nexport default SaveAsTemplate;\n","import { eqBy, is, trim, when } from \"ramda\";\n\nexport const areValuesEqual = (value1, value2) => {\n const normalize = when(is(String), trim);\n\n return eqBy(normalize, value1, value2);\n};\n"],"names":["SaveAsTemplate","_useFormikContext","useFormikContext","shouldSaveAsTemplate","values","setFieldValue","_useTranslation","useTranslation","t","useEffect","handleCheckedChange","checked","_jsxs","className","children","_jsx","Switch","concat","hyphenate","label","name","onCheckedChange","Input","autoFocus","required","areValuesEqual","value1","value2","normalize","when","is","String","trim","eqBy"],"mappings":";;;;;;;;;;AAOA,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,GAAS;AAC3B,EAAA,IAAAC,iBAAA,GAGIC,uBAAgB,EAAE;AAFVC,IAAAA,oBAAoB,GAAAF,iBAAA,CAA9BG,MAAM,CAAID,oBAAoB;IAC9BE,aAAa,GAAAJ,iBAAA,CAAbI,aAAa;AAGf,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAETC,EAAAA,eAAS,CACP,YAAA;AAAA,IAAA,OAAM,YAAM;AACVJ,MAAAA,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAAC;AAC5CA,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;IACnC,CAAC;AAAA,EAAA,CAAA,EACD,EACF,CAAC;AAED,EAAA,IAAMK,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGC,OAAO,EAAI;IACrC,IAAI,CAACA,OAAO,EAAE;AACZN,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;AACnC,IAAA;AAEAA,IAAAA,aAAa,CAAC,sBAAsB,EAAEM,OAAO,CAAC;EAChD,CAAC;AAED,EAAA,oBACEC,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,yBAAyB;IAAAC,QAAA,EAAA,cACtCC,cAAA,CAACC,eAAM,EAAA;MACL,aAAA,EAAA,yBAAA,CAAAC,MAAA,CAAuCC,mBAAS,CAACV,CAAC,CAAC,iDAAiD,CAAC,CAAC,EAAA,SAAA,CAAU;AAChHW,MAAAA,KAAK,EAAEX,CAAC,CAAC,iDAAiD,CAAE;AAC5DY,MAAAA,IAAI,EAAC,sBAAsB;AAC3BC,MAAAA,eAAe,EAAEX;AAAoB,KACtC,CAAC,EACDP,oBAAoB,iBACnBY,cAAA,CAACO,cAAK,EAAA;MACJC,SAAS,EAAA,IAAA;MACTC,QAAQ,EAAA,IAAA;AACRL,MAAAA,KAAK,EAAEX,CAAC,CAAC,4CAA4C,CAAE;AACvDY,MAAAA,IAAI,EAAC;AAAc,KACpB,CACF;AAAA,GACE,CAAC;AAEV;;AC/CO,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,MAAM,EAAEC,MAAM,EAAK;EAChD,IAAMC,SAAS,GAAGC,UAAI,CAACC,QAAE,CAACC,MAAM,CAAC,EAAEC,UAAI,CAAC;AAExC,EAAA,OAAOC,UAAI,CAACL,SAAS,EAAEF,MAAM,EAAEC,MAAM,CAAC;AACxC;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-Cz5W3I3l.js","sources":["../app/javascript/src/components/commons/SaveAsTemplate.jsx","../app/javascript/src/components/utils.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { hyphenate } from \"neetocist\";\nimport { Input, Switch } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst SaveAsTemplate = () => {\n const {\n values: { shouldSaveAsTemplate },\n setFieldValue,\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n useEffect(\n () => () => {\n setFieldValue(\"shouldSaveAsTemplate\", false);\n setFieldValue(\"templateName\", \"\");\n },\n []\n );\n\n const handleChange = ({ target: { checked } }) => {\n if (!checked) {\n setFieldValue(\"templateName\", \"\");\n }\n\n setFieldValue(\"shouldSaveAsTemplate\", checked);\n };\n\n return (\n <div className=\"flex flex-col space-y-4\">\n <Switch\n data-testid={`neeto-message-template-${hyphenate(t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\"))}-switch`}\n label={t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\")}\n name=\"shouldSaveAsTemplate\"\n onChange={handleChange}\n />\n {shouldSaveAsTemplate && (\n <Input\n autoFocus\n required\n label={t(\"neetoMessageTemplate.template.templateName\")}\n name=\"templateName\"\n />\n )}\n </div>\n );\n};\n\nexport default SaveAsTemplate;\n","import { eqBy, is, trim, when } from \"ramda\";\n\nexport const areValuesEqual = (value1, value2) => {\n const normalize = when(is(String), trim);\n\n return eqBy(normalize, value1, value2);\n};\n"],"names":["SaveAsTemplate","_useFormikContext","useFormikContext","shouldSaveAsTemplate","values","setFieldValue","_useTranslation","useTranslation","t","useEffect","handleChange","_ref","checked","target","_jsxs","className","children","_jsx","Switch","concat","hyphenate","label","name","onChange","Input","autoFocus","required","areValuesEqual","value1","value2","normalize","when","is","String","trim","eqBy"],"mappings":";;;;;;;;;;;AAOA,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,GAAS;AAC3B,EAAA,IAAAC,iBAAA,GAGIC,uBAAgB,EAAE;AAFVC,IAAAA,oBAAoB,GAAAF,iBAAA,CAA9BG,MAAM,CAAID,oBAAoB;IAC9BE,aAAa,GAAAJ,iBAAA,CAAbI,aAAa;AAGf,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAETC,EAAAA,eAAS,CACP,YAAA;AAAA,IAAA,OAAM,YAAM;AACVJ,MAAAA,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAAC;AAC5CA,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;IACnC,CAAC;AAAA,EAAA,CAAA,EACD,EACF,CAAC;AAED,EAAA,IAAMK,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAAgC;AAAA,IAAA,IAAhBC,OAAO,GAAAD,IAAA,CAAjBE,MAAM,CAAID,OAAO;IACvC,IAAI,CAACA,OAAO,EAAE;AACZP,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;AACnC,IAAA;AAEAA,IAAAA,aAAa,CAAC,sBAAsB,EAAEO,OAAO,CAAC;EAChD,CAAC;AAED,EAAA,oBACEE,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,yBAAyB;IAAAC,QAAA,EAAA,cACtCC,cAAA,CAACC,MAAM,EAAA;MACL,aAAA,EAAA,yBAAA,CAAAC,MAAA,CAAuCC,mBAAS,CAACZ,CAAC,CAAC,iDAAiD,CAAC,CAAC,EAAA,SAAA,CAAU;AAChHa,MAAAA,KAAK,EAAEb,CAAC,CAAC,iDAAiD,CAAE;AAC5Dc,MAAAA,IAAI,EAAC,sBAAsB;AAC3BC,MAAAA,QAAQ,EAAEb;AAAa,KACxB,CAAC,EACDP,oBAAoB,iBACnBc,cAAA,CAACO,KAAK,EAAA;MACJC,SAAS,EAAA,IAAA;MACTC,QAAQ,EAAA,IAAA;AACRL,MAAAA,KAAK,EAAEb,CAAC,CAAC,4CAA4C,CAAE;AACvDc,MAAAA,IAAI,EAAC;AAAc,KACpB,CACF;AAAA,GACE,CAAC;AAEV;;AC/CO,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,MAAM,EAAEC,MAAM,EAAK;EAChD,IAAMC,SAAS,GAAGC,UAAI,CAACC,QAAE,CAACC,MAAM,CAAC,EAAEC,UAAI,CAAC;AAExC,EAAA,OAAOC,UAAI,CAACL,SAAS,EAAEF,MAAM,EAAEC,MAAM,CAAC;AACxC;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-DddrNhQe.js","sources":["../app/javascript/src/components/commons/SaveAsTemplate.jsx","../app/javascript/src/components/utils.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { hyphenate } from \"neetocist\";\nimport { Input, Switch } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst SaveAsTemplate = () => {\n const {\n values: { shouldSaveAsTemplate },\n setFieldValue,\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n useEffect(\n () => () => {\n setFieldValue(\"shouldSaveAsTemplate\", false);\n setFieldValue(\"templateName\", \"\");\n },\n []\n );\n\n const handleChange = ({ target: { checked } }) => {\n if (!checked) {\n setFieldValue(\"templateName\", \"\");\n }\n\n setFieldValue(\"shouldSaveAsTemplate\", checked);\n };\n\n return (\n <div className=\"flex flex-col space-y-4\">\n <Switch\n data-testid={`neeto-message-template-${hyphenate(t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\"))}-switch`}\n label={t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\")}\n name=\"shouldSaveAsTemplate\"\n onChange={handleChange}\n />\n {shouldSaveAsTemplate && (\n <Input\n autoFocus\n required\n label={t(\"neetoMessageTemplate.template.templateName\")}\n name=\"templateName\"\n />\n )}\n </div>\n );\n};\n\nexport default SaveAsTemplate;\n","import { eqBy, is, trim, when } from \"ramda\";\n\nexport const areValuesEqual = (value1, value2) => {\n const normalize = when(is(String), trim);\n\n return eqBy(normalize, value1, value2);\n};\n"],"names":["SaveAsTemplate","_useFormikContext","useFormikContext","shouldSaveAsTemplate","values","setFieldValue","_useTranslation","useTranslation","t","useEffect","handleChange","_ref","checked","target","_jsxs","className","children","_jsx","Switch","concat","hyphenate","label","name","onChange","Input","autoFocus","required","areValuesEqual","value1","value2","normalize","when","is","String","trim","eqBy"],"mappings":";;;;;;;;;AAOA,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,GAAS;AAC3B,EAAA,IAAAC,iBAAA,GAGIC,gBAAgB,EAAE;AAFVC,IAAAA,oBAAoB,GAAAF,iBAAA,CAA9BG,MAAM,CAAID,oBAAoB;IAC9BE,aAAa,GAAAJ,iBAAA,CAAbI,aAAa;AAGf,EAAA,IAAAC,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAETC,EAAAA,SAAS,CACP,YAAA;AAAA,IAAA,OAAM,YAAM;AACVJ,MAAAA,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAAC;AAC5CA,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;IACnC,CAAC;AAAA,EAAA,CAAA,EACD,EACF,CAAC;AAED,EAAA,IAAMK,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAAgC;AAAA,IAAA,IAAhBC,OAAO,GAAAD,IAAA,CAAjBE,MAAM,CAAID,OAAO;IACvC,IAAI,CAACA,OAAO,EAAE;AACZP,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;AACnC,IAAA;AAEAA,IAAAA,aAAa,CAAC,sBAAsB,EAAEO,OAAO,CAAC;EAChD,CAAC;AAED,EAAA,oBACEE,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,yBAAyB;IAAAC,QAAA,EAAA,cACtCC,GAAA,CAACC,MAAM,EAAA;MACL,aAAA,EAAA,yBAAA,CAAAC,MAAA,CAAuCC,SAAS,CAACZ,CAAC,CAAC,iDAAiD,CAAC,CAAC,EAAA,SAAA,CAAU;AAChHa,MAAAA,KAAK,EAAEb,CAAC,CAAC,iDAAiD,CAAE;AAC5Dc,MAAAA,IAAI,EAAC,sBAAsB;AAC3BC,MAAAA,QAAQ,EAAEb;AAAa,KACxB,CAAC,EACDP,oBAAoB,iBACnBc,GAAA,CAACO,KAAK,EAAA;MACJC,SAAS,EAAA,IAAA;MACTC,QAAQ,EAAA,IAAA;AACRL,MAAAA,KAAK,EAAEb,CAAC,CAAC,4CAA4C,CAAE;AACvDc,MAAAA,IAAI,EAAC;AAAc,KACpB,CACF;AAAA,GACE,CAAC;AAEV;;AC/CO,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,MAAM,EAAEC,MAAM,EAAK;EAChD,IAAMC,SAAS,GAAGC,IAAI,CAACC,EAAE,CAACC,MAAM,CAAC,EAAEC,IAAI,CAAC;AAExC,EAAA,OAAOC,IAAI,CAACL,SAAS,EAAEF,MAAM,EAAEC,MAAM,CAAC;AACxC;;;;"}
|