@bigbinary/neeto-message-templates-frontend 2.0.6 → 2.0.8

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.
Files changed (84) hide show
  1. package/README.md +0 -2
  2. package/app/javascript/src/translations/hu.json +119 -0
  3. package/dist/.ready +1 -0
  4. package/dist/ApiTemplates.js +14 -13
  5. package/dist/ApiTemplates.js.map +1 -1
  6. package/dist/JsonEditor-BHy4s0Bo.js +402 -0
  7. package/dist/JsonEditor-BHy4s0Bo.js.map +1 -0
  8. package/dist/JsonEditor-BMMyHPxh.js +434 -0
  9. package/dist/JsonEditor-BMMyHPxh.js.map +1 -0
  10. package/dist/{JsonEditor-CGNPIMpX.js → JsonEditor-DEKfDX8p.js} +2 -5
  11. package/dist/{JsonEditor-CGNPIMpX.js.map → JsonEditor-DEKfDX8p.js.map} +1 -1
  12. package/dist/{JsonEditor-CLHGjppr.js → JsonEditor-DihhWMI5.js} +2 -5
  13. package/dist/{JsonEditor-CLHGjppr.js.map → JsonEditor-DihhWMI5.js.map} +1 -1
  14. package/dist/MessageTemplates.js +33 -43
  15. package/dist/MessageTemplates.js.map +1 -1
  16. package/dist/SendMessagePane.js +5 -5
  17. package/dist/SendMessagePane.js.map +1 -1
  18. package/dist/SendToApiPane.js +5 -4
  19. package/dist/SendToApiPane.js.map +1 -1
  20. package/dist/adaptive_input-BpXdshqg.js +17 -0
  21. package/dist/adaptive_input-BpXdshqg.js.map +1 -0
  22. package/dist/adaptive_input-Cd_EArae.js +19 -0
  23. package/dist/adaptive_input-Cd_EArae.js.map +1 -0
  24. package/dist/cjs/ApiTemplates.js +13 -12
  25. package/dist/cjs/ApiTemplates.js.map +1 -1
  26. package/dist/cjs/MessageTemplates.js +35 -45
  27. package/dist/cjs/MessageTemplates.js.map +1 -1
  28. package/dist/cjs/SendMessagePane.js +4 -4
  29. package/dist/cjs/SendMessagePane.js.map +1 -1
  30. package/dist/cjs/SendToApiPane.js +5 -4
  31. package/dist/cjs/SendToApiPane.js.map +1 -1
  32. package/dist/cjs/index.js +5 -4
  33. package/dist/cjs/index.js.map +1 -1
  34. package/dist/cjs/v2/ApiTemplates.js +461 -0
  35. package/dist/cjs/v2/ApiTemplates.js.map +1 -0
  36. package/dist/cjs/v2/MessageTemplates.js +849 -0
  37. package/dist/cjs/v2/MessageTemplates.js.map +1 -0
  38. package/dist/cjs/v2/SendMessagePane.js +451 -0
  39. package/dist/cjs/v2/SendMessagePane.js.map +1 -0
  40. package/dist/cjs/v2/SendToApiPane.js +244 -0
  41. package/dist/cjs/v2/SendToApiPane.js.map +1 -0
  42. package/dist/cjs/v2/index.js +57 -0
  43. package/dist/cjs/v2/index.js.map +1 -0
  44. package/dist/{constants-D4v0xTUu.js → constants-B2GWdy9V.js} +2 -2
  45. package/dist/{constants-D4v0xTUu.js.map → constants-B2GWdy9V.js.map} +1 -1
  46. package/dist/constants-CX95xIS-.js +44 -0
  47. package/dist/constants-CX95xIS-.js.map +1 -0
  48. package/dist/constants-Cvnks2UE.js +49 -0
  49. package/dist/constants-Cvnks2UE.js.map +1 -0
  50. package/dist/index.js +6 -5
  51. package/dist/index.js.map +1 -1
  52. package/dist/inject-css-B6qYtOJe.js +6 -0
  53. package/dist/inject-css-B6qYtOJe.js.map +1 -0
  54. package/dist/inject-css-C2dztUxs.js +4 -0
  55. package/dist/inject-css-C2dztUxs.js.map +1 -0
  56. package/dist/json_editor-Co5e3Chh.js +5 -0
  57. package/dist/json_editor-Co5e3Chh.js.map +1 -0
  58. package/dist/json_editor-CvRhtSA3.js +7 -0
  59. package/dist/json_editor-CvRhtSA3.js.map +1 -0
  60. package/dist/{useTemplatesApi-BBQsbYMK.js → useTemplatesApi-CMkDeBa9.js} +2 -2
  61. package/dist/{useTemplatesApi-BBQsbYMK.js.map → useTemplatesApi-CMkDeBa9.js.map} +1 -1
  62. package/dist/{useTemplatesApi-DHrOrdXb.js → useTemplatesApi-byHuEDTl.js} +2 -2
  63. package/dist/{useTemplatesApi-DHrOrdXb.js.map → useTemplatesApi-byHuEDTl.js.map} +1 -1
  64. package/dist/utils-BGEmI_om.js +49 -0
  65. package/dist/utils-BGEmI_om.js.map +1 -0
  66. package/dist/utils-CLc_-Ysi.js +52 -0
  67. package/dist/utils-CLc_-Ysi.js.map +1 -0
  68. package/dist/utils-Cz5W3I3l.js.map +1 -1
  69. package/dist/utils-DddrNhQe.js.map +1 -1
  70. package/dist/v2/ApiTemplates.js +459 -0
  71. package/dist/v2/ApiTemplates.js.map +1 -0
  72. package/dist/v2/MessageTemplates.js +828 -0
  73. package/dist/v2/MessageTemplates.js.map +1 -0
  74. package/dist/v2/SendMessagePane.js +430 -0
  75. package/dist/v2/SendMessagePane.js.map +1 -0
  76. package/dist/v2/SendToApiPane.js +223 -0
  77. package/dist/v2/SendToApiPane.js.map +1 -0
  78. package/dist/v2/index.js +48 -0
  79. package/dist/v2/index.js.map +1 -0
  80. package/package.json +45 -36
  81. package/dist/inject-css-DmrvuTKK.js +0 -4
  82. package/dist/inject-css-DmrvuTKK.js.map +0 -1
  83. package/dist/inject-css-vQvjPR2x.js +0 -6
  84. package/dist/inject-css-vQvjPR2x.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageTemplates.js","sources":["../../app/javascript/src/v2/components/MessageTemplates/constants.js","../../app/javascript/src/v2/components/MessageTemplates/List/constants.js","../../app/javascript/src/v2/components/MessageTemplates/List/utils.js","../../app/javascript/src/v2/components/MessageTemplates/List/RowActions.jsx","../../app/javascript/src/v2/components/MessageTemplates/utils.jsx","../../app/javascript/src/v2/components/commons/FormikAdaptiveInput.jsx","../../app/javascript/src/v2/components/MessageTemplates/AddEdit/constants.js","../../app/javascript/src/v2/components/MessageTemplates/AddEdit/TestMessage.jsx","../../app/javascript/src/v2/components/MessageTemplates/AddEdit/Form.jsx","../../app/javascript/src/v2/components/MessageTemplates/AddEdit/index.jsx","../../app/javascript/src/v2/components/MessageTemplates/hooks/useFilter.js","../../app/javascript/src/v2/components/MessageTemplates/hooks/useTemplates.js","../../app/javascript/src/v2/components/MessageTemplates/List/index.jsx","../../app/javascript/src/v2/components/MessageTemplates/index.jsx"],"sourcesContent":["export const MESSAGE_TEMPLATE_INITIAL_STATE = {\n isOpen: false,\n isEdit: false,\n isDelete: false,\n template: {},\n};\n","export const MENU_ITEMS = { EDIT: \"edit\", DELETE: \"delete\", STATUS: \"status\" };\n","import { t } from \"i18next\";\nimport { equals } from \"ramda\";\n\nimport { MENU_ITEMS } from \"./constants\";\n\nexport const getMenuItems = ({\n handleDeleteTemplate,\n handleEditTemplate,\n handleMarkActiveInactive,\n status,\n}) => [\n {\n key: MENU_ITEMS.EDIT,\n label: t(\"neetoMessageTemplate.template.edit\"),\n onClick: handleEditTemplate,\n \"data-testid\": \"message-template-edit-button\",\n },\n {\n key: MENU_ITEMS.STATUS,\n label: equals(status, \"active\")\n ? t(\"neetoMessageTemplate.template.markAsInactive\")\n : t(\"neetoMessageTemplate.template.markAsActive\"),\n onClick: () => handleMarkActiveInactive(status),\n \"data-testid\": \"message-template-status-button\",\n },\n {\n key: MENU_ITEMS.DELETE,\n label: t(\"neetoMessageTemplate.template.delete\"),\n onClick: handleDeleteTemplate,\n \"data-testid\": \"message-template-delete-button\",\n },\n];\n","import MoreDropdown from \"neetomolecules/v2/MoreDropdown\";\nimport { prop } from \"ramda\";\n\nimport { useUpdateTemplate } from \"hooks/reactQuery/useTemplatesApi\";\nimport useTemplateStore from \"src/stores/useTemplateStore\";\nimport { MESSAGE_TEMPLATE_INITIAL_STATE } from \"v2/components/MessageTemplates/constants\";\n\nimport { getMenuItems } from \"./utils\";\n\nconst RowActions = ({\n template,\n setManageTemplatePane,\n ownerId,\n onMutationSuccess,\n}) => {\n const { mutate: update } = useUpdateTemplate(ownerId);\n\n const { status, id } = template;\n\n const templateType = useTemplateStore(prop(\"templateType\"));\n\n const handleEditTemplate = () =>\n setManageTemplatePane({\n ...MESSAGE_TEMPLATE_INITIAL_STATE,\n isOpen: true,\n isEdit: true,\n template,\n });\n\n const handleDeleteTemplate = () =>\n setManageTemplatePane({\n ...MESSAGE_TEMPLATE_INITIAL_STATE,\n isDelete: true,\n template,\n });\n\n const handleMarkActiveInactive = activeState => {\n const status = activeState === \"active\" ? \"inactive\" : \"active\";\n update(\n { payload: { status, templateType }, id },\n { onSuccess: onMutationSuccess }\n );\n };\n\n return (\n <MoreDropdown\n dropdownButtonProps={{\n \"data-testid\": \"message-template-dropdown\",\n className: \"me-1 my-1\",\n }}\n menuItems={getMenuItems({\n handleDeleteTemplate,\n handleEditTemplate,\n handleMarkActiveInactive,\n status,\n })}\n />\n );\n};\n\nexport default RowActions;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport { hyphenate, truncate } from \"neetocist\";\n\nimport { MESSAGE_TEMPLATE_INITIAL_STATE } from \"./constants\";\nimport RowActions from \"./List/RowActions\";\n\nconst handleEditTemplate = (setManageTemplatePane, template) =>\n setManageTemplatePane({\n ...MESSAGE_TEMPLATE_INITIAL_STATE,\n isOpen: true,\n isEdit: true,\n template,\n });\n\nexport const renderSearchProps = (label, value) => ({\n className: \"w-52\",\n placeholder: t(\"neetoMessageTemplate.template.search\", {\n what: label,\n }),\n \"data-testid\": `${hyphenate(value)}-search-input`,\n});\n\n// These column definitions serve double duty, exactly as they did in v1: the\n// TanStack keys (`id`/`accessorKey`/`header`/`size`/`cell`) feed atoms'\n// DataTable, while the filter keys (`key`/`node`/`label`/`type`/`values`) feed\n// neetofilters via `useFilters`. Keep both sets in sync when editing.\nexport const buildTableColumnData = (\n setManageTemplatePane,\n ownerId,\n onMutationSuccess\n) => [\n {\n accessorKey: \"name\",\n id: \"name\",\n key: \"name\",\n node: \"name\",\n header: t(\"neetoMessageTemplate.template.name\"),\n label: t(\"neetoMessageTemplate.template.name\"),\n type: \"text\",\n size: 200,\n cell: ({ row: { original: template } }) => (\n <div className=\"flex items-center justify-between gap-x-3\">\n <Button\n label={truncate(template.name, 100)}\n variant=\"link\"\n onClick={() => handleEditTemplate(setManageTemplatePane, template)}\n />\n <RowActions\n {...{ onMutationSuccess, ownerId, setManageTemplatePane, template }}\n />\n </div>\n ),\n },\n {\n accessorKey: \"status\",\n id: \"status\",\n key: \"status\",\n node: \"status\",\n header: t(\"neetoMessageTemplate.template.active\"),\n label: t(\"neetoMessageTemplate.template.active\"),\n type: \"single_option\",\n values: [\n { label: \"Yes\", value: \"active\" },\n { label: \"No\", value: \"inactive\" },\n ],\n cell: ({ getValue }) => (getValue() === \"active\" ? \"Yes\" : \"No\"),\n size: 180,\n },\n];\n","import { Textarea } from \"@bigbinary/neeto-atoms/formik\";\nimport { useFormikContext } from \"formik\";\n\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/components/adaptive_input.css\";\n\nconst FormikAdaptiveInput = ({ label, name, ...otherProps }) => {\n const { submitForm } = useFormikContext();\n\n const handleKeyDown = event => {\n if (event.key !== \"Enter\" || event.shiftKey) return;\n event.preventDefault();\n submitForm();\n };\n\n return (\n <Textarea\n {...{ label, name }}\n className=\"neeto-message-templates-nano-adaptive-input\"\n resize=\"none\"\n size=\"small\"\n onKeyDown={handleKeyDown}\n {...otherProps}\n />\n );\n};\n\nexport default FormikAdaptiveInput;\n","import { t } from \"i18next\";\nimport { isPhoneNumberValid } from \"neetomolecules/v2/PhoneNumber\";\nimport * as yup from \"yup\";\n\n// eslint-disable-next-line @bigbinary/neeto/file-name-and-export-name-standards\nexport const formatEditorContent = value =>\n value?.replaceAll(/<\\/?(?!img)\\w*\\b[^>]*>/gi, \"\").trim();\n\nexport const EMAIL_TEMPLATE_INITIAL_VALUES = {\n name: \"\",\n subject: \"\",\n body: \"\",\n testEmailAddress: \"\",\n};\n\nexport const SMS_TEMPLATE_INITIAL_VALUES = {\n name: \"\",\n body: \"\",\n testPhoneNumber: \"\",\n};\n\nexport const EMAIL_TEMPLATE_FORM_SCHEMA = yup.object({\n name: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.namePresence\")),\n subject: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.subjectPresence\")),\n body: yup\n .string()\n .test(\n \"name\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n ),\n});\n\nexport const SMS_TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object({\n name: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.namePresence\")),\n body: yup\n .string()\n .test(\n \"body\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n ),\n});\n\nexport const SEND_TEST_EMAIL_SCHEMA = yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.emailAddressPresence\"))\n .email(\n t(\"neetoMessageTemplate.template.validation.emailAddressFormatValidation\")\n );\n\nexport const PHONE_NUMBER_VALIDATION_SCHEMA = yup\n .string()\n .test(\n \"testPhoneNumber\",\n t(\"neetoMessageTemplate.template.validation.validPhoneNumber\"),\n value => isPhoneNumberValid(value)\n );\n","import { useState } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport { Input } from \"@bigbinary/neeto-atoms/formik\";\nimport { useFormikContext } from \"formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n PHONE_NUMBER_VALIDATION_SCHEMA,\n SEND_TEST_EMAIL_SCHEMA,\n} from \"./constants\";\n\nconst TestMessage = ({\n isEmailTemplate,\n handleSubmitTestTemplate,\n isTestMessageLoading,\n isTestingTemplateDisabled,\n customFields,\n}) => {\n const [isTestingTemplateRestricted, setIsTestingTemplateRestricted] =\n useState(true);\n const { values, isValid } = useFormikContext();\n\n const { t } = useTranslation();\n\n const handleTestValidation = async event => {\n const {\n target: { value },\n } = event;\n try {\n isEmailTemplate\n ? await SEND_TEST_EMAIL_SCHEMA.validate(value)\n : await PHONE_NUMBER_VALIDATION_SCHEMA.validate(value);\n setIsTestingTemplateRestricted(false);\n } catch {\n setIsTestingTemplateRestricted(true);\n }\n };\n\n const isTestTemplateButtonDisabled =\n !isValid ||\n isTestingTemplateDisabled ||\n isTestingTemplateRestricted ||\n isTestMessageLoading;\n\n const handleKeyDown = event => {\n if (event.key !== \"Enter\") return;\n event.stopPropagation();\n event.preventDefault();\n !isTestTemplateButtonDisabled && handleSubmitTestTemplate(values);\n };\n\n return (\n <>\n <div className=\"start-0 flex items-start gap-x-2\">\n <Input\n data-testid=\"message-template-test-input\"\n {...(!isEmailTemplate && {\n helpText: t(\"neetoMessageTemplate.template.phoneNumberHelpText\"),\n })}\n name={isEmailTemplate ? \"testEmailAddress\" : \"testPhoneNumber\"}\n placeholder={t(\n isEmailTemplate\n ? \"neetoMessageTemplate.template.emailAddress\"\n : \"neetoMessageTemplate.template.phoneNumber\"\n )}\n onKeyDown={handleKeyDown}\n onKeyUp={handleTestValidation}\n />\n <Button\n data-testid=\"message-template-test-button\"\n disabled={isTestTemplateButtonDisabled}\n loading={isTestMessageLoading}\n type=\"button\"\n variant=\"default\"\n label={\n isEmailTemplate\n ? t(\"neetoMessageTemplate.template.sendTestEmail\")\n : t(\"neetoMessageTemplate.template.sendTestSms\")\n }\n onClick={() => handleSubmitTestTemplate(values)}\n />\n </div>\n {!isEmailTemplate && (\n <Typography variant=\"body2\">\n {t(\"neetoMessageTemplate.sendMessage.testSmsNote\")}\n </Typography>\n )}\n {customFields}\n </>\n );\n};\n\nexport default TestMessage;\n","import { useRef } from \"react\";\n\nimport { Sheet } from \"@bigbinary/neeto-atoms\";\nimport {\n Form as NeetoUIForm,\n Input,\n ActionBlock,\n} from \"@bigbinary/neeto-atoms/formik\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { equals, includes, mergeLeft, omit, pick, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useTemplateStore from \"src/stores/useTemplateStore\";\nimport FormikAdaptiveInput from \"v2/components/commons/FormikAdaptiveInput\";\nimport { DEFAULT_EDITOR_ROW_COUNT } from \"v2/components/constants\";\n\nimport {\n EMAIL_TEMPLATE_FORM_SCHEMA,\n EMAIL_TEMPLATE_INITIAL_VALUES,\n SMS_TEMPLATE_FORM_VALIDATION_SCHEMA,\n SMS_TEMPLATE_INITIAL_VALUES,\n} from \"./constants\";\nimport TestMessage from \"./TestMessage\";\n\nconst Form = ({\n onClose,\n isEdit,\n template = {},\n createUpdateTemplate,\n setInitialFocusField,\n handleSubmitTestTemplate,\n isTestMessageLoading,\n shouldIncludeTestTemplate,\n templateVariables,\n isTestingTemplateDisabled,\n customFields,\n onMutationSuccess,\n}) => {\n const { t } = useTranslation();\n\n const editorRef = useRef(null);\n const templateType = useTemplateStore(prop(\"templateType\"));\n const isEmailTemplate = equals(templateType, \"email_template\");\n const isTestTemplateVisible =\n includes(templateType, [\"sms_template\", \"email_template\"]) &&\n shouldIncludeTestTemplate;\n\n const [TEMPLATE_INITIAL_VALUES, TEMPLATE_FORM_SCHEMA] = isEmailTemplate\n ? [\n {\n ...EMAIL_TEMPLATE_INITIAL_VALUES,\n ...pick([\"name\", \"body\", \"subject\", \"active\"], template),\n },\n EMAIL_TEMPLATE_FORM_SCHEMA,\n ]\n : [\n {\n ...SMS_TEMPLATE_INITIAL_VALUES,\n ...pick([\"name\", \"body\", \"active\"], template),\n },\n SMS_TEMPLATE_FORM_VALIDATION_SCHEMA,\n ];\n\n const handleSubmit = values => {\n const filteredValues = isEmailTemplate\n ? omit([\"name\", \"testEmailAddress\"], values)\n : omit([\"name\", \"testPhoneNumber\"], values);\n\n const payload = {\n templateType,\n name: values.name,\n entity: mergeLeft({ id: template.id }, filteredValues),\n };\n\n createUpdateTemplate(\n { isEdit, payload, id: template.id },\n {\n onSuccess: (...args) => {\n onMutationSuccess(...args);\n onClose();\n },\n }\n );\n };\n\n const messageBodyLabel = isEmailTemplate\n ? t(\"neetoMessageTemplate.template.emailBody\")\n : t(\"neetoMessageTemplate.template.smsBody\");\n\n return (\n <NeetoUIForm\n formProps={{\n noValidate: true,\n className: \"flex w-full flex-col gap-y-4 pb-6\",\n }}\n formikProps={{\n initialValues: TEMPLATE_INITIAL_VALUES,\n validationSchema: TEMPLATE_FORM_SCHEMA,\n validateOnBlur: true,\n validateOnChange: true,\n onSubmit: handleSubmit,\n }}\n >\n <Input\n required\n label={t(\"neetoMessageTemplate.template.templateName\")}\n name=\"name\"\n ref={setInitialFocusField}\n />\n {isEmailTemplate && (\n <FormikAdaptiveInput\n required\n label={t(\"neetoMessageTemplate.template.emailSubject\")}\n name=\"subject\"\n />\n )}\n <FormikEditor\n hideSlashCommands\n required\n contentClassName=\"max-h-40\"\n defaults={isEmailTemplate ? undefined : []}\n label={messageBodyLabel}\n name=\"body\"\n ref={editorRef}\n rows={DEFAULT_EDITOR_ROW_COUNT}\n variables={templateVariables}\n />\n {isTestTemplateVisible && (\n <TestMessage\n {...{\n customFields,\n handleSubmitTestTemplate,\n isEmailTemplate,\n isTestMessageLoading,\n isTestingTemplateDisabled,\n }}\n />\n )}\n <Sheet.Footer className=\"absolute bottom-0 start-0\">\n <ActionBlock\n cancelButtonProps={{\n \"data-testid\": \"message-template-reset-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-testid\": \"message-template-submit-button\",\n }}\n />\n </Sheet.Footer>\n </NeetoUIForm>\n );\n};\nexport default Form;\n","import { useRef } from \"react\";\n\nimport { Sheet } from \"@bigbinary/neeto-atoms\";\n\nimport Form from \"./Form\";\n\nconst AddEdit = ({\n onClose,\n createUpdateTemplate,\n manageTemplatePane,\n isTestMessageLoading,\n handleSubmitTestTemplate,\n shouldIncludeTestTemplate,\n addText,\n editText,\n templateVariables,\n isTestingTemplateDisabled,\n customFields,\n onMutationSuccess,\n}) => {\n const initialFocusField = useRef(null);\n\n const { isOpen, isEdit, template } = manageTemplatePane;\n const label = isEdit ? editText : addText;\n\n return (\n <Sheet {...{ isOpen, onClose }} initialFocusRef={initialFocusField}>\n <Sheet.Header>\n <Sheet.Title>{label}</Sheet.Title>\n </Sheet.Header>\n <Sheet.Body>\n <Form\n {...{\n createUpdateTemplate,\n customFields,\n handleSubmitTestTemplate,\n isEdit,\n isTestMessageLoading,\n isTestingTemplateDisabled,\n onClose,\n onMutationSuccess,\n shouldIncludeTestTemplate,\n template,\n templateVariables,\n }}\n setInitialFocusField={initialFocusField}\n />\n </Sheet.Body>\n </Sheet>\n );\n};\n\nexport default AddEdit;\n","import { useState } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/v2/react-utils\";\nimport { buildFiltersFromURL } from \"neetofilters\";\nimport { prop } from \"ramda\";\n\nimport { DEFAULT_PAGE_PROPERTIES } from \"v2/components/constants\";\nimport { buildTableColumnData } from \"v2/components/MessageTemplates/utils\";\n\nconst useFilters = () => {\n const [pageProperties, setPageProperties] = useState(DEFAULT_PAGE_PROPERTIES);\n\n const { searchTerm = \"\" } = useQueryParams();\n\n const filterColumns = buildTableColumnData().filter(prop(\"node\"));\n const searchKeywordProps = {\n key: \"search_term\",\n node: \"name\",\n value: searchTerm,\n setValue: noop,\n };\n\n const [filters, setFilters] = useState(() =>\n buildFiltersFromURL([...filterColumns, searchKeywordProps])\n );\n\n return {\n filterColumns,\n searchKeywordProps,\n searchTerm,\n filters,\n setFilters,\n pageProperties,\n setPageProperties,\n };\n};\nexport default useFilters;\n","import { isEmpty } from \"ramda\";\n\nimport {\n useCreateTemplate,\n useFetchTemplates,\n useUpdateTemplate,\n} from \"hooks/reactQuery/useTemplatesApi\";\nimport { MESSAGE_TEMPLATES } from \"v2/components/constants\";\n\nconst useTemplates = ({ type, ownerId, filters, pageProperties }) => {\n const { index: pageIndex, size: pageSize } = pageProperties;\n const templateParams = {\n page: pageIndex,\n pageSize,\n filters,\n templateType: MESSAGE_TEMPLATES[type].value,\n ownerId: isEmpty(ownerId) ? undefined : ownerId,\n };\n\n const {\n data: templatesData = {},\n isLoading: isLoadingTemplates,\n isFetching,\n } = useFetchTemplates(templateParams);\n\n const { mutate: create } = useCreateTemplate(ownerId);\n\n const { mutate: update } = useUpdateTemplate(ownerId);\n\n const createUpdateTemplate = ({ isEdit, payload, id = null }, options) =>\n isEdit ? update({ id, payload }, options) : create(payload, options);\n\n const isLoaderVisible = isLoadingTemplates || isFetching;\n\n return {\n templatesData,\n isLoading: isLoaderVisible,\n createUpdateTemplate,\n };\n};\n\nexport default useTemplates;\n","import { Alert, Button, DataTable, Empty } from \"@bigbinary/neeto-atoms\";\nimport TableWrapper from \"neetomolecules/v2/TableWrapper\";\nimport { assoc, isEmpty } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { useDeleteTemplate } from \"hooks/reactQuery/useTemplatesApi\";\nimport { buildTableColumnData } from \"v2/components/MessageTemplates/utils\";\n\nconst List = ({\n setManageTemplatePane,\n templatesData,\n isLoading,\n manageTemplatePane,\n labelSingular,\n setPageProperties,\n pageProperties,\n label,\n addText,\n isFilterApplied,\n ownerId,\n type,\n onMutationSuccess,\n helpDocUrl,\n}) => {\n const { t } = useTranslation();\n const { mutate: deleteTemplate, isPending: isDeleting } =\n useDeleteTemplate(ownerId);\n\n const { templates, totalCount } = templatesData;\n const { template, isDelete } = manageTemplatePane;\n const { index: pageIndex, size: pageSize } = pageProperties;\n const isSms = type === \"sms\";\n const typeLabelSingular = isSms ? labelSingular : labelSingular.toLowerCase();\n const emptyStateLabel = isSms ? label : label.toLowerCase();\n\n const noDataProps = {\n ...(!isFilterApplied && {\n primaryButtonProps: {\n label: addText,\n onClick: () => setManageTemplatePane(assoc(\"isOpen\", true)),\n },\n helpText: (\n <Trans\n i18nKey=\"neetoMessageTemplate.template.linkToHelpArticle\"\n values={{ entity: label }}\n components={{\n Link: <Button href={helpDocUrl} target=\"_blank\" variant=\"link\" />,\n }}\n />\n ),\n }),\n title: isFilterApplied\n ? t(\"neetoMessageTemplate.template.filtersEmptyState\", {\n type: emptyStateLabel,\n })\n : t(\"neetoMessageTemplate.template.emptyState\", {\n type: emptyStateLabel,\n }),\n };\n\n const handleDelete = () => {\n deleteTemplate(template.id, {\n onSuccess: onMutationSuccess,\n onSettled: () => {\n setManageTemplatePane(assoc(\"isDelete\", false));\n },\n });\n };\n\n return (\n <>\n {!isEmpty(templates) ? (\n <TableWrapper hasPagination={totalCount > pageSize}>\n <DataTable\n {...{ pageSize, totalCount }}\n currentPage={pageIndex}\n data={templates}\n enableURLPagination={false}\n loading={isLoading}\n columns={buildTableColumnData(\n setManageTemplatePane,\n ownerId,\n onMutationSuccess\n )}\n onPageChange={index => setPageProperties({ index, size: pageSize })}\n />\n </TableWrapper>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Empty {...noDataProps} />\n </div>\n )}\n <Alert\n isOpen={isDelete}\n isSubmitting={isDeleting}\n submitButtonLabel={t(\"neetoMessageTemplate.template.delete\")}\n message={\n <Trans\n i18nKey=\"neetoMessageTemplate.template.templateDeleteConfirmation\"\n values={{ name: template.name }}\n />\n }\n title={t(\"neetoMessageTemplate.template.deleteTemplate\", {\n label: typeLabelSingular,\n })}\n onClose={() => setManageTemplatePane(assoc(\"isDelete\", false))}\n onSubmit={handleDelete}\n />\n </>\n );\n};\n\nexport default List;\n","import { useEffect, useState } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport { hyphenate, isNotEmpty, noop } from \"neetocist\";\nimport { Bar as FiltersBar } from \"neetofilters\";\nimport Container from \"neetomolecules/v2/Container\";\nimport NeetoHeader from \"neetomolecules/v2/Header\";\nimport SubHeader from \"neetomolecules/v2/SubHeader\";\nimport { assoc, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useTemplateStore from \"src/stores/useTemplateStore\";\nimport {\n DEFAULT_PAGE_PROPERTIES,\n MESSAGE_TEMPLATES,\n MESSAGE_TYPES,\n} from \"v2/components/constants\";\nimport { renderSearchProps } from \"v2/components/MessageTemplates/utils\";\n\nimport AddEdit from \"./AddEdit\";\nimport { MESSAGE_TEMPLATE_INITIAL_STATE } from \"./constants\";\nimport useFilters from \"./hooks/useFilter\";\nimport useTemplates from \"./hooks/useTemplates\";\nimport List from \"./List\";\n\nconst MessageTemplates = ({\n breadcrumbs = [],\n type = \"\",\n handleSubmitTestTemplate = noop,\n isTestMessageLoading = false,\n shouldIncludeTestTemplate = true,\n templateVariables = {},\n ownerId = \"\",\n isTestingTemplateDisabled = false,\n manageTemplatesPaneCustomFields = null,\n onMutationSuccess = noop,\n helpPopoverProps = {},\n}) => {\n const [manageTemplatePane, setManageTemplatePane] = useState(\n MESSAGE_TEMPLATE_INITIAL_STATE\n );\n const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);\n\n const { t } = useTranslation();\n\n const {\n searchKeywordProps,\n filterColumns,\n searchTerm,\n filters,\n setFilters,\n pageProperties,\n setPageProperties,\n } = useFilters();\n\n const { isLoading, templatesData, createUpdateTemplate } = useTemplates({\n type,\n ownerId,\n filters,\n pageProperties,\n });\n\n const setTemplateState = useTemplateStore(prop(\"setTemplateState\"));\n\n const { label, value, addText, labelSingular, editText } =\n MESSAGE_TEMPLATES[type];\n\n const isFilterApplied = isNotEmpty(filters) || isNotEmpty(searchTerm);\n\n const handleActionClick = () =>\n setManageTemplatePane({ ...MESSAGE_TEMPLATE_INITIAL_STATE, isOpen: true });\n\n const handleChange = filters => {\n setFilters(filters);\n setPageProperties(DEFAULT_PAGE_PROPERTIES);\n };\n\n const templatesCount = templatesData?.totalCount || 0;\n\n useEffect(() => {\n setTemplateState({ templateType: value });\n }, [value]);\n\n const shouldShowTemplatesCount =\n !isLoading && (isFilterApplied || templatesCount > 0);\n\n const helpDocUrl = helpPopoverProps?.helpLinkProps?.href || \"\";\n\n return (\n <Container>\n <NeetoHeader\n {...{ breadcrumbs }}\n size=\"small\"\n title={label}\n actionBlock={\n <Button\n data-testid={`add-${hyphenate(value)}-button`}\n label={addText}\n onClick={handleActionClick}\n />\n }\n searchProps={\n shouldShowTemplatesCount && renderSearchProps(label, value)\n }\n titleHelpPopoverProps={\n helpPopoverProps && {\n ...helpPopoverProps,\n title: helpPopoverProps?.title || label,\n }\n }\n />\n <SubHeader\n className=\"mb-4\"\n leftActionBlock={\n shouldShowTemplatesCount && (\n <Typography as=\"h4\">\n {t(\"neetoMessageTemplate.template.messageTemplatesWithCount\", {\n type: MESSAGE_TYPES[type],\n count: templatesCount,\n })}\n </Typography>\n )\n }\n rightActionBlock={\n <SubHeader.RightBlock\n dataProps={{\n totalCount: isFilterApplied ? null : templatesCount,\n }}\n filterProps={{\n columns: filterColumns,\n isOpen: isFilterPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFilterPaneOpen,\n onChange: handleChange,\n }}\n />\n }\n />\n <FiltersBar\n columns={filterColumns}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFilterPaneOpen}\n onChange={handleChange}\n />\n <List\n {...{\n addText,\n helpDocUrl,\n isFilterApplied,\n isLoading,\n label,\n labelSingular,\n manageTemplatePane,\n onMutationSuccess,\n ownerId,\n pageProperties,\n setManageTemplatePane,\n setPageProperties,\n templatesData,\n type,\n }}\n />\n <AddEdit\n {...{\n addText,\n createUpdateTemplate,\n editText,\n handleSubmitTestTemplate,\n isTestMessageLoading,\n isTestingTemplateDisabled,\n manageTemplatePane,\n onMutationSuccess,\n shouldIncludeTestTemplate,\n templateVariables,\n }}\n customFields={manageTemplatesPaneCustomFields}\n onClose={() => setManageTemplatePane(assoc(\"isOpen\", false))}\n />\n </Container>\n );\n};\n\nexport default MessageTemplates;\n"],"names":["MESSAGE_TEMPLATE_INITIAL_STATE","isOpen","isEdit","isDelete","template","MENU_ITEMS","EDIT","DELETE","STATUS","getMenuItems","_ref","handleDeleteTemplate","handleEditTemplate","handleMarkActiveInactive","status","key","label","t","onClick","equals","RowActions","setManageTemplatePane","ownerId","onMutationSuccess","_useUpdateTemplate","useUpdateTemplate","update","mutate","id","templateType","useTemplateStore","prop","_objectSpread","activeState","payload","onSuccess","_jsx","MoreDropdown","dropdownButtonProps","className","menuItems","renderSearchProps","value","placeholder","what","concat","hyphenate","buildTableColumnData","accessorKey","node","header","type","size","cell","row","original","_jsxs","children","Button","truncate","name","variant","values","_ref2","getValue","FormikAdaptiveInput","otherProps","_objectWithoutProperties","_excluded","_useFormikContext","useFormikContext","submitForm","handleKeyDown","event","shiftKey","preventDefault","Textarea","resize","onKeyDown","formatEditorContent","replaceAll","trim","EMAIL_TEMPLATE_INITIAL_VALUES","subject","body","testEmailAddress","SMS_TEMPLATE_INITIAL_VALUES","testPhoneNumber","EMAIL_TEMPLATE_FORM_SCHEMA","yup","object","string","required","test","SMS_TEMPLATE_FORM_VALIDATION_SCHEMA","SEND_TEST_EMAIL_SCHEMA","email","PHONE_NUMBER_VALIDATION_SCHEMA","isPhoneNumberValid","e","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","TestMessage","isEmailTemplate","handleSubmitTestTemplate","isTestMessageLoading","isTestingTemplateDisabled","customFields","_useState","useState","_useState2","_slicedToArray","isTestingTemplateRestricted","setIsTestingTemplateRestricted","isValid","_useTranslation","useTranslation","handleTestValidation","_asyncToGenerator","_callee","_context","target","validate","_x","apply","arguments","isTestTemplateButtonDisabled","stopPropagation","_Fragment","Input","helpText","onKeyUp","disabled","loading","Typography","Form","onClose","_ref$template","createUpdateTemplate","setInitialFocusField","shouldIncludeTestTemplate","templateVariables","editorRef","useRef","isTestTemplateVisible","includes","pick","_ref3","TEMPLATE_INITIAL_VALUES","TEMPLATE_FORM_SCHEMA","handleSubmit","filteredValues","omit","entity","mergeLeft","messageBodyLabel","NeetoUIForm","formProps","noValidate","formikProps","initialValues","validationSchema","validateOnBlur","validateOnChange","onSubmit","ref","FormikEditor","hideSlashCommands","contentClassName","defaults","undefined","rows","DEFAULT_EDITOR_ROW_COUNT","variables","Sheet","Footer","ActionBlock","cancelButtonProps","submitButtonProps","AddEdit","manageTemplatePane","addText","editText","initialFocusField","initialFocusRef","Header","Title","Body","useFilters","DEFAULT_PAGE_PROPERTIES","pageProperties","setPageProperties","_useQueryParams","useQueryParams","_useQueryParams$searc","searchTerm","filterColumns","filter","searchKeywordProps","setValue","noop","_useState3","buildFiltersFromURL","_toConsumableArray","_useState4","filters","setFilters","useTemplates","pageIndex","index","pageSize","templateParams","page","MESSAGE_TEMPLATES","isEmpty","_useFetchTemplates","useFetchTemplates","_useFetchTemplates$da","data","templatesData","isLoadingTemplates","isLoading","isFetching","_useCreateTemplate","useCreateTemplate","options","_ref2$id","isLoaderVisible","List","labelSingular","isFilterApplied","helpDocUrl","_useDeleteTemplate","useDeleteTemplate","deleteTemplate","isDeleting","isPending","templates","totalCount","isSms","typeLabelSingular","toLowerCase","emptyStateLabel","noDataProps","primaryButtonProps","assoc","Trans","i18nKey","components","Link","href","title","handleDelete","onSettled","TableWrapper","hasPagination","DataTable","currentPage","enableURLPagination","columns","onPageChange","Empty","Alert","isSubmitting","submitButtonLabel","message","MessageTemplates","_helpPopoverProps$hel","_ref$breadcrumbs","breadcrumbs","_ref$type","_ref$handleSubmitTest","_ref$isTestMessageLoa","_ref$shouldIncludeTes","_ref$templateVariable","_ref$ownerId","_ref$isTestingTemplat","_ref$manageTemplatesP","manageTemplatesPaneCustomFields","_ref$onMutationSucces","_ref$helpPopoverProps","helpPopoverProps","isFilterPaneOpen","setIsFilterPaneOpen","_useFilters","_useTemplates","setTemplateState","_MESSAGE_TEMPLATES$ty","isNotEmpty","handleActionClick","handleChange","templatesCount","useEffect","shouldShowTemplatesCount","helpLinkProps","Container","NeetoHeader","actionBlock","searchProps","titleHelpPopoverProps","SubHeader","leftActionBlock","as","MESSAGE_TYPES","count","rightActionBlock","RightBlock","dataProps","filterProps","keyword","setIsOpen","onChange","FiltersBar","setIsPaneOpen"],"mappings":"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"}
@@ -0,0 +1,430 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { useRef } from 'react';
3
+ import { Typography, Button, Select, Sheet, Textarea, Spinner } from '@bigbinary/neeto-atoms';
4
+ import { isPresent, renameKeys, findBy, isNotEmpty, capitalize, nullSafe, noop } from '@bigbinary/neeto-cist';
5
+ import { omit, mergeAll, pluck, isEmpty } from 'ramda';
6
+ import { useTranslation, Trans } from 'react-i18next';
7
+ import { b as useFetchTemplates } from '../useTemplatesApi-CMkDeBa9.js';
8
+ import { M as MESSAGE_TEMPLATES, a as MESSAGE_TYPES, b as DEFAULT_EDITOR_ROW_COUNT } from '../constants-CX95xIS-.js';
9
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
10
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
11
+ import { Form, Input, ActionBlock } from '@bigbinary/neeto-atoms/formik';
12
+ import FormikEditor from '@bigbinary/neeto-editor/FormikEditor';
13
+ import * as yup from 'yup';
14
+ import { S as SaveAsTemplate, a as areValuesEqual } from '../utils-BGEmI_om.js';
15
+ import { t } from 'i18next';
16
+ import '@tanstack/react-query';
17
+ import '@bigbinary/neeto-commons-frontend/react-utils';
18
+ import 'axios';
19
+ import 'qs';
20
+ import '@bigbinary/neeto-commons-frontend/v2/constants';
21
+ import 'formik';
22
+
23
+ var NoDataPage = function NoDataPage(_ref) {
24
+ var type = _ref.type,
25
+ _ref$helpDocUrl = _ref.helpDocUrl,
26
+ helpDocUrl = _ref$helpDocUrl === void 0 ? "" : _ref$helpDocUrl;
27
+ var _useTranslation = useTranslation(),
28
+ t = _useTranslation.t;
29
+ var label = MESSAGE_TEMPLATES[type].label;
30
+ if (type === MESSAGE_TYPES.whatsapp) {
31
+ return /*#__PURE__*/jsx("div", {
32
+ className: "flex h-full w-full items-center justify-center px-6 text-center",
33
+ children: /*#__PURE__*/jsxs(Typography, {
34
+ children: [t("neetoMessageTemplate.template.emptyState", {
35
+ type: t("neetoMessageTemplate.template.whatsappTemplates")
36
+ }), " ", helpDocUrl && /*#__PURE__*/jsx(Trans, {
37
+ i18nKey: "neetoMessageTemplate.template.whatsapp.helpDocText",
38
+ components: {
39
+ Link: /*#__PURE__*/jsx(Button, {
40
+ href: helpDocUrl,
41
+ size: "lg",
42
+ variant: "link"
43
+ })
44
+ }
45
+ })]
46
+ })
47
+ });
48
+ }
49
+ return /*#__PURE__*/jsx("div", {
50
+ className: "flex h-full w-full flex-col items-center justify-center",
51
+ children: /*#__PURE__*/jsx(Typography, {
52
+ children: t("neetoMessageTemplate.template.emptyState", {
53
+ type: label
54
+ })
55
+ })
56
+ });
57
+ };
58
+
59
+ var formatEditorContent = function formatEditorContent(value) {
60
+ return value === null || value === void 0 ? void 0 : value.replaceAll(/<\/?(?!img)\w*\b[^>]*>/gi, "").trim();
61
+ };
62
+ var SEND_MESSAGE_INITIAL_VALUES = {
63
+ subject: "",
64
+ body: "",
65
+ shouldSaveAsTemplate: false,
66
+ templateName: ""
67
+ };
68
+ var EMAIL_MESSAGE_FORM_SCHEMA = yup.object().shape({
69
+ subject: yup.string().trim().required(t("neetoMessageTemplate.template.validation.subjectPresence")),
70
+ body: yup.string().test("body", t("neetoMessageTemplate.template.validation.bodyPresence"), function (value) {
71
+ return !!formatEditorContent(value);
72
+ }).required(t("neetoMessageTemplate.template.validation.bodyPresence")),
73
+ templateName: yup.string().when("shouldSaveAsTemplate", {
74
+ is: true,
75
+ then: yup.string().required(t("neetoMessageTemplate.template.validation.requiredEntity", {
76
+ entity: t("neetoMessageTemplate.template.templateName")
77
+ }))
78
+ })
79
+ });
80
+ var SMS_MESSAGE_FORM_VALIDATION_SCHEMA = yup.object().shape({
81
+ body: yup.string().required(t("neetoMessageTemplate.template.validation.bodyPresence")).test("body", t("neetoMessageTemplate.template.validation.bodyPresence"), function (value) {
82
+ return !!formatEditorContent(value);
83
+ }),
84
+ templateName: yup.string().when("shouldSaveAsTemplate", {
85
+ is: true,
86
+ then: yup.string().required(t("neetoMessageTemplate.template.validation.requiredEntity", {
87
+ entity: t("neetoMessageTemplate.template.templateName")
88
+ }))
89
+ })
90
+ });
91
+ var WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA = yup.object().shape({
92
+ variableContents: yup.object().shape({
93
+ body: yup.array().of(yup.string().required(t("neetoMessageTemplate.template.validation.variablePresence")))
94
+ })
95
+ });
96
+
97
+ function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
98
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
99
+ var EmailAndSms = function EmailAndSms(_ref) {
100
+ var canManageTemplates = _ref.canManageTemplates,
101
+ onClose = _ref.onClose,
102
+ templates = _ref.templates,
103
+ setFocusField = _ref.setFocusField,
104
+ templateVariables = _ref.templateVariables,
105
+ customFields = _ref.customFields,
106
+ customFieldsInitialValues = _ref.customFieldsInitialValues,
107
+ customFieldsValidationSchema = _ref.customFieldsValidationSchema,
108
+ type = _ref.type,
109
+ handleSubmit = _ref.handleSubmit,
110
+ isSaveAsTemplateEnabled = _ref.isSaveAsTemplateEnabled,
111
+ _ref$helpPopoverProps = _ref.helpPopoverProps,
112
+ helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps;
113
+ var editorRef = useRef(null);
114
+ var _useTranslation = useTranslation(),
115
+ t = _useTranslation.t;
116
+ var isEmailTemplate = type === "email";
117
+ var _ref2 = isEmailTemplate ? [SEND_MESSAGE_INITIAL_VALUES, EMAIL_MESSAGE_FORM_SCHEMA] : [omit(["subject"], SEND_MESSAGE_INITIAL_VALUES), SMS_MESSAGE_FORM_VALIDATION_SCHEMA],
118
+ _ref3 = _slicedToArray(_ref2, 2),
119
+ INITIAL_VALUES = _ref3[0],
120
+ SEND_MESSAGE_FORM_SCHEMA = _ref3[1];
121
+ var updatedInitialValues = mergeAll([INITIAL_VALUES, customFieldsInitialValues]);
122
+ var updatedValidationSchema = yup.object().shape(_objectSpread$2(_objectSpread$2({}, SEND_MESSAGE_FORM_SCHEMA === null || SEND_MESSAGE_FORM_SCHEMA === void 0 ? void 0 : SEND_MESSAGE_FORM_SCHEMA.fields), customFieldsValidationSchema === null || customFieldsValidationSchema === void 0 ? void 0 : customFieldsValidationSchema.fields));
123
+ var shouldShowSaveAsTemplate = function shouldShowSaveAsTemplate() {
124
+ var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
125
+ id = _ref4.id,
126
+ subject = _ref4.subject,
127
+ body = _ref4.body;
128
+ if (!isSaveAsTemplateEnabled) return false;
129
+ var template = findBy({
130
+ id: id
131
+ }, templates);
132
+ var hasContent = isPresent(subject) || isPresent(body);
133
+ var isContentDifferentFromTemplate = !(areValuesEqual(template === null || template === void 0 ? void 0 : template.subject, subject) && (template === null || template === void 0 ? void 0 : template.body) === body);
134
+ return hasContent && isContentDifferentFromTemplate;
135
+ };
136
+ var isTemplateSelectionEnabled = isPresent(templates);
137
+ return /*#__PURE__*/jsx(Form, {
138
+ formProps: {
139
+ noValidate: true,
140
+ className: "flex w-full flex-col gap-y-4 pb-6"
141
+ },
142
+ formikProps: {
143
+ initialValues: updatedInitialValues,
144
+ validationSchema: updatedValidationSchema,
145
+ onSubmit: handleSubmit
146
+ },
147
+ children: function children(_ref5) {
148
+ var _helpPopoverProps$typ, _helpPopoverProps$ema;
149
+ var setValues = _ref5.setValues,
150
+ values = _ref5.values;
151
+ var handleTemplateChange = function handleTemplateChange(templateId) {
152
+ var _editorRef$current;
153
+ if (!templateId) return;
154
+ var template = findBy({
155
+ id: templateId
156
+ }, templates);
157
+ setValues(_objectSpread$2(_objectSpread$2({}, values), template));
158
+ (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.editor) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.commands) === null || _editorRef$current === void 0 || _editorRef$current.setContent(template.body);
159
+ };
160
+ return /*#__PURE__*/jsxs(Fragment, {
161
+ children: [isTemplateSelectionEnabled && /*#__PURE__*/jsx(Select, {
162
+ isClearable: true,
163
+ isSearchable: true,
164
+ label: t("neetoMessageTemplate.template.title"),
165
+ labelProps: helpPopoverProps === null || helpPopoverProps === void 0 || (_helpPopoverProps$typ = helpPopoverProps[type]) === null || _helpPopoverProps$typ === void 0 ? void 0 : _helpPopoverProps$typ.template,
166
+ options: renameKeys({
167
+ name: "label",
168
+ id: "value"
169
+ }, templates),
170
+ ref: setFocusField,
171
+ placeholder: t("neetoMessageTemplate.sendMessage.selectTemplate"),
172
+ onChange: handleTemplateChange
173
+ }), customFields, isEmailTemplate && /*#__PURE__*/jsx(Input, {
174
+ required: true,
175
+ label: t("neetoMessageTemplate.template.subject"),
176
+ labelProps: helpPopoverProps === null || helpPopoverProps === void 0 || (_helpPopoverProps$ema = helpPopoverProps.email) === null || _helpPopoverProps$ema === void 0 ? void 0 : _helpPopoverProps$ema.subject,
177
+ name: "subject",
178
+ ref: isTemplateSelectionEnabled ? null : setFocusField
179
+ }), /*#__PURE__*/jsx(FormikEditor, {
180
+ hideSlashCommands: true,
181
+ required: true,
182
+ autoFocus: !(isTemplateSelectionEnabled || isEmailTemplate),
183
+ contentClassName: "max-h-40",
184
+ defaults: isEmailTemplate ? undefined : [],
185
+ label: t("neetoMessageTemplate.template.body"),
186
+ name: "body",
187
+ ref: editorRef,
188
+ rows: DEFAULT_EDITOR_ROW_COUNT,
189
+ variables: templateVariables
190
+ }), canManageTemplates && shouldShowSaveAsTemplate(values) && /*#__PURE__*/jsx(SaveAsTemplate, {}), /*#__PURE__*/jsx(Sheet.Footer, {
191
+ className: "absolute bottom-0 start-0",
192
+ children: /*#__PURE__*/jsx(ActionBlock, {
193
+ cancelButtonProps: {
194
+ "data-testid": "message-template-cancel-button",
195
+ onClick: onClose
196
+ },
197
+ submitButtonProps: {
198
+ "data-testid": "message-template-send-button",
199
+ label: t("neetoMessageTemplate.template.send")
200
+ }
201
+ })
202
+ })]
203
+ });
204
+ }
205
+ });
206
+ };
207
+
208
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
209
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
210
+ var Whatsapp = function Whatsapp(_ref) {
211
+ var _templates$, _templates$2, _templates$3, _templates$4;
212
+ var templates = _ref.templates,
213
+ onClose = _ref.onClose,
214
+ handleSubmit = _ref.handleSubmit,
215
+ customFields = _ref.customFields,
216
+ customFieldsInitialValues = _ref.customFieldsInitialValues,
217
+ customFieldsValidationSchema = _ref.customFieldsValidationSchema;
218
+ var _useTranslation = useTranslation(),
219
+ t = _useTranslation.t;
220
+ var getInitialVariableComponents = function getInitialVariableComponents(variables) {
221
+ var initialComponents = {};
222
+ variables === null || variables === void 0 || variables.forEach(function (_ref2) {
223
+ var type = _ref2.type,
224
+ count = _ref2.count;
225
+ initialComponents[type] = Array(count).fill("");
226
+ });
227
+ return initialComponents;
228
+ };
229
+ var getTemplateMessage = function getTemplateMessage(components) {
230
+ var _nullSafe;
231
+ return (_nullSafe = nullSafe(pluck)("text", components)) === null || _nullSafe === void 0 ? void 0 : _nullSafe.join("\n");
232
+ };
233
+ var initialFormValues = {
234
+ selectedTemplate: {
235
+ label: (_templates$ = templates[0]) === null || _templates$ === void 0 ? void 0 : _templates$.name,
236
+ value: (_templates$2 = templates[0]) === null || _templates$2 === void 0 ? void 0 : _templates$2.id
237
+ },
238
+ templateMessage: getTemplateMessage((_templates$3 = templates[0]) === null || _templates$3 === void 0 ? void 0 : _templates$3.components),
239
+ variableContents: getInitialVariableComponents((_templates$4 = templates[0]) === null || _templates$4 === void 0 ? void 0 : _templates$4.variableCount)
240
+ };
241
+ var updatedInitialValues = mergeAll([initialFormValues, customFieldsInitialValues]);
242
+ var updatedValidationSchema = yup.object().shape(_objectSpread$1(_objectSpread$1({}, WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA === null || WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA === void 0 ? void 0 : WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA.fields), customFieldsValidationSchema === null || customFieldsValidationSchema === void 0 ? void 0 : customFieldsValidationSchema.fields));
243
+ var initialValueKeys = Object.keys(initialFormValues);
244
+ return /*#__PURE__*/jsx(Form, {
245
+ formProps: {
246
+ noValidate: true,
247
+ className: "flex w-full flex-col gap-y-4 pb-6"
248
+ },
249
+ formikProps: {
250
+ initialValues: updatedInitialValues,
251
+ validationSchema: updatedValidationSchema,
252
+ onSubmit: handleSubmit
253
+ },
254
+ children: function children(_ref3) {
255
+ var _values$selectedTempl;
256
+ var values = _ref3.values,
257
+ setValues = _ref3.setValues;
258
+ // `selectedTemplate` is kept as a `{ label, value }` object in Formik
259
+ // state to preserve the payload shape v1 handed to `handleSubmit`.
260
+ // atoms' Select is value-based, hence the plain (non-Formik) Select
261
+ // driven off `values.selectedTemplate.value`.
262
+ var handleTemplateChange = function handleTemplateChange(templateId) {
263
+ if (!templateId) return;
264
+ var template = findBy({
265
+ id: templateId
266
+ }, templates);
267
+ var customFieldValues = omit(initialValueKeys, values);
268
+ setValues(_objectSpread$1({
269
+ selectedTemplate: {
270
+ label: template.name,
271
+ value: template.id
272
+ },
273
+ templateMessage: getTemplateMessage(template.components),
274
+ variableContents: getInitialVariableComponents(template.variableCount)
275
+ }, customFieldValues));
276
+ };
277
+ return /*#__PURE__*/jsxs(Fragment, {
278
+ children: [/*#__PURE__*/jsx(Select, {
279
+ required: true,
280
+ label: t("neetoMessageTemplate.template.title"),
281
+ name: "selectedTemplate",
282
+ options: renameKeys({
283
+ name: "label",
284
+ id: "value"
285
+ }, templates),
286
+ value: (_values$selectedTempl = values.selectedTemplate) === null || _values$selectedTempl === void 0 ? void 0 : _values$selectedTempl.value,
287
+ onChange: handleTemplateChange
288
+ }), customFields, /*#__PURE__*/jsx(Textarea, {
289
+ disabled: true,
290
+ nakedTextarea: true,
291
+ label: t("neetoMessageTemplate.template.preview"),
292
+ value: values.templateMessage
293
+ }), isNotEmpty(values.variableContents) && /*#__PURE__*/jsx(Fragment, {
294
+ children: Object.keys(values.variableContents).map(function (group) {
295
+ return /*#__PURE__*/jsxs("div", {
296
+ className: "flex flex-col gap-y-2",
297
+ children: [/*#__PURE__*/jsx(Typography, {
298
+ variant: "h4",
299
+ children: t("neetoMessageTemplate.template.resolveVariable", {
300
+ type: capitalize(group)
301
+ })
302
+ }), values.variableContents[group].map(function (_, index) {
303
+ return /*#__PURE__*/jsx("div", {
304
+ children: /*#__PURE__*/jsx(Input, {
305
+ required: true,
306
+ label: "{{".concat(index + 1, "}}"),
307
+ name: "variableContents.".concat(group, ".").concat(index)
308
+ }, "".concat(group, "-").concat(index))
309
+ }, "".concat(group, "-").concat(index));
310
+ })]
311
+ }, group);
312
+ })
313
+ }), /*#__PURE__*/jsx(Sheet.Footer, {
314
+ className: "absolute bottom-0 start-0",
315
+ children: /*#__PURE__*/jsx(ActionBlock, {
316
+ cancelButtonProps: {
317
+ "data-testid": "message-template-cancel-button",
318
+ onClick: onClose
319
+ },
320
+ submitButtonProps: {
321
+ "data-testid": "message-template-send-button",
322
+ label: t("neetoMessageTemplate.template.send")
323
+ }
324
+ })
325
+ })]
326
+ });
327
+ }
328
+ });
329
+ };
330
+
331
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
332
+ 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; }
333
+ var SendMessagePane = function SendMessagePane(props) {
334
+ var isOpen = props.isOpen,
335
+ onClose = props.onClose;
336
+ var setFocusField = useRef(null);
337
+ return /*#__PURE__*/jsx(Sheet, {
338
+ isOpen: isOpen,
339
+ onClose: onClose,
340
+ initialFocusRef: setFocusField,
341
+ children: /*#__PURE__*/jsx(SendMessageForm, _objectSpread({}, _objectSpread(_objectSpread({}, props), {}, {
342
+ setFocusField: setFocusField
343
+ })))
344
+ });
345
+ };
346
+ var SendMessageForm = function SendMessageForm(_ref) {
347
+ var _ref$type = _ref.type,
348
+ type = _ref$type === void 0 ? "" : _ref$type,
349
+ _ref$handleSubmit = _ref.handleSubmit,
350
+ handleSubmit = _ref$handleSubmit === void 0 ? noop : _ref$handleSubmit,
351
+ _ref$onClose = _ref.onClose,
352
+ onClose = _ref$onClose === void 0 ? noop : _ref$onClose,
353
+ _ref$customFields = _ref.customFields,
354
+ customFields = _ref$customFields === void 0 ? null : _ref$customFields,
355
+ _ref$customFieldsInit = _ref.customFieldsInitialValues,
356
+ customFieldsInitialValues = _ref$customFieldsInit === void 0 ? {} : _ref$customFieldsInit,
357
+ _ref$customFieldsVali = _ref.customFieldsValidationSchema,
358
+ customFieldsValidationSchema = _ref$customFieldsVali === void 0 ? {} : _ref$customFieldsVali,
359
+ _ref$templateVariable = _ref.templateVariables,
360
+ templateVariables = _ref$templateVariable === void 0 ? {} : _ref$templateVariable,
361
+ _ref$ownerId = _ref.ownerId,
362
+ ownerId = _ref$ownerId === void 0 ? "" : _ref$ownerId,
363
+ _ref$helpDocUrl = _ref.helpDocUrl,
364
+ helpDocUrl = _ref$helpDocUrl === void 0 ? "" : _ref$helpDocUrl,
365
+ _ref$isSaveAsTemplate = _ref.isSaveAsTemplateEnabled,
366
+ isSaveAsTemplateEnabled = _ref$isSaveAsTemplate === void 0 ? true : _ref$isSaveAsTemplate,
367
+ _ref$canManageTemplat = _ref.canManageTemplates,
368
+ canManageTemplates = _ref$canManageTemplat === void 0 ? true : _ref$canManageTemplat,
369
+ setFocusField = _ref.setFocusField,
370
+ helpPopoverProps = _ref.helpPopoverProps;
371
+ var _useTranslation = useTranslation(),
372
+ t = _useTranslation.t;
373
+ var value = MESSAGE_TEMPLATES[type].value;
374
+ var isWhatsappTemplate = type === "whatsapp";
375
+ var templateParams = {
376
+ status: "active",
377
+ templateType: value,
378
+ ownerId: ownerId
379
+ };
380
+ var _useFetchTemplates = useFetchTemplates(templateParams),
381
+ _useFetchTemplates$da = _useFetchTemplates.data,
382
+ _useFetchTemplates$da2 = _useFetchTemplates$da === void 0 ? {} : _useFetchTemplates$da,
383
+ _useFetchTemplates$da3 = _useFetchTemplates$da2.templates,
384
+ templates = _useFetchTemplates$da3 === void 0 ? [] : _useFetchTemplates$da3,
385
+ isLoading = _useFetchTemplates.isLoading;
386
+ if (isLoading) {
387
+ return /*#__PURE__*/jsx("div", {
388
+ className: "flex h-full w-full items-center justify-center",
389
+ children: /*#__PURE__*/jsx(Spinner, {})
390
+ });
391
+ }
392
+ if (isWhatsappTemplate && isEmpty(templates)) {
393
+ return /*#__PURE__*/jsx(NoDataPage, {
394
+ helpDocUrl: helpDocUrl,
395
+ type: type
396
+ });
397
+ }
398
+ return /*#__PURE__*/jsxs(Fragment, {
399
+ children: [/*#__PURE__*/jsx(Sheet.Header, {
400
+ children: /*#__PURE__*/jsxs(Sheet.Title, {
401
+ children: [t("neetoMessageTemplate.common.send"), " ", MESSAGE_TYPES[type]]
402
+ })
403
+ }), /*#__PURE__*/jsx(Sheet.Body, {
404
+ children: isWhatsappTemplate ? /*#__PURE__*/jsx(Whatsapp, {
405
+ customFields: customFields,
406
+ customFieldsInitialValues: customFieldsInitialValues,
407
+ customFieldsValidationSchema: customFieldsValidationSchema,
408
+ handleSubmit: handleSubmit,
409
+ onClose: onClose,
410
+ templates: templates
411
+ }) : /*#__PURE__*/jsx(EmailAndSms, {
412
+ canManageTemplates: canManageTemplates,
413
+ customFields: customFields,
414
+ customFieldsInitialValues: customFieldsInitialValues,
415
+ customFieldsValidationSchema: customFieldsValidationSchema,
416
+ handleSubmit: handleSubmit,
417
+ helpPopoverProps: helpPopoverProps,
418
+ isSaveAsTemplateEnabled: isSaveAsTemplateEnabled,
419
+ onClose: onClose,
420
+ setFocusField: setFocusField,
421
+ templateVariables: templateVariables,
422
+ templates: templates,
423
+ type: type
424
+ })
425
+ })]
426
+ });
427
+ };
428
+
429
+ export { SendMessagePane as default };
430
+ //# sourceMappingURL=SendMessagePane.js.map