@bigbinary/neeto-molecules 5.3.0 → 5.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/v2/EmailForm.js +18 -15
- package/dist/cjs/v2/EmailForm.js.map +1 -1
- package/dist/cjs/v2/SendToFields.js +4 -3
- package/dist/cjs/v2/SendToFields.js.map +1 -1
- package/dist/v2/EmailForm.js +18 -15
- package/dist/v2/EmailForm.js.map +1 -1
- package/dist/v2/SendToFields.js +4 -3
- package/dist/v2/SendToFields.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/v2/EmailForm.js
CHANGED
|
@@ -197,6 +197,7 @@ var ReplyToField = function ReplyToField(_ref) {
|
|
|
197
197
|
"data-testid": "reply-to-select-field",
|
|
198
198
|
label: t("neetoMolecules.emailForm.labels.replyTo"),
|
|
199
199
|
name: "replyTo",
|
|
200
|
+
size: "large",
|
|
200
201
|
onChange: function onChange(value) {
|
|
201
202
|
return setFieldValue("replyTo", value !== null && value !== void 0 ? value : "");
|
|
202
203
|
}
|
|
@@ -205,7 +206,6 @@ var ReplyToField = function ReplyToField(_ref) {
|
|
|
205
206
|
return /*#__PURE__*/jsxRuntime.jsx(formik$1.Input, {
|
|
206
207
|
labelProps: labelProps,
|
|
207
208
|
autoFocus: true,
|
|
208
|
-
nakedInput: true,
|
|
209
209
|
required: true,
|
|
210
210
|
className: "w-full",
|
|
211
211
|
"data-testid": "reply-to-input-field",
|
|
@@ -271,8 +271,8 @@ var SubjectField = function SubjectField(_ref) {
|
|
|
271
271
|
var tagClickHandler = function tagClickHandler(_ref2) {
|
|
272
272
|
var slug = _ref2.key,
|
|
273
273
|
category = _ref2.category;
|
|
274
|
-
var
|
|
275
|
-
var splitIndex = isFieldFocusedOnce &&
|
|
274
|
+
var inputElement = document.querySelector("[name=".concat(name, "]"));
|
|
275
|
+
var splitIndex = isFieldFocusedOnce && inputElement ? inputElement.selectionEnd : text.length;
|
|
276
276
|
var variable = category ? "".concat(category, ".").concat(slug) : slug;
|
|
277
277
|
var updatedSubject = [text.slice(0, splitIndex), " {{".concat(variable, "}}"), text.slice(splitIndex)].join("");
|
|
278
278
|
updateText(updatedSubject);
|
|
@@ -282,19 +282,22 @@ var SubjectField = function SubjectField(_ref) {
|
|
|
282
282
|
name: name,
|
|
283
283
|
onBlur: onBlur,
|
|
284
284
|
required: required,
|
|
285
|
-
nakedInput: true,
|
|
286
285
|
label: t("neetoMolecules.emailForm.labels.subject"),
|
|
287
286
|
placeholder: t("neetoMolecules.emailForm.placeholders.subject"),
|
|
287
|
+
size: "large",
|
|
288
288
|
value: text,
|
|
289
|
-
suffix: /*#__PURE__*/jsxRuntime.jsx(
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
289
|
+
suffix: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
290
|
+
className: "me-2 inline-flex",
|
|
291
|
+
children: /*#__PURE__*/jsxRuntime.jsx(v2_DynamicVariables, {
|
|
292
|
+
buttonProps: {
|
|
293
|
+
className: "self-center"
|
|
294
|
+
},
|
|
295
|
+
dropdownProps: {
|
|
296
|
+
className: "overflow-y-auto"
|
|
297
|
+
},
|
|
298
|
+
variables: subjectVariables,
|
|
299
|
+
onVariableClick: tagClickHandler
|
|
300
|
+
})
|
|
298
301
|
}),
|
|
299
302
|
onChange: general.withEventTargetValue(updateText),
|
|
300
303
|
onFocus: function onFocus() {
|
|
@@ -386,7 +389,7 @@ var EmailForm = function EmailForm(_ref) {
|
|
|
386
389
|
showCcField: showCcField,
|
|
387
390
|
showSendToTextField: showSendToTextField
|
|
388
391
|
}), showReplyToField && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
389
|
-
className: "
|
|
392
|
+
className: "w-full",
|
|
390
393
|
children: /*#__PURE__*/jsxRuntime.jsx(ReplyToField, _objectSpread$2({
|
|
391
394
|
options: replyToOptions
|
|
392
395
|
}, replyToFieldProps))
|
|
@@ -400,7 +403,7 @@ var EmailForm = function EmailForm(_ref) {
|
|
|
400
403
|
error = _ref3$meta.error,
|
|
401
404
|
touched = _ref3$meta.touched;
|
|
402
405
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
403
|
-
className: "
|
|
406
|
+
className: "w-full",
|
|
404
407
|
children: /*#__PURE__*/jsxRuntime.jsx(SubjectField, {
|
|
405
408
|
onBlur: onBlur,
|
|
406
409
|
subjectVariables: subjectVariables,
|
|
@@ -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/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 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 customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio\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(/ /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 onChange={value => setFieldValue(\"replyTo\", value ?? \"\")}\n />\n );\n }\n\n return (\n <Input\n {...{ labelProps }}\n autoFocus\n nakedInput\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 { 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 textAreaElement = document.querySelector(`textarea[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && textAreaElement\n ? textAreaElement.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 nakedInput\n label={t(\"neetoMolecules.emailForm.labels.subject\")}\n placeholder={t(\"neetoMolecules.emailForm.placeholders.subject\")}\n value={text}\n suffix={\n <DynamicVariables\n buttonProps={{ className: \"m-1\" }}\n dropdownProps={{ className: \"overflow-y-auto\" }}\n variables={subjectVariables}\n onVariableClick={tagClickHandler}\n />\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 { notEqualsDeep, isNotEmpty } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\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 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 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 normalizedDefaultValues.replyTo ||= globalProps.user?.email;\n\n const disabled = equals(normalizedValues, normalizedDefaultValues);\n\n const sendToFieldOptions = sendToFieldProps?.options || sendToOptions;\n const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToFieldOptions);\n\n const showSendToTextField = showSendToField && !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 {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=\"border-border w-full border-b pb-1\">\n <ReplyToField options={replyToOptions} {...replyToFieldProps} />\n </div>\n )}\n <Field name=\"subject\">\n {({ field: { value, onBlur }, meta: { error, touched } }) => (\n <div className=\"border-border w-full border-b pb-1\">\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 radio group 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 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 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 radio type or not.\n */\n showSendToAsRadio: 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 { globalProps } from \"neetocommons/v2/initializers\";\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 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 showReplyToField,\n showCcField,\n showBccField,\n }}\n >\n <Form\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n }),\n initialValues: {\n ...initialValues,\n replyTo: initialValues.replyTo || globalProps.user?.email,\n },\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 radio type or not.\n */\n showSendToAsRadio: 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","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","onChange","Input","autoFocus","nakedInput","placeholder","size","event","_event$target$value","target","toLowerCase","SendToField","showSendToTextField","SendToFields","showCcBccButton","bccInputProps","ccInputProps","emailInputProps","id","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","error","_ref$required","onBlur","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","slug","key","category","textAreaElement","document","querySelector","splitIndex","selectionEnd","updatedSubject","slice","join","suffix","DynamicVariables","buttonProps","dropdownProps","variables","onVariableClick","withEventTargetValue","onFocus","EmailForm","_globalProps$user","_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","globalProps","user","disabled","equals","sendToFieldOptions","showSendToRadioField","_jsxs","classnames","_defineProperty","children","RadioGroup","map","_createElement","Item","Field","_ref3","_ref3$field","field","_ref3$meta","meta","touched","undefined","FormikEditor","addons","hideSlashCommands","menuType","ref","shouldUpdate","nextProps","prevProps","notEqualsDeep","ActionBlock","cancelButtonProps","onClick","isSubmitting","Button","loading","variant","EmailFormComponent","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_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/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 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 customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio\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(/ /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 { 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 { notEqualsDeep, isNotEmpty } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\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 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 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 normalizedDefaultValues.replyTo ||= globalProps.user?.email;\n\n const disabled = equals(normalizedValues, normalizedDefaultValues);\n\n const sendToFieldOptions = sendToFieldProps?.options || sendToOptions;\n const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToFieldOptions);\n\n const showSendToTextField = showSendToField && !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 {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 radio group 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 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 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 radio type or not.\n */\n showSendToAsRadio: 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 { globalProps } from \"neetocommons/v2/initializers\";\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 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 showReplyToField,\n showCcField,\n showBccField,\n }}\n >\n <Form\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n }),\n initialValues: {\n ...initialValues,\n replyTo: initialValues.replyTo || globalProps.user?.email,\n },\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 radio type or not.\n */\n showSendToAsRadio: 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","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","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","error","_ref$required","onBlur","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","slug","key","category","inputElement","document","querySelector","splitIndex","selectionEnd","updatedSubject","slice","join","suffix","children","DynamicVariables","buttonProps","dropdownProps","variables","onVariableClick","withEventTargetValue","onFocus","EmailForm","_globalProps$user","_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","globalProps","user","disabled","equals","sendToFieldOptions","showSendToRadioField","_jsxs","classnames","_defineProperty","RadioGroup","map","_createElement","Item","Field","_ref3","_ref3$field","field","_ref3$meta","meta","touched","undefined","FormikEditor","addons","hideSlashCommands","menuType","ref","shouldUpdate","nextProps","prevProps","notEqualsDeep","ActionBlock","cancelButtonProps","onClick","isSubmitting","Button","loading","variant","EmailFormComponent","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_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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"}
|
|
@@ -269,12 +269,13 @@ var SendToFields = function SendToFields(_ref) {
|
|
|
269
269
|
}
|
|
270
270
|
})
|
|
271
271
|
}), showSendToField && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
272
|
-
className: "
|
|
272
|
+
className: "w-full",
|
|
273
273
|
children: /*#__PURE__*/jsxRuntime.jsx(formik$1.MultiEmailInput, _objectSpread(_objectSpread({
|
|
274
274
|
name: "sendTo",
|
|
275
275
|
ref: sendToFieldRef
|
|
276
276
|
}, emailInputProps), {}, {
|
|
277
277
|
suffix: showCcBccButton && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
278
|
+
className: "w-fit shrink-0",
|
|
278
279
|
"data-testid": "cc-bcc-button",
|
|
279
280
|
label: t("neetoMolecules.emailForm.labels.ccBcc"),
|
|
280
281
|
size: "sm",
|
|
@@ -288,12 +289,12 @@ var SendToFields = function SendToFields(_ref) {
|
|
|
288
289
|
}), (showCopyEmails || showCcField || showBccField) && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
289
290
|
className: "mt-5 flex w-full flex-col gap-5",
|
|
290
291
|
children: [(showCopyEmails || showCcField) && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
291
|
-
className: "
|
|
292
|
+
className: "w-full",
|
|
292
293
|
children: /*#__PURE__*/jsxRuntime.jsx(formik$1.MultiEmailInput, _objectSpread({
|
|
293
294
|
name: "sendToBcc"
|
|
294
295
|
}, ccInputProps))
|
|
295
296
|
}), (showCopyEmails || showBccField) && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
296
|
-
className: "
|
|
297
|
+
className: "w-full",
|
|
297
298
|
children: /*#__PURE__*/jsxRuntime.jsx(formik$1.MultiEmailInput, _objectSpread({
|
|
298
299
|
name: "sendToCc"
|
|
299
300
|
}, bccInputProps))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SendToFields.js","sources":["../../../src/v2/components/SendToFields/constants.js","../../../src/v2/components/SendToFields/Requirements.jsx","../../../src/v2/components/SendToFields/BulkUploadPane.jsx","../../../src/v2/components/SendToFields/utils.js","../../../src/v2/components/SendToFields/index.jsx"],"sourcesContent":["export const SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nexport const CSV_FILE_SIZE_IN_KB = 32;\nexport const ONE_KILOBYTE_IN_BYTES = 1024;\nexport const DOWNLOAD_SAMPLE_EMAIL_CSV_FILE =\n \"https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv\";\n","import { memo } from \"react\";\n\nimport { Button, Callout } from \"@bigbinary/neeto-atoms\";\nimport { Download } from \"lucide-react\";\nimport { withT } from \"neetocommons/v2/react-utils\";\nimport { Trans } from \"react-i18next\";\n\nimport { DOWNLOAD_SAMPLE_EMAIL_CSV_FILE } from \"./constants\";\n\nconst Requirements = withT(({ t, fileSize }) => (\n <Callout className=\"flex flex-col items-center py-6\" variant=\"info\">\n <ul className=\"flex list-outside list-disc flex-col gap-y-1 leading-normal font-normal\">\n {fileSize && (\n <li>\n {t(\"neetoMolecules.shareViaLink.requirements.fileTypeAndSize\", {\n limit: fileSize,\n })}\n </li>\n )}\n <li>\n <Trans\n components={{ strong: <strong className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.shareViaLink.requirements.shouldContainColumns\"\n />\n </li>\n </ul>\n <Button\n href={DOWNLOAD_SAMPLE_EMAIL_CSV_FILE}\n icon={Download}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaLink.bulkUploadPane.downloadSampleCSV\")}\n variant=\"link\"\n />\n </Callout>\n));\n\nexport default memo(Requirements);\n","import { Button, Sheet, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { Upload } from \"lucide-react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ONE_KILOBYTE_IN_BYTES } from \"./constants\";\nimport Requirements from \"./Requirements\";\n\nconst BulkUploadPane = ({ isOpen, fileSize, onClose, handleFileSubmit }) => {\n const { getRootProps, getInputProps, isDragActive, fileRejections } =\n useDropzone({\n accept: { \"text/csv\": [] },\n maxFiles: 1,\n maxSize: fileSize * ONE_KILOBYTE_IN_BYTES,\n onDrop: files => files[0] && handleFileSubmit(files[0]),\n });\n\n const errors = fileRejections[0]?.errors.map(({ message, code }) => (\n <Typography\n className=\"text-destructive items\"\n data-testid=\"file-input-error-message\"\n key={code}\n variant=\"body3\"\n >\n {message}\n </Typography>\n ));\n\n const { t } = useTranslation();\n\n return (\n <Sheet\n {...{ isOpen, onClose }}\n aria-describedby={undefined}\n data-testid=\"bulk-upload-pane\"\n >\n <div tabIndex={0}>\n <Sheet.Header>\n <Sheet.Title data-testid=\"bulk-upload-header\">\n {t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n </Sheet.Title>\n </Sheet.Header>\n <Sheet.Body>\n <div className=\"flex w-full flex-col gap-y-4\">\n <Requirements {...{ fileSize }} />\n <div\n {...getRootProps({\n className: classNames(\n \"border-primary flex cursor-pointer flex-col items-center rounded-md border border-dashed p-2 transition duration-500 ease-in-out hover:bg-muted\",\n {\n \"border-muted\": isDragActive,\n \"border-destructive bg-destructive/10 hover:bg-destructive/10\":\n fileRejections.length,\n }\n ),\n })}\n >\n <div className=\"flex flex-col items-center gap-y-3 p-4\">\n <Upload className=\"text-primary\" size={32} />\n <input {...getInputProps()} data-testid=\"csv-upload-input\" />\n {isDragActive ? (\n <Typography variant=\"body2\">\n {t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.dropFileHere\"\n )}\n </Typography>\n ) : (\n <div className=\"flex flex-col items-center gap-y-1\">\n <div className=\"flex w-full items-center justify-center gap-x-1\">\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.dragNDrop\"\n components={{\n Button: <Button variant=\"link\" />,\n }}\n />\n </div>\n <Typography\n className=\"text-muted-foreground\"\n variant=\"body3\"\n >\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.supportedFormat\"\n values={{ fileType: \"csv\" }}\n components={{\n code: (\n <code className=\"bg-background m-0 border-s-0 p-0 text-sm\" />\n ),\n }}\n />{\" \"}\n {fileSize &&\n t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.supportedSize\",\n { fileSize }\n )}\n </Typography>\n </div>\n )}\n </div>\n {errors}\n </div>\n </div>\n </Sheet.Body>\n <Sheet.Footer className=\"flex items-center gap-x-2\">\n <Button\n data-testid=\"bulk-upload-cancel-button\"\n label={t(\"neetoMolecules.common.actions.cancel\")}\n type=\"reset\"\n variant=\"ghost\"\n onClick={onClose}\n />\n </Sheet.Footer>\n </div>\n </Sheet>\n );\n};\n\nexport default BulkUploadPane;\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = (file, onSuccess) => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const isEmailFieldPresent = results.meta.fields?.includes(\"email\");\n if (isEmailFieldPresent) {\n const emails = results.data\n .filter(prop(\"email\"))\n .map(item => item.email.trim());\n onSuccess(createEmailOptions(emails));\n } else {\n Toastr.error(t(\"neetoMolecules.sendToFields.errors.invalidCsv\"));\n }\n },\n });\n};\n","import { useRef, useState } from \"react\";\n\nimport { Button, Toastr } from \"@bigbinary/neeto-atoms\";\nimport { MultiEmailInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { useFormikContext } from \"formik\";\nimport { Upload } from \"lucide-react\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport BulkUploadPane from \"./BulkUploadPane\";\nimport { CSV_FILE_SIZE_IN_KB, SIZES } from \"./constants\";\nimport { parseCsvEmails } from \"./utils\";\n\nconst SendToFields = ({\n emailInputProps,\n ccInputProps,\n bccInputProps,\n showUploadCsvButton = false,\n showCcBccButton = false,\n showCcField = false,\n showBccField = false,\n showSendToField = true,\n}) => {\n const [isBulkUploadPaneOpen, setIsBulkUploadPaneOpen] = useState(false);\n const sendToFieldRef = useRef();\n const {\n values: {\n showCopyEmails,\n [emailInputProps.name || \"sendTo\"]: existingSendToEmails,\n },\n setFieldValue,\n } = useFormikContext();\n const { t } = useTranslation();\n\n const handleCSVFile = file => {\n try {\n const onSuccess = values =>\n setFieldValue(emailInputProps.name || \"sendTo\", [\n ...existingSendToEmails,\n ...values,\n ]);\n\n parseCsvEmails(file, onSuccess);\n setIsBulkUploadPaneOpen(false);\n sendToFieldRef.current?.focus();\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handelCcBccButtonClick = e => {\n e.stopPropagation();\n setFieldValue(\"showCopyEmails\", !showCopyEmails);\n };\n\n return (\n <div className=\"w-full\" data-testid=\"send-to-text-field\">\n {showUploadCsvButton && (\n <div className=\"flex justify-end\">\n <Button\n data-testid=\"bulk-upload-button\"\n icon={Upload}\n label={t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n size=\"sm\"\n variant=\"link\"\n onClick={() => setIsBulkUploadPaneOpen(true)}\n />\n </div>\n )}\n {showSendToField && (\n <div className=\"border-border w-full border-b pb-1\">\n <MultiEmailInput\n name=\"sendTo\"\n ref={sendToFieldRef}\n {...emailInputProps}\n suffix={\n showCcBccButton && (\n <Button\n data-testid=\"cc-bcc-button\"\n label={t(\"neetoMolecules.emailForm.labels.ccBcc\")}\n size=\"sm\"\n variant=\"link\"\n onClick={handelCcBccButtonClick}\n onKeyDown={event => event.stopPropagation()}\n />\n )\n }\n />\n </div>\n )}\n {(showCopyEmails || showCcField || showBccField) && (\n <div className=\"mt-5 flex w-full flex-col gap-5\">\n {(showCopyEmails || showCcField) && (\n <div className=\"border-border w-full border-b pb-1\">\n <MultiEmailInput name=\"sendToBcc\" {...ccInputProps} />\n </div>\n )}\n {(showCopyEmails || showBccField) && (\n <div className=\"border-border w-full border-b pb-1\">\n <MultiEmailInput name=\"sendToCc\" {...bccInputProps} />\n </div>\n )}\n </div>\n )}\n <BulkUploadPane\n fileSize={CSV_FILE_SIZE_IN_KB}\n handleFileSubmit={handleCSVFile}\n isOpen={isBulkUploadPaneOpen}\n onClose={() => setIsBulkUploadPaneOpen(false)}\n />\n </div>\n );\n};\n\nconst inputPropTypes = PropTypes.shape({\n name: PropTypes.string,\n label: PropTypes.string,\n placeholder: PropTypes.string,\n dataTestid: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n size: PropTypes.oneOf(Object.values(SIZES)),\n required: PropTypes.bool,\n});\n\nSendToFields.propTypes = {\n /**\n * Input props for sendTo input field.\n */\n emailInputProps: inputPropTypes,\n /**\n * Input props for CC input field.\n */\n ccInputProps: inputPropTypes,\n /**\n * Input props for BCC input field.\n */\n bccInputProps: inputPropTypes,\n /**\n * Flag to determine whether the 'FilePicker' button is displayed.\n */\n showUploadCsvButton: PropTypes.bool,\n /**\n * Flag to determine whether the 'Cc/Bcc' button is displayed.\n */\n showCcBccButton: PropTypes.bool,\n /**\n * To show or hide the CC field.\n */\n showCcField: PropTypes.bool,\n /**\n * To show or hide the BCC field.\n */\n showBccField: PropTypes.bool,\n /**\n * To show or hide the \"Send to\" field.\n */\n showSendToField: PropTypes.bool,\n};\n\nexport default SendToFields;\n"],"names":["CSV_FILE_SIZE_IN_KB","ONE_KILOBYTE_IN_BYTES","DOWNLOAD_SAMPLE_EMAIL_CSV_FILE","Requirements","withT","_ref","t","fileSize","_jsxs","Callout","className","variant","children","_jsx","limit","Trans","components","strong","i18nKey","Button","href","icon","Download","iconPosition","label","memo","BulkUploadPane","_fileRejections$","isOpen","onClose","handleFileSubmit","_useDropzone","useDropzone","accept","maxFiles","maxSize","onDrop","files","getRootProps","getInputProps","isDragActive","fileRejections","errors","map","_ref2","message","code","Typography","_useTranslation","useTranslation","Sheet","undefined","tabIndex","Header","Title","Body","_objectSpread","classNames","length","Upload","size","values","fileType","Footer","type","onClick","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","value","valid","parseCsvEmails","file","onSuccess","Papa","parse","header","skipEmptyLines","transformHeader","h","toLowerCase","replace","complete","results","_results$meta$fields","isEmailFieldPresent","meta","fields","includes","data","filter","prop","item","trim","Toastr","error","SendToFields","emailInputProps","ccInputProps","bccInputProps","_ref$showUploadCsvBut","showUploadCsvButton","_ref$showCcBccButton","showCcBccButton","_ref$showCcField","showCcField","_ref$showBccField","showBccField","_ref$showSendToField","showSendToField","_useState","useState","_useState2","_slicedToArray","isBulkUploadPaneOpen","setIsBulkUploadPaneOpen","sendToFieldRef","useRef","_useFormikContext","useFormikContext","_useFormikContext$val","showCopyEmails","existingSendToEmails","name","setFieldValue","handleCSVFile","_sendToFieldRef$curre","concat","_toConsumableArray","current","focus","handelCcBccButtonClick","e","stopPropagation","MultiEmailInput","ref","suffix","onKeyDown","event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SendToFields.js","sources":["../../../src/v2/components/SendToFields/constants.js","../../../src/v2/components/SendToFields/Requirements.jsx","../../../src/v2/components/SendToFields/BulkUploadPane.jsx","../../../src/v2/components/SendToFields/utils.js","../../../src/v2/components/SendToFields/index.jsx"],"sourcesContent":["export const SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nexport const CSV_FILE_SIZE_IN_KB = 32;\nexport const ONE_KILOBYTE_IN_BYTES = 1024;\nexport const DOWNLOAD_SAMPLE_EMAIL_CSV_FILE =\n \"https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv\";\n","import { memo } from \"react\";\n\nimport { Button, Callout } from \"@bigbinary/neeto-atoms\";\nimport { Download } from \"lucide-react\";\nimport { withT } from \"neetocommons/v2/react-utils\";\nimport { Trans } from \"react-i18next\";\n\nimport { DOWNLOAD_SAMPLE_EMAIL_CSV_FILE } from \"./constants\";\n\nconst Requirements = withT(({ t, fileSize }) => (\n <Callout className=\"flex flex-col items-center py-6\" variant=\"info\">\n <ul className=\"flex list-outside list-disc flex-col gap-y-1 leading-normal font-normal\">\n {fileSize && (\n <li>\n {t(\"neetoMolecules.shareViaLink.requirements.fileTypeAndSize\", {\n limit: fileSize,\n })}\n </li>\n )}\n <li>\n <Trans\n components={{ strong: <strong className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.shareViaLink.requirements.shouldContainColumns\"\n />\n </li>\n </ul>\n <Button\n href={DOWNLOAD_SAMPLE_EMAIL_CSV_FILE}\n icon={Download}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaLink.bulkUploadPane.downloadSampleCSV\")}\n variant=\"link\"\n />\n </Callout>\n));\n\nexport default memo(Requirements);\n","import { Button, Sheet, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { Upload } from \"lucide-react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ONE_KILOBYTE_IN_BYTES } from \"./constants\";\nimport Requirements from \"./Requirements\";\n\nconst BulkUploadPane = ({ isOpen, fileSize, onClose, handleFileSubmit }) => {\n const { getRootProps, getInputProps, isDragActive, fileRejections } =\n useDropzone({\n accept: { \"text/csv\": [] },\n maxFiles: 1,\n maxSize: fileSize * ONE_KILOBYTE_IN_BYTES,\n onDrop: files => files[0] && handleFileSubmit(files[0]),\n });\n\n const errors = fileRejections[0]?.errors.map(({ message, code }) => (\n <Typography\n className=\"text-destructive items\"\n data-testid=\"file-input-error-message\"\n key={code}\n variant=\"body3\"\n >\n {message}\n </Typography>\n ));\n\n const { t } = useTranslation();\n\n return (\n <Sheet\n {...{ isOpen, onClose }}\n aria-describedby={undefined}\n data-testid=\"bulk-upload-pane\"\n >\n <div tabIndex={0}>\n <Sheet.Header>\n <Sheet.Title data-testid=\"bulk-upload-header\">\n {t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n </Sheet.Title>\n </Sheet.Header>\n <Sheet.Body>\n <div className=\"flex w-full flex-col gap-y-4\">\n <Requirements {...{ fileSize }} />\n <div\n {...getRootProps({\n className: classNames(\n \"border-primary flex cursor-pointer flex-col items-center rounded-md border border-dashed p-2 transition duration-500 ease-in-out hover:bg-muted\",\n {\n \"border-muted\": isDragActive,\n \"border-destructive bg-destructive/10 hover:bg-destructive/10\":\n fileRejections.length,\n }\n ),\n })}\n >\n <div className=\"flex flex-col items-center gap-y-3 p-4\">\n <Upload className=\"text-primary\" size={32} />\n <input {...getInputProps()} data-testid=\"csv-upload-input\" />\n {isDragActive ? (\n <Typography variant=\"body2\">\n {t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.dropFileHere\"\n )}\n </Typography>\n ) : (\n <div className=\"flex flex-col items-center gap-y-1\">\n <div className=\"flex w-full items-center justify-center gap-x-1\">\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.dragNDrop\"\n components={{\n Button: <Button variant=\"link\" />,\n }}\n />\n </div>\n <Typography\n className=\"text-muted-foreground\"\n variant=\"body3\"\n >\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.supportedFormat\"\n values={{ fileType: \"csv\" }}\n components={{\n code: (\n <code className=\"bg-background m-0 border-s-0 p-0 text-sm\" />\n ),\n }}\n />{\" \"}\n {fileSize &&\n t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.supportedSize\",\n { fileSize }\n )}\n </Typography>\n </div>\n )}\n </div>\n {errors}\n </div>\n </div>\n </Sheet.Body>\n <Sheet.Footer className=\"flex items-center gap-x-2\">\n <Button\n data-testid=\"bulk-upload-cancel-button\"\n label={t(\"neetoMolecules.common.actions.cancel\")}\n type=\"reset\"\n variant=\"ghost\"\n onClick={onClose}\n />\n </Sheet.Footer>\n </div>\n </Sheet>\n );\n};\n\nexport default BulkUploadPane;\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = (file, onSuccess) => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const isEmailFieldPresent = results.meta.fields?.includes(\"email\");\n if (isEmailFieldPresent) {\n const emails = results.data\n .filter(prop(\"email\"))\n .map(item => item.email.trim());\n onSuccess(createEmailOptions(emails));\n } else {\n Toastr.error(t(\"neetoMolecules.sendToFields.errors.invalidCsv\"));\n }\n },\n });\n};\n","import { useRef, useState } from \"react\";\n\nimport { Button, Toastr } from \"@bigbinary/neeto-atoms\";\nimport { MultiEmailInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { useFormikContext } from \"formik\";\nimport { Upload } from \"lucide-react\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport BulkUploadPane from \"./BulkUploadPane\";\nimport { CSV_FILE_SIZE_IN_KB, SIZES } from \"./constants\";\nimport { parseCsvEmails } from \"./utils\";\n\nconst SendToFields = ({\n emailInputProps,\n ccInputProps,\n bccInputProps,\n showUploadCsvButton = false,\n showCcBccButton = false,\n showCcField = false,\n showBccField = false,\n showSendToField = true,\n}) => {\n const [isBulkUploadPaneOpen, setIsBulkUploadPaneOpen] = useState(false);\n const sendToFieldRef = useRef();\n const {\n values: {\n showCopyEmails,\n [emailInputProps.name || \"sendTo\"]: existingSendToEmails,\n },\n setFieldValue,\n } = useFormikContext();\n const { t } = useTranslation();\n\n const handleCSVFile = file => {\n try {\n const onSuccess = values =>\n setFieldValue(emailInputProps.name || \"sendTo\", [\n ...existingSendToEmails,\n ...values,\n ]);\n\n parseCsvEmails(file, onSuccess);\n setIsBulkUploadPaneOpen(false);\n sendToFieldRef.current?.focus();\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handelCcBccButtonClick = e => {\n e.stopPropagation();\n setFieldValue(\"showCopyEmails\", !showCopyEmails);\n };\n\n return (\n <div className=\"w-full\" data-testid=\"send-to-text-field\">\n {showUploadCsvButton && (\n <div className=\"flex justify-end\">\n <Button\n data-testid=\"bulk-upload-button\"\n icon={Upload}\n label={t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n size=\"sm\"\n variant=\"link\"\n onClick={() => setIsBulkUploadPaneOpen(true)}\n />\n </div>\n )}\n {showSendToField && (\n <div className=\"w-full\">\n <MultiEmailInput\n name=\"sendTo\"\n ref={sendToFieldRef}\n {...emailInputProps}\n suffix={\n showCcBccButton && (\n <Button\n className=\"w-fit shrink-0\"\n data-testid=\"cc-bcc-button\"\n label={t(\"neetoMolecules.emailForm.labels.ccBcc\")}\n size=\"sm\"\n variant=\"link\"\n onClick={handelCcBccButtonClick}\n onKeyDown={event => event.stopPropagation()}\n />\n )\n }\n />\n </div>\n )}\n {(showCopyEmails || showCcField || showBccField) && (\n <div className=\"mt-5 flex w-full flex-col gap-5\">\n {(showCopyEmails || showCcField) && (\n <div className=\"w-full\">\n <MultiEmailInput name=\"sendToBcc\" {...ccInputProps} />\n </div>\n )}\n {(showCopyEmails || showBccField) && (\n <div className=\"w-full\">\n <MultiEmailInput name=\"sendToCc\" {...bccInputProps} />\n </div>\n )}\n </div>\n )}\n <BulkUploadPane\n fileSize={CSV_FILE_SIZE_IN_KB}\n handleFileSubmit={handleCSVFile}\n isOpen={isBulkUploadPaneOpen}\n onClose={() => setIsBulkUploadPaneOpen(false)}\n />\n </div>\n );\n};\n\nconst inputPropTypes = PropTypes.shape({\n name: PropTypes.string,\n label: PropTypes.string,\n placeholder: PropTypes.string,\n dataTestid: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n size: PropTypes.oneOf(Object.values(SIZES)),\n required: PropTypes.bool,\n});\n\nSendToFields.propTypes = {\n /**\n * Input props for sendTo input field.\n */\n emailInputProps: inputPropTypes,\n /**\n * Input props for CC input field.\n */\n ccInputProps: inputPropTypes,\n /**\n * Input props for BCC input field.\n */\n bccInputProps: inputPropTypes,\n /**\n * Flag to determine whether the 'FilePicker' button is displayed.\n */\n showUploadCsvButton: PropTypes.bool,\n /**\n * Flag to determine whether the 'Cc/Bcc' button is displayed.\n */\n showCcBccButton: PropTypes.bool,\n /**\n * To show or hide the CC field.\n */\n showCcField: PropTypes.bool,\n /**\n * To show or hide the BCC field.\n */\n showBccField: PropTypes.bool,\n /**\n * To show or hide the \"Send to\" field.\n */\n showSendToField: PropTypes.bool,\n};\n\nexport default SendToFields;\n"],"names":["CSV_FILE_SIZE_IN_KB","ONE_KILOBYTE_IN_BYTES","DOWNLOAD_SAMPLE_EMAIL_CSV_FILE","Requirements","withT","_ref","t","fileSize","_jsxs","Callout","className","variant","children","_jsx","limit","Trans","components","strong","i18nKey","Button","href","icon","Download","iconPosition","label","memo","BulkUploadPane","_fileRejections$","isOpen","onClose","handleFileSubmit","_useDropzone","useDropzone","accept","maxFiles","maxSize","onDrop","files","getRootProps","getInputProps","isDragActive","fileRejections","errors","map","_ref2","message","code","Typography","_useTranslation","useTranslation","Sheet","undefined","tabIndex","Header","Title","Body","_objectSpread","classNames","length","Upload","size","values","fileType","Footer","type","onClick","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","value","valid","parseCsvEmails","file","onSuccess","Papa","parse","header","skipEmptyLines","transformHeader","h","toLowerCase","replace","complete","results","_results$meta$fields","isEmailFieldPresent","meta","fields","includes","data","filter","prop","item","trim","Toastr","error","SendToFields","emailInputProps","ccInputProps","bccInputProps","_ref$showUploadCsvBut","showUploadCsvButton","_ref$showCcBccButton","showCcBccButton","_ref$showCcField","showCcField","_ref$showBccField","showBccField","_ref$showSendToField","showSendToField","_useState","useState","_useState2","_slicedToArray","isBulkUploadPaneOpen","setIsBulkUploadPaneOpen","sendToFieldRef","useRef","_useFormikContext","useFormikContext","_useFormikContext$val","showCopyEmails","existingSendToEmails","name","setFieldValue","handleCSVFile","_sendToFieldRef$curre","concat","_toConsumableArray","current","focus","handelCcBccButtonClick","e","stopPropagation","MultiEmailInput","ref","suffix","onKeyDown","event"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACO,IAAMA,mBAAmB,GAAG,EAAE;AAC9B,IAAMC,qBAAqB,GAAG,IAAI;AAClC,IAAMC,8BAA8B,GACzC,oEAAoE;;ACKtE,IAAMC,cAAY,GAAGC,gBAAK,CAAC,UAAAC,IAAA,EAAA;AAAA,EAAA,IAAGC,CAAC,GAAAD,IAAA,CAADC,CAAC;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EAAA,oBACvCC,eAAA,CAACC,kBAAO,EAAA;AAACC,IAAAA,SAAS,EAAC,iCAAiC;AAACC,IAAAA,OAAO,EAAC,MAAM;AAAAC,IAAAA,QAAA,gBACjEJ,eAAA,CAAA,IAAA,EAAA;AAAIE,MAAAA,SAAS,EAAC,yEAAyE;MAAAE,QAAA,EAAA,CACpFL,QAAQ,iBACPM,cAAA,CAAA,IAAA,EAAA;AAAAD,QAAAA,QAAA,EACGN,CAAC,CAAC,0DAA0D,EAAE;AAC7DQ,UAAAA,KAAK,EAAEP;SACR;OACC,CACL,eACDM,cAAA,CAAA,IAAA,EAAA;QAAAD,QAAA,eACEC,cAAA,CAACE,kBAAK,EAAA;AACJC,UAAAA,UAAU,EAAE;AAAEC,YAAAA,MAAM,eAAEJ,cAAA,CAAA,QAAA,EAAA;AAAQH,cAAAA,SAAS,EAAC;aAAiB;WAAI;AAC7DQ,UAAAA,OAAO,EAAC;SACT;AAAC,OACA,CAAC;AAAA,KACH,CAAC,eACLL,cAAA,CAACM,iBAAM,EAAA;AACLC,MAAAA,IAAI,EAAElB,8BAA+B;AACrCmB,MAAAA,IAAI,EAAEC,iBAAS;AACfC,MAAAA,YAAY,EAAC,MAAM;AACnBC,MAAAA,KAAK,EAAElB,CAAC,CAAC,8DAA8D,CAAE;AACzEK,MAAAA,OAAO,EAAC;AAAM,KACf,CAAC;AAAA,GACK,CAAC;AAAA,CACX,CAAC;AAEF,mBAAA,aAAec,UAAI,CAACtB,cAAY,CAAC;;;;AC3BjC,IAAMuB,cAAc,GAAG,SAAjBA,cAAcA,CAAArB,IAAA,EAAwD;AAAA,EAAA,IAAAsB,gBAAA;AAAA,EAAA,IAAlDC,MAAM,GAAAvB,IAAA,CAANuB,MAAM;IAAErB,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEsB,OAAO,GAAAxB,IAAA,CAAPwB,OAAO;IAAEC,gBAAgB,GAAAzB,IAAA,CAAhByB,gBAAgB;EACnE,IAAAC,YAAA,GACEC,yBAAW,CAAC;AACVC,MAAAA,MAAM,EAAE;AAAE,QAAA,UAAU,EAAE;OAAI;AAC1BC,MAAAA,QAAQ,EAAE,CAAC;MACXC,OAAO,EAAE5B,QAAQ,GAAGN,qBAAqB;AACzCmC,MAAAA,MAAM,EAAE,SAARA,MAAMA,CAAEC,KAAK,EAAA;QAAA,OAAIA,KAAK,CAAC,CAAC,CAAC,IAAIP,gBAAgB,CAACO,KAAK,CAAC,CAAC,CAAC,CAAC;AAAA,MAAA;AACzD,KAAC,CAAC;IANIC,YAAY,GAAAP,YAAA,CAAZO,YAAY;IAAEC,aAAa,GAAAR,YAAA,CAAbQ,aAAa;IAAEC,YAAY,GAAAT,YAAA,CAAZS,YAAY;IAAEC,cAAc,GAAAV,YAAA,CAAdU,cAAc;AAQjE,EAAA,IAAMC,MAAM,GAAA,CAAAf,gBAAA,GAAGc,cAAc,CAAC,CAAC,CAAC,MAAA,IAAA,IAAAd,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,gBAAA,CAAmBe,MAAM,CAACC,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,IAAA,IAAGC,OAAO,GAAAD,KAAA,CAAPC,OAAO;MAAEC,IAAI,GAAAF,KAAA,CAAJE,IAAI;IAAA,oBAC3DjC,cAAA,CAACkC,qBAAU,EAAA;AACTrC,MAAAA,SAAS,EAAC,wBAAwB;AAClC,MAAA,aAAA,EAAY,0BAA0B;AAEtCC,MAAAA,OAAO,EAAC,OAAO;AAAAC,MAAAA,QAAA,EAEdiC;AAAO,KAAA,EAHHC,IAIK,CAAC;AAAA,EAAA,CACd,CAAC;AAEF,EAAA,IAAAE,eAAA,GAAcC,2BAAc,EAAE;IAAtB3C,CAAC,GAAA0C,eAAA,CAAD1C,CAAC;EAET,oBACEO,cAAA,CAACqC,gBAAK,EAAA;AACEtB,IAAAA,MAAM,EAANA,MAAM;AAAEC,IAAAA,OAAO,EAAPA,OAAO;AACrB,IAAA,kBAAA,EAAkBsB,SAAU;AAC5B,IAAA,aAAA,EAAY,kBAAkB;AAAAvC,IAAAA,QAAA,eAE9BJ,eAAA,CAAA,KAAA,EAAA;AAAK4C,MAAAA,QAAQ,EAAE,CAAE;AAAAxC,MAAAA,QAAA,EAAA,cACfC,cAAA,CAACqC,gBAAK,CAACG,MAAM,EAAA;AAAAzC,QAAAA,QAAA,eACXC,cAAA,CAACqC,gBAAK,CAACI,KAAK,EAAA;AAAC,UAAA,aAAA,EAAY,oBAAoB;UAAA1C,QAAA,EAC1CN,CAAC,CAAC,wCAAwC;SAChC;AAAC,OACF,CAAC,eACfO,cAAA,CAACqC,gBAAK,CAACK,IAAI,EAAA;AAAA3C,QAAAA,QAAA,eACTJ,eAAA,CAAA,KAAA,EAAA;AAAKE,UAAAA,SAAS,EAAC,8BAA8B;UAAAE,QAAA,EAAA,cAC3CC,cAAA,CAACV,YAAY,EAAA;AAAOI,YAAAA,QAAQ,EAARA;WAAa,CAAC,eAClCC,eAAA,CAAA,KAAA,EAAAgD,eAAA,CAAAA,eAAA,CAAA,EAAA,EACMlB,YAAY,CAAC;AACf5B,YAAAA,SAAS,EAAE+C,UAAU,CACnB,iJAAiJ,EACjJ;AACE,cAAA,cAAc,EAAEjB,YAAY;cAC5B,8DAA8D,EAC5DC,cAAc,CAACiB;aAErB;AACF,WAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAA9C,YAAAA,QAAA,gBAEFJ,eAAA,CAAA,KAAA,EAAA;AAAKE,cAAAA,SAAS,EAAC,wCAAwC;cAAAE,QAAA,EAAA,cACrDC,cAAA,CAAC8C,aAAM,EAAA;AAACjD,gBAAAA,SAAS,EAAC,cAAc;AAACkD,gBAAAA,IAAI,EAAE;eAAK,CAAC,eAC7C/C,cAAA,CAAA,OAAA,EAAA2C,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAWjB,aAAa,EAAE,CAAA,EAAA,EAAA,EAAA;gBAAE,aAAA,EAAY;AAAkB,eAAA,CAAE,CAAC,EAC5DC,YAAY,gBACX3B,cAAA,CAACkC,qBAAU,EAAA;AAACpC,gBAAAA,OAAO,EAAC,OAAO;gBAAAC,QAAA,EACxBN,CAAC,CACA,yDACF;eACU,CAAC,gBAEbE,eAAA,CAAA,KAAA,EAAA;AAAKE,gBAAAA,SAAS,EAAC,oCAAoC;AAAAE,gBAAAA,QAAA,gBACjDC,cAAA,CAAA,KAAA,EAAA;AAAKH,kBAAAA,SAAS,EAAC,iDAAiD;kBAAAE,QAAA,eAC9DC,cAAA,CAACE,kBAAK,EAAA;AACJG,oBAAAA,OAAO,EAAC,sDAAsD;AAC9DF,oBAAAA,UAAU,EAAE;sBACVG,MAAM,eAAEN,cAAA,CAACM,iBAAM,EAAA;AAACR,wBAAAA,OAAO,EAAC;uBAAQ;AAClC;mBACD;AAAC,iBACC,CAAC,eACNH,eAAA,CAACuC,qBAAU,EAAA;AACTrC,kBAAAA,SAAS,EAAC,uBAAuB;AACjCC,kBAAAA,OAAO,EAAC,OAAO;kBAAAC,QAAA,EAAA,cAEfC,cAAA,CAACE,kBAAK,EAAA;AACJG,oBAAAA,OAAO,EAAC,4DAA4D;AACpE2C,oBAAAA,MAAM,EAAE;AAAEC,sBAAAA,QAAQ,EAAE;qBAAQ;AAC5B9C,oBAAAA,UAAU,EAAE;AACV8B,sBAAAA,IAAI,eACFjC,cAAA,CAAA,MAAA,EAAA;AAAMH,wBAAAA,SAAS,EAAC;uBAA4C;AAEhE;mBACD,CAAC,EAAC,GAAG,EACLH,QAAQ,IACPD,CAAC,CACC,0DAA0D,EAC1D;AAAEC,oBAAAA,QAAQ,EAARA;AAAS,mBACb,CAAC;AAAA,iBACO,CAAC;AAAA,eACV,CACN;aACE,CAAC,EACLmC,MAAM;AAAA,WAAA,CACJ,CAAC;SACH;AAAC,OACI,CAAC,eACb7B,cAAA,CAACqC,gBAAK,CAACa,MAAM,EAAA;AAACrD,QAAAA,SAAS,EAAC,2BAA2B;QAAAE,QAAA,eACjDC,cAAA,CAACM,iBAAM,EAAA;AACL,UAAA,aAAA,EAAY,2BAA2B;AACvCK,UAAAA,KAAK,EAAElB,CAAC,CAAC,sCAAsC,CAAE;AACjD0D,UAAAA,IAAI,EAAC,OAAO;AACZrD,UAAAA,OAAO,EAAC,OAAO;AACfsD,UAAAA,OAAO,EAAEpC;SACV;AAAC,OACU,CAAC;KACZ;AAAC,GACD,CAAC;AAEZ,CAAC;;AC7GD,IAAMqC,YAAY,GAAG,SAAfA,YAAYA,CAAGC,KAAK,EAAA;EAAA,OAAIC,UAAM,EAAE,CAACD,KAAK,EAAE,CAACE,WAAW,CAACF,KAAK,CAAC;AAAA,CAAA;AAE1D,IAAMG,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAA;AAAA,EAAA,IAAIC,MAAM,GAAAC,SAAA,CAAAd,MAAA,GAAA,CAAA,IAAAc,SAAA,CAAA,CAAA,CAAA,KAAArB,SAAA,GAAAqB,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,EAAA,OAC5CD,MAAM,CAAC5B,GAAG,CAAC,UAAAwB,KAAK,EAAA;IAAA,OAAK;AACnB3C,MAAAA,KAAK,EAAE2C,KAAK;AACZM,MAAAA,KAAK,EAAEN,KAAK;MACZO,KAAK,EAAER,YAAY,CAACC,KAAK;KAC1B;AAAA,EAAA,CAAC,CAAC;AAAA,CAAA;AAEE,IAAMQ,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,IAAI,EAAEC,SAAS,EAAK;AACjDC,EAAAA,cAAI,CAACC,KAAK,CAACH,IAAI,EAAE;AACfI,IAAAA,MAAM,EAAE,IAAI;AACZC,IAAAA,cAAc,EAAE,IAAI;AACpBC,IAAAA,eAAe,EAAE,SAAjBA,eAAeA,CAAEC,CAAC,EAAA;MAAA,OAAIA,CAAC,CAACC,WAAW,EAAE,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAAA,IAAA,CAAA;AACxDC,IAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,OAAO,EAAI;AAAA,MAAA,IAAAC,oBAAA;AACnB,MAAA,IAAMC,mBAAmB,GAAA,CAAAD,oBAAA,GAAGD,OAAO,CAACG,IAAI,CAACC,MAAM,MAAA,IAAA,IAAAH,oBAAA,KAAA,MAAA,GAAA,MAAA,GAAnBA,oBAAA,CAAqBI,QAAQ,CAAC,OAAO,CAAC;AAClE,MAAA,IAAIH,mBAAmB,EAAE;AACvB,QAAA,IAAMlB,MAAM,GAAGgB,OAAO,CAACM,IAAI,CACxBC,MAAM,CAACC,UAAI,CAAC,OAAO,CAAC,CAAC,CACrBpD,GAAG,CAAC,UAAAqD,IAAI,EAAA;AAAA,UAAA,OAAIA,IAAI,CAAC7B,KAAK,CAAC8B,IAAI,EAAE;QAAA,CAAA,CAAC;AACjCpB,QAAAA,SAAS,CAACP,kBAAkB,CAACC,MAAM,CAAC,CAAC;AACvC,MAAA,CAAC,MAAM;AACL2B,QAAAA,iBAAM,CAACC,KAAK,CAAC7F,SAAC,CAAC,+CAA+C,CAAC,CAAC;AAClE,MAAA;AACF,IAAA;AACF,GAAC,CAAC;AACJ,CAAC;;;;ACnBD,IAAM8F,YAAY,GAAG,SAAfA,YAAYA,CAAA/F,IAAA,EASZ;AAAA,EAAA,IARJgG,eAAe,GAAAhG,IAAA,CAAfgG,eAAe;IACfC,YAAY,GAAAjG,IAAA,CAAZiG,YAAY;IACZC,aAAa,GAAAlG,IAAA,CAAbkG,aAAa;IAAAC,qBAAA,GAAAnG,IAAA,CACboG,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;IAAAE,oBAAA,GAAArG,IAAA,CAC3BsG,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,oBAAA;IAAAE,gBAAA,GAAAvG,IAAA,CACvBwG,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,gBAAA;IAAAE,iBAAA,GAAAzG,IAAA,CACnB0G,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,iBAAA;IAAAE,oBAAA,GAAA3G,IAAA,CACpB4G,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,oBAAA;AAEtB,EAAA,IAAAE,SAAA,GAAwDC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAhEI,IAAAA,oBAAoB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,uBAAuB,GAAAH,UAAA,CAAA,CAAA,CAAA;AACpD,EAAA,IAAMI,cAAc,GAAGC,YAAM,EAAE;AAC/B,EAAA,IAAAC,iBAAA,GAMIC,uBAAgB,EAAE;IAAAC,qBAAA,GAAAF,iBAAA,CALpB7D,MAAM;IACJgE,cAAc,GAAAD,qBAAA,CAAdC,cAAc;AACsBC,IAAAA,oBAAoB,GAAAF,qBAAA,CAAvDvB,eAAe,CAAC0B,IAAI,IAAI,QAAQ,CAAA;IAEnCC,aAAa,GAAAN,iBAAA,CAAbM,aAAa;AAEf,EAAA,IAAAhF,eAAA,GAAcC,2BAAc,EAAE;IAAtB3C,CAAC,GAAA0C,eAAA,CAAD1C,CAAC;AAET,EAAA,IAAM2H,aAAa,GAAG,SAAhBA,aAAaA,CAAGrD,IAAI,EAAI;IAC5B,IAAI;AAAA,MAAA,IAAAsD,qBAAA;AACF,MAAA,IAAMrD,SAAS,GAAG,SAAZA,SAASA,CAAGhB,MAAM,EAAA;AAAA,QAAA,OACtBmE,aAAa,CAAC3B,eAAe,CAAC0B,IAAI,IAAI,QAAQ,EAAA,EAAA,CAAAI,MAAA,CAAAC,kBAAA,CACzCN,oBAAoB,CAAA,EAAAM,kBAAA,CACpBvE,MAAM,EACV,CAAC;AAAA,MAAA,CAAA;AAEJc,MAAAA,cAAc,CAACC,IAAI,EAAEC,SAAS,CAAC;MAC/B0C,uBAAuB,CAAC,KAAK,CAAC;AAC9B,MAAA,CAAAW,qBAAA,GAAAV,cAAc,CAACa,OAAO,MAAA,IAAA,IAAAH,qBAAA,KAAA,KAAA,CAAA,IAAtBA,qBAAA,CAAwBI,KAAK,EAAE;IACjC,CAAC,CAAC,OAAOnC,KAAK,EAAE;AACdD,MAAAA,iBAAM,CAACC,KAAK,CAACA,KAAK,CAAC;AACrB,IAAA;EACF,CAAC;AAED,EAAA,IAAMoC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGC,CAAC,EAAI;IAClCA,CAAC,CAACC,eAAe,EAAE;AACnBT,IAAAA,aAAa,CAAC,gBAAgB,EAAE,CAACH,cAAc,CAAC;EAClD,CAAC;AAED,EAAA,oBACErH,eAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,QAAQ;AAAC,IAAA,aAAA,EAAY,oBAAoB;IAAAE,QAAA,EAAA,CACrD6F,mBAAmB,iBAClB5F,cAAA,CAAA,KAAA,EAAA;AAAKH,MAAAA,SAAS,EAAC,kBAAkB;MAAAE,QAAA,eAC/BC,cAAA,CAACM,iBAAM,EAAA;AACL,QAAA,aAAA,EAAY,oBAAoB;AAChCE,QAAAA,IAAI,EAAEsC,aAAO;AACbnC,QAAAA,KAAK,EAAElB,CAAC,CAAC,wCAAwC,CAAE;AACnDsD,QAAAA,IAAI,EAAC,IAAI;AACTjD,QAAAA,OAAO,EAAC,MAAM;QACdsD,OAAO,EAAE,SAATA,OAAOA,GAAA;UAAA,OAAQsD,uBAAuB,CAAC,IAAI,CAAC;AAAA,QAAA;OAC7C;AAAC,KACC,CACN,EACAN,eAAe,iBACdpG,cAAA,CAAA,KAAA,EAAA;AAAKH,MAAAA,SAAS,EAAC,QAAQ;AAAAE,MAAAA,QAAA,eACrBC,cAAA,CAAC6H,wBAAe,EAAAlF,aAAA,CAAAA,aAAA,CAAA;AACduE,QAAAA,IAAI,EAAC,QAAQ;AACbY,QAAAA,GAAG,EAAEnB;AAAe,OAAA,EAChBnB,eAAe,CAAA,EAAA,EAAA,EAAA;AACnBuC,QAAAA,MAAM,EACJjC,eAAe,iBACb9F,cAAA,CAACM,iBAAM,EAAA;AACLT,UAAAA,SAAS,EAAC,gBAAgB;AAC1B,UAAA,aAAA,EAAY,eAAe;AAC3Bc,UAAAA,KAAK,EAAElB,CAAC,CAAC,uCAAuC,CAAE;AAClDsD,UAAAA,IAAI,EAAC,IAAI;AACTjD,UAAAA,OAAO,EAAC,MAAM;AACdsD,UAAAA,OAAO,EAAEsE,sBAAuB;AAChCM,UAAAA,SAAS,EAAE,SAAXA,SAASA,CAAEC,KAAK,EAAA;AAAA,YAAA,OAAIA,KAAK,CAACL,eAAe,EAAE;AAAA,UAAA;SAC5C;OAEJ,CACF;KACE,CACN,EACA,CAACZ,cAAc,IAAIhB,WAAW,IAAIE,YAAY,kBAC7CvG,eAAA,CAAA,KAAA,EAAA;AAAKE,MAAAA,SAAS,EAAC,iCAAiC;AAAAE,MAAAA,QAAA,GAC7C,CAACiH,cAAc,IAAIhB,WAAW,kBAC7BhG,cAAA,CAAA,KAAA,EAAA;AAAKH,QAAAA,SAAS,EAAC,QAAQ;AAAAE,QAAAA,QAAA,eACrBC,cAAA,CAAC6H,wBAAe,EAAAlF,aAAA,CAAA;AAACuE,UAAAA,IAAI,EAAC;AAAW,SAAA,EAAKzB,YAAY,CAAG;AAAC,OACnD,CACN,EACA,CAACuB,cAAc,IAAId,YAAY,kBAC9BlG,cAAA,CAAA,KAAA,EAAA;AAAKH,QAAAA,SAAS,EAAC,QAAQ;AAAAE,QAAAA,QAAA,eACrBC,cAAA,CAAC6H,wBAAe,EAAAlF,aAAA,CAAA;AAACuE,UAAAA,IAAI,EAAC;AAAU,SAAA,EAAKxB,aAAa,CAAG;AAAC,OACnD,CACN;AAAA,KACE,CACN,eACD1F,cAAA,CAACa,cAAc,EAAA;AACbnB,MAAAA,QAAQ,EAAEP,mBAAoB;AAC9B8B,MAAAA,gBAAgB,EAAEmG,aAAc;AAChCrG,MAAAA,MAAM,EAAE0F,oBAAqB;MAC7BzF,OAAO,EAAE,SAATA,OAAOA,GAAA;QAAA,OAAQ0F,uBAAuB,CAAC,KAAK,CAAC;AAAA,MAAA;AAAC,KAC/C,CAAC;AAAA,GACC,CAAC;AAEV;;;;"}
|
package/dist/v2/EmailForm.js
CHANGED
|
@@ -174,6 +174,7 @@ var ReplyToField = function ReplyToField(_ref) {
|
|
|
174
174
|
"data-testid": "reply-to-select-field",
|
|
175
175
|
label: t("neetoMolecules.emailForm.labels.replyTo"),
|
|
176
176
|
name: "replyTo",
|
|
177
|
+
size: "large",
|
|
177
178
|
onChange: function onChange(value) {
|
|
178
179
|
return setFieldValue("replyTo", value !== null && value !== void 0 ? value : "");
|
|
179
180
|
}
|
|
@@ -182,7 +183,6 @@ var ReplyToField = function ReplyToField(_ref) {
|
|
|
182
183
|
return /*#__PURE__*/jsx(Input, {
|
|
183
184
|
labelProps: labelProps,
|
|
184
185
|
autoFocus: true,
|
|
185
|
-
nakedInput: true,
|
|
186
186
|
required: true,
|
|
187
187
|
className: "w-full",
|
|
188
188
|
"data-testid": "reply-to-input-field",
|
|
@@ -248,8 +248,8 @@ var SubjectField = function SubjectField(_ref) {
|
|
|
248
248
|
var tagClickHandler = function tagClickHandler(_ref2) {
|
|
249
249
|
var slug = _ref2.key,
|
|
250
250
|
category = _ref2.category;
|
|
251
|
-
var
|
|
252
|
-
var splitIndex = isFieldFocusedOnce &&
|
|
251
|
+
var inputElement = document.querySelector("[name=".concat(name, "]"));
|
|
252
|
+
var splitIndex = isFieldFocusedOnce && inputElement ? inputElement.selectionEnd : text.length;
|
|
253
253
|
var variable = category ? "".concat(category, ".").concat(slug) : slug;
|
|
254
254
|
var updatedSubject = [text.slice(0, splitIndex), " {{".concat(variable, "}}"), text.slice(splitIndex)].join("");
|
|
255
255
|
updateText(updatedSubject);
|
|
@@ -259,19 +259,22 @@ var SubjectField = function SubjectField(_ref) {
|
|
|
259
259
|
name: name,
|
|
260
260
|
onBlur: onBlur,
|
|
261
261
|
required: required,
|
|
262
|
-
nakedInput: true,
|
|
263
262
|
label: t("neetoMolecules.emailForm.labels.subject"),
|
|
264
263
|
placeholder: t("neetoMolecules.emailForm.placeholders.subject"),
|
|
264
|
+
size: "large",
|
|
265
265
|
value: text,
|
|
266
|
-
suffix: /*#__PURE__*/jsx(
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
266
|
+
suffix: /*#__PURE__*/jsx("div", {
|
|
267
|
+
className: "me-2 inline-flex",
|
|
268
|
+
children: /*#__PURE__*/jsx(DynamicVariables, {
|
|
269
|
+
buttonProps: {
|
|
270
|
+
className: "self-center"
|
|
271
|
+
},
|
|
272
|
+
dropdownProps: {
|
|
273
|
+
className: "overflow-y-auto"
|
|
274
|
+
},
|
|
275
|
+
variables: subjectVariables,
|
|
276
|
+
onVariableClick: tagClickHandler
|
|
277
|
+
})
|
|
275
278
|
}),
|
|
276
279
|
onChange: withEventTargetValue(updateText),
|
|
277
280
|
onFocus: function onFocus() {
|
|
@@ -363,7 +366,7 @@ var EmailForm = function EmailForm(_ref) {
|
|
|
363
366
|
showCcField: showCcField,
|
|
364
367
|
showSendToTextField: showSendToTextField
|
|
365
368
|
}), showReplyToField && /*#__PURE__*/jsx("div", {
|
|
366
|
-
className: "
|
|
369
|
+
className: "w-full",
|
|
367
370
|
children: /*#__PURE__*/jsx(ReplyToField, _objectSpread$2({
|
|
368
371
|
options: replyToOptions
|
|
369
372
|
}, replyToFieldProps))
|
|
@@ -377,7 +380,7 @@ var EmailForm = function EmailForm(_ref) {
|
|
|
377
380
|
error = _ref3$meta.error,
|
|
378
381
|
touched = _ref3$meta.touched;
|
|
379
382
|
return /*#__PURE__*/jsx("div", {
|
|
380
|
-
className: "
|
|
383
|
+
className: "w-full",
|
|
381
384
|
children: /*#__PURE__*/jsx(SubjectField, {
|
|
382
385
|
onBlur: onBlur,
|
|
383
386
|
subjectVariables: subjectVariables,
|
package/dist/v2/EmailForm.js.map
CHANGED
|
@@ -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/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 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 customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio\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(/ /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 onChange={value => setFieldValue(\"replyTo\", value ?? \"\")}\n />\n );\n }\n\n return (\n <Input\n {...{ labelProps }}\n autoFocus\n nakedInput\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 { 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 textAreaElement = document.querySelector(`textarea[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && textAreaElement\n ? textAreaElement.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 nakedInput\n label={t(\"neetoMolecules.emailForm.labels.subject\")}\n placeholder={t(\"neetoMolecules.emailForm.placeholders.subject\")}\n value={text}\n suffix={\n <DynamicVariables\n buttonProps={{ className: \"m-1\" }}\n dropdownProps={{ className: \"overflow-y-auto\" }}\n variables={subjectVariables}\n onVariableClick={tagClickHandler}\n />\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 { notEqualsDeep, isNotEmpty } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\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 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 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 normalizedDefaultValues.replyTo ||= globalProps.user?.email;\n\n const disabled = equals(normalizedValues, normalizedDefaultValues);\n\n const sendToFieldOptions = sendToFieldProps?.options || sendToOptions;\n const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToFieldOptions);\n\n const showSendToTextField = showSendToField && !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 {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=\"border-border w-full border-b pb-1\">\n <ReplyToField options={replyToOptions} {...replyToFieldProps} />\n </div>\n )}\n <Field name=\"subject\">\n {({ field: { value, onBlur }, meta: { error, touched } }) => (\n <div className=\"border-border w-full border-b pb-1\">\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 radio group 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 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 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 radio type or not.\n */\n showSendToAsRadio: 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 { globalProps } from \"neetocommons/v2/initializers\";\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 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 showReplyToField,\n showCcField,\n showBccField,\n }}\n >\n <Form\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n }),\n initialValues: {\n ...initialValues,\n replyTo: initialValues.replyTo || globalProps.user?.email,\n },\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 radio type or not.\n */\n showSendToAsRadio: 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","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","onChange","Input","autoFocus","nakedInput","placeholder","size","event","_event$target$value","target","toLowerCase","SendToField","showSendToTextField","SendToFields","showCcBccButton","bccInputProps","ccInputProps","emailInputProps","id","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","error","_ref$required","onBlur","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","slug","key","category","textAreaElement","document","querySelector","splitIndex","selectionEnd","updatedSubject","slice","join","suffix","DynamicVariables","buttonProps","dropdownProps","variables","onVariableClick","withEventTargetValue","onFocus","EmailForm","_globalProps$user","_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","globalProps","user","disabled","equals","sendToFieldOptions","showSendToRadioField","_jsxs","classnames","_defineProperty","children","RadioGroup","map","_createElement","Item","Field","_ref3","_ref3$field","field","_ref3$meta","meta","touched","undefined","FormikEditor","addons","hideSlashCommands","menuType","ref","shouldUpdate","nextProps","prevProps","notEqualsDeep","ActionBlock","cancelButtonProps","onClick","isSubmitting","Button","loading","variant","EmailFormComponent","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_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/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 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 customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio\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(/ /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 { 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 { notEqualsDeep, isNotEmpty } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\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 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 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 normalizedDefaultValues.replyTo ||= globalProps.user?.email;\n\n const disabled = equals(normalizedValues, normalizedDefaultValues);\n\n const sendToFieldOptions = sendToFieldProps?.options || sendToOptions;\n const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToFieldOptions);\n\n const showSendToTextField = showSendToField && !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 {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 radio group 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 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 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 radio type or not.\n */\n showSendToAsRadio: 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 { globalProps } from \"neetocommons/v2/initializers\";\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 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 showReplyToField,\n showCcField,\n showBccField,\n }}\n >\n <Form\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n }),\n initialValues: {\n ...initialValues,\n replyTo: initialValues.replyTo || globalProps.user?.email,\n },\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 radio type or not.\n */\n showSendToAsRadio: 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","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","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","error","_ref$required","onBlur","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","slug","key","category","inputElement","document","querySelector","splitIndex","selectionEnd","updatedSubject","slice","join","suffix","children","DynamicVariables","buttonProps","dropdownProps","variables","onVariableClick","withEventTargetValue","onFocus","EmailForm","_globalProps$user","_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","globalProps","user","disabled","equals","sendToFieldOptions","showSendToRadioField","_jsxs","classnames","_defineProperty","RadioGroup","map","_createElement","Item","Field","_ref3","_ref3$field","field","_ref3$meta","meta","touched","undefined","FormikEditor","addons","hideSlashCommands","menuType","ref","shouldUpdate","nextProps","prevProps","notEqualsDeep","ActionBlock","cancelButtonProps","onClick","isSubmitting","Button","loading","variant","EmailFormComponent","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_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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"}
|
package/dist/v2/SendToFields.js
CHANGED
|
@@ -267,12 +267,13 @@ var SendToFields = function SendToFields(_ref) {
|
|
|
267
267
|
}
|
|
268
268
|
})
|
|
269
269
|
}), showSendToField && /*#__PURE__*/jsx("div", {
|
|
270
|
-
className: "
|
|
270
|
+
className: "w-full",
|
|
271
271
|
children: /*#__PURE__*/jsx(MultiEmailInput, _objectSpread(_objectSpread({
|
|
272
272
|
name: "sendTo",
|
|
273
273
|
ref: sendToFieldRef
|
|
274
274
|
}, emailInputProps), {}, {
|
|
275
275
|
suffix: showCcBccButton && /*#__PURE__*/jsx(Button, {
|
|
276
|
+
className: "w-fit shrink-0",
|
|
276
277
|
"data-testid": "cc-bcc-button",
|
|
277
278
|
label: t("neetoMolecules.emailForm.labels.ccBcc"),
|
|
278
279
|
size: "sm",
|
|
@@ -286,12 +287,12 @@ var SendToFields = function SendToFields(_ref) {
|
|
|
286
287
|
}), (showCopyEmails || showCcField || showBccField) && /*#__PURE__*/jsxs("div", {
|
|
287
288
|
className: "mt-5 flex w-full flex-col gap-5",
|
|
288
289
|
children: [(showCopyEmails || showCcField) && /*#__PURE__*/jsx("div", {
|
|
289
|
-
className: "
|
|
290
|
+
className: "w-full",
|
|
290
291
|
children: /*#__PURE__*/jsx(MultiEmailInput, _objectSpread({
|
|
291
292
|
name: "sendToBcc"
|
|
292
293
|
}, ccInputProps))
|
|
293
294
|
}), (showCopyEmails || showBccField) && /*#__PURE__*/jsx("div", {
|
|
294
|
-
className: "
|
|
295
|
+
className: "w-full",
|
|
295
296
|
children: /*#__PURE__*/jsx(MultiEmailInput, _objectSpread({
|
|
296
297
|
name: "sendToCc"
|
|
297
298
|
}, bccInputProps))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SendToFields.js","sources":["../../src/v2/components/SendToFields/constants.js","../../src/v2/components/SendToFields/Requirements.jsx","../../src/v2/components/SendToFields/BulkUploadPane.jsx","../../src/v2/components/SendToFields/utils.js","../../src/v2/components/SendToFields/index.jsx"],"sourcesContent":["export const SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nexport const CSV_FILE_SIZE_IN_KB = 32;\nexport const ONE_KILOBYTE_IN_BYTES = 1024;\nexport const DOWNLOAD_SAMPLE_EMAIL_CSV_FILE =\n \"https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv\";\n","import { memo } from \"react\";\n\nimport { Button, Callout } from \"@bigbinary/neeto-atoms\";\nimport { Download } from \"lucide-react\";\nimport { withT } from \"neetocommons/v2/react-utils\";\nimport { Trans } from \"react-i18next\";\n\nimport { DOWNLOAD_SAMPLE_EMAIL_CSV_FILE } from \"./constants\";\n\nconst Requirements = withT(({ t, fileSize }) => (\n <Callout className=\"flex flex-col items-center py-6\" variant=\"info\">\n <ul className=\"flex list-outside list-disc flex-col gap-y-1 leading-normal font-normal\">\n {fileSize && (\n <li>\n {t(\"neetoMolecules.shareViaLink.requirements.fileTypeAndSize\", {\n limit: fileSize,\n })}\n </li>\n )}\n <li>\n <Trans\n components={{ strong: <strong className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.shareViaLink.requirements.shouldContainColumns\"\n />\n </li>\n </ul>\n <Button\n href={DOWNLOAD_SAMPLE_EMAIL_CSV_FILE}\n icon={Download}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaLink.bulkUploadPane.downloadSampleCSV\")}\n variant=\"link\"\n />\n </Callout>\n));\n\nexport default memo(Requirements);\n","import { Button, Sheet, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { Upload } from \"lucide-react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ONE_KILOBYTE_IN_BYTES } from \"./constants\";\nimport Requirements from \"./Requirements\";\n\nconst BulkUploadPane = ({ isOpen, fileSize, onClose, handleFileSubmit }) => {\n const { getRootProps, getInputProps, isDragActive, fileRejections } =\n useDropzone({\n accept: { \"text/csv\": [] },\n maxFiles: 1,\n maxSize: fileSize * ONE_KILOBYTE_IN_BYTES,\n onDrop: files => files[0] && handleFileSubmit(files[0]),\n });\n\n const errors = fileRejections[0]?.errors.map(({ message, code }) => (\n <Typography\n className=\"text-destructive items\"\n data-testid=\"file-input-error-message\"\n key={code}\n variant=\"body3\"\n >\n {message}\n </Typography>\n ));\n\n const { t } = useTranslation();\n\n return (\n <Sheet\n {...{ isOpen, onClose }}\n aria-describedby={undefined}\n data-testid=\"bulk-upload-pane\"\n >\n <div tabIndex={0}>\n <Sheet.Header>\n <Sheet.Title data-testid=\"bulk-upload-header\">\n {t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n </Sheet.Title>\n </Sheet.Header>\n <Sheet.Body>\n <div className=\"flex w-full flex-col gap-y-4\">\n <Requirements {...{ fileSize }} />\n <div\n {...getRootProps({\n className: classNames(\n \"border-primary flex cursor-pointer flex-col items-center rounded-md border border-dashed p-2 transition duration-500 ease-in-out hover:bg-muted\",\n {\n \"border-muted\": isDragActive,\n \"border-destructive bg-destructive/10 hover:bg-destructive/10\":\n fileRejections.length,\n }\n ),\n })}\n >\n <div className=\"flex flex-col items-center gap-y-3 p-4\">\n <Upload className=\"text-primary\" size={32} />\n <input {...getInputProps()} data-testid=\"csv-upload-input\" />\n {isDragActive ? (\n <Typography variant=\"body2\">\n {t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.dropFileHere\"\n )}\n </Typography>\n ) : (\n <div className=\"flex flex-col items-center gap-y-1\">\n <div className=\"flex w-full items-center justify-center gap-x-1\">\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.dragNDrop\"\n components={{\n Button: <Button variant=\"link\" />,\n }}\n />\n </div>\n <Typography\n className=\"text-muted-foreground\"\n variant=\"body3\"\n >\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.supportedFormat\"\n values={{ fileType: \"csv\" }}\n components={{\n code: (\n <code className=\"bg-background m-0 border-s-0 p-0 text-sm\" />\n ),\n }}\n />{\" \"}\n {fileSize &&\n t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.supportedSize\",\n { fileSize }\n )}\n </Typography>\n </div>\n )}\n </div>\n {errors}\n </div>\n </div>\n </Sheet.Body>\n <Sheet.Footer className=\"flex items-center gap-x-2\">\n <Button\n data-testid=\"bulk-upload-cancel-button\"\n label={t(\"neetoMolecules.common.actions.cancel\")}\n type=\"reset\"\n variant=\"ghost\"\n onClick={onClose}\n />\n </Sheet.Footer>\n </div>\n </Sheet>\n );\n};\n\nexport default BulkUploadPane;\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = (file, onSuccess) => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const isEmailFieldPresent = results.meta.fields?.includes(\"email\");\n if (isEmailFieldPresent) {\n const emails = results.data\n .filter(prop(\"email\"))\n .map(item => item.email.trim());\n onSuccess(createEmailOptions(emails));\n } else {\n Toastr.error(t(\"neetoMolecules.sendToFields.errors.invalidCsv\"));\n }\n },\n });\n};\n","import { useRef, useState } from \"react\";\n\nimport { Button, Toastr } from \"@bigbinary/neeto-atoms\";\nimport { MultiEmailInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { useFormikContext } from \"formik\";\nimport { Upload } from \"lucide-react\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport BulkUploadPane from \"./BulkUploadPane\";\nimport { CSV_FILE_SIZE_IN_KB, SIZES } from \"./constants\";\nimport { parseCsvEmails } from \"./utils\";\n\nconst SendToFields = ({\n emailInputProps,\n ccInputProps,\n bccInputProps,\n showUploadCsvButton = false,\n showCcBccButton = false,\n showCcField = false,\n showBccField = false,\n showSendToField = true,\n}) => {\n const [isBulkUploadPaneOpen, setIsBulkUploadPaneOpen] = useState(false);\n const sendToFieldRef = useRef();\n const {\n values: {\n showCopyEmails,\n [emailInputProps.name || \"sendTo\"]: existingSendToEmails,\n },\n setFieldValue,\n } = useFormikContext();\n const { t } = useTranslation();\n\n const handleCSVFile = file => {\n try {\n const onSuccess = values =>\n setFieldValue(emailInputProps.name || \"sendTo\", [\n ...existingSendToEmails,\n ...values,\n ]);\n\n parseCsvEmails(file, onSuccess);\n setIsBulkUploadPaneOpen(false);\n sendToFieldRef.current?.focus();\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handelCcBccButtonClick = e => {\n e.stopPropagation();\n setFieldValue(\"showCopyEmails\", !showCopyEmails);\n };\n\n return (\n <div className=\"w-full\" data-testid=\"send-to-text-field\">\n {showUploadCsvButton && (\n <div className=\"flex justify-end\">\n <Button\n data-testid=\"bulk-upload-button\"\n icon={Upload}\n label={t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n size=\"sm\"\n variant=\"link\"\n onClick={() => setIsBulkUploadPaneOpen(true)}\n />\n </div>\n )}\n {showSendToField && (\n <div className=\"border-border w-full border-b pb-1\">\n <MultiEmailInput\n name=\"sendTo\"\n ref={sendToFieldRef}\n {...emailInputProps}\n suffix={\n showCcBccButton && (\n <Button\n data-testid=\"cc-bcc-button\"\n label={t(\"neetoMolecules.emailForm.labels.ccBcc\")}\n size=\"sm\"\n variant=\"link\"\n onClick={handelCcBccButtonClick}\n onKeyDown={event => event.stopPropagation()}\n />\n )\n }\n />\n </div>\n )}\n {(showCopyEmails || showCcField || showBccField) && (\n <div className=\"mt-5 flex w-full flex-col gap-5\">\n {(showCopyEmails || showCcField) && (\n <div className=\"border-border w-full border-b pb-1\">\n <MultiEmailInput name=\"sendToBcc\" {...ccInputProps} />\n </div>\n )}\n {(showCopyEmails || showBccField) && (\n <div className=\"border-border w-full border-b pb-1\">\n <MultiEmailInput name=\"sendToCc\" {...bccInputProps} />\n </div>\n )}\n </div>\n )}\n <BulkUploadPane\n fileSize={CSV_FILE_SIZE_IN_KB}\n handleFileSubmit={handleCSVFile}\n isOpen={isBulkUploadPaneOpen}\n onClose={() => setIsBulkUploadPaneOpen(false)}\n />\n </div>\n );\n};\n\nconst inputPropTypes = PropTypes.shape({\n name: PropTypes.string,\n label: PropTypes.string,\n placeholder: PropTypes.string,\n dataTestid: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n size: PropTypes.oneOf(Object.values(SIZES)),\n required: PropTypes.bool,\n});\n\nSendToFields.propTypes = {\n /**\n * Input props for sendTo input field.\n */\n emailInputProps: inputPropTypes,\n /**\n * Input props for CC input field.\n */\n ccInputProps: inputPropTypes,\n /**\n * Input props for BCC input field.\n */\n bccInputProps: inputPropTypes,\n /**\n * Flag to determine whether the 'FilePicker' button is displayed.\n */\n showUploadCsvButton: PropTypes.bool,\n /**\n * Flag to determine whether the 'Cc/Bcc' button is displayed.\n */\n showCcBccButton: PropTypes.bool,\n /**\n * To show or hide the CC field.\n */\n showCcField: PropTypes.bool,\n /**\n * To show or hide the BCC field.\n */\n showBccField: PropTypes.bool,\n /**\n * To show or hide the \"Send to\" field.\n */\n showSendToField: PropTypes.bool,\n};\n\nexport default SendToFields;\n"],"names":["CSV_FILE_SIZE_IN_KB","ONE_KILOBYTE_IN_BYTES","DOWNLOAD_SAMPLE_EMAIL_CSV_FILE","Requirements","withT","_ref","t","fileSize","_jsxs","Callout","className","variant","children","_jsx","limit","Trans","components","strong","i18nKey","Button","href","icon","Download","iconPosition","label","memo","BulkUploadPane","_fileRejections$","isOpen","onClose","handleFileSubmit","_useDropzone","useDropzone","accept","maxFiles","maxSize","onDrop","files","getRootProps","getInputProps","isDragActive","fileRejections","errors","map","_ref2","message","code","Typography","_useTranslation","useTranslation","Sheet","undefined","tabIndex","Header","Title","Body","_objectSpread","classNames","length","Upload","size","values","fileType","Footer","type","onClick","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","value","valid","parseCsvEmails","file","onSuccess","Papa","parse","header","skipEmptyLines","transformHeader","h","toLowerCase","replace","complete","results","_results$meta$fields","isEmailFieldPresent","meta","fields","includes","data","filter","prop","item","trim","Toastr","error","SendToFields","emailInputProps","ccInputProps","bccInputProps","_ref$showUploadCsvBut","showUploadCsvButton","_ref$showCcBccButton","showCcBccButton","_ref$showCcField","showCcField","_ref$showBccField","showBccField","_ref$showSendToField","showSendToField","_useState","useState","_useState2","_slicedToArray","isBulkUploadPaneOpen","setIsBulkUploadPaneOpen","sendToFieldRef","useRef","_useFormikContext","useFormikContext","_useFormikContext$val","showCopyEmails","existingSendToEmails","name","setFieldValue","handleCSVFile","_sendToFieldRef$curre","concat","_toConsumableArray","current","focus","handelCcBccButtonClick","e","stopPropagation","MultiEmailInput","ref","suffix","onKeyDown","event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SendToFields.js","sources":["../../src/v2/components/SendToFields/constants.js","../../src/v2/components/SendToFields/Requirements.jsx","../../src/v2/components/SendToFields/BulkUploadPane.jsx","../../src/v2/components/SendToFields/utils.js","../../src/v2/components/SendToFields/index.jsx"],"sourcesContent":["export const SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nexport const CSV_FILE_SIZE_IN_KB = 32;\nexport const ONE_KILOBYTE_IN_BYTES = 1024;\nexport const DOWNLOAD_SAMPLE_EMAIL_CSV_FILE =\n \"https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv\";\n","import { memo } from \"react\";\n\nimport { Button, Callout } from \"@bigbinary/neeto-atoms\";\nimport { Download } from \"lucide-react\";\nimport { withT } from \"neetocommons/v2/react-utils\";\nimport { Trans } from \"react-i18next\";\n\nimport { DOWNLOAD_SAMPLE_EMAIL_CSV_FILE } from \"./constants\";\n\nconst Requirements = withT(({ t, fileSize }) => (\n <Callout className=\"flex flex-col items-center py-6\" variant=\"info\">\n <ul className=\"flex list-outside list-disc flex-col gap-y-1 leading-normal font-normal\">\n {fileSize && (\n <li>\n {t(\"neetoMolecules.shareViaLink.requirements.fileTypeAndSize\", {\n limit: fileSize,\n })}\n </li>\n )}\n <li>\n <Trans\n components={{ strong: <strong className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.shareViaLink.requirements.shouldContainColumns\"\n />\n </li>\n </ul>\n <Button\n href={DOWNLOAD_SAMPLE_EMAIL_CSV_FILE}\n icon={Download}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaLink.bulkUploadPane.downloadSampleCSV\")}\n variant=\"link\"\n />\n </Callout>\n));\n\nexport default memo(Requirements);\n","import { Button, Sheet, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { Upload } from \"lucide-react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ONE_KILOBYTE_IN_BYTES } from \"./constants\";\nimport Requirements from \"./Requirements\";\n\nconst BulkUploadPane = ({ isOpen, fileSize, onClose, handleFileSubmit }) => {\n const { getRootProps, getInputProps, isDragActive, fileRejections } =\n useDropzone({\n accept: { \"text/csv\": [] },\n maxFiles: 1,\n maxSize: fileSize * ONE_KILOBYTE_IN_BYTES,\n onDrop: files => files[0] && handleFileSubmit(files[0]),\n });\n\n const errors = fileRejections[0]?.errors.map(({ message, code }) => (\n <Typography\n className=\"text-destructive items\"\n data-testid=\"file-input-error-message\"\n key={code}\n variant=\"body3\"\n >\n {message}\n </Typography>\n ));\n\n const { t } = useTranslation();\n\n return (\n <Sheet\n {...{ isOpen, onClose }}\n aria-describedby={undefined}\n data-testid=\"bulk-upload-pane\"\n >\n <div tabIndex={0}>\n <Sheet.Header>\n <Sheet.Title data-testid=\"bulk-upload-header\">\n {t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n </Sheet.Title>\n </Sheet.Header>\n <Sheet.Body>\n <div className=\"flex w-full flex-col gap-y-4\">\n <Requirements {...{ fileSize }} />\n <div\n {...getRootProps({\n className: classNames(\n \"border-primary flex cursor-pointer flex-col items-center rounded-md border border-dashed p-2 transition duration-500 ease-in-out hover:bg-muted\",\n {\n \"border-muted\": isDragActive,\n \"border-destructive bg-destructive/10 hover:bg-destructive/10\":\n fileRejections.length,\n }\n ),\n })}\n >\n <div className=\"flex flex-col items-center gap-y-3 p-4\">\n <Upload className=\"text-primary\" size={32} />\n <input {...getInputProps()} data-testid=\"csv-upload-input\" />\n {isDragActive ? (\n <Typography variant=\"body2\">\n {t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.dropFileHere\"\n )}\n </Typography>\n ) : (\n <div className=\"flex flex-col items-center gap-y-1\">\n <div className=\"flex w-full items-center justify-center gap-x-1\">\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.dragNDrop\"\n components={{\n Button: <Button variant=\"link\" />,\n }}\n />\n </div>\n <Typography\n className=\"text-muted-foreground\"\n variant=\"body3\"\n >\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.supportedFormat\"\n values={{ fileType: \"csv\" }}\n components={{\n code: (\n <code className=\"bg-background m-0 border-s-0 p-0 text-sm\" />\n ),\n }}\n />{\" \"}\n {fileSize &&\n t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.supportedSize\",\n { fileSize }\n )}\n </Typography>\n </div>\n )}\n </div>\n {errors}\n </div>\n </div>\n </Sheet.Body>\n <Sheet.Footer className=\"flex items-center gap-x-2\">\n <Button\n data-testid=\"bulk-upload-cancel-button\"\n label={t(\"neetoMolecules.common.actions.cancel\")}\n type=\"reset\"\n variant=\"ghost\"\n onClick={onClose}\n />\n </Sheet.Footer>\n </div>\n </Sheet>\n );\n};\n\nexport default BulkUploadPane;\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = (file, onSuccess) => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const isEmailFieldPresent = results.meta.fields?.includes(\"email\");\n if (isEmailFieldPresent) {\n const emails = results.data\n .filter(prop(\"email\"))\n .map(item => item.email.trim());\n onSuccess(createEmailOptions(emails));\n } else {\n Toastr.error(t(\"neetoMolecules.sendToFields.errors.invalidCsv\"));\n }\n },\n });\n};\n","import { useRef, useState } from \"react\";\n\nimport { Button, Toastr } from \"@bigbinary/neeto-atoms\";\nimport { MultiEmailInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { useFormikContext } from \"formik\";\nimport { Upload } from \"lucide-react\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport BulkUploadPane from \"./BulkUploadPane\";\nimport { CSV_FILE_SIZE_IN_KB, SIZES } from \"./constants\";\nimport { parseCsvEmails } from \"./utils\";\n\nconst SendToFields = ({\n emailInputProps,\n ccInputProps,\n bccInputProps,\n showUploadCsvButton = false,\n showCcBccButton = false,\n showCcField = false,\n showBccField = false,\n showSendToField = true,\n}) => {\n const [isBulkUploadPaneOpen, setIsBulkUploadPaneOpen] = useState(false);\n const sendToFieldRef = useRef();\n const {\n values: {\n showCopyEmails,\n [emailInputProps.name || \"sendTo\"]: existingSendToEmails,\n },\n setFieldValue,\n } = useFormikContext();\n const { t } = useTranslation();\n\n const handleCSVFile = file => {\n try {\n const onSuccess = values =>\n setFieldValue(emailInputProps.name || \"sendTo\", [\n ...existingSendToEmails,\n ...values,\n ]);\n\n parseCsvEmails(file, onSuccess);\n setIsBulkUploadPaneOpen(false);\n sendToFieldRef.current?.focus();\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handelCcBccButtonClick = e => {\n e.stopPropagation();\n setFieldValue(\"showCopyEmails\", !showCopyEmails);\n };\n\n return (\n <div className=\"w-full\" data-testid=\"send-to-text-field\">\n {showUploadCsvButton && (\n <div className=\"flex justify-end\">\n <Button\n data-testid=\"bulk-upload-button\"\n icon={Upload}\n label={t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n size=\"sm\"\n variant=\"link\"\n onClick={() => setIsBulkUploadPaneOpen(true)}\n />\n </div>\n )}\n {showSendToField && (\n <div className=\"w-full\">\n <MultiEmailInput\n name=\"sendTo\"\n ref={sendToFieldRef}\n {...emailInputProps}\n suffix={\n showCcBccButton && (\n <Button\n className=\"w-fit shrink-0\"\n data-testid=\"cc-bcc-button\"\n label={t(\"neetoMolecules.emailForm.labels.ccBcc\")}\n size=\"sm\"\n variant=\"link\"\n onClick={handelCcBccButtonClick}\n onKeyDown={event => event.stopPropagation()}\n />\n )\n }\n />\n </div>\n )}\n {(showCopyEmails || showCcField || showBccField) && (\n <div className=\"mt-5 flex w-full flex-col gap-5\">\n {(showCopyEmails || showCcField) && (\n <div className=\"w-full\">\n <MultiEmailInput name=\"sendToBcc\" {...ccInputProps} />\n </div>\n )}\n {(showCopyEmails || showBccField) && (\n <div className=\"w-full\">\n <MultiEmailInput name=\"sendToCc\" {...bccInputProps} />\n </div>\n )}\n </div>\n )}\n <BulkUploadPane\n fileSize={CSV_FILE_SIZE_IN_KB}\n handleFileSubmit={handleCSVFile}\n isOpen={isBulkUploadPaneOpen}\n onClose={() => setIsBulkUploadPaneOpen(false)}\n />\n </div>\n );\n};\n\nconst inputPropTypes = PropTypes.shape({\n name: PropTypes.string,\n label: PropTypes.string,\n placeholder: PropTypes.string,\n dataTestid: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n size: PropTypes.oneOf(Object.values(SIZES)),\n required: PropTypes.bool,\n});\n\nSendToFields.propTypes = {\n /**\n * Input props for sendTo input field.\n */\n emailInputProps: inputPropTypes,\n /**\n * Input props for CC input field.\n */\n ccInputProps: inputPropTypes,\n /**\n * Input props for BCC input field.\n */\n bccInputProps: inputPropTypes,\n /**\n * Flag to determine whether the 'FilePicker' button is displayed.\n */\n showUploadCsvButton: PropTypes.bool,\n /**\n * Flag to determine whether the 'Cc/Bcc' button is displayed.\n */\n showCcBccButton: PropTypes.bool,\n /**\n * To show or hide the CC field.\n */\n showCcField: PropTypes.bool,\n /**\n * To show or hide the BCC field.\n */\n showBccField: PropTypes.bool,\n /**\n * To show or hide the \"Send to\" field.\n */\n showSendToField: PropTypes.bool,\n};\n\nexport default SendToFields;\n"],"names":["CSV_FILE_SIZE_IN_KB","ONE_KILOBYTE_IN_BYTES","DOWNLOAD_SAMPLE_EMAIL_CSV_FILE","Requirements","withT","_ref","t","fileSize","_jsxs","Callout","className","variant","children","_jsx","limit","Trans","components","strong","i18nKey","Button","href","icon","Download","iconPosition","label","memo","BulkUploadPane","_fileRejections$","isOpen","onClose","handleFileSubmit","_useDropzone","useDropzone","accept","maxFiles","maxSize","onDrop","files","getRootProps","getInputProps","isDragActive","fileRejections","errors","map","_ref2","message","code","Typography","_useTranslation","useTranslation","Sheet","undefined","tabIndex","Header","Title","Body","_objectSpread","classNames","length","Upload","size","values","fileType","Footer","type","onClick","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","value","valid","parseCsvEmails","file","onSuccess","Papa","parse","header","skipEmptyLines","transformHeader","h","toLowerCase","replace","complete","results","_results$meta$fields","isEmailFieldPresent","meta","fields","includes","data","filter","prop","item","trim","Toastr","error","SendToFields","emailInputProps","ccInputProps","bccInputProps","_ref$showUploadCsvBut","showUploadCsvButton","_ref$showCcBccButton","showCcBccButton","_ref$showCcField","showCcField","_ref$showBccField","showBccField","_ref$showSendToField","showSendToField","_useState","useState","_useState2","_slicedToArray","isBulkUploadPaneOpen","setIsBulkUploadPaneOpen","sendToFieldRef","useRef","_useFormikContext","useFormikContext","_useFormikContext$val","showCopyEmails","existingSendToEmails","name","setFieldValue","handleCSVFile","_sendToFieldRef$curre","concat","_toConsumableArray","current","focus","handelCcBccButtonClick","e","stopPropagation","MultiEmailInput","ref","suffix","onKeyDown","event"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACO,IAAMA,mBAAmB,GAAG,EAAE;AAC9B,IAAMC,qBAAqB,GAAG,IAAI;AAClC,IAAMC,8BAA8B,GACzC,oEAAoE;;ACKtE,IAAMC,YAAY,GAAGC,KAAK,CAAC,UAAAC,IAAA,EAAA;AAAA,EAAA,IAAGC,CAAC,GAAAD,IAAA,CAADC,CAAC;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EAAA,oBACvCC,IAAA,CAACC,OAAO,EAAA;AAACC,IAAAA,SAAS,EAAC,iCAAiC;AAACC,IAAAA,OAAO,EAAC,MAAM;AAAAC,IAAAA,QAAA,gBACjEJ,IAAA,CAAA,IAAA,EAAA;AAAIE,MAAAA,SAAS,EAAC,yEAAyE;MAAAE,QAAA,EAAA,CACpFL,QAAQ,iBACPM,GAAA,CAAA,IAAA,EAAA;AAAAD,QAAAA,QAAA,EACGN,CAAC,CAAC,0DAA0D,EAAE;AAC7DQ,UAAAA,KAAK,EAAEP;SACR;OACC,CACL,eACDM,GAAA,CAAA,IAAA,EAAA;QAAAD,QAAA,eACEC,GAAA,CAACE,KAAK,EAAA;AACJC,UAAAA,UAAU,EAAE;AAAEC,YAAAA,MAAM,eAAEJ,GAAA,CAAA,QAAA,EAAA;AAAQH,cAAAA,SAAS,EAAC;aAAiB;WAAI;AAC7DQ,UAAAA,OAAO,EAAC;SACT;AAAC,OACA,CAAC;AAAA,KACH,CAAC,eACLL,GAAA,CAACM,MAAM,EAAA;AACLC,MAAAA,IAAI,EAAElB,8BAA+B;AACrCmB,MAAAA,IAAI,EAAEC,QAAS;AACfC,MAAAA,YAAY,EAAC,MAAM;AACnBC,MAAAA,KAAK,EAAElB,CAAC,CAAC,8DAA8D,CAAE;AACzEK,MAAAA,OAAO,EAAC;AAAM,KACf,CAAC;AAAA,GACK,CAAC;AAAA,CACX,CAAC;AAEF,qBAAA,aAAec,IAAI,CAACtB,YAAY,CAAC;;;;AC3BjC,IAAMuB,cAAc,GAAG,SAAjBA,cAAcA,CAAArB,IAAA,EAAwD;AAAA,EAAA,IAAAsB,gBAAA;AAAA,EAAA,IAAlDC,MAAM,GAAAvB,IAAA,CAANuB,MAAM;IAAErB,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEsB,OAAO,GAAAxB,IAAA,CAAPwB,OAAO;IAAEC,gBAAgB,GAAAzB,IAAA,CAAhByB,gBAAgB;EACnE,IAAAC,YAAA,GACEC,WAAW,CAAC;AACVC,MAAAA,MAAM,EAAE;AAAE,QAAA,UAAU,EAAE;OAAI;AAC1BC,MAAAA,QAAQ,EAAE,CAAC;MACXC,OAAO,EAAE5B,QAAQ,GAAGN,qBAAqB;AACzCmC,MAAAA,MAAM,EAAE,SAARA,MAAMA,CAAEC,KAAK,EAAA;QAAA,OAAIA,KAAK,CAAC,CAAC,CAAC,IAAIP,gBAAgB,CAACO,KAAK,CAAC,CAAC,CAAC,CAAC;AAAA,MAAA;AACzD,KAAC,CAAC;IANIC,YAAY,GAAAP,YAAA,CAAZO,YAAY;IAAEC,aAAa,GAAAR,YAAA,CAAbQ,aAAa;IAAEC,YAAY,GAAAT,YAAA,CAAZS,YAAY;IAAEC,cAAc,GAAAV,YAAA,CAAdU,cAAc;AAQjE,EAAA,IAAMC,MAAM,GAAA,CAAAf,gBAAA,GAAGc,cAAc,CAAC,CAAC,CAAC,MAAA,IAAA,IAAAd,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,gBAAA,CAAmBe,MAAM,CAACC,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,IAAA,IAAGC,OAAO,GAAAD,KAAA,CAAPC,OAAO;MAAEC,IAAI,GAAAF,KAAA,CAAJE,IAAI;IAAA,oBAC3DjC,GAAA,CAACkC,UAAU,EAAA;AACTrC,MAAAA,SAAS,EAAC,wBAAwB;AAClC,MAAA,aAAA,EAAY,0BAA0B;AAEtCC,MAAAA,OAAO,EAAC,OAAO;AAAAC,MAAAA,QAAA,EAEdiC;AAAO,KAAA,EAHHC,IAIK,CAAC;AAAA,EAAA,CACd,CAAC;AAEF,EAAA,IAAAE,eAAA,GAAcC,cAAc,EAAE;IAAtB3C,CAAC,GAAA0C,eAAA,CAAD1C,CAAC;EAET,oBACEO,GAAA,CAACqC,KAAK,EAAA;AACEtB,IAAAA,MAAM,EAANA,MAAM;AAAEC,IAAAA,OAAO,EAAPA,OAAO;AACrB,IAAA,kBAAA,EAAkBsB,SAAU;AAC5B,IAAA,aAAA,EAAY,kBAAkB;AAAAvC,IAAAA,QAAA,eAE9BJ,IAAA,CAAA,KAAA,EAAA;AAAK4C,MAAAA,QAAQ,EAAE,CAAE;AAAAxC,MAAAA,QAAA,EAAA,cACfC,GAAA,CAACqC,KAAK,CAACG,MAAM,EAAA;AAAAzC,QAAAA,QAAA,eACXC,GAAA,CAACqC,KAAK,CAACI,KAAK,EAAA;AAAC,UAAA,aAAA,EAAY,oBAAoB;UAAA1C,QAAA,EAC1CN,CAAC,CAAC,wCAAwC;SAChC;AAAC,OACF,CAAC,eACfO,GAAA,CAACqC,KAAK,CAACK,IAAI,EAAA;AAAA3C,QAAAA,QAAA,eACTJ,IAAA,CAAA,KAAA,EAAA;AAAKE,UAAAA,SAAS,EAAC,8BAA8B;UAAAE,QAAA,EAAA,cAC3CC,GAAA,CAACV,cAAY,EAAA;AAAOI,YAAAA,QAAQ,EAARA;WAAa,CAAC,eAClCC,IAAA,CAAA,KAAA,EAAAgD,eAAA,CAAAA,eAAA,CAAA,EAAA,EACMlB,YAAY,CAAC;AACf5B,YAAAA,SAAS,EAAE+C,UAAU,CACnB,iJAAiJ,EACjJ;AACE,cAAA,cAAc,EAAEjB,YAAY;cAC5B,8DAA8D,EAC5DC,cAAc,CAACiB;aAErB;AACF,WAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAA9C,YAAAA,QAAA,gBAEFJ,IAAA,CAAA,KAAA,EAAA;AAAKE,cAAAA,SAAS,EAAC,wCAAwC;cAAAE,QAAA,EAAA,cACrDC,GAAA,CAAC8C,MAAM,EAAA;AAACjD,gBAAAA,SAAS,EAAC,cAAc;AAACkD,gBAAAA,IAAI,EAAE;eAAK,CAAC,eAC7C/C,GAAA,CAAA,OAAA,EAAA2C,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAWjB,aAAa,EAAE,CAAA,EAAA,EAAA,EAAA;gBAAE,aAAA,EAAY;AAAkB,eAAA,CAAE,CAAC,EAC5DC,YAAY,gBACX3B,GAAA,CAACkC,UAAU,EAAA;AAACpC,gBAAAA,OAAO,EAAC,OAAO;gBAAAC,QAAA,EACxBN,CAAC,CACA,yDACF;eACU,CAAC,gBAEbE,IAAA,CAAA,KAAA,EAAA;AAAKE,gBAAAA,SAAS,EAAC,oCAAoC;AAAAE,gBAAAA,QAAA,gBACjDC,GAAA,CAAA,KAAA,EAAA;AAAKH,kBAAAA,SAAS,EAAC,iDAAiD;kBAAAE,QAAA,eAC9DC,GAAA,CAACE,KAAK,EAAA;AACJG,oBAAAA,OAAO,EAAC,sDAAsD;AAC9DF,oBAAAA,UAAU,EAAE;sBACVG,MAAM,eAAEN,GAAA,CAACM,MAAM,EAAA;AAACR,wBAAAA,OAAO,EAAC;uBAAQ;AAClC;mBACD;AAAC,iBACC,CAAC,eACNH,IAAA,CAACuC,UAAU,EAAA;AACTrC,kBAAAA,SAAS,EAAC,uBAAuB;AACjCC,kBAAAA,OAAO,EAAC,OAAO;kBAAAC,QAAA,EAAA,cAEfC,GAAA,CAACE,KAAK,EAAA;AACJG,oBAAAA,OAAO,EAAC,4DAA4D;AACpE2C,oBAAAA,MAAM,EAAE;AAAEC,sBAAAA,QAAQ,EAAE;qBAAQ;AAC5B9C,oBAAAA,UAAU,EAAE;AACV8B,sBAAAA,IAAI,eACFjC,GAAA,CAAA,MAAA,EAAA;AAAMH,wBAAAA,SAAS,EAAC;uBAA4C;AAEhE;mBACD,CAAC,EAAC,GAAG,EACLH,QAAQ,IACPD,CAAC,CACC,0DAA0D,EAC1D;AAAEC,oBAAAA,QAAQ,EAARA;AAAS,mBACb,CAAC;AAAA,iBACO,CAAC;AAAA,eACV,CACN;aACE,CAAC,EACLmC,MAAM;AAAA,WAAA,CACJ,CAAC;SACH;AAAC,OACI,CAAC,eACb7B,GAAA,CAACqC,KAAK,CAACa,MAAM,EAAA;AAACrD,QAAAA,SAAS,EAAC,2BAA2B;QAAAE,QAAA,eACjDC,GAAA,CAACM,MAAM,EAAA;AACL,UAAA,aAAA,EAAY,2BAA2B;AACvCK,UAAAA,KAAK,EAAElB,CAAC,CAAC,sCAAsC,CAAE;AACjD0D,UAAAA,IAAI,EAAC,OAAO;AACZrD,UAAAA,OAAO,EAAC,OAAO;AACfsD,UAAAA,OAAO,EAAEpC;SACV;AAAC,OACU,CAAC;KACZ;AAAC,GACD,CAAC;AAEZ,CAAC;;AC7GD,IAAMqC,YAAY,GAAG,SAAfA,YAAYA,CAAGC,KAAK,EAAA;EAAA,OAAIC,MAAM,EAAE,CAACD,KAAK,EAAE,CAACE,WAAW,CAACF,KAAK,CAAC;AAAA,CAAA;AAE1D,IAAMG,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAA;AAAA,EAAA,IAAIC,MAAM,GAAAC,SAAA,CAAAd,MAAA,GAAA,CAAA,IAAAc,SAAA,CAAA,CAAA,CAAA,KAAArB,SAAA,GAAAqB,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,EAAA,OAC5CD,MAAM,CAAC5B,GAAG,CAAC,UAAAwB,KAAK,EAAA;IAAA,OAAK;AACnB3C,MAAAA,KAAK,EAAE2C,KAAK;AACZM,MAAAA,KAAK,EAAEN,KAAK;MACZO,KAAK,EAAER,YAAY,CAACC,KAAK;KAC1B;AAAA,EAAA,CAAC,CAAC;AAAA,CAAA;AAEE,IAAMQ,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,IAAI,EAAEC,SAAS,EAAK;AACjDC,EAAAA,IAAI,CAACC,KAAK,CAACH,IAAI,EAAE;AACfI,IAAAA,MAAM,EAAE,IAAI;AACZC,IAAAA,cAAc,EAAE,IAAI;AACpBC,IAAAA,eAAe,EAAE,SAAjBA,eAAeA,CAAEC,CAAC,EAAA;MAAA,OAAIA,CAAC,CAACC,WAAW,EAAE,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAAA,IAAA,CAAA;AACxDC,IAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,OAAO,EAAI;AAAA,MAAA,IAAAC,oBAAA;AACnB,MAAA,IAAMC,mBAAmB,GAAA,CAAAD,oBAAA,GAAGD,OAAO,CAACG,IAAI,CAACC,MAAM,MAAA,IAAA,IAAAH,oBAAA,KAAA,MAAA,GAAA,MAAA,GAAnBA,oBAAA,CAAqBI,QAAQ,CAAC,OAAO,CAAC;AAClE,MAAA,IAAIH,mBAAmB,EAAE;AACvB,QAAA,IAAMlB,MAAM,GAAGgB,OAAO,CAACM,IAAI,CACxBC,MAAM,CAACC,IAAI,CAAC,OAAO,CAAC,CAAC,CACrBpD,GAAG,CAAC,UAAAqD,IAAI,EAAA;AAAA,UAAA,OAAIA,IAAI,CAAC7B,KAAK,CAAC8B,IAAI,EAAE;QAAA,CAAA,CAAC;AACjCpB,QAAAA,SAAS,CAACP,kBAAkB,CAACC,MAAM,CAAC,CAAC;AACvC,MAAA,CAAC,MAAM;AACL2B,QAAAA,MAAM,CAACC,KAAK,CAAC7F,CAAC,CAAC,+CAA+C,CAAC,CAAC;AAClE,MAAA;AACF,IAAA;AACF,GAAC,CAAC;AACJ,CAAC;;;;ACnBD,IAAM8F,YAAY,GAAG,SAAfA,YAAYA,CAAA/F,IAAA,EASZ;AAAA,EAAA,IARJgG,eAAe,GAAAhG,IAAA,CAAfgG,eAAe;IACfC,YAAY,GAAAjG,IAAA,CAAZiG,YAAY;IACZC,aAAa,GAAAlG,IAAA,CAAbkG,aAAa;IAAAC,qBAAA,GAAAnG,IAAA,CACboG,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;IAAAE,oBAAA,GAAArG,IAAA,CAC3BsG,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,oBAAA;IAAAE,gBAAA,GAAAvG,IAAA,CACvBwG,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,gBAAA;IAAAE,iBAAA,GAAAzG,IAAA,CACnB0G,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,iBAAA;IAAAE,oBAAA,GAAA3G,IAAA,CACpB4G,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,oBAAA;AAEtB,EAAA,IAAAE,SAAA,GAAwDC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAhEI,IAAAA,oBAAoB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,uBAAuB,GAAAH,UAAA,CAAA,CAAA,CAAA;AACpD,EAAA,IAAMI,cAAc,GAAGC,MAAM,EAAE;AAC/B,EAAA,IAAAC,iBAAA,GAMIC,gBAAgB,EAAE;IAAAC,qBAAA,GAAAF,iBAAA,CALpB7D,MAAM;IACJgE,cAAc,GAAAD,qBAAA,CAAdC,cAAc;AACsBC,IAAAA,oBAAoB,GAAAF,qBAAA,CAAvDvB,eAAe,CAAC0B,IAAI,IAAI,QAAQ,CAAA;IAEnCC,aAAa,GAAAN,iBAAA,CAAbM,aAAa;AAEf,EAAA,IAAAhF,eAAA,GAAcC,cAAc,EAAE;IAAtB3C,CAAC,GAAA0C,eAAA,CAAD1C,CAAC;AAET,EAAA,IAAM2H,aAAa,GAAG,SAAhBA,aAAaA,CAAGrD,IAAI,EAAI;IAC5B,IAAI;AAAA,MAAA,IAAAsD,qBAAA;AACF,MAAA,IAAMrD,SAAS,GAAG,SAAZA,SAASA,CAAGhB,MAAM,EAAA;AAAA,QAAA,OACtBmE,aAAa,CAAC3B,eAAe,CAAC0B,IAAI,IAAI,QAAQ,EAAA,EAAA,CAAAI,MAAA,CAAAC,kBAAA,CACzCN,oBAAoB,CAAA,EAAAM,kBAAA,CACpBvE,MAAM,EACV,CAAC;AAAA,MAAA,CAAA;AAEJc,MAAAA,cAAc,CAACC,IAAI,EAAEC,SAAS,CAAC;MAC/B0C,uBAAuB,CAAC,KAAK,CAAC;AAC9B,MAAA,CAAAW,qBAAA,GAAAV,cAAc,CAACa,OAAO,MAAA,IAAA,IAAAH,qBAAA,KAAA,KAAA,CAAA,IAAtBA,qBAAA,CAAwBI,KAAK,EAAE;IACjC,CAAC,CAAC,OAAOnC,KAAK,EAAE;AACdD,MAAAA,MAAM,CAACC,KAAK,CAACA,KAAK,CAAC;AACrB,IAAA;EACF,CAAC;AAED,EAAA,IAAMoC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGC,CAAC,EAAI;IAClCA,CAAC,CAACC,eAAe,EAAE;AACnBT,IAAAA,aAAa,CAAC,gBAAgB,EAAE,CAACH,cAAc,CAAC;EAClD,CAAC;AAED,EAAA,oBACErH,IAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,QAAQ;AAAC,IAAA,aAAA,EAAY,oBAAoB;IAAAE,QAAA,EAAA,CACrD6F,mBAAmB,iBAClB5F,GAAA,CAAA,KAAA,EAAA;AAAKH,MAAAA,SAAS,EAAC,kBAAkB;MAAAE,QAAA,eAC/BC,GAAA,CAACM,MAAM,EAAA;AACL,QAAA,aAAA,EAAY,oBAAoB;AAChCE,QAAAA,IAAI,EAAEsC,MAAO;AACbnC,QAAAA,KAAK,EAAElB,CAAC,CAAC,wCAAwC,CAAE;AACnDsD,QAAAA,IAAI,EAAC,IAAI;AACTjD,QAAAA,OAAO,EAAC,MAAM;QACdsD,OAAO,EAAE,SAATA,OAAOA,GAAA;UAAA,OAAQsD,uBAAuB,CAAC,IAAI,CAAC;AAAA,QAAA;OAC7C;AAAC,KACC,CACN,EACAN,eAAe,iBACdpG,GAAA,CAAA,KAAA,EAAA;AAAKH,MAAAA,SAAS,EAAC,QAAQ;AAAAE,MAAAA,QAAA,eACrBC,GAAA,CAAC6H,eAAe,EAAAlF,aAAA,CAAAA,aAAA,CAAA;AACduE,QAAAA,IAAI,EAAC,QAAQ;AACbY,QAAAA,GAAG,EAAEnB;AAAe,OAAA,EAChBnB,eAAe,CAAA,EAAA,EAAA,EAAA;AACnBuC,QAAAA,MAAM,EACJjC,eAAe,iBACb9F,GAAA,CAACM,MAAM,EAAA;AACLT,UAAAA,SAAS,EAAC,gBAAgB;AAC1B,UAAA,aAAA,EAAY,eAAe;AAC3Bc,UAAAA,KAAK,EAAElB,CAAC,CAAC,uCAAuC,CAAE;AAClDsD,UAAAA,IAAI,EAAC,IAAI;AACTjD,UAAAA,OAAO,EAAC,MAAM;AACdsD,UAAAA,OAAO,EAAEsE,sBAAuB;AAChCM,UAAAA,SAAS,EAAE,SAAXA,SAASA,CAAEC,KAAK,EAAA;AAAA,YAAA,OAAIA,KAAK,CAACL,eAAe,EAAE;AAAA,UAAA;SAC5C;OAEJ,CACF;KACE,CACN,EACA,CAACZ,cAAc,IAAIhB,WAAW,IAAIE,YAAY,kBAC7CvG,IAAA,CAAA,KAAA,EAAA;AAAKE,MAAAA,SAAS,EAAC,iCAAiC;AAAAE,MAAAA,QAAA,GAC7C,CAACiH,cAAc,IAAIhB,WAAW,kBAC7BhG,GAAA,CAAA,KAAA,EAAA;AAAKH,QAAAA,SAAS,EAAC,QAAQ;AAAAE,QAAAA,QAAA,eACrBC,GAAA,CAAC6H,eAAe,EAAAlF,aAAA,CAAA;AAACuE,UAAAA,IAAI,EAAC;AAAW,SAAA,EAAKzB,YAAY,CAAG;AAAC,OACnD,CACN,EACA,CAACuB,cAAc,IAAId,YAAY,kBAC9BlG,GAAA,CAAA,KAAA,EAAA;AAAKH,QAAAA,SAAS,EAAC,QAAQ;AAAAE,QAAAA,QAAA,eACrBC,GAAA,CAAC6H,eAAe,EAAAlF,aAAA,CAAA;AAACuE,UAAAA,IAAI,EAAC;AAAU,SAAA,EAAKxB,aAAa,CAAG;AAAC,OACnD,CACN;AAAA,KACE,CACN,eACD1F,GAAA,CAACa,cAAc,EAAA;AACbnB,MAAAA,QAAQ,EAAEP,mBAAoB;AAC9B8B,MAAAA,gBAAgB,EAAEmG,aAAc;AAChCrG,MAAAA,MAAM,EAAE0F,oBAAqB;MAC7BzF,OAAO,EAAE,SAATA,OAAOA,GAAA;QAAA,OAAQ0F,uBAAuB,CAAC,KAAK,CAAC;AAAA,MAAA;AAAC,KAC/C,CAAC;AAAA,GACC,CAAC;AAEV;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "5.3.
|
|
3
|
+
"version": "5.3.1",
|
|
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>",
|