@bigbinary/neeto-molecules 5.3.30 → 5.3.32

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 (41) hide show
  1. package/dist/{Columns-DElaBbbY.js → Columns-CpCh1cnJ.js} +4 -2
  2. package/dist/Columns-CpCh1cnJ.js.map +1 -0
  3. package/dist/EmailForm.js +3 -1
  4. package/dist/EmailForm.js.map +1 -1
  5. package/dist/cjs/{Columns-r4syEJxD.js → Columns-Gcp48xQM.js} +3 -1
  6. package/dist/cjs/Columns-Gcp48xQM.js.map +1 -0
  7. package/dist/cjs/EmailForm.js +3 -1
  8. package/dist/cjs/EmailForm.js.map +1 -1
  9. package/dist/cjs/{phone-number-CawtZC0K.js → phone-number-BydWe8Mf.js} +2 -1
  10. package/dist/cjs/phone-number-BydWe8Mf.js.map +1 -0
  11. package/dist/cjs/v2/CalendarView.js +1 -1
  12. package/dist/cjs/v2/Columns.js +1 -1
  13. package/dist/cjs/v2/DndTable.js +1 -0
  14. package/dist/cjs/v2/DndTable.js.map +1 -1
  15. package/dist/cjs/v2/EmailForm.js +3 -1
  16. package/dist/cjs/v2/EmailForm.js.map +1 -1
  17. package/dist/cjs/v2/MoreDropdown.js +5 -2
  18. package/dist/cjs/v2/MoreDropdown.js.map +1 -1
  19. package/dist/cjs/v2/PhoneNumber.js +1 -1
  20. package/dist/cjs/v2/SessionEnvironment.js +1 -1
  21. package/dist/cjs/v2/SubHeader.js +1 -1
  22. package/dist/cjs/v2/Taxonomy.js +1 -1
  23. package/dist/{phone-number-CmJsKHNS.js → phone-number-n0BLV3g6.js} +3 -2
  24. package/dist/phone-number-n0BLV3g6.js.map +1 -0
  25. package/dist/v2/CalendarView.js +1 -1
  26. package/dist/v2/Columns.js +1 -1
  27. package/dist/v2/DndTable.js +1 -0
  28. package/dist/v2/DndTable.js.map +1 -1
  29. package/dist/v2/EmailForm.js +3 -1
  30. package/dist/v2/EmailForm.js.map +1 -1
  31. package/dist/v2/MoreDropdown.js +5 -2
  32. package/dist/v2/MoreDropdown.js.map +1 -1
  33. package/dist/v2/PhoneNumber.js +2 -2
  34. package/dist/v2/SessionEnvironment.js +1 -1
  35. package/dist/v2/SubHeader.js +1 -1
  36. package/dist/v2/Taxonomy.js +1 -1
  37. package/package.json +1 -1
  38. package/dist/Columns-DElaBbbY.js.map +0 -1
  39. package/dist/cjs/Columns-r4syEJxD.js.map +0 -1
  40. package/dist/cjs/phone-number-CawtZC0K.js.map +0 -1
  41. package/dist/phone-number-CmJsKHNS.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EmailForm.js","sources":["../../src/v2/components/EmailForm/constants.js","../../src/v2/components/EmailForm/contexts/EmailForm.js","../../src/v2/components/EmailForm/utils.js","../../src/v2/components/EmailForm/ReplyToField.jsx","../../src/v2/components/EmailForm/SendToField.jsx","../../src/v2/components/EmailForm/SendToQuestionField.jsx","../../src/v2/components/EmailForm/SubjectField.jsx","../../src/v2/components/EmailForm/EmailForm.jsx","../../src/v2/components/EmailForm/EmailFormComponent/index.jsx","../../src/v2/components/EmailForm/EmailFormProvider.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor/v2\";\nimport { prop } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const INITIAL_FORM_VALUES = {\n sendTo: [],\n sendToId: \"\",\n sendToCc: [],\n sendToBcc: [],\n replyTo: \"\",\n showCopyEmails: false,\n subject: \"\",\n message: \"\",\n isEnabled: false,\n};\n\nexport const EMAIL_FORM_VALIDATION_SCHEMA = yup.object({\n subject: yup\n .string()\n .required(t(\"neetoMolecules.emailForm.errors.subjectRequired\")),\n message: yup\n .string()\n .test(\n \"message\",\n t(\"neetoMolecules.emailForm.errors.messageRequired\"),\n value => !isEditorEmpty(value)\n ),\n});\n\nexport const sendToFieldValidation = maxEmails => {\n const validation = yup\n .array()\n .test(\n \"all-emails-valid\",\n t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"),\n emails => emails?.every(prop(\"valid\"))\n )\n .test(\n \"max-email-count\",\n t(\"neetoMolecules.emailForm.errors.maxEmails\", { count: maxEmails }),\n emails => emails?.length <= maxEmails\n );\n\n return yup.object({\n sendTo: validation\n .min(\n 1,\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.sendToEmailAddress\"),\n })\n )\n .nullable(),\n sendToCc: validation,\n sendToBcc: validation,\n });\n};\n\nexport const SEND_TO_ID_FIELD_VALIDATION = yup.object({\n sendToId: yup.string().required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n })\n ),\n});\n\nexport const REPLY_TO_FIELD_VALIDATION = yup.object({\n replyTo: yup\n .string()\n .nullable()\n .email(t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"))\n .required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.replyToEmailAddress\"),\n })\n ),\n});\n\nexport const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n \"video-embed\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","/* eslint-disable @bigbinary/neeto/use-zustand-for-global-state-management */\nimport { createContext } from \"react\";\n\nconst EmailFormContext = createContext({\n showSendToField: false,\n showSendToAsRadio: false,\n showSendToAsSelect: false,\n showReplyToField: false,\n showCcField: false,\n showBccField: false,\n});\n\nexport { EmailFormContext };\n","import { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\n\nimport {\n EMAIL_FORM_VALIDATION_SCHEMA,\n REPLY_TO_FIELD_VALIDATION,\n sendToFieldValidation,\n SEND_TO_ID_FIELD_VALIDATION,\n} from \"./constants\";\n\nexport const getValidationSchema = ({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n showSendToAsSelect,\n customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio || showSendToAsSelect\n ? SEND_TO_ID_FIELD_VALIDATION\n : sendToFieldValidation(maxEmails)\n );\n }\n\n if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);\n\n const isYupObject = customValidations.type === \"object\";\n\n if (isYupObject) {\n const customFields = customValidations.fields || {};\n schema = schema.shape(customFields);\n } else if (typeof customValidations === \"object\") {\n schema = schema.shape(customValidations);\n }\n\n return schema;\n};\n\nexport const getReplyToFieldLabelProps = ({ popoverProps }) => ({\n helpIconProps: {\n className: \"reply-to-help-icon\",\n ...(isPresent(popoverProps)\n ? {\n popoverProps: {\n ...popoverProps,\n description:\n popoverProps.description ||\n t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n }\n : {\n tooltipProps: {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n }),\n },\n});\n\nexport const resolveContent = (content, func, variable) => {\n if (typeof func === \"function\") {\n return func(content, variable);\n }\n\n return content;\n};\n\nexport const normalizeHtmlString = str => {\n if (typeof str !== \"string\") return str;\n\n return str\n .replace(/\\uFEFF/g, \"\")\n .replace(/\\r\\n|\\r/g, \"\\n\")\n .replace(/&nbsp;/g, \" \")\n .replace(/[\\t ]+/g, \" \")\n .replace(/\\s*\\n\\s*/g, \"\\n\")\n .replace(/\\n+/g, \"\\n\")\n .replace(/>\\s+</g, \"><\")\n .trim();\n};\n","import { Input, Select } from \"@bigbinary/neeto-atoms/formik\";\nimport { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getReplyToFieldLabelProps } from \"./utils\";\n\nconst ReplyToField = ({ options = [], popoverProps = {} }) => {\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n\n const isDropdownField = isNotEmpty(options);\n const labelProps = getReplyToFieldLabelProps({ popoverProps });\n\n if (isDropdownField) {\n return (\n <Select\n {...{ labelProps, options }}\n isClearable\n className=\"w-full\"\n data-testid=\"reply-to-select-field\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n size=\"large\"\n onChange={value => setFieldValue(\"replyTo\", value ?? \"\")}\n />\n );\n }\n\n return (\n <Input\n {...{ labelProps }}\n autoFocus\n required\n className=\"w-full\"\n data-testid=\"reply-to-input-field\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n placeholder={t(\"neetoMolecules.emailForm.placeholders.emailPlaceholder\")}\n size=\"large\"\n onChange={event =>\n setFieldValue(\"replyTo\", event.target.value?.toLowerCase())\n }\n />\n );\n};\n\nexport default ReplyToField;\n","import { useTranslation } from \"react-i18next\";\n\nimport SendToFields from \"../SendToFields\";\n\nconst SendToField = ({ showBccField, showCcField, showSendToTextField }) => {\n const { t } = useTranslation();\n\n if (!showSendToTextField && !showBccField && !showCcField) return null;\n\n return (\n <SendToFields\n showCcBccButton\n showBccField={showSendToTextField ? false : showBccField}\n showCcField={showSendToTextField ? false : showCcField}\n showSendToField={showSendToTextField}\n bccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.bCc\"),\n name: \"sendToBcc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n ccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.cc\"),\n name: \"sendToCc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n emailInputProps={{\n id: \"sendTo\",\n name: \"sendTo\",\n label: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n required: true,\n }}\n />\n );\n};\n\nexport default SendToField;\n","import { useEffect } from \"react\";\n\nimport { Input } from \"@bigbinary/neeto-atoms\";\nimport { Select } from \"@bigbinary/neeto-atoms/formik\";\nimport { FieldLegend, FieldSet } from \"@bigbinary/neeto-atoms/primitives\";\nimport { useField } from \"formik\";\nimport { Mail } from \"lucide-react\";\nimport { findBy } from \"neetocist\";\nimport { useTranslation } from \"react-i18next\";\n\nconst renderOptionLabel = ({ label }) => (\n <span className=\"flex min-w-0 items-center gap-2\">\n <Mail aria-hidden className=\"text-muted-foreground size-4 shrink-0\" />\n <span className=\"truncate\" title={label}>\n {label}\n </span>\n </span>\n);\n\nconst SendToQuestionField = ({ options }) => {\n const { t } = useTranslation();\n const [field, meta, { setValue }] = useField(\"sendToId\");\n const singleOptionValue = options.length === 1 ? options[0].value : undefined;\n const selectedOption = findBy({ value: field.value }, options);\n\n useEffect(() => {\n if (singleOptionValue !== undefined && field.value !== singleOptionValue) {\n setValue(singleOptionValue);\n }\n }, [field.value, setValue, singleOptionValue]);\n\n const fieldProps = {\n required: true,\n label: t(\"neetoMolecules.emailForm.labels.getEmailAddressFrom\"),\n labelProps: {\n className:\n \"text-muted-foreground font-normal [&>.text-destructive]:hidden\",\n },\n className: \"grid items-center gap-3 sm:grid-cols-[auto_minmax(0,1fr)]\",\n size: \"large\",\n };\n\n return (\n <FieldSet className=\"w-full gap-3 p-0\" data-testid=\"send-to-id\">\n <FieldLegend className=\"flex items-center gap-2\" variant=\"label\">\n {t(\"neetoMolecules.emailForm.labels.sendTo\")}\n <span aria-hidden className=\"text-destructive\">\n *\n </span>\n </FieldLegend>\n {options.length === 1 ? (\n <Input\n {...fieldProps}\n readOnly\n error={meta.touched ? meta.error : undefined}\n prefix={<Mail aria-hidden />}\n value={selectedOption?.label || \"\"}\n />\n ) : (\n <Select\n {...{ ...fieldProps, options }}\n formatOptionLabel={renderOptionLabel}\n isSearchable={false}\n name=\"sendToId\"\n />\n )}\n </FieldSet>\n );\n};\n\nexport default SendToQuestionField;\n","import { useState } from \"react\";\n\nimport { Input } from \"@bigbinary/neeto-atoms\";\nimport { withEventTargetValue } from \"neetocommons/v2/utils/general\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DynamicVariables from \"../DynamicVariables\";\n\nconst SubjectField = ({\n name,\n text,\n updateText,\n subjectVariables = [],\n error,\n required = false,\n onBlur,\n}) => {\n const [isFieldFocusedOnce, setIsFieldFocusedOnce] = useState(false);\n\n const { t } = useTranslation();\n\n const tagClickHandler = ({ key: slug, category }) => {\n const inputElement = document.querySelector(`[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && inputElement\n ? inputElement.selectionEnd\n : text.length;\n\n const variable = category ? `${category}.${slug}` : slug;\n const updatedSubject = [\n text.slice(0, splitIndex),\n ` {{${variable}}}`,\n text.slice(splitIndex),\n ].join(\"\");\n updateText(updatedSubject);\n };\n\n return (\n <Input\n {...{ error, name, onBlur, required }}\n label={t(\"neetoMolecules.emailForm.labels.subject\")}\n placeholder={t(\"neetoMolecules.emailForm.placeholders.subject\")}\n size=\"large\"\n value={text}\n suffix={\n <div className=\"me-2 inline-flex\">\n <DynamicVariables\n buttonProps={{ className: \"self-center\" }}\n dropdownProps={{ className: \"overflow-y-auto\" }}\n variables={subjectVariables}\n onVariableClick={tagClickHandler}\n />\n </div>\n }\n onChange={withEventTargetValue(updateText)}\n onFocus={() => setIsFieldFocusedOnce(true)}\n />\n );\n};\n\nexport default SubjectField;\n","import { useContext } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { ActionBlock, RadioGroup } from \"@bigbinary/neeto-atoms/formik\";\nimport classnames from \"classnames\";\nimport { Field, useFormikContext } from \"formik\";\nimport { isNotEmpty, notEqualsDeep } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor/v2\";\nimport PropTypes from \"prop-types\";\nimport { equals } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport ReplyToField from \"./ReplyToField\";\nimport SendToField from \"./SendToField\";\nimport SendToQuestionField from \"./SendToQuestionField\";\nimport SubjectField from \"./SubjectField\";\nimport { normalizeHtmlString } from \"./utils\";\n\nconst EmailForm = ({\n messageVariables = [],\n subjectVariables = [],\n handleCancel,\n handleResetToDefault,\n isLoading,\n replyToFieldProps,\n sendToFieldProps,\n replyToOptions,\n sendToOptions = [],\n isUpdating = false,\n isResetting = false,\n showFields = true,\n className = \"\",\n editorAddons = EDITOR_ADDONS,\n showResetToDefaultButton,\n editorRef = null,\n defaultValues = {},\n}) => {\n const { t } = useTranslation();\n\n const {\n showSendToField,\n showSendToAsRadio,\n showSendToAsSelect,\n showReplyToField,\n showCcField,\n showBccField,\n } = useContext(EmailFormContext);\n\n const { setFieldValue, values, resetForm } = useFormikContext();\n\n const normalizedValues = {\n ...values,\n message: normalizeHtmlString(values.message),\n };\n\n const normalizedDefaultValues = {\n ...defaultValues,\n message: normalizeHtmlString(defaultValues?.message),\n };\n\n const disabled = equals(normalizedValues, normalizedDefaultValues);\n\n const sendToFieldOptions = sendToFieldProps?.options || sendToOptions;\n const showSendToSelectField = showSendToField && showSendToAsSelect;\n const showSendToRadioField =\n showSendToField &&\n showSendToAsRadio &&\n !showSendToSelectField &&\n isNotEmpty(sendToFieldOptions);\n\n const showSendToTextField =\n showSendToField && !showSendToSelectField && !showSendToRadioField;\n\n return (\n <div\n data-testid=\"email-form\"\n className={classnames(\"flex flex-1 flex-col items-start gap-2 !pb-0\", {\n [className]: className,\n })}\n >\n <div className=\"w-full grow\">\n {showFields && (\n <div className=\"flex w-full flex-col items-start justify-start gap-5\">\n {showSendToSelectField && (\n <SendToQuestionField options={sendToFieldOptions} />\n )}\n {showSendToRadioField && (\n <RadioGroup\n className=\"pb-2\"\n data-testid=\"send-to-id\"\n label={t(\"neetoMolecules.emailForm.labels.sendTo\")}\n labelProps={{ required: true }}\n name=\"sendToId\"\n >\n {sendToFieldOptions.map(({ label, value }) => (\n <RadioGroup.Item {...{ label, value }} key={value} />\n ))}\n </RadioGroup>\n )}\n <SendToField\n {...{ showBccField, showCcField, showSendToTextField }}\n />\n {showReplyToField && (\n <div className=\"w-full\">\n <ReplyToField options={replyToOptions} {...replyToFieldProps} />\n </div>\n )}\n <Field name=\"subject\">\n {({ field: { value, onBlur }, meta: { error, touched } }) => (\n <div className=\"w-full\">\n <SubjectField\n {...{ onBlur, subjectVariables }}\n required\n error={touched && error ? t(error) : undefined}\n name=\"subject\"\n text={value}\n updateText={text => setFieldValue(\"subject\", text)}\n />\n </div>\n )}\n </Field>\n <div className=\"w-full\" data-testid=\"message-input-container\">\n <FormikEditor\n required\n addons={editorAddons}\n data-testid=\"message-input-field\"\n hideSlashCommands={false}\n id=\"form_message\"\n menuType=\"fixed\"\n name=\"message\"\n placeholder={t(\"neetoMolecules.emailForm.placeholders.message\")}\n ref={editorRef}\n variables={messageVariables}\n shouldUpdate={(nextProps, prevProps) =>\n notEqualsDeep(nextProps.variables, prevProps.variables)\n }\n />\n </div>\n </div>\n )}\n </div>\n <div className=\"bg-background z-10 flex w-full justify-between py-6 lg:sticky lg:bottom-0\">\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isLoading || isUpdating}\n />\n {showResetToDefaultButton && (\n <div>\n <Button\n {...{ disabled }}\n data-testid=\"reset-to-default-button\"\n label={t(\"neetoMolecules.emailForm.labels.resetToDefault\")}\n loading={isResetting}\n variant=\"secondary\"\n onClick={() => {\n resetForm();\n handleResetToDefault();\n }}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nEmailForm.propTypes = {\n /**\n * This is an array of objects used for templating within the message field. Each object in the array has a **label** and a **key**.\n */\n messageVariables: PropTypes.array,\n /**\n * This is an array of objects used for templating within the subject field. Each object in the array has a **label** and a **key**.\n */\n subjectVariables: PropTypes.array,\n /**\n * This function that gets triggered when the 'Cancel' button is clicked.\n */\n handleCancel: PropTypes.func,\n /**\n * This function that gets triggered when the 'Reset to default' button is clicked.\n */\n handleResetToDefault: PropTypes.func,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Reset to default' button.\n */\n isResetting: PropTypes.bool,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Reply To' field into a dropdown menu with given options. Without this prop, 'Reply To' will be a text input field.\n */\n replyToOptions: PropTypes.array,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Send To' field into a question selector with given options. Without this prop, 'Send To' will be a multi email input field.\n */\n sendToOptions: PropTypes.array,\n /**\n * A Boolean flag indicating whether an update operation is currently in progress. When set to `true`, the 'Save changes' button is disabled.\n */\n isUpdating: PropTypes.bool,\n /**\n * To provide additional classnames to the button.\n */\n className: PropTypes.string,\n /**\n * To provide props to the replyToField. Supports options that will\n * be rendered as the reply to options and popover props.\n */\n replyToFieldProps: PropTypes.object,\n /**\n * To provide props to the sendToField. Supports sendTo options.\n */\n sendToFieldProps: PropTypes.object,\n /**\n * This Boolean value, when set to true, shows reset to default button.\n */\n showResetToDefaultButton: PropTypes.bool,\n /**\n * A reference to the editor.\n */\n editorRef: PropTypes.any,\n /**\n * To override the default editor addons\n */\n editorAddons: PropTypes.array,\n /**\n * The default values for the email form.\n */\n defaultValues: PropTypes.object,\n};\n\nexport default EmailForm;\n","import { Tooltip } from \"@bigbinary/neeto-atoms\";\nimport { BlockNavigation, Switch } from \"@bigbinary/neeto-atoms/formik\";\nimport { noop, isNotEmpty } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty, pluck } from \"ramda\";\n\nimport { EmailFormProvider, EmailForm, EmailPreview } from \"..\";\nimport Header from \"../../Header\";\nimport MobilePreviewHeader from \"../../MobilePreviewHeader\";\nimport { INITIAL_FORM_VALUES } from \"../constants\";\nimport { resolveContent } from \"../utils\";\n\nconst EmailFormComponent = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema,\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n showSendToAsSelect = false,\n blockNavigation = true,\n showCcField = false,\n showBccField = false,\n isLoading = false,\n maxEmails = 10,\n emailFormProps = {},\n emailPreviewProps = {},\n headerProps = {},\n tooltipProps = {},\n switchProps = {},\n mobilePreviewProps = {},\n}) => {\n const { formatBody, formatSubject, bodyVariables, subjectVariables } =\n emailPreviewProps;\n\n const shouldShowFields = values => isEmpty(switchProps) || values.isEnabled;\n\n return (\n <EmailFormProvider\n {...{\n formikProps,\n initialValues,\n maxEmails,\n onSubmit,\n showBccField,\n showCcField,\n showReplyToField,\n showSendToAsRadio,\n showSendToAsSelect,\n showSendToField,\n validationSchema,\n }}\n >\n {({ values, isSubmitting }) => (\n <div className=\"flex h-[calc(100dvh-64px)] flex-grow flex-col overflow-y-auto lg:flex-row\">\n <div className=\"flex w-full flex-col px-5 md:px-10 lg:h-full lg:w-1/2 lg:overflow-y-auto\">\n {blockNavigation && <BlockNavigation />}\n {isNotEmpty(headerProps) && (\n <Header className=\"px-0\" size=\"small\" {...headerProps} />\n )}\n {isNotEmpty(switchProps) && (\n <div className=\"flex items-center justify-between gap-y-0.5 pb-6\">\n <Tooltip\n disabled={!switchProps?.disabled}\n position=\"top\"\n {...tooltipProps}\n >\n <div className=\"flex items-center gap-2\">\n <Switch\n data-testid=\"switch\"\n name=\"isEnabled\"\n {...switchProps}\n />\n </div>\n </Tooltip>\n </div>\n )}\n {shouldShowFields(values) && children}\n <EmailForm\n isLoading={isSubmitting || isLoading}\n isUpdating={isSubmitting || isLoading}\n showFields={shouldShowFields(values)}\n {...emailFormProps}\n />\n </div>\n {shouldShowFields(values) && (\n <MobilePreviewHeader\n className=\"lg:hidden\"\n {...mobilePreviewProps}\n />\n )}\n {shouldShowFields(values) && (\n <div className=\"bg-muted w-full px-6 py-10 lg:w-1/2 lg:overflow-y-auto\">\n <EmailPreview\n body={resolveContent(values.message, formatBody, bodyVariables)}\n from={values.sendFrom}\n to={pluck(\"value\", values?.sendTo ?? [])}\n subject={resolveContent(\n values.subject,\n formatSubject,\n subjectVariables\n )}\n {...emailPreviewProps}\n />\n </div>\n )}\n </div>\n )}\n </EmailFormProvider>\n );\n};\n\nEmailFormComponent.propTypes = {\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n isEnabled: PropTypes.bool,\n }),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be a radio group or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be a question selector or not.\n */\n showSendToAsSelect: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * These are the values that will be passed to EmailForm Component\n */\n emailFormProps: PropTypes.shape({\n messageVariables: PropTypes.array,\n subjectVariables: PropTypes.array,\n handleCancel: PropTypes.func,\n handleResetToDefault: PropTypes.func,\n isLoading: PropTypes.bool,\n replyToFieldProps: PropTypes.object,\n sendToFieldProps: PropTypes.object,\n replyToOptions: PropTypes.array,\n sendToOptions: PropTypes.array,\n isUpdating: PropTypes.bool,\n showFields: PropTypes.bool,\n className: PropTypes.string,\n showResetToDefaultButton: PropTypes.bool,\n editorRef: PropTypes.any,\n editorAddons: PropTypes.array,\n }),\n /**\n * These are the values that will be passed to EmailPreview Component\n */\n emailPreviewProps: PropTypes.shape({\n to: PropTypes.array,\n from: PropTypes.string,\n subject: PropTypes.string,\n body: PropTypes.string,\n actionButtonText: PropTypes.string,\n logo: PropTypes.string,\n customContent: PropTypes.string,\n className: PropTypes.string,\n formatBody: PropTypes.func,\n formatSubject: PropTypes.func,\n bodyVariables: PropTypes.object,\n subjectVariables: PropTypes.object,\n }),\n /**\n * These are the values that will be passed to Header Component\n */\n headerProps: PropTypes.object,\n /**\n * These are the values that will be passed to Tooltip Component\n */\n tooltipProps: PropTypes.object,\n /**\n * These are the values that will be passed to Switch Component\n */\n switchProps: PropTypes.object,\n /**\n * These are the values that will be passed to MobilePreviewHeader Component\n */\n mobilePreviewProps: PropTypes.object,\n};\n\nexport default EmailFormComponent;\n","import { Form } from \"@bigbinary/neeto-atoms/formik\";\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport { INITIAL_FORM_VALUES } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport { getValidationSchema } from \"./utils\";\n\nconst EmailFormProvider = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema: customValidations = {},\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n showSendToAsSelect = false,\n showCcField = false,\n showBccField = false,\n maxEmails = 10,\n}) => (\n <div data-testid=\"email-form-provider\">\n <EmailFormContext.Provider\n value={{\n showSendToField,\n showSendToAsRadio,\n showSendToAsSelect,\n showReplyToField,\n showCcField,\n showBccField,\n }}\n >\n <Form\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n showSendToAsSelect,\n customValidations,\n maxEmails,\n }),\n initialValues,\n onSubmit,\n ...formikProps,\n }}\n >\n {children}\n </Form>\n </EmailFormContext.Provider>\n </div>\n);\n\nEmailFormProvider.propTypes = {\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be a radio group or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be a question selector or not.\n */\n showSendToAsSelect: PropTypes.bool,\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n }),\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n};\n\nexport default EmailFormProvider;\n"],"names":["INITIAL_FORM_VALUES","sendTo","sendToId","sendToCc","sendToBcc","replyTo","showCopyEmails","subject","message","isEnabled","EMAIL_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","test","value","isEditorEmpty","sendToFieldValidation","maxEmails","validation","array","emails","every","prop","count","length","min","entity","nullable","SEND_TO_ID_FIELD_VALIDATION","REPLY_TO_FIELD_VALIDATION","email","EDITOR_ADDONS","EmailFormContext","createContext","showSendToField","showSendToAsRadio","showSendToAsSelect","showReplyToField","showCcField","showBccField","getValidationSchema","_ref","customValidations","schema","clone","concat","isYupObject","type","customFields","fields","shape","_typeof","getReplyToFieldLabelProps","_ref2","popoverProps","helpIconProps","_objectSpread","className","isPresent","description","tooltipProps","content","resolveContent","func","variable","normalizeHtmlString","str","replace","trim","ReplyToField","_ref$options","options","_ref$popoverProps","_useTranslation","useTranslation","_useFormikContext","useFormikContext","setFieldValue","isDropdownField","isNotEmpty","labelProps","_jsx","Select","isClearable","label","name","size","onChange","Input","autoFocus","placeholder","event","_event$target$value","target","toLowerCase","SendToField","showSendToTextField","SendToFields","showCcBccButton","bccInputProps","ccInputProps","emailInputProps","id","renderOptionLabel","_jsxs","children","Mail","title","SendToQuestionField","_useField","useField","_useField2","_slicedToArray","field","meta","setValue","singleOptionValue","undefined","selectedOption","findBy","useEffect","fieldProps","FieldSet","FieldLegend","variant","readOnly","error","touched","prefix","formatOptionLabel","isSearchable","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","_ref$required","onBlur","_useState","useState","_useState2","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","slug","key","category","inputElement","document","querySelector","splitIndex","selectionEnd","updatedSubject","slice","join","suffix","DynamicVariables","buttonProps","dropdownProps","variables","onVariableClick","withEventTargetValue","onFocus","EmailForm","_ref$messageVariables","messageVariables","handleCancel","handleResetToDefault","isLoading","replyToFieldProps","sendToFieldProps","replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$isResetting","isResetting","_ref$showFields","showFields","_ref$className","_ref$editorAddons","editorAddons","showResetToDefaultButton","_ref$editorRef","editorRef","_ref$defaultValues","defaultValues","_useContext","useContext","values","resetForm","normalizedValues","normalizedDefaultValues","disabled","equals","sendToFieldOptions","showSendToSelectField","showSendToRadioField","classnames","_defineProperty","RadioGroup","map","_createElement","Item","Field","_ref3","_ref3$field","_ref3$meta","FormikEditor","addons","hideSlashCommands","menuType","ref","shouldUpdate","nextProps","prevProps","notEqualsDeep","ActionBlock","cancelButtonProps","onClick","isSubmitting","Button","loading","EmailFormComponent","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$showSendToAsSele","_ref$blockNavigation","blockNavigation","_ref$showCcField","_ref$showBccField","_ref$isLoading","_ref$maxEmails","_ref$emailFormProps","emailFormProps","_ref$emailPreviewProp","emailPreviewProps","_ref$headerProps","headerProps","_ref$tooltipProps","_ref$switchProps","switchProps","_ref$mobilePreviewPro","mobilePreviewProps","formatBody","formatSubject","bodyVariables","shouldShowFields","isEmpty","EmailFormProvider","_values$sendTo","BlockNavigation","Header","Tooltip","position","Switch","MobilePreviewHeader","EmailPreview","body","from","sendFrom","to","pluck","_ref$validationSchema","Provider","Form","enableReinitialize"],"mappings":"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"}
1
+ {"version":3,"file":"EmailForm.js","sources":["../../src/v2/components/EmailForm/constants.js","../../src/v2/components/EmailForm/contexts/EmailForm.js","../../src/v2/components/EmailForm/utils.js","../../src/v2/components/EmailForm/ReplyToField.jsx","../../src/v2/components/EmailForm/SendToField.jsx","../../src/v2/components/EmailForm/SendToQuestionField.jsx","../../src/v2/components/EmailForm/SubjectField.jsx","../../src/v2/components/EmailForm/EmailForm.jsx","../../src/v2/components/EmailForm/EmailFormComponent/index.jsx","../../src/v2/components/EmailForm/EmailFormProvider.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor/v2\";\nimport { prop } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const INITIAL_FORM_VALUES = {\n sendTo: [],\n sendToId: \"\",\n sendToCc: [],\n sendToBcc: [],\n replyTo: \"\",\n showCopyEmails: false,\n subject: \"\",\n message: \"\",\n isEnabled: false,\n};\n\nexport const EMAIL_FORM_VALIDATION_SCHEMA = yup.object({\n subject: yup\n .string()\n .required(t(\"neetoMolecules.emailForm.errors.subjectRequired\")),\n message: yup\n .string()\n .test(\n \"message\",\n t(\"neetoMolecules.emailForm.errors.messageRequired\"),\n value => !isEditorEmpty(value)\n ),\n});\n\nexport const sendToFieldValidation = maxEmails => {\n const validation = yup\n .array()\n .test(\n \"all-emails-valid\",\n t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"),\n emails => emails?.every(prop(\"valid\"))\n )\n .test(\n \"max-email-count\",\n t(\"neetoMolecules.emailForm.errors.maxEmails\", { count: maxEmails }),\n emails => emails?.length <= maxEmails\n );\n\n return yup.object({\n sendTo: validation\n .min(\n 1,\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.sendToEmailAddress\"),\n })\n )\n .nullable(),\n sendToCc: validation,\n sendToBcc: validation,\n });\n};\n\nexport const SEND_TO_ID_FIELD_VALIDATION = yup.object({\n sendToId: yup.string().required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n })\n ),\n});\n\nexport const REPLY_TO_FIELD_VALIDATION = yup.object({\n replyTo: yup\n .string()\n .nullable()\n .email(t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"))\n .required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.replyToEmailAddress\"),\n })\n ),\n});\n\nexport const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n \"video-embed\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","/* eslint-disable @bigbinary/neeto/use-zustand-for-global-state-management */\nimport { createContext } from \"react\";\n\nconst EmailFormContext = createContext({\n showSendToField: false,\n showSendToAsRadio: false,\n showSendToAsSelect: false,\n showReplyToField: false,\n showCcField: false,\n showBccField: false,\n});\n\nexport { EmailFormContext };\n","import { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\n\nimport {\n EMAIL_FORM_VALIDATION_SCHEMA,\n REPLY_TO_FIELD_VALIDATION,\n sendToFieldValidation,\n SEND_TO_ID_FIELD_VALIDATION,\n} from \"./constants\";\n\nexport const getValidationSchema = ({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n showSendToAsSelect,\n customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio || showSendToAsSelect\n ? SEND_TO_ID_FIELD_VALIDATION\n : sendToFieldValidation(maxEmails)\n );\n }\n\n if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);\n\n const isYupObject = customValidations.type === \"object\";\n\n if (isYupObject) {\n const customFields = customValidations.fields || {};\n schema = schema.shape(customFields);\n } else if (typeof customValidations === \"object\") {\n schema = schema.shape(customValidations);\n }\n\n return schema;\n};\n\nexport const getReplyToFieldLabelProps = ({ popoverProps }) => ({\n helpIconProps: {\n className: \"reply-to-help-icon\",\n ...(isPresent(popoverProps)\n ? {\n popoverProps: {\n ...popoverProps,\n description:\n popoverProps.description ||\n t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n }\n : {\n tooltipProps: {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n }),\n },\n});\n\nexport const resolveContent = (content, func, variable) => {\n if (typeof func === \"function\") {\n return func(content, variable);\n }\n\n return content;\n};\n\nexport const normalizeHtmlString = str => {\n if (typeof str !== \"string\") return str;\n\n return str\n .replace(/\\uFEFF/g, \"\")\n .replace(/\\r\\n|\\r/g, \"\\n\")\n .replace(/&nbsp;/g, \" \")\n .replace(/[\\t ]+/g, \" \")\n .replace(/\\s*\\n\\s*/g, \"\\n\")\n .replace(/\\n+/g, \"\\n\")\n .replace(/>\\s+</g, \"><\")\n .trim();\n};\n","import { Input, Select } from \"@bigbinary/neeto-atoms/formik\";\nimport { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getReplyToFieldLabelProps } from \"./utils\";\n\nconst ReplyToField = ({ options = [], popoverProps = {} }) => {\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n\n const isDropdownField = isNotEmpty(options);\n const labelProps = getReplyToFieldLabelProps({ popoverProps });\n\n if (isDropdownField) {\n return (\n <Select\n {...{ labelProps, options }}\n isClearable\n className=\"w-full\"\n data-testid=\"reply-to-select-field\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n size=\"large\"\n onChange={value => setFieldValue(\"replyTo\", value ?? \"\")}\n />\n );\n }\n\n return (\n <Input\n {...{ labelProps }}\n autoFocus\n required\n className=\"w-full\"\n data-testid=\"reply-to-input-field\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n placeholder={t(\"neetoMolecules.emailForm.placeholders.emailPlaceholder\")}\n size=\"large\"\n onChange={event =>\n setFieldValue(\"replyTo\", event.target.value?.toLowerCase())\n }\n />\n );\n};\n\nexport default ReplyToField;\n","import { useTranslation } from \"react-i18next\";\n\nimport SendToFields from \"../SendToFields\";\n\nconst SendToField = ({ showBccField, showCcField, showSendToTextField }) => {\n const { t } = useTranslation();\n\n if (!showSendToTextField && !showBccField && !showCcField) return null;\n\n return (\n <SendToFields\n showCcBccButton\n showBccField={showSendToTextField ? false : showBccField}\n showCcField={showSendToTextField ? false : showCcField}\n showSendToField={showSendToTextField}\n bccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.bCc\"),\n name: \"sendToBcc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n ccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.cc\"),\n name: \"sendToCc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n emailInputProps={{\n id: \"sendTo\",\n name: \"sendTo\",\n label: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n required: true,\n }}\n />\n );\n};\n\nexport default SendToField;\n","import { useEffect } from \"react\";\n\nimport { Input } from \"@bigbinary/neeto-atoms\";\nimport { Select } from \"@bigbinary/neeto-atoms/formik\";\nimport { FieldLegend, FieldSet } from \"@bigbinary/neeto-atoms/primitives\";\nimport { useField } from \"formik\";\nimport { Mail } from \"lucide-react\";\nimport { findBy } from \"neetocist\";\nimport { useTranslation } from \"react-i18next\";\n\nconst renderOptionLabel = ({ label }) => (\n <span className=\"flex min-w-0 items-center gap-2\">\n <Mail aria-hidden className=\"text-muted-foreground size-4 shrink-0\" />\n <span className=\"truncate\" title={label}>\n {label}\n </span>\n </span>\n);\n\nconst SendToQuestionField = ({ options }) => {\n const { t } = useTranslation();\n const [field, meta, { setValue }] = useField(\"sendToId\");\n const singleOptionValue = options.length === 1 ? options[0].value : undefined;\n const selectedOption = findBy({ value: field.value }, options);\n\n useEffect(() => {\n if (singleOptionValue !== undefined && field.value !== singleOptionValue) {\n setValue(singleOptionValue);\n }\n }, [field.value, setValue, singleOptionValue]);\n\n const fieldProps = {\n required: true,\n label: t(\"neetoMolecules.emailForm.labels.getEmailAddressFrom\"),\n labelProps: {\n className:\n \"text-muted-foreground font-normal [&>.text-destructive]:hidden\",\n },\n className: \"grid items-center gap-3 sm:grid-cols-[auto_minmax(0,1fr)]\",\n size: \"large\",\n };\n\n return (\n <FieldSet className=\"w-full gap-3 p-0\" data-testid=\"send-to-id\">\n <FieldLegend className=\"flex items-center gap-2\" variant=\"label\">\n {t(\"neetoMolecules.emailForm.labels.sendTo\")}\n <span aria-hidden className=\"text-destructive\">\n *\n </span>\n </FieldLegend>\n {options.length === 1 ? (\n <Input\n {...fieldProps}\n readOnly\n error={meta.touched ? meta.error : undefined}\n prefix={<Mail aria-hidden />}\n value={selectedOption?.label || \"\"}\n />\n ) : (\n <Select\n {...{ ...fieldProps, options }}\n formatOptionLabel={renderOptionLabel}\n isSearchable={false}\n name=\"sendToId\"\n />\n )}\n </FieldSet>\n );\n};\n\nexport default SendToQuestionField;\n","import { useState } from \"react\";\n\nimport { Input } from \"@bigbinary/neeto-atoms\";\nimport { withEventTargetValue } from \"neetocommons/v2/utils/general\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DynamicVariables from \"../DynamicVariables\";\n\nconst SubjectField = ({\n name,\n text,\n updateText,\n subjectVariables = [],\n error,\n required = false,\n onBlur,\n}) => {\n const [isFieldFocusedOnce, setIsFieldFocusedOnce] = useState(false);\n\n const { t } = useTranslation();\n\n const tagClickHandler = ({ key: slug, category }) => {\n const inputElement = document.querySelector(`[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && inputElement\n ? inputElement.selectionEnd\n : text.length;\n\n const variable = category ? `${category}.${slug}` : slug;\n const updatedSubject = [\n text.slice(0, splitIndex),\n ` {{${variable}}}`,\n text.slice(splitIndex),\n ].join(\"\");\n updateText(updatedSubject);\n };\n\n return (\n <Input\n {...{ error, name, onBlur, required }}\n label={t(\"neetoMolecules.emailForm.labels.subject\")}\n placeholder={t(\"neetoMolecules.emailForm.placeholders.subject\")}\n size=\"large\"\n value={text}\n suffix={\n <div className=\"me-2 inline-flex\">\n <DynamicVariables\n buttonProps={{ className: \"self-center\" }}\n dropdownProps={{ className: \"overflow-y-auto\" }}\n variables={subjectVariables}\n onVariableClick={tagClickHandler}\n />\n </div>\n }\n onChange={withEventTargetValue(updateText)}\n onFocus={() => setIsFieldFocusedOnce(true)}\n />\n );\n};\n\nexport default SubjectField;\n","import { useContext } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { ActionBlock, RadioGroup } from \"@bigbinary/neeto-atoms/formik\";\nimport classnames from \"classnames\";\nimport { Field, useFormikContext } from \"formik\";\nimport { isNotEmpty, notEqualsDeep } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor/v2\";\nimport PropTypes from \"prop-types\";\nimport { equals } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport ReplyToField from \"./ReplyToField\";\nimport SendToField from \"./SendToField\";\nimport SendToQuestionField from \"./SendToQuestionField\";\nimport SubjectField from \"./SubjectField\";\nimport { normalizeHtmlString } from \"./utils\";\n\nconst EmailForm = ({\n messageVariables = [],\n subjectVariables = [],\n handleCancel,\n handleResetToDefault,\n isLoading,\n replyToFieldProps,\n sendToFieldProps,\n replyToOptions,\n sendToOptions = [],\n isUpdating = false,\n isResetting = false,\n showFields = true,\n className = \"\",\n editorAddons = EDITOR_ADDONS,\n showResetToDefaultButton,\n editorRef = null,\n defaultValues = {},\n}) => {\n const { t } = useTranslation();\n\n const {\n showSendToField,\n showSendToAsRadio,\n showSendToAsSelect,\n showReplyToField,\n showCcField,\n showBccField,\n } = useContext(EmailFormContext);\n\n const { setFieldValue, values, resetForm } = useFormikContext();\n\n const normalizedValues = {\n ...values,\n message: normalizeHtmlString(values.message),\n };\n\n const normalizedDefaultValues = {\n ...defaultValues,\n message: normalizeHtmlString(defaultValues?.message),\n };\n\n const disabled = equals(normalizedValues, normalizedDefaultValues);\n\n const sendToFieldOptions = sendToFieldProps?.options || sendToOptions;\n const showSendToSelectField = showSendToField && showSendToAsSelect;\n const showSendToRadioField =\n showSendToField &&\n showSendToAsRadio &&\n !showSendToSelectField &&\n isNotEmpty(sendToFieldOptions);\n\n const showSendToTextField =\n showSendToField && !showSendToSelectField && !showSendToRadioField;\n\n return (\n <div\n data-testid=\"email-form\"\n className={classnames(\"flex flex-1 flex-col items-start gap-2 !pb-0\", {\n [className]: className,\n })}\n >\n <div className=\"w-full grow\">\n {showFields && (\n <div className=\"flex w-full flex-col items-start justify-start gap-5\">\n {showSendToSelectField && (\n <SendToQuestionField options={sendToFieldOptions} />\n )}\n {showSendToRadioField && (\n <RadioGroup\n className=\"pb-2\"\n data-testid=\"send-to-id\"\n label={t(\"neetoMolecules.emailForm.labels.sendTo\")}\n labelProps={{ required: true }}\n name=\"sendToId\"\n >\n {sendToFieldOptions.map(({ label, value }) => (\n <RadioGroup.Item {...{ label, value }} key={value} />\n ))}\n </RadioGroup>\n )}\n <SendToField\n {...{ showBccField, showCcField, showSendToTextField }}\n />\n {showReplyToField && (\n <div className=\"w-full\">\n <ReplyToField options={replyToOptions} {...replyToFieldProps} />\n </div>\n )}\n <Field name=\"subject\">\n {({ field: { value, onBlur }, meta: { error, touched } }) => (\n <div className=\"w-full\">\n <SubjectField\n {...{ onBlur, subjectVariables }}\n required\n error={touched && error ? t(error) : undefined}\n name=\"subject\"\n text={value}\n updateText={text => setFieldValue(\"subject\", text)}\n />\n </div>\n )}\n </Field>\n <div className=\"w-full\" data-testid=\"message-input-container\">\n <FormikEditor\n required\n addons={editorAddons}\n data-testid=\"message-input-field\"\n hideSlashCommands={false}\n id=\"form_message\"\n menuType=\"fixed\"\n name=\"message\"\n placeholder={t(\"neetoMolecules.emailForm.placeholders.message\")}\n ref={editorRef}\n variables={messageVariables}\n shouldUpdate={(nextProps, prevProps) =>\n notEqualsDeep(nextProps.variables, prevProps.variables)\n }\n />\n </div>\n </div>\n )}\n </div>\n <div className=\"bg-background z-10 flex w-full justify-between py-6 lg:sticky lg:bottom-0\">\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isLoading || isUpdating}\n />\n {showResetToDefaultButton && (\n <div>\n <Button\n {...{ disabled }}\n data-testid=\"reset-to-default-button\"\n label={t(\"neetoMolecules.emailForm.labels.resetToDefault\")}\n loading={isResetting}\n variant=\"secondary\"\n onClick={() => {\n resetForm();\n handleResetToDefault();\n }}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nEmailForm.propTypes = {\n /**\n * This is an array of objects used for templating within the message field. Each object in the array has a **label** and a **key**.\n */\n messageVariables: PropTypes.array,\n /**\n * This is an array of objects used for templating within the subject field. Each object in the array has a **label** and a **key**.\n */\n subjectVariables: PropTypes.array,\n /**\n * This function that gets triggered when the 'Cancel' button is clicked.\n */\n handleCancel: PropTypes.func,\n /**\n * This function that gets triggered when the 'Reset to default' button is clicked.\n */\n handleResetToDefault: PropTypes.func,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Reset to default' button.\n */\n isResetting: PropTypes.bool,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Reply To' field into a dropdown menu with given options. Without this prop, 'Reply To' will be a text input field.\n */\n replyToOptions: PropTypes.array,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Send To' field into a question selector with given options. Without this prop, 'Send To' will be a multi email input field.\n */\n sendToOptions: PropTypes.array,\n /**\n * A Boolean flag indicating whether an update operation is currently in progress. When set to `true`, the 'Save changes' button is disabled.\n */\n isUpdating: PropTypes.bool,\n /**\n * To provide additional classnames to the button.\n */\n className: PropTypes.string,\n /**\n * To provide props to the replyToField. Supports options that will\n * be rendered as the reply to options and popover props.\n */\n replyToFieldProps: PropTypes.object,\n /**\n * To provide props to the sendToField. Supports sendTo options.\n */\n sendToFieldProps: PropTypes.object,\n /**\n * This Boolean value, when set to true, shows reset to default button.\n */\n showResetToDefaultButton: PropTypes.bool,\n /**\n * A reference to the editor.\n */\n editorRef: PropTypes.any,\n /**\n * To override the default editor addons\n */\n editorAddons: PropTypes.array,\n /**\n * The default values for the email form.\n */\n defaultValues: PropTypes.object,\n};\n\nexport default EmailForm;\n","import { Tooltip } from \"@bigbinary/neeto-atoms\";\nimport { BlockNavigation, Switch } from \"@bigbinary/neeto-atoms/formik\";\nimport { noop, isNotEmpty } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty, pluck } from \"ramda\";\n\nimport { EmailFormProvider, EmailForm, EmailPreview } from \"..\";\nimport Header from \"../../Header\";\nimport MobilePreviewHeader from \"../../MobilePreviewHeader\";\nimport { INITIAL_FORM_VALUES } from \"../constants\";\nimport { resolveContent } from \"../utils\";\n\nconst EmailFormComponent = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema,\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n showSendToAsSelect = false,\n blockNavigation = true,\n blockNavigationProps = {},\n showCcField = false,\n showBccField = false,\n isLoading = false,\n maxEmails = 10,\n emailFormProps = {},\n emailPreviewProps = {},\n headerProps = {},\n tooltipProps = {},\n switchProps = {},\n mobilePreviewProps = {},\n}) => {\n const { formatBody, formatSubject, bodyVariables, subjectVariables } =\n emailPreviewProps;\n\n const shouldShowFields = values => isEmpty(switchProps) || values.isEnabled;\n\n return (\n <EmailFormProvider\n {...{\n formikProps,\n initialValues,\n maxEmails,\n onSubmit,\n showBccField,\n showCcField,\n showReplyToField,\n showSendToAsRadio,\n showSendToAsSelect,\n showSendToField,\n validationSchema,\n }}\n >\n {({ values, isSubmitting }) => (\n <div className=\"flex h-[calc(100dvh-64px)] flex-grow flex-col overflow-y-auto lg:flex-row\">\n <div className=\"flex w-full flex-col px-5 md:px-10 lg:h-full lg:w-1/2 lg:overflow-y-auto\">\n {blockNavigation && <BlockNavigation {...blockNavigationProps} />}\n {isNotEmpty(headerProps) && (\n <Header className=\"px-0\" size=\"small\" {...headerProps} />\n )}\n {isNotEmpty(switchProps) && (\n <div className=\"flex items-center justify-between gap-y-0.5 pb-6\">\n <Tooltip\n disabled={!switchProps?.disabled}\n position=\"top\"\n {...tooltipProps}\n >\n <div className=\"flex items-center gap-2\">\n <Switch\n data-testid=\"switch\"\n name=\"isEnabled\"\n {...switchProps}\n />\n </div>\n </Tooltip>\n </div>\n )}\n {shouldShowFields(values) && children}\n <EmailForm\n isLoading={isSubmitting || isLoading}\n isUpdating={isSubmitting || isLoading}\n showFields={shouldShowFields(values)}\n {...emailFormProps}\n />\n </div>\n {shouldShowFields(values) && (\n <MobilePreviewHeader\n className=\"lg:hidden\"\n {...mobilePreviewProps}\n />\n )}\n {shouldShowFields(values) && (\n <div className=\"bg-muted w-full px-6 py-10 lg:w-1/2 lg:overflow-y-auto\">\n <EmailPreview\n body={resolveContent(values.message, formatBody, bodyVariables)}\n from={values.sendFrom}\n to={pluck(\"value\", values?.sendTo ?? [])}\n subject={resolveContent(\n values.subject,\n formatSubject,\n subjectVariables\n )}\n {...emailPreviewProps}\n />\n </div>\n )}\n </div>\n )}\n </EmailFormProvider>\n );\n};\n\nEmailFormComponent.propTypes = {\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n isEnabled: PropTypes.bool,\n }),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be a radio group or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be a question selector or not.\n */\n showSendToAsSelect: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * These are the values that will be passed to EmailForm Component\n */\n emailFormProps: PropTypes.shape({\n messageVariables: PropTypes.array,\n subjectVariables: PropTypes.array,\n handleCancel: PropTypes.func,\n handleResetToDefault: PropTypes.func,\n isLoading: PropTypes.bool,\n replyToFieldProps: PropTypes.object,\n sendToFieldProps: PropTypes.object,\n replyToOptions: PropTypes.array,\n sendToOptions: PropTypes.array,\n isUpdating: PropTypes.bool,\n showFields: PropTypes.bool,\n className: PropTypes.string,\n showResetToDefaultButton: PropTypes.bool,\n editorRef: PropTypes.any,\n editorAddons: PropTypes.array,\n }),\n /**\n * These are the values that will be passed to the BlockNavigation component, for example `saveAndContinue` to opt out of saving from the unsaved changes prompt.\n */\n blockNavigationProps: PropTypes.object,\n /**\n * These are the values that will be passed to EmailPreview Component\n */\n emailPreviewProps: PropTypes.shape({\n to: PropTypes.array,\n from: PropTypes.string,\n subject: PropTypes.string,\n body: PropTypes.string,\n actionButtonText: PropTypes.string,\n logo: PropTypes.string,\n customContent: PropTypes.string,\n className: PropTypes.string,\n formatBody: PropTypes.func,\n formatSubject: PropTypes.func,\n bodyVariables: PropTypes.object,\n subjectVariables: PropTypes.object,\n }),\n /**\n * These are the values that will be passed to Header Component\n */\n headerProps: PropTypes.object,\n /**\n * These are the values that will be passed to Tooltip Component\n */\n tooltipProps: PropTypes.object,\n /**\n * These are the values that will be passed to Switch Component\n */\n switchProps: PropTypes.object,\n /**\n * These are the values that will be passed to MobilePreviewHeader Component\n */\n mobilePreviewProps: PropTypes.object,\n};\n\nexport default EmailFormComponent;\n","import { Form } from \"@bigbinary/neeto-atoms/formik\";\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport { INITIAL_FORM_VALUES } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport { getValidationSchema } from \"./utils\";\n\nconst EmailFormProvider = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema: customValidations = {},\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n showSendToAsSelect = false,\n showCcField = false,\n showBccField = false,\n maxEmails = 10,\n}) => (\n <div data-testid=\"email-form-provider\">\n <EmailFormContext.Provider\n value={{\n showSendToField,\n showSendToAsRadio,\n showSendToAsSelect,\n showReplyToField,\n showCcField,\n showBccField,\n }}\n >\n <Form\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n showSendToAsSelect,\n customValidations,\n maxEmails,\n }),\n initialValues,\n onSubmit,\n ...formikProps,\n }}\n >\n {children}\n </Form>\n </EmailFormContext.Provider>\n </div>\n);\n\nEmailFormProvider.propTypes = {\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be a radio group or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be a question selector or not.\n */\n showSendToAsSelect: PropTypes.bool,\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n }),\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n};\n\nexport default EmailFormProvider;\n"],"names":["INITIAL_FORM_VALUES","sendTo","sendToId","sendToCc","sendToBcc","replyTo","showCopyEmails","subject","message","isEnabled","EMAIL_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","test","value","isEditorEmpty","sendToFieldValidation","maxEmails","validation","array","emails","every","prop","count","length","min","entity","nullable","SEND_TO_ID_FIELD_VALIDATION","REPLY_TO_FIELD_VALIDATION","email","EDITOR_ADDONS","EmailFormContext","createContext","showSendToField","showSendToAsRadio","showSendToAsSelect","showReplyToField","showCcField","showBccField","getValidationSchema","_ref","customValidations","schema","clone","concat","isYupObject","type","customFields","fields","shape","_typeof","getReplyToFieldLabelProps","_ref2","popoverProps","helpIconProps","_objectSpread","className","isPresent","description","tooltipProps","content","resolveContent","func","variable","normalizeHtmlString","str","replace","trim","ReplyToField","_ref$options","options","_ref$popoverProps","_useTranslation","useTranslation","_useFormikContext","useFormikContext","setFieldValue","isDropdownField","isNotEmpty","labelProps","_jsx","Select","isClearable","label","name","size","onChange","Input","autoFocus","placeholder","event","_event$target$value","target","toLowerCase","SendToField","showSendToTextField","SendToFields","showCcBccButton","bccInputProps","ccInputProps","emailInputProps","id","renderOptionLabel","_jsxs","children","Mail","title","SendToQuestionField","_useField","useField","_useField2","_slicedToArray","field","meta","setValue","singleOptionValue","undefined","selectedOption","findBy","useEffect","fieldProps","FieldSet","FieldLegend","variant","readOnly","error","touched","prefix","formatOptionLabel","isSearchable","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","_ref$required","onBlur","_useState","useState","_useState2","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","slug","key","category","inputElement","document","querySelector","splitIndex","selectionEnd","updatedSubject","slice","join","suffix","DynamicVariables","buttonProps","dropdownProps","variables","onVariableClick","withEventTargetValue","onFocus","EmailForm","_ref$messageVariables","messageVariables","handleCancel","handleResetToDefault","isLoading","replyToFieldProps","sendToFieldProps","replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$isResetting","isResetting","_ref$showFields","showFields","_ref$className","_ref$editorAddons","editorAddons","showResetToDefaultButton","_ref$editorRef","editorRef","_ref$defaultValues","defaultValues","_useContext","useContext","values","resetForm","normalizedValues","normalizedDefaultValues","disabled","equals","sendToFieldOptions","showSendToSelectField","showSendToRadioField","classnames","_defineProperty","RadioGroup","map","_createElement","Item","Field","_ref3","_ref3$field","_ref3$meta","FormikEditor","addons","hideSlashCommands","menuType","ref","shouldUpdate","nextProps","prevProps","notEqualsDeep","ActionBlock","cancelButtonProps","onClick","isSubmitting","Button","loading","EmailFormComponent","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$showSendToAsSele","_ref$blockNavigation","blockNavigation","_ref$blockNavigationP","blockNavigationProps","_ref$showCcField","_ref$showBccField","_ref$isLoading","_ref$maxEmails","_ref$emailFormProps","emailFormProps","_ref$emailPreviewProp","emailPreviewProps","_ref$headerProps","headerProps","_ref$tooltipProps","_ref$switchProps","switchProps","_ref$mobilePreviewPro","mobilePreviewProps","formatBody","formatSubject","bodyVariables","shouldShowFields","isEmpty","EmailFormProvider","_values$sendTo","BlockNavigation","Header","Tooltip","position","Switch","MobilePreviewHeader","EmailPreview","body","from","sendFrom","to","pluck","_ref$validationSchema","Provider","Form","enableReinitialize"],"mappings":"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"}
@@ -84,9 +84,12 @@ var MenuItem = function MenuItem(_ref) {
84
84
  }, menuItemProps)));
85
85
  }
86
86
  return /*#__PURE__*/jsx(DropdownMenu.MenuItem, _objectSpread$1(_objectSpread$1({
87
- onClick: onClick,
88
87
  role: "menuitem"
89
- }, menuItemProps), {}, {
88
+ }, _objectSpread$1(_objectSpread$1({
89
+ onClick: onClick
90
+ }, typeof label === "string" && {
91
+ "data-testid": "".concat(hyphenate(label), "-menu-item")
92
+ }), menuItemProps)), {}, {
90
93
  children: label
91
94
  }));
92
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MoreDropdown.js","sources":["../../node_modules/lucide-react/dist/esm/icons/ellipsis-vertical.mjs","../../src/v2/components/MoreDropdown/constants.js","../../src/v2/components/MoreDropdown/Submenu.jsx","../../src/v2/components/MoreDropdown/MenuItem.jsx","../../src/v2/components/MoreDropdown/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"1\", key: \"41hilf\" }],\n [\"circle\", { cx: \"12\", cy: \"5\", r: \"1\", key: \"gxeob9\" }],\n [\"circle\", { cx: \"12\", cy: \"19\", r: \"1\", key: \"lyex9k\" }]\n];\nconst EllipsisVertical = createLucideIcon(\"ellipsis-vertical\", __iconNode);\n\nexport { __iconNode, EllipsisVertical as default };\n//# sourceMappingURL=ellipsis-vertical.mjs.map\n","const MENU_ITEM_TYPES = { menuItem: \"menuItem\", divider: \"divider\" };\n\nconst DEFAULT_TOOLTIP_PROPS = { disabled: true, position: \"bottom\" };\n\nconst BUTTON_VARIANTS = [\n \"default\",\n \"secondary\",\n \"destructive\",\n \"destructive-soft\",\n \"outline\",\n \"ghost\",\n \"link\",\n];\n\nconst BUTTON_SIZES = [\n \"default\",\n \"xs\",\n \"sm\",\n \"lg\",\n \"icon\",\n \"icon-xs\",\n \"icon-sm\",\n \"icon-lg\",\n];\n\nconst DROPDOWN_POSITIONS = [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"top-start\",\n \"top-end\",\n \"bottom-start\",\n \"bottom-end\",\n \"left-start\",\n \"left-end\",\n \"right-start\",\n \"right-end\",\n \"auto\",\n];\n\nexport {\n MENU_ITEM_TYPES,\n DEFAULT_TOOLTIP_PROPS,\n BUTTON_VARIANTS,\n BUTTON_SIZES,\n DROPDOWN_POSITIONS,\n};\n","import { DropdownMenu } from \"@bigbinary/neeto-atoms\";\nimport { hyphenate } from \"neetocist\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nimport MenuItem from \"./MenuItem\";\n\nconst Submenu = withT(({ t, label, menuItems = [] }) => (\n <DropdownMenu.SubMenu\n {...{ label }}\n triggerProps={{ \"aria-haspopup\": \"menu\" }}\n contentProps={{\n \"aria-label\": t(\"neetoMolecules.moreDropdown.submenuAriaLabel\", {\n label,\n }),\n }}\n >\n {menuItems.map(({ isVisible = true, key, ...itemProps }) => {\n if (!isVisible) return null;\n\n return (\n <MenuItem\n key={key ?? hyphenate(itemProps.label || \"menu-item\")}\n {...itemProps}\n />\n );\n })}\n </DropdownMenu.SubMenu>\n));\n\nexport default Submenu;\n","import { DropdownMenu } from \"@bigbinary/neeto-atoms\";\n\nimport Submenu from \"./Submenu\";\n\nconst MenuItem = ({\n onClick,\n label,\n type = \"menuItem\",\n hasSubItems = false,\n menuItems,\n dropdownProps,\n ...menuItemProps\n}) => {\n if (type === \"divider\") return <DropdownMenu.Divider role=\"separator\" />;\n\n if (hasSubItems) {\n return (\n <Submenu {...{ dropdownProps, label, menuItems, ...menuItemProps }} />\n );\n }\n\n return (\n <DropdownMenu.MenuItem {...{ onClick }} role=\"menuitem\" {...menuItemProps}>\n {label}\n </DropdownMenu.MenuItem>\n );\n};\n\nexport default MenuItem;\n","import { Button, DropdownMenu, Tooltip } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { Ellipsis, EllipsisVertical } from \"lucide-react\";\nimport { hyphenate } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n BUTTON_SIZES,\n BUTTON_VARIANTS,\n DEFAULT_TOOLTIP_PROPS,\n DROPDOWN_POSITIONS,\n MENU_ITEM_TYPES,\n} from \"./constants\";\nimport MenuItem from \"./MenuItem\";\n\nconst MoreDropdown = ({\n dropdownButtonProps = {},\n isVertical = false,\n isDisabled = false,\n dropdownProps = {},\n menuTopChildren,\n menuBottomChildren,\n menuItems = [],\n}) => {\n const { t } = useTranslation();\n\n const {\n isRounded: isRoundedButton,\n size: buttonSize = \"icon\",\n tooltipProps: customTooltipProps,\n variant = \"ghost\",\n ...buttonProps\n } = dropdownButtonProps;\n\n const tooltipProps = mergeRight(DEFAULT_TOOLTIP_PROPS, customTooltipProps);\n\n const TargetIcon = isVertical ? EllipsisVertical : Ellipsis;\n\n const { className: contentClassName, ...restDropdownProps } = dropdownProps;\n\n const isDropdownDisabled = isDisabled || dropdownProps.disabled;\n\n const triggerClassName = classnames(\"shrink-0\", {\n \"rounded-full\": isRoundedButton,\n });\n\n if (isDropdownDisabled && !tooltipProps.disabled) {\n return (\n <Tooltip\n content={tooltipProps.content}\n position={tooltipProps.position || \"bottom\"}\n >\n <span>\n <Button\n {...{ variant }}\n disabled\n className={triggerClassName}\n data-dropdown-button-style=\"more-dropdown\"\n data-testid=\"more-dropdown-button\"\n icon={TargetIcon}\n size={buttonSize}\n {...buttonProps}\n />\n </span>\n </Tooltip>\n );\n }\n\n return (\n <DropdownMenu\n customTarget={\n <Button\n {...{ variant }}\n aria-haspopup=\"menu\"\n aria-label={t(\"neetoMolecules.moreDropdown.buttonAriaLabel\")}\n className={triggerClassName}\n data-dropdown-button-style=\"more-dropdown\"\n data-testid=\"nui-dropdown-icon\"\n disabled={isDropdownDisabled}\n icon={TargetIcon}\n size={buttonSize}\n {...buttonProps}\n />\n }\n dropdownProps={{\n \"aria-label\": t(\"neetoMolecules.moreDropdown.menuAriaLabel\"),\n className: contentClassName,\n }}\n {...restDropdownProps}\n >\n {menuTopChildren}\n {menuItems.map(({ isVisible = true, key, ...menuItemProps }) => {\n if (!isVisible) return null;\n\n return (\n <MenuItem\n key={key ?? hyphenate(menuItemProps.label || \"menu-item\")}\n {...menuItemProps}\n />\n );\n })}\n {menuBottomChildren}\n </DropdownMenu>\n );\n};\n\nMoreDropdown.propTypes = {\n /**\n * Props forwarded to the trigger Button (atom). Accepts every Button prop;\n * the listed keys are the most relevant.\n */\n dropdownButtonProps: PropTypes.shape({\n variant: PropTypes.oneOf(BUTTON_VARIANTS),\n size: PropTypes.oneOf(BUTTON_SIZES),\n label: PropTypes.string,\n isRounded: PropTypes.bool,\n disabled: PropTypes.bool,\n tooltipProps: PropTypes.shape({\n content: PropTypes.node,\n position: PropTypes.oneOf(DROPDOWN_POSITIONS),\n disabled: PropTypes.bool,\n }),\n }),\n /** Render `EllipsisVertical` instead of `Ellipsis` for the trigger icon. */\n isVertical: PropTypes.bool,\n /** Disable the entire dropdown (trigger + menu). */\n isDisabled: PropTypes.bool,\n /**\n * Props forwarded to the underlying atom `DropdownMenu`.\n */\n dropdownProps: PropTypes.shape({\n position: PropTypes.oneOf(DROPDOWN_POSITIONS),\n closeOnEsc: PropTypes.bool,\n closeOnSelect: PropTypes.bool,\n closeOnOutsideClick: PropTypes.bool,\n isOpen: PropTypes.bool,\n onClose: PropTypes.func,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n }),\n /** Rendered above the dynamic `menuItems` inside the dropdown menu. */\n menuTopChildren: PropTypes.node,\n /** Rendered below the dynamic `menuItems` inside the dropdown menu. */\n menuBottomChildren: PropTypes.node,\n /**\n * Each entry accepts every `DropdownMenu.MenuItem` prop (`prefix`, `suffix`,\n * `variant`, `isDisabled`, `to`, `href`, …) plus the wrapper-only fields below.\n */\n menuItems: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n onClick: PropTypes.func,\n key: PropTypes.string,\n type: PropTypes.oneOf(Object.values(MENU_ITEM_TYPES)),\n isVisible: PropTypes.bool,\n hasSubItems: PropTypes.bool,\n menuItems: PropTypes.array,\n })\n ),\n};\n\nexport default MoreDropdown;\n"],"names":["DEFAULT_TOOLTIP_PROPS","disabled","position","Submenu","withT","_ref","t","label","_ref$menuItems","menuItems","_jsx","DropdownMenu","SubMenu","triggerProps","contentProps","children","map","_ref2","_ref2$isVisible","isVisible","key","itemProps","_objectWithoutProperties","_excluded","MenuItem","_objectSpread","hyphenate","onClick","_ref$type","type","_ref$hasSubItems","hasSubItems","dropdownProps","menuItemProps","Divider","role","MoreDropdown","_ref$dropdownButtonPr","dropdownButtonProps","_ref$isVertical","isVertical","_ref$isDisabled","isDisabled","_ref$dropdownProps","menuTopChildren","menuBottomChildren","_useTranslation","useTranslation","isRoundedButton","isRounded","_dropdownButtonProps$","size","buttonSize","customTooltipProps","tooltipProps","_dropdownButtonProps$2","variant","buttonProps","mergeRight","TargetIcon","EllipsisVertical","Ellipsis","contentClassName","className","restDropdownProps","_excluded2","isDropdownDisabled","triggerClassName","classnames","Tooltip","content","Button","icon","_jsxs","customTarget","_excluded3"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"MoreDropdown.js","sources":["../../node_modules/lucide-react/dist/esm/icons/ellipsis-vertical.mjs","../../src/v2/components/MoreDropdown/constants.js","../../src/v2/components/MoreDropdown/Submenu.jsx","../../src/v2/components/MoreDropdown/MenuItem.jsx","../../src/v2/components/MoreDropdown/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"1\", key: \"41hilf\" }],\n [\"circle\", { cx: \"12\", cy: \"5\", r: \"1\", key: \"gxeob9\" }],\n [\"circle\", { cx: \"12\", cy: \"19\", r: \"1\", key: \"lyex9k\" }]\n];\nconst EllipsisVertical = createLucideIcon(\"ellipsis-vertical\", __iconNode);\n\nexport { __iconNode, EllipsisVertical as default };\n//# sourceMappingURL=ellipsis-vertical.mjs.map\n","const MENU_ITEM_TYPES = { menuItem: \"menuItem\", divider: \"divider\" };\n\nconst DEFAULT_TOOLTIP_PROPS = { disabled: true, position: \"bottom\" };\n\nconst BUTTON_VARIANTS = [\n \"default\",\n \"secondary\",\n \"destructive\",\n \"destructive-soft\",\n \"outline\",\n \"ghost\",\n \"link\",\n];\n\nconst BUTTON_SIZES = [\n \"default\",\n \"xs\",\n \"sm\",\n \"lg\",\n \"icon\",\n \"icon-xs\",\n \"icon-sm\",\n \"icon-lg\",\n];\n\nconst DROPDOWN_POSITIONS = [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"top-start\",\n \"top-end\",\n \"bottom-start\",\n \"bottom-end\",\n \"left-start\",\n \"left-end\",\n \"right-start\",\n \"right-end\",\n \"auto\",\n];\n\nexport {\n MENU_ITEM_TYPES,\n DEFAULT_TOOLTIP_PROPS,\n BUTTON_VARIANTS,\n BUTTON_SIZES,\n DROPDOWN_POSITIONS,\n};\n","import { DropdownMenu } from \"@bigbinary/neeto-atoms\";\nimport { hyphenate } from \"neetocist\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nimport MenuItem from \"./MenuItem\";\n\nconst Submenu = withT(({ t, label, menuItems = [] }) => (\n <DropdownMenu.SubMenu\n {...{ label }}\n triggerProps={{ \"aria-haspopup\": \"menu\" }}\n contentProps={{\n \"aria-label\": t(\"neetoMolecules.moreDropdown.submenuAriaLabel\", {\n label,\n }),\n }}\n >\n {menuItems.map(({ isVisible = true, key, ...itemProps }) => {\n if (!isVisible) return null;\n\n return (\n <MenuItem\n key={key ?? hyphenate(itemProps.label || \"menu-item\")}\n {...itemProps}\n />\n );\n })}\n </DropdownMenu.SubMenu>\n));\n\nexport default Submenu;\n","import { DropdownMenu } from \"@bigbinary/neeto-atoms\";\nimport { hyphenate } from \"neetocist\";\n\nimport Submenu from \"./Submenu\";\n\nconst MenuItem = ({\n onClick,\n label,\n type = \"menuItem\",\n hasSubItems = false,\n menuItems,\n dropdownProps,\n ...menuItemProps\n}) => {\n if (type === \"divider\") return <DropdownMenu.Divider role=\"separator\" />;\n\n if (hasSubItems) {\n return (\n <Submenu {...{ dropdownProps, label, menuItems, ...menuItemProps }} />\n );\n }\n\n return (\n <DropdownMenu.MenuItem\n role=\"menuitem\"\n {...{\n onClick,\n ...(typeof label === \"string\" && {\n \"data-testid\": `${hyphenate(label)}-menu-item`,\n }),\n ...menuItemProps,\n }}\n >\n {label}\n </DropdownMenu.MenuItem>\n );\n};\n\nexport default MenuItem;\n","import { Button, DropdownMenu, Tooltip } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { Ellipsis, EllipsisVertical } from \"lucide-react\";\nimport { hyphenate } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n BUTTON_SIZES,\n BUTTON_VARIANTS,\n DEFAULT_TOOLTIP_PROPS,\n DROPDOWN_POSITIONS,\n MENU_ITEM_TYPES,\n} from \"./constants\";\nimport MenuItem from \"./MenuItem\";\n\nconst MoreDropdown = ({\n dropdownButtonProps = {},\n isVertical = false,\n isDisabled = false,\n dropdownProps = {},\n menuTopChildren,\n menuBottomChildren,\n menuItems = [],\n}) => {\n const { t } = useTranslation();\n\n const {\n isRounded: isRoundedButton,\n size: buttonSize = \"icon\",\n tooltipProps: customTooltipProps,\n variant = \"ghost\",\n ...buttonProps\n } = dropdownButtonProps;\n\n const tooltipProps = mergeRight(DEFAULT_TOOLTIP_PROPS, customTooltipProps);\n\n const TargetIcon = isVertical ? EllipsisVertical : Ellipsis;\n\n const { className: contentClassName, ...restDropdownProps } = dropdownProps;\n\n const isDropdownDisabled = isDisabled || dropdownProps.disabled;\n\n const triggerClassName = classnames(\"shrink-0\", {\n \"rounded-full\": isRoundedButton,\n });\n\n if (isDropdownDisabled && !tooltipProps.disabled) {\n return (\n <Tooltip\n content={tooltipProps.content}\n position={tooltipProps.position || \"bottom\"}\n >\n <span>\n <Button\n {...{ variant }}\n disabled\n className={triggerClassName}\n data-dropdown-button-style=\"more-dropdown\"\n data-testid=\"more-dropdown-button\"\n icon={TargetIcon}\n size={buttonSize}\n {...buttonProps}\n />\n </span>\n </Tooltip>\n );\n }\n\n return (\n <DropdownMenu\n customTarget={\n <Button\n {...{ variant }}\n aria-haspopup=\"menu\"\n aria-label={t(\"neetoMolecules.moreDropdown.buttonAriaLabel\")}\n className={triggerClassName}\n data-dropdown-button-style=\"more-dropdown\"\n data-testid=\"nui-dropdown-icon\"\n disabled={isDropdownDisabled}\n icon={TargetIcon}\n size={buttonSize}\n {...buttonProps}\n />\n }\n dropdownProps={{\n \"aria-label\": t(\"neetoMolecules.moreDropdown.menuAriaLabel\"),\n className: contentClassName,\n }}\n {...restDropdownProps}\n >\n {menuTopChildren}\n {menuItems.map(({ isVisible = true, key, ...menuItemProps }) => {\n if (!isVisible) return null;\n\n return (\n <MenuItem\n key={key ?? hyphenate(menuItemProps.label || \"menu-item\")}\n {...menuItemProps}\n />\n );\n })}\n {menuBottomChildren}\n </DropdownMenu>\n );\n};\n\nMoreDropdown.propTypes = {\n /**\n * Props forwarded to the trigger Button (atom). Accepts every Button prop;\n * the listed keys are the most relevant.\n */\n dropdownButtonProps: PropTypes.shape({\n variant: PropTypes.oneOf(BUTTON_VARIANTS),\n size: PropTypes.oneOf(BUTTON_SIZES),\n label: PropTypes.string,\n isRounded: PropTypes.bool,\n disabled: PropTypes.bool,\n tooltipProps: PropTypes.shape({\n content: PropTypes.node,\n position: PropTypes.oneOf(DROPDOWN_POSITIONS),\n disabled: PropTypes.bool,\n }),\n }),\n /** Render `EllipsisVertical` instead of `Ellipsis` for the trigger icon. */\n isVertical: PropTypes.bool,\n /** Disable the entire dropdown (trigger + menu). */\n isDisabled: PropTypes.bool,\n /**\n * Props forwarded to the underlying atom `DropdownMenu`.\n */\n dropdownProps: PropTypes.shape({\n position: PropTypes.oneOf(DROPDOWN_POSITIONS),\n closeOnEsc: PropTypes.bool,\n closeOnSelect: PropTypes.bool,\n closeOnOutsideClick: PropTypes.bool,\n isOpen: PropTypes.bool,\n onClose: PropTypes.func,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n }),\n /** Rendered above the dynamic `menuItems` inside the dropdown menu. */\n menuTopChildren: PropTypes.node,\n /** Rendered below the dynamic `menuItems` inside the dropdown menu. */\n menuBottomChildren: PropTypes.node,\n /**\n * Each entry accepts every `DropdownMenu.MenuItem` prop (`prefix`, `suffix`,\n * `variant`, `isDisabled`, `to`, `href`, …) plus the wrapper-only fields below.\n */\n menuItems: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n onClick: PropTypes.func,\n key: PropTypes.string,\n type: PropTypes.oneOf(Object.values(MENU_ITEM_TYPES)),\n isVisible: PropTypes.bool,\n hasSubItems: PropTypes.bool,\n menuItems: PropTypes.array,\n })\n ),\n};\n\nexport default MoreDropdown;\n"],"names":["DEFAULT_TOOLTIP_PROPS","disabled","position","Submenu","withT","_ref","t","label","_ref$menuItems","menuItems","_jsx","DropdownMenu","SubMenu","triggerProps","contentProps","children","map","_ref2","_ref2$isVisible","isVisible","key","itemProps","_objectWithoutProperties","_excluded","MenuItem","_objectSpread","hyphenate","onClick","_ref$type","type","_ref$hasSubItems","hasSubItems","dropdownProps","menuItemProps","Divider","role","concat","MoreDropdown","_ref$dropdownButtonPr","dropdownButtonProps","_ref$isVertical","isVertical","_ref$isDisabled","isDisabled","_ref$dropdownProps","menuTopChildren","menuBottomChildren","_useTranslation","useTranslation","isRoundedButton","isRounded","_dropdownButtonProps$","size","buttonSize","customTooltipProps","tooltipProps","_dropdownButtonProps$2","variant","buttonProps","mergeRight","TargetIcon","EllipsisVertical","Ellipsis","contentClassName","className","restDropdownProps","_excluded2","isDropdownDisabled","triggerClassName","classnames","Tooltip","content","Button","icon","_jsxs","customTarget","_excluded3"],"mappings":"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","x_google_ignoreList":[0]}
@@ -2,8 +2,8 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
4
  import { useField } from 'formik';
5
- import { P as PhoneNumberInput, g as getPhoneData } from '../phone-number-CmJsKHNS.js';
6
- export { i as isPhoneNumberValid, v as validation } from '../phone-number-CmJsKHNS.js';
5
+ import { P as PhoneNumberInput, g as getPhoneData } from '../phone-number-n0BLV3g6.js';
6
+ export { i as isPhoneNumberValid, v as validation } from '../phone-number-n0BLV3g6.js';
7
7
  import { jsx, jsxs } from 'react/jsx-runtime';
8
8
  import { memo } from 'react';
9
9
  import { Tooltip, Typography, Button } from '@bigbinary/neeto-atoms';
@@ -22,7 +22,7 @@ import useHotkeys from '@bigbinary/neeto-hotkeys';
22
22
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
23
23
  import '@babel/runtime/helpers/objectWithoutProperties';
24
24
  import 'formik';
25
- import { P as PhoneNumberInput } from '../phone-number-CmJsKHNS.js';
25
+ import { P as PhoneNumberInput } from '../phone-number-n0BLV3g6.js';
26
26
  import '../index.es5.min-Oe75miEx.js';
27
27
  import '@babel/runtime/helpers/asyncToGenerator';
28
28
  import 'i18next';
@@ -7,7 +7,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
7
7
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
8
8
  import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from '@bigbinary/neeto-atoms/primitives';
9
9
  import { useTranslation } from 'react-i18next';
10
- import { a as Columns$1 } from '../Columns-DElaBbbY.js';
10
+ import { a as Columns$1 } from '../Columns-CpCh1cnJ.js';
11
11
  import '@babel/runtime/helpers/toConsumableArray';
12
12
  import '@tanstack/react-query';
13
13
  import '@bigbinary/neeto-commons-frontend/v2/react-utils/useMutationWithInvalidation';
@@ -37,7 +37,7 @@ import '@bigbinary/neeto-commons-frontend/v2/react-utils/useFuncDebounce';
37
37
  import '@bigbinary/neeto-commons-frontend/v2/react-utils/useQueryParams';
38
38
  import '@bigbinary/neeto-commons-frontend/v2/react-utils/useUpdateEffect';
39
39
  import '../search-H0uYy0W-.js';
40
- import '../Columns-DElaBbbY.js';
40
+ import '../Columns-CpCh1cnJ.js';
41
41
  import '@dnd-kit/core';
42
42
  import '@dnd-kit/modifiers';
43
43
  import '@dnd-kit/sortable';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "5.3.30",
3
+ "version": "5.3.32",
4
4
  "description": "A package of reusable molecular components for neeto products.",
5
5
  "repository": "git@github.com:bigbinary/neeto-molecules.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -1 +0,0 @@
1
- {"version":3,"file":"Columns-DElaBbbY.js","sources":["../src/v2/components/Columns/Item.jsx","../src/v2/components/Columns/api.js","../src/v2/components/Columns/constants.js","../src/v2/components/Columns/useTableConfigurationsApi.js","../src/v2/components/Columns/useTableConfigurations.js","../src/v2/components/Columns/utils.js","../src/v2/components/Columns/Columns.jsx"],"sourcesContent":["import { Checkbox, Label } from \"@bigbinary/neeto-atoms\";\nimport { useSortable } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport classNames from \"classnames\";\nimport { GripVertical } from \"lucide-react\";\n\nconst Item = ({\n column,\n hiddenColumns,\n checkboxProps,\n onToggle,\n isTableConfigurationFetching,\n}) => {\n const { id, header } = column;\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n isOver,\n over,\n active,\n } = useSortable({ id });\n\n const dragStyle = {\n transform: CSS.Transform.toString(transform),\n transition,\n opacity: isDragging ? 0.5 : 1,\n };\n\n const isIndicatorVisible = !isDragging && isOver;\n const draggedIndex = active?.data?.current?.sortable?.index;\n const targetIndex = over?.data?.current?.sortable?.index;\n\n const isChecked = !hiddenColumns.includes(id);\n\n return (\n <div>\n <div\n className={classNames({\n \"bg-muted h-1 w-full\":\n isIndicatorVisible && targetIndex < draggedIndex,\n })}\n />\n <div\n className=\"hover:bg-accent relative flex items-center px-5 py-2\"\n data-testid=\"column-sortable-item\"\n ref={setNodeRef}\n style={dragStyle}\n >\n <div\n {...attributes}\n {...listeners}\n className=\"absolute inset-y-0 start-0 z-10 flex w-5 cursor-grab items-center justify-center active:cursor-grabbing\"\n data-testid=\"column-drag-handle\"\n >\n <GripVertical\n className=\"text-muted-foreground/50 hover:text-foreground transition-all duration-300 ease-in-out\"\n size={16}\n />\n </div>\n <Label className=\"flex w-full cursor-pointer items-center\" htmlFor={id}>\n <Checkbox\n {...{ id }}\n checked={isChecked}\n data-testid=\"neeto-ui-columns-checkbox\"\n disabled={isTableConfigurationFetching}\n name={id}\n onCheckedChange={checked => {\n onToggle({ target: { name: id, checked } });\n }}\n {...checkboxProps}\n />\n <span className=\"ms-2 text-sm\">{header}</span>\n </Label>\n </div>\n <div\n className={classNames({\n \"bg-muted h-1 w-full\":\n isIndicatorVisible && targetIndex > draggedIndex,\n })}\n />\n </div>\n );\n};\n\nexport default Item;\n","import axios from \"axios\";\n\nconst baseUrl = \"api/v1/table_configurations\";\n\nconst fetch = tableKey => axios.get(`${baseUrl}/${tableKey}`);\n\nconst create = payload => axios.post(baseUrl, { tableConfiguration: payload });\n\nconst update = ({ tableKey, payload }) =>\n axios.patch(`${baseUrl}/${tableKey}`, { tableConfiguration: payload });\n\nconst destroy = tableKey => axios.delete(`${baseUrl}/${tableKey}`);\n\nconst tableConfigurationApi = { fetch, create, update, destroy };\n\nexport default tableConfigurationApi;\n","export const HIDDEN_COLUMNS_STORAGE_KEY = \"neeto-molecules-hidden-columns\";\nexport const COLUMNS_ORDER_STORAGE_KEY = \"neeto-molecules-columns-order\";\nexport const TABLE_CONFIGURATION_QUERY_KEY = \"table-configuration\";\n","import { useQuery } from \"@tanstack/react-query\";\nimport useMutationWithInvalidation from \"neetocommons/v2/react-utils/useMutationWithInvalidation\";\n\nimport tableConfigurationApi from \"./api\";\nimport { TABLE_CONFIGURATION_QUERY_KEY } from \"./constants.js\";\n\nconst useFetchTableConfiguration = ({ tableKey, options = {} }) =>\n useQuery({\n queryKey: [TABLE_CONFIGURATION_QUERY_KEY, tableKey],\n enabled: !!tableKey,\n queryFn: () => tableConfigurationApi.fetch(tableKey),\n ...options,\n });\n\nconst useUpdateTableConfiguration = (tableKey, options = {}) =>\n useMutationWithInvalidation(tableConfigurationApi.update, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n ...options,\n });\n\nconst useDestroyTableConfiguration = (tableKey, options = {}) =>\n useMutationWithInvalidation(tableConfigurationApi.destroy, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n ...options,\n });\n\nexport {\n useFetchTableConfiguration,\n useUpdateTableConfiguration,\n useDestroyTableConfiguration,\n};\n","import { useEffect, useMemo, useCallback } from \"react\";\n\nimport { isNotEqualDeep, isNotEmpty, noop } from \"neetocist\";\nimport { isEmpty, pluck, prop } from \"ramda\";\n\nimport {\n useFetchTableConfiguration,\n useUpdateTableConfiguration,\n useDestroyTableConfiguration,\n} from \"./useTableConfigurationsApi.js\";\n\nconst useTableConfigurations = (\n tableKey,\n columnData,\n onMutationSuccess = noop,\n allowConfigurationResetOnUpdate = true,\n defaultHiddenColumns = []\n) => {\n const {\n data: tableConfiguration,\n isLoading,\n isFetching,\n } = useFetchTableConfiguration({ tableKey });\n\n const { mutate: updateConfiguration } = useUpdateTableConfiguration(\n tableKey,\n { onSuccess: onMutationSuccess }\n );\n\n const { mutate: destroyConfiguration } = useDestroyTableConfiguration(\n tableKey,\n { onSuccess: onMutationSuccess }\n );\n\n const processColumnsWithConfiguration = useCallback(\n (originalColumns = [], existingColumnConfiguration = []) => {\n if (isEmpty(existingColumnConfiguration)) {\n return originalColumns;\n }\n\n const originalColumnsById = new Map(\n originalColumns?.filter(prop(\"id\")).map(column => [column.id, column])\n );\n\n const configurationByKey = new Map(\n existingColumnConfiguration.map(config => [config.key, config])\n );\n\n const orderedConfiguredColumns = existingColumnConfiguration\n .map(config => originalColumnsById.get(config.key))\n .filter(Boolean);\n\n const unconfiguredOriginalColumns = originalColumns.filter(\n column => column.id && !configurationByKey.has(column.id)\n );\n\n return [...orderedConfiguredColumns, ...unconfiguredOriginalColumns];\n },\n []\n );\n\n const hasAdditionalColumns = useMemo(() => {\n if (!tableConfiguration?.columns || !columnData) {\n return false;\n }\n\n const configurationKeys = pluck(\"key\", tableConfiguration.columns).sort();\n const dataKeys = columnData.map(col => col.id).sort();\n\n return isNotEqualDeep(configurationKeys, dataKeys);\n }, [tableConfiguration, columnData]);\n\n const shouldApplyTableConfiguration = useMemo(\n () =>\n !isLoading &&\n tableConfiguration?.columns &&\n isNotEmpty(tableConfiguration?.columns) &&\n !hasAdditionalColumns,\n [tableConfiguration, isLoading, hasAdditionalColumns]\n );\n\n useEffect(() => {\n if (\n hasAdditionalColumns &&\n tableConfiguration &&\n allowConfigurationResetOnUpdate\n ) {\n destroyConfiguration(tableKey);\n }\n }, [hasAdditionalColumns, tableKey, allowConfigurationResetOnUpdate]);\n\n const allProcessedColumns = useMemo(() => {\n if (\n !isLoading &&\n isNotEmpty(tableConfiguration?.columns) &&\n !hasAdditionalColumns\n ) {\n return processColumnsWithConfiguration(\n columnData,\n tableConfiguration?.columns\n );\n }\n\n return columnData || [];\n }, [\n isLoading,\n tableConfiguration?.columns,\n hasAdditionalColumns,\n columnData,\n processColumnsWithConfiguration,\n ]);\n\n const existingColumnConfiguration = useMemo(() => {\n if (shouldApplyTableConfiguration) {\n return tableConfiguration.columns;\n }\n\n if (!columnData || isEmpty(columnData)) {\n return [];\n }\n\n return columnData.map(column => ({\n key: column.id,\n isShown: !defaultHiddenColumns.includes(column.id),\n }));\n }, [\n shouldApplyTableConfiguration,\n columnData,\n tableConfiguration?.columns,\n defaultHiddenColumns,\n ]);\n\n const customizedColumns = useMemo(() => {\n const visibleColumnsConfig = existingColumnConfiguration.filter(\n prop(\"isShown\")\n );\n const visibleColumnKeys = pluck(\"key\", visibleColumnsConfig);\n\n return allProcessedColumns.filter(\n column =>\n column.enableHiding === false || visibleColumnKeys.includes(column.id)\n );\n }, [allProcessedColumns, existingColumnConfiguration]);\n\n const updateColumns = updatedColumns => {\n updateConfiguration({\n tableKey,\n payload: { table_key: tableKey, columns: updatedColumns },\n });\n };\n\n const hideColumn = columnKey => {\n updateColumns(\n existingColumnConfiguration.map(column =>\n column.key === columnKey ? { ...column, isShown: false } : column\n )\n );\n };\n\n const showColumn = columnKey => {\n updateColumns(\n existingColumnConfiguration.map(column =>\n column.key === columnKey ? { ...column, isShown: true } : column\n )\n );\n };\n\n return {\n customizedColumns,\n allProcessedColumns,\n isTableConfigurationLoading: isLoading,\n isTableConfigurationFetching: isFetching,\n existingColumnConfiguration,\n hideColumn,\n showColumn,\n updateColumns,\n destroyConfiguration,\n };\n};\n\nexport default useTableConfigurations;\n","import { existsBy, removeBy } from \"neetocist\";\nimport { filter, includes, toLower, trim } from \"ramda\";\n\nexport const getHidableColumns = columnData =>\n removeBy({ enableHiding: false }, columnData);\n\nexport const filterBySearchTerm = (searchTerm, columns) =>\n filter(\n ({ header = \"\" }) =>\n includes(trim(toLower(searchTerm)), trim(toLower(header))),\n columns\n );\n\nexport const removeDeletedColumns = (hiddenColumns, columnData) =>\n hiddenColumns.filter(hiddenColumn =>\n existsBy({ id: hiddenColumn }, columnData)\n );\n","import { useState } from \"react\";\n\nimport { Button, Checkbox, Input, Label } from \"@bigbinary/neeto-atoms\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n Separator,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { DndContext, closestCenter } from \"@dnd-kit/core\";\nimport {\n restrictToFirstScrollableAncestor,\n restrictToVerticalAxis,\n} from \"@dnd-kit/modifiers\";\nimport {\n SortableContext,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport i18next from \"i18next\";\nimport { Search } from \"lucide-react\";\nimport { isNotEmpty, findIndexBy, noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { assoc, isEmpty, pluck, includes } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Item from \"./Item\";\nimport useTableConfigurations from \"./useTableConfigurations.js\";\nimport { filterBySearchTerm, getHidableColumns } from \"./utils.js\";\n\nconst Columns = ({\n actionBlock,\n checkboxProps = {},\n columnData = [],\n isSearchable = false,\n tableKey = \"\",\n noColumnMessage = i18next.t(\"neetoMolecules.columns.noColumns\"),\n searchProps = {},\n allowConfigurationResetOnUpdate = true,\n onMutationSuccess = noop,\n defaultHiddenColumns = [],\n buttonProps = {},\n onOpenChange = noop,\n}) => {\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n\n const {\n allProcessedColumns,\n existingColumnConfiguration,\n hideColumn,\n showColumn,\n updateColumns,\n destroyConfiguration,\n isTableConfigurationFetching,\n } = useTableConfigurations(\n tableKey,\n columnData,\n onMutationSuccess,\n allowConfigurationResetOnUpdate,\n defaultHiddenColumns\n );\n\n const hiddenColumns = pluck(\n \"key\",\n existingColumnConfiguration.filter(column => column.isShown === false)\n );\n\n const handleDragEnd = event => {\n const { active, over } = event;\n if (!over || active.id === over.id) return;\n\n const oldIndex = findIndexBy(\n { key: active.id },\n existingColumnConfiguration\n );\n\n const newIndex = findIndexBy({ key: over.id }, existingColumnConfiguration);\n\n if (oldIndex === -1 || newIndex === -1) return;\n\n const newOrder = [...existingColumnConfiguration];\n const [movedItem] = newOrder.splice(oldIndex, 1);\n newOrder.splice(newIndex, 0, movedItem);\n updateColumns(newOrder);\n };\n\n const columns = getHidableColumns(allProcessedColumns);\n const filteredColumns = filterBySearchTerm(searchTerm, columns);\n\n const handleHideAllColumns = () => {\n const columnsToHideKeys = pluck(\"id\", columns);\n\n updateColumns(\n existingColumnConfiguration.map(column =>\n includes(column.key, columnsToHideKeys)\n ? assoc(\"isShown\", false, column)\n : column\n )\n );\n };\n\n const handleChange = ({ target: { name: columnId, checked } }) => {\n if (checked) showColumn(columnId);\n else hideColumn(columnId);\n };\n\n const handleSearch = ({ target: { value } }) => setSearchTerm(value);\n\n const {\n icon: Icon,\n \"data-testid\": dataTestId = \"columns-dropdown-button\",\n label: buttonLabel,\n ...restButtonProps\n } = buttonProps;\n\n return (\n <Popover\n {...{ open }}\n onOpenChange={isOpen => {\n setOpen(isOpen);\n onOpenChange(isOpen);\n if (!isOpen) setSearchTerm(\"\");\n }}\n >\n <PopoverTrigger asChild>\n <Button\n data-testid={dataTestId}\n icon={Icon || undefined}\n label={buttonLabel || undefined}\n size={buttonLabel ? \"default\" : \"icon\"}\n variant=\"ghost\"\n {...restButtonProps}\n />\n </PopoverTrigger>\n <PopoverContent\n align=\"end\"\n className=\"flex max-h-[min(calc(100dvh-200px),var(--radix-popper-available-height))] w-80 max-w-[31.25rem] flex-col p-0\"\n >\n <div\n className=\"flex min-h-0 flex-1 flex-col\"\n data-testid=\"customize-columns-dropdown-container\"\n >\n {isSearchable && (\n <div className=\"relative shrink-0 p-3\">\n <Input\n data-testid=\"neeto-ui-columns-search\"\n placeholder={t(\"neetoMolecules.columns.search\")}\n prefix={<Search />}\n type=\"search\"\n value={searchTerm}\n onChange={handleSearch}\n {...searchProps}\n />\n </div>\n )}\n <div className=\"min-h-0 flex-1 overflow-x-hidden overflow-y-auto\">\n {isEmpty(filteredColumns) && (\n <span className=\"flex flex-col items-center p-2\">\n {noColumnMessage}\n </span>\n )}\n {isNotEmpty(filteredColumns) && !searchTerm && (\n <DndContext\n collisionDetection={closestCenter}\n modifiers={[\n restrictToVerticalAxis,\n restrictToFirstScrollableAncestor,\n ]}\n onDragEnd={handleDragEnd}\n >\n <SortableContext\n items={pluck(\"id\", filteredColumns)}\n strategy={verticalListSortingStrategy}\n >\n {filteredColumns.map(column => (\n <Item\n {...{\n checkboxProps,\n column,\n hiddenColumns,\n isTableConfigurationFetching,\n }}\n key={column.id}\n onToggle={handleChange}\n />\n ))}\n </SortableContext>\n </DndContext>\n )}\n {isNotEmpty(filteredColumns) &&\n searchTerm &&\n filteredColumns.map(({ id, header }) => (\n <Label\n className=\"hover:bg-accent flex w-full cursor-pointer items-center px-5 py-2\"\n htmlFor={id}\n key={id}\n >\n <Checkbox\n {...{ id }}\n checked={!hiddenColumns.includes(id)}\n data-testid=\"neeto-ui-columns-checkbox\"\n name={id}\n onCheckedChange={checked => {\n handleChange({ target: { name: id, checked } });\n }}\n {...checkboxProps}\n />\n <span className=\"ms-2 text-sm\">{header}</span>\n </Label>\n ))}\n </div>\n <div className=\"shrink-0\">\n <Separator />\n {!!actionBlock && (\n <>\n {actionBlock}\n <Separator />\n </>\n )}\n <div className=\"flex justify-end gap-2 px-3 py-2\">\n <Button\n data-testid=\"column-visibility-hide-all-button\"\n size=\"sm\"\n variant=\"ghost\"\n onClick={handleHideAllColumns}\n >\n {t(\"neetoMolecules.columns.hideAll\")}\n </Button>\n <Button\n data-testid=\"column-visibility-reset-button\"\n size=\"sm\"\n variant=\"outline\"\n onClick={() => destroyConfiguration(tableKey)}\n >\n {t(\"neetoMolecules.columns.reset\")}\n </Button>\n </div>\n </div>\n </div>\n </PopoverContent>\n </Popover>\n );\n};\n\nColumns.propTypes = {\n allowConfigurationResetOnUpdate: PropTypes.bool,\n actionBlock: PropTypes.element,\n checkboxProps: PropTypes.object,\n columnData: PropTypes.array,\n isSearchable: PropTypes.bool,\n tableKey: PropTypes.string,\n noColumnMessage: PropTypes.string,\n searchProps: PropTypes.object,\n onMutationSuccess: PropTypes.func,\n onOpenChange: PropTypes.func,\n};\n\nColumns.displayName = \"Columns\";\nexport default Columns;\n"],"names":["Item","_ref","_active$data","_over$data","column","hiddenColumns","checkboxProps","onToggle","isTableConfigurationFetching","id","header","_useSortable","useSortable","attributes","listeners","setNodeRef","transform","transition","isDragging","isOver","over","active","dragStyle","CSS","Transform","toString","opacity","isIndicatorVisible","draggedIndex","data","current","sortable","index","targetIndex","isChecked","includes","_jsxs","children","_jsx","className","classNames","ref","style","_objectSpread","GripVertical","size","Label","htmlFor","Checkbox","checked","disabled","name","onCheckedChange","target","baseUrl","fetch","tableKey","axios","get","concat","create","payload","post","tableConfiguration","update","patch","destroy","tableConfigurationApi","HIDDEN_COLUMNS_STORAGE_KEY","COLUMNS_ORDER_STORAGE_KEY","TABLE_CONFIGURATION_QUERY_KEY","useFetchTableConfiguration","_ref$options","options","useQuery","queryKey","enabled","queryFn","useUpdateTableConfiguration","arguments","length","undefined","useMutationWithInvalidation","keysToInvalidate","useDestroyTableConfiguration","useTableConfigurations","columnData","onMutationSuccess","noop","allowConfigurationResetOnUpdate","defaultHiddenColumns","_useFetchTableConfigu","isLoading","isFetching","_useUpdateTableConfig","onSuccess","updateConfiguration","mutate","_useDestroyTableConfi","destroyConfiguration","processColumnsWithConfiguration","useCallback","originalColumns","existingColumnConfiguration","isEmpty","originalColumnsById","Map","filter","prop","map","configurationByKey","config","key","orderedConfiguredColumns","Boolean","unconfiguredOriginalColumns","has","_toConsumableArray","hasAdditionalColumns","useMemo","columns","configurationKeys","pluck","sort","dataKeys","col","isNotEqualDeep","shouldApplyTableConfiguration","isNotEmpty","useEffect","allProcessedColumns","isShown","customizedColumns","visibleColumnsConfig","visibleColumnKeys","enableHiding","updateColumns","updatedColumns","table_key","hideColumn","columnKey","showColumn","isTableConfigurationLoading","getHidableColumns","removeBy","filterBySearchTerm","searchTerm","_ref$header","trim","toLower","Columns","actionBlock","_ref$checkboxProps","_ref$columnData","_ref$isSearchable","isSearchable","_ref$tableKey","_ref$noColumnMessage","noColumnMessage","i18next","t","_ref$searchProps","searchProps","_ref$allowConfigurati","_ref$onMutationSucces","_ref$defaultHiddenCol","_ref$buttonProps","buttonProps","_ref$onOpenChange","onOpenChange","_useState","useState","_useState2","_slicedToArray","setSearchTerm","_useState3","_useState4","open","setOpen","_useTranslation","useTranslation","_useTableConfiguratio","handleDragEnd","event","oldIndex","findIndexBy","newIndex","newOrder","_newOrder$splice","splice","_newOrder$splice2","movedItem","filteredColumns","handleHideAllColumns","columnsToHideKeys","assoc","handleChange","_ref2","_ref2$target","columnId","handleSearch","_ref3","value","Icon","icon","_buttonProps$dataTes","dataTestId","buttonLabel","label","restButtonProps","_objectWithoutProperties","_excluded","Popover","isOpen","PopoverTrigger","asChild","Button","variant","PopoverContent","align","Input","placeholder","prefix","Search","type","onChange","DndContext","collisionDetection","closestCenter","modifiers","restrictToVerticalAxis","restrictToFirstScrollableAncestor","onDragEnd","SortableContext","items","strategy","verticalListSortingStrategy","_createElement","_ref4","Separator","_Fragment","onClick","displayName"],"mappings":"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"}