@bigbinary/neeto-molecules 3.7.8 → 3.7.10

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.
@@ -132,6 +132,31 @@ var EmailFormContext = /*#__PURE__*/React.createContext({
132
132
 
133
133
  function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
134
134
  function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
135
+ var getValidationSchema = function getValidationSchema(_ref) {
136
+ var showSendToField = _ref.showSendToField,
137
+ showReplyToField = _ref.showReplyToField,
138
+ showSendToAsRadio = _ref.showSendToAsRadio,
139
+ customValidations = _ref.customValidations,
140
+ maxEmails = _ref.maxEmails;
141
+ var schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();
142
+ if (showSendToField) {
143
+ schema = schema.concat(showSendToAsRadio ? SEND_TO_ID_FIELD_VALIDATION : sendToFieldValidation(maxEmails));
144
+ }
145
+ if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);
146
+ return schema.shape(customValidations);
147
+ };
148
+ var getReplyToFieldLabelProps = function getReplyToFieldLabelProps(_ref2) {
149
+ var popoverProps = _ref2.popoverProps;
150
+ return {
151
+ helpIconProps: _defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"]({}, "data-testid", "reply-to-tooltip"), "tooltipProps", !neetoCist.isPresent(popoverProps) && {
152
+ content: i18next.t("neetoMolecules.emailForm.tooltips.replyTo"),
153
+ touch: ["hold", 500]
154
+ }), "popoverProps", neetoCist.isPresent(popoverProps) && _objectSpread$2(_objectSpread$2({}, popoverProps), {}, {
155
+ description: popoverProps.description || i18next.t("neetoMolecules.emailForm.tooltips.replyTo")
156
+ }))
157
+ };
158
+ };
159
+
135
160
  var ReplyToField = function ReplyToField(_ref) {
136
161
  var _ref$options = _ref.options,
137
162
  options = _ref$options === void 0 ? [] : _ref$options,
@@ -139,25 +164,21 @@ var ReplyToField = function ReplyToField(_ref) {
139
164
  popoverProps = _ref$popoverProps === void 0 ? {} : _ref$popoverProps;
140
165
  var _useTranslation = reactI18next.useTranslation(),
141
166
  t = _useTranslation.t;
142
- var isDropdownField = neetoCist.isNotEmpty(options);
143
167
  var _useFormikContext = formik.useFormikContext(),
144
168
  setFieldValue = _useFormikContext.setFieldValue;
169
+ var isDropdownField = neetoCist.isNotEmpty(options);
170
+ var labelProps = getReplyToFieldLabelProps({
171
+ popoverProps: popoverProps
172
+ });
145
173
  if (isDropdownField) {
146
174
  return /*#__PURE__*/jsxRuntime.jsx(Select__default["default"], {
175
+ labelProps: labelProps,
147
176
  options: options,
148
177
  isClearable: true,
149
178
  className: "w-full",
150
179
  "data-testid": "replyToOptions",
151
180
  label: t("neetoMolecules.emailForm.labels.replyTo"),
152
181
  name: "replyTo",
153
- labelProps: {
154
- helpIconProps: _defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"]({}, "data-testid", "reply-to-tooltip"), "tooltipProps", !neetoCist.isPresent(popoverProps) && {
155
- content: t("neetoMolecules.emailForm.tooltips.replyTo"),
156
- touch: ["hold", 500]
157
- }), "popoverProps", neetoCist.isPresent(popoverProps) && _objectSpread$2(_objectSpread$2({}, popoverProps), {}, {
158
- description: popoverProps.description || t("neetoMolecules.emailForm.tooltips.replyTo")
159
- }))
160
- },
161
182
  onChange: function onChange(data) {
162
183
  var _data$value;
163
184
  return setFieldValue("replyTo", (_data$value = data === null || data === void 0 ? void 0 : data.value) !== null && _data$value !== void 0 ? _data$value : "");
@@ -165,6 +186,7 @@ var ReplyToField = function ReplyToField(_ref) {
165
186
  });
166
187
  }
167
188
  return /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
189
+ labelProps: labelProps,
168
190
  autoFocus: true,
169
191
  required: true,
170
192
  className: "w-full",
@@ -173,13 +195,9 @@ var ReplyToField = function ReplyToField(_ref) {
173
195
  name: "replyTo",
174
196
  placeholder: t("neetoMolecules.emailForm.placeholders.emailPlaceholder"),
175
197
  size: "large",
176
- labelProps: {
177
- helpIconProps: _defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"]({}, "data-testid", "reply-to-tooltip"), "tooltipProps", !neetoCist.isPresent(popoverProps) && {
178
- content: t("neetoMolecules.emailForm.tooltips.replyTo"),
179
- touch: ["hold", 500]
180
- }), "popoverProps", neetoCist.isPresent(popoverProps) && _objectSpread$2(_objectSpread$2({}, popoverProps), {}, {
181
- description: popoverProps.description || t("neetoMolecules.emailForm.tooltips.replyTo")
182
- }))
198
+ onChange: function onChange(event) {
199
+ var _event$target$value;
200
+ return setFieldValue("replyTo", (_event$target$value = event.target.value) === null || _event$target$value === void 0 ? void 0 : _event$target$value.toLowerCase());
183
201
  }
184
202
  });
185
203
  };
@@ -381,20 +399,6 @@ var EmailForm = function EmailForm(_ref) {
381
399
  });
382
400
  };
383
401
 
384
- var getValidationSchema = function getValidationSchema(_ref) {
385
- var showSendToField = _ref.showSendToField,
386
- showReplyToField = _ref.showReplyToField,
387
- showSendToAsRadio = _ref.showSendToAsRadio,
388
- customValidations = _ref.customValidations,
389
- maxEmails = _ref.maxEmails;
390
- var schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();
391
- if (showSendToField) {
392
- schema = schema.concat(showSendToAsRadio ? SEND_TO_ID_FIELD_VALIDATION : sendToFieldValidation(maxEmails));
393
- }
394
- if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);
395
- return schema.shape(customValidations);
396
- };
397
-
398
402
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
399
403
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
400
404
  var EmailFormProvider = function EmailFormProvider(_ref) {
@@ -1 +1 @@
1
- {"version":3,"file":"EmailForm.js","sources":["../../src/components/EmailForm/constants.js","../../src/components/EmailForm/contexts/EmailForm.js","../../src/components/EmailForm/ReplyToField.jsx","../../src/components/EmailForm/SendToField.jsx","../../src/components/EmailForm/SubjectField.jsx","../../src/components/EmailForm/EmailForm.jsx","../../src/components/EmailForm/utils.js","../../src/components/EmailForm/EmailFormProvider.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\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};\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});\n\nexport { EmailFormContext };\n","import { useFormikContext } from \"formik\";\nimport { isPresent, isNotEmpty } from \"neetocist\";\nimport { Select, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ReplyToField = ({ options = [], popoverProps = {} }) => {\n const { t } = useTranslation();\n\n const isDropdownField = isNotEmpty(options);\n\n const { setFieldValue } = useFormikContext();\n\n if (isDropdownField) {\n return (\n <Select\n {...{ options }}\n isClearable\n className=\"w-full\"\n data-testid=\"replyToOptions\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n labelProps={{\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n tooltipProps: !isPresent(popoverProps) && {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n touch: [\"hold\", 500],\n },\n popoverProps: isPresent(popoverProps) && {\n ...popoverProps,\n description:\n popoverProps.description ||\n t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n },\n }}\n onChange={data => setFieldValue(\"replyTo\", data?.value ?? \"\")}\n />\n );\n }\n\n return (\n <Input\n autoFocus\n required\n className=\"w-full\"\n data-testid=\"replyToInput\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n placeholder={t(\"neetoMolecules.emailForm.placeholders.emailPlaceholder\")}\n size=\"large\"\n labelProps={{\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n tooltipProps: !isPresent(popoverProps) && {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n touch: [\"hold\", 500],\n },\n popoverProps: isPresent(popoverProps) && {\n ...popoverProps,\n description:\n popoverProps.description ||\n t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n },\n }}\n />\n );\n};\n\nexport default ReplyToField;\n","import withT from \"neetocommons/react-utils/withT\";\n\nimport SendToFields from \"components/SendToFields\";\n\nconst SendToField = withT(({ t }) => (\n <SendToFields\n showCcBccButton\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\nexport default SendToField;\n","import { useState } from \"react\";\n\nimport { withEventTargetValue } from \"neetocommons/utils/general\";\nimport { Input, Typography } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport DynamicVariables from \"components/DynamicVariables\";\n\nconst SubjectField = ({\n name,\n text,\n updateText,\n subjectVariables = [],\n error,\n required = false,\n}) => {\n const [isFieldFocusedOnce, setIsFieldFocusedOnce] = useState(false);\n\n const { t } = useTranslation();\n\n const tagClickHandler = ({ key: slug }) => {\n const textAreaElement = document.querySelector(`textarea[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && textAreaElement\n ? textAreaElement.selectionEnd\n : text.length;\n\n const updatedSubject = [\n text.slice(0, splitIndex),\n ` {{${slug}}}`,\n text.slice(splitIndex),\n ].join(\"\");\n updateText(updatedSubject);\n };\n\n return (\n <>\n <Input\n {...{ error, name, required }}\n label={t(\"neetoMolecules.emailForm.labels.subject\")}\n size=\"large\"\n value={text}\n suffix={\n <DynamicVariables\n variables={subjectVariables}\n dropdownProps={{\n className: \"neeto-ui-dropdown__popup overflow-y-auto\",\n buttonSize: \"small\",\n }}\n onVariableClick={tagClickHandler}\n />\n }\n onChange={withEventTargetValue(updateText)}\n onFocus={() => setIsFieldFocusedOnce(true)}\n />\n <Typography\n className=\"neeto-ui-text-gray-600 mt-2\"\n data-cy=\"subject-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n components={{ span: <span className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"subject\" }}\n />\n </Typography>\n </>\n );\n};\n\nexport default SubjectField;\n","import { useContext } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Field, useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { ActionBlock, Radio } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { Trans, 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\";\n\nconst EmailForm = ({\n messageVariables = [],\n subjectVariables = [],\n handleCancel,\n isLoading,\n replyToFieldProps,\n sendToFieldProps,\n replyToOptions,\n sendToOptions = [],\n isUpdating = false,\n showFields = true,\n className = \"\",\n}) => {\n const { t } = useTranslation();\n\n const { showSendToField, showSendToAsRadio, showReplyToField } =\n useContext(EmailFormContext);\n\n const { setFieldValue } = useFormikContext();\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-cy=\"email-form\"\n data-testid=\"email-form\"\n className={classnames(\"flex flex-1 flex-col items-start gap-2\", {\n [className]: className,\n })}\n >\n {showFields && (\n <div className=\"flex w-full flex-col items-start justify-start gap-6\">\n <Field name=\"subject\">\n {({ field: { value }, meta: { error } }) => (\n <div className=\"w-full\">\n <SubjectField\n {...{ subjectVariables }}\n required\n error={t(error)}\n name=\"subject\"\n text={value}\n updateText={text => setFieldValue(\"subject\", text)}\n />\n </div>\n )}\n </Field>\n {showSendToRadioField && (\n <Radio\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 <Radio.Item {...{ label, value }} key={value} />\n ))}\n </Radio>\n )}\n {showSendToTextField && <SendToField />}\n {showReplyToField && (\n <ReplyToField options={replyToOptions} {...replyToFieldProps} />\n )}\n <div className=\"w-full\">\n <FormikEditor\n isMenuCollapsible\n required\n addons={EDITOR_ADDONS}\n data-cy=\"message-input-field\"\n id=\"form_message\"\n label={t(\"neetoMolecules.emailForm.labels.message\")}\n name=\"message\"\n variables={messageVariables}\n />\n <Typography\n className=\"neeto-ui-text-gray-500 mt-2\"\n data-cy=\"message-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"message\" }}\n components={{\n span: <span className=\"font-semibold\" />,\n }}\n />\n </Typography>\n </div>\n </div>\n )}\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n className=\"mt-6 w-full justify-start\"\n isSubmitting={isLoading || isUpdating}\n />\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 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 * 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\nexport default EmailForm;\n","import {\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 return schema.shape(customValidations);\n};\n","import { noop } from \"neetocist\";\nimport { Form } from \"neetoui/formik\";\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 maxEmails = 10,\n}) => (\n <div data-testid=\"email-form-provider\">\n <EmailFormContext.Provider\n value={{ showSendToField, showSendToAsRadio, showReplyToField }}\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\nexport default EmailFormProvider;\n"],"names":["INITIAL_FORM_VALUES","sendTo","sendToId","sendToCc","sendToBcc","replyTo","showCopyEmails","subject","message","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","ReplyToField","_ref","_ref$options","options","_ref$popoverProps","popoverProps","_useTranslation","useTranslation","isDropdownField","isNotEmpty","_useFormikContext","useFormikContext","setFieldValue","_jsx","Select","isClearable","className","label","name","labelProps","helpIconProps","_defineProperty","isPresent","content","touch","_objectSpread","description","onChange","data","_data$value","Input","autoFocus","placeholder","size","SendToField","withT","SendToFields","showCcBccButton","bccInputProps","ccInputProps","emailInputProps","id","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","error","_ref$required","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","_ref2","slug","key","textAreaElement","document","querySelector","concat","splitIndex","selectionEnd","updatedSubject","slice","join","_jsxs","_Fragment","children","suffix","DynamicVariables","variables","dropdownProps","buttonSize","onVariableClick","withEventTargetValue","onFocus","Typography","style","Trans","components","span","i18nKey","values","type","EmailForm","_ref$messageVariables","messageVariables","handleCancel","isLoading","replyToFieldProps","sendToFieldProps","replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$showFields","showFields","_ref$className","_useContext","useContext","sendToFieldOptions","showSendToRadioField","showSendToTextField","classnames","Field","field","meta","Radio","map","_ref3","_createElement","Item","FormikEditor","isMenuCollapsible","addons","ActionBlock","cancelButtonProps","onClick","isSubmitting","getValidationSchema","customValidations","schema","clone","shape","EmailFormProvider","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","_ref$validationSchema","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$maxEmails","Provider","Form","enableReinitialize","globalProps","user"],"mappings":"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"}
1
+ {"version":3,"file":"EmailForm.js","sources":["../../src/components/EmailForm/constants.js","../../src/components/EmailForm/contexts/EmailForm.js","../../src/components/EmailForm/utils.js","../../src/components/EmailForm/ReplyToField.jsx","../../src/components/EmailForm/SendToField.jsx","../../src/components/EmailForm/SubjectField.jsx","../../src/components/EmailForm/EmailForm.jsx","../../src/components/EmailForm/EmailFormProvider.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\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};\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});\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 return schema.shape(customValidations);\n};\n\nexport const getReplyToFieldLabelProps = ({ popoverProps }) => ({\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n tooltipProps: !isPresent(popoverProps) && {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n touch: [\"hold\", 500],\n },\n popoverProps: isPresent(popoverProps) && {\n ...popoverProps,\n description:\n popoverProps.description ||\n t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n },\n});\n","import { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Select, Input } from \"neetoui/formik\";\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=\"replyToOptions\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n onChange={data => setFieldValue(\"replyTo\", data?.value ?? \"\")}\n />\n );\n }\n\n return (\n <Input\n {...{ labelProps }}\n autoFocus\n required\n className=\"w-full\"\n data-testid=\"replyToInput\"\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 withT from \"neetocommons/react-utils/withT\";\n\nimport SendToFields from \"components/SendToFields\";\n\nconst SendToField = withT(({ t }) => (\n <SendToFields\n showCcBccButton\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\nexport default SendToField;\n","import { useState } from \"react\";\n\nimport { withEventTargetValue } from \"neetocommons/utils/general\";\nimport { Input, Typography } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport DynamicVariables from \"components/DynamicVariables\";\n\nconst SubjectField = ({\n name,\n text,\n updateText,\n subjectVariables = [],\n error,\n required = false,\n}) => {\n const [isFieldFocusedOnce, setIsFieldFocusedOnce] = useState(false);\n\n const { t } = useTranslation();\n\n const tagClickHandler = ({ key: slug }) => {\n const textAreaElement = document.querySelector(`textarea[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && textAreaElement\n ? textAreaElement.selectionEnd\n : text.length;\n\n const updatedSubject = [\n text.slice(0, splitIndex),\n ` {{${slug}}}`,\n text.slice(splitIndex),\n ].join(\"\");\n updateText(updatedSubject);\n };\n\n return (\n <>\n <Input\n {...{ error, name, required }}\n label={t(\"neetoMolecules.emailForm.labels.subject\")}\n size=\"large\"\n value={text}\n suffix={\n <DynamicVariables\n variables={subjectVariables}\n dropdownProps={{\n className: \"neeto-ui-dropdown__popup overflow-y-auto\",\n buttonSize: \"small\",\n }}\n onVariableClick={tagClickHandler}\n />\n }\n onChange={withEventTargetValue(updateText)}\n onFocus={() => setIsFieldFocusedOnce(true)}\n />\n <Typography\n className=\"neeto-ui-text-gray-600 mt-2\"\n data-cy=\"subject-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n components={{ span: <span className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"subject\" }}\n />\n </Typography>\n </>\n );\n};\n\nexport default SubjectField;\n","import { useContext } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Field, useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { ActionBlock, Radio } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { Trans, 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\";\n\nconst EmailForm = ({\n messageVariables = [],\n subjectVariables = [],\n handleCancel,\n isLoading,\n replyToFieldProps,\n sendToFieldProps,\n replyToOptions,\n sendToOptions = [],\n isUpdating = false,\n showFields = true,\n className = \"\",\n}) => {\n const { t } = useTranslation();\n\n const { showSendToField, showSendToAsRadio, showReplyToField } =\n useContext(EmailFormContext);\n\n const { setFieldValue } = useFormikContext();\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-cy=\"email-form\"\n data-testid=\"email-form\"\n className={classnames(\"flex flex-1 flex-col items-start gap-2\", {\n [className]: className,\n })}\n >\n {showFields && (\n <div className=\"flex w-full flex-col items-start justify-start gap-6\">\n <Field name=\"subject\">\n {({ field: { value }, meta: { error } }) => (\n <div className=\"w-full\">\n <SubjectField\n {...{ subjectVariables }}\n required\n error={t(error)}\n name=\"subject\"\n text={value}\n updateText={text => setFieldValue(\"subject\", text)}\n />\n </div>\n )}\n </Field>\n {showSendToRadioField && (\n <Radio\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 <Radio.Item {...{ label, value }} key={value} />\n ))}\n </Radio>\n )}\n {showSendToTextField && <SendToField />}\n {showReplyToField && (\n <ReplyToField options={replyToOptions} {...replyToFieldProps} />\n )}\n <div className=\"w-full\">\n <FormikEditor\n isMenuCollapsible\n required\n addons={EDITOR_ADDONS}\n data-cy=\"message-input-field\"\n id=\"form_message\"\n label={t(\"neetoMolecules.emailForm.labels.message\")}\n name=\"message\"\n variables={messageVariables}\n />\n <Typography\n className=\"neeto-ui-text-gray-500 mt-2\"\n data-cy=\"message-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"message\" }}\n components={{\n span: <span className=\"font-semibold\" />,\n }}\n />\n </Typography>\n </div>\n </div>\n )}\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n className=\"mt-6 w-full justify-start\"\n isSubmitting={isLoading || isUpdating}\n />\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 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 * 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\nexport default EmailForm;\n","import { noop } from \"neetocist\";\nimport { Form } from \"neetoui/formik\";\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 maxEmails = 10,\n}) => (\n <div data-testid=\"email-form-provider\">\n <EmailFormContext.Provider\n value={{ showSendToField, showSendToAsRadio, showReplyToField }}\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\nexport default EmailFormProvider;\n"],"names":["INITIAL_FORM_VALUES","sendTo","sendToId","sendToCc","sendToBcc","replyTo","showCopyEmails","subject","message","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","getValidationSchema","_ref","customValidations","schema","clone","concat","shape","getReplyToFieldLabelProps","_ref2","popoverProps","helpIconProps","_defineProperty","isPresent","content","touch","_objectSpread","description","ReplyToField","_ref$options","options","_ref$popoverProps","_useTranslation","useTranslation","_useFormikContext","useFormikContext","setFieldValue","isDropdownField","isNotEmpty","labelProps","_jsx","Select","isClearable","className","label","name","onChange","data","_data$value","Input","autoFocus","placeholder","size","event","_event$target$value","target","toLowerCase","SendToField","withT","SendToFields","showCcBccButton","bccInputProps","ccInputProps","emailInputProps","id","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","error","_ref$required","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","slug","key","textAreaElement","document","querySelector","splitIndex","selectionEnd","updatedSubject","slice","join","_jsxs","_Fragment","children","suffix","DynamicVariables","variables","dropdownProps","buttonSize","onVariableClick","withEventTargetValue","onFocus","Typography","style","Trans","components","span","i18nKey","values","type","EmailForm","_ref$messageVariables","messageVariables","handleCancel","isLoading","replyToFieldProps","sendToFieldProps","replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$showFields","showFields","_ref$className","_useContext","useContext","sendToFieldOptions","showSendToRadioField","showSendToTextField","classnames","Field","field","meta","Radio","map","_ref3","_createElement","Item","FormikEditor","isMenuCollapsible","addons","ActionBlock","cancelButtonProps","onClick","isSubmitting","EmailFormProvider","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","_ref$validationSchema","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$maxEmails","Provider","Form","enableReinitialize","globalProps","user"],"mappings":"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"}
@@ -7,26 +7,28 @@ var Form$1 = require('@bigbinary/neetoui/formik/Form');
7
7
  var reactI18next = require('react-i18next');
8
8
  var EmailPreview = require('./EmailPreview.js');
9
9
  var React = require('react');
10
- var classnames = require('classnames');
11
10
  var formik = require('formik');
12
- var Label = require('@bigbinary/neetoui/Label');
13
11
  var Input = require('@bigbinary/neetoui/formik/Input');
14
- var Switch = require('@bigbinary/neetoui/formik/Switch');
15
12
  var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
16
13
  var SendToFields = require('./SendToFields.js');
17
- var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
18
- var FormikEditor = require('@bigbinary/neeto-editor/FormikEditor');
19
- var jsxRuntime = require('react/jsx-runtime');
20
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
21
14
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
15
+ var classnames = require('classnames');
16
+ var Down = require('@bigbinary/neeto-icons/Down');
17
+ var Up = require('@bigbinary/neeto-icons/Up');
18
+ var Label = require('@bigbinary/neetoui/Label');
19
+ var Switch = require('@bigbinary/neetoui/formik/Switch');
20
+ var ramda = require('ramda');
21
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
22
22
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
23
23
  var DatePicker = require('@bigbinary/neetoui/DatePicker');
24
24
  var i18next = require('i18next');
25
25
  var neetoCist = require('@bigbinary/neeto-cist');
26
26
  var utils$1 = require('@bigbinary/neeto-commons-frontend/utils');
27
27
  var utils = require('@bigbinary/neeto-editor/utils');
28
- var ramda = require('ramda');
29
28
  var yup = require('yup');
29
+ var jsxRuntime = require('react/jsx-runtime');
30
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
31
+ var FormikEditor = require('@bigbinary/neeto-editor/FormikEditor');
30
32
  require('@bigbinary/neeto-commons-frontend/react-utils/withT');
31
33
  require('@bigbinary/neeto-editor/EditorContent');
32
34
  require('./index-57253dc4.js');
@@ -64,18 +66,20 @@ var LeftArrow__default = /*#__PURE__*/_interopDefaultLegacy(LeftArrow);
64
66
  var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
65
67
  var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
66
68
  var Form__default = /*#__PURE__*/_interopDefaultLegacy(Form$1);
69
+ var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
70
+ var ActionBlock__default = /*#__PURE__*/_interopDefaultLegacy(ActionBlock);
71
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
67
72
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
73
+ var Down__default = /*#__PURE__*/_interopDefaultLegacy(Down);
74
+ var Up__default = /*#__PURE__*/_interopDefaultLegacy(Up);
68
75
  var Label__default = /*#__PURE__*/_interopDefaultLegacy(Label);
69
- var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
70
76
  var Switch__default = /*#__PURE__*/_interopDefaultLegacy(Switch);
71
- var ActionBlock__default = /*#__PURE__*/_interopDefaultLegacy(ActionBlock);
72
- var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
73
- var FormikEditor__default = /*#__PURE__*/_interopDefaultLegacy(FormikEditor);
74
77
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
75
- var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
76
78
  var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
77
79
  var DatePicker__default = /*#__PURE__*/_interopDefaultLegacy(DatePicker);
78
80
  var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
81
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
82
+ var FormikEditor__default = /*#__PURE__*/_interopDefaultLegacy(FormikEditor);
79
83
 
80
84
  var INITIAL_VALUES = {
81
85
  sendFromEmail: "",
@@ -91,24 +95,6 @@ var INITIAL_VALUES = {
91
95
  var EDITOR_ADDONS = ["emoji", "block-quote", "image-upload", "divider"];
92
96
  var TIME_FORMAT = "hh:mm A";
93
97
 
94
- var EmailBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
95
- var id = _ref.id,
96
- showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
97
- var _useTranslation = reactI18next.useTranslation(),
98
- t = _useTranslation.t;
99
- return /*#__PURE__*/jsxRuntime.jsx(FormikEditor__default["default"], {
100
- id: id,
101
- ref: ref,
102
- required: true,
103
- className: "mb-6",
104
- "data-cy": "email-body",
105
- label: t("neetoMolecules.shareViaEmail.emailBody"),
106
- name: "emailBody",
107
- addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray__default["default"](EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
108
- });
109
- });
110
- EmailBody.displayName = "EmailBody";
111
-
112
98
  function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
113
99
  function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
114
100
  var isPastDate = function isPastDate(date) {
@@ -209,42 +195,41 @@ var FormikDatePicker = function FormikDatePicker(_ref) {
209
195
  }, props));
210
196
  };
211
197
 
212
- var Form = function Form(_ref) {
198
+ var AdvancedProperties = function AdvancedProperties(_ref) {
213
199
  var showSendFromField = _ref.showSendFromField,
214
- disableReplyTo = _ref.disableReplyTo,
215
- showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
216
- children = _ref.children;
217
- var _useFormikContext = formik.useFormikContext(),
218
- values = _useFormikContext.values,
219
- initialValues = _useFormikContext.initialValues;
220
- var editorRef = React.useRef();
200
+ disableReplyTo = _ref.disableReplyTo;
221
201
  var _useTranslation = reactI18next.useTranslation(),
222
202
  t = _useTranslation.t;
223
- var handleReset = function handleReset() {
224
- return editorRef.current.editor.commands.setContent(initialValues.emailBody);
203
+ var _useFormikContext = formik.useFormikContext(),
204
+ values = _useFormikContext.values;
205
+ var _useState = React.useState(false),
206
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
207
+ isAdvancedPropertiesVisible = _useState2[0],
208
+ setIsAdvancedPropertiesVisible = _useState2[1];
209
+ var toggleAdvancedOptions = function toggleAdvancedOptions() {
210
+ return setIsAdvancedPropertiesVisible(ramda.not);
225
211
  };
226
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
227
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
228
- className: "space-y-4",
229
- children: [/*#__PURE__*/jsxRuntime.jsx(SendToFields, {
230
- showUploadCsvButton: true,
231
- emailInputProps: {
232
- label: t("neetoMolecules.shareViaEmail.sendTo"),
233
- name: "notifyEmails",
234
- required: true
235
- }
236
- }), /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
237
- required: true,
238
- className: "col-span-1",
239
- label: t("neetoMolecules.shareViaEmail.subject"),
240
- name: "emailSubject"
241
- }), /*#__PURE__*/jsxRuntime.jsx(EmailBody, {
242
- showVideoEmbedInEditor: showVideoEmbedInEditor,
243
- id: "emailBody",
244
- ref: editorRef
245
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
246
- ref: editorRef
247
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
212
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
213
+ className: "flex w-full flex-col items-start gap-4",
214
+ children: [/*#__PURE__*/jsxRuntime.jsxs("button", {
215
+ className: "flex w-full cursor-pointer items-start justify-between overflow-hidden border-0 py-4",
216
+ type: "button",
217
+ onClick: toggleAdvancedOptions,
218
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
219
+ className: "flex min-w-0 flex-grow",
220
+ component: "span",
221
+ style: "h5",
222
+ weight: "medium",
223
+ children: t("neetoMolecules.shareViaEmail.advancedProperties")
224
+ }), isAdvancedPropertiesVisible ? /*#__PURE__*/jsxRuntime.jsx(Up__default["default"], {
225
+ className: "flex-shrink-0",
226
+ size: 20
227
+ }) : /*#__PURE__*/jsxRuntime.jsx(Down__default["default"], {
228
+ className: "flex-shrink-0",
229
+ size: 20
230
+ })]
231
+ }), isAdvancedPropertiesVisible && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
232
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
248
233
  children: /*#__PURE__*/jsxRuntime.jsxs(Label__default["default"], {
249
234
  className: "flex items-center gap-2",
250
235
  children: [/*#__PURE__*/jsxRuntime.jsx(Switch__default["default"], {
@@ -269,18 +254,19 @@ var Form = function Form(_ref) {
269
254
  size: "large"
270
255
  }), /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
271
256
  required: true,
257
+ className: "w-full",
272
258
  label: t("neetoMolecules.shareViaEmail.startButtonText"),
273
259
  name: "actionButtonText"
274
260
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
275
- className: "flex flex-col gap-4 sm:flex-row sm:gap-6",
261
+ className: "flex w-full flex-col gap-4 sm:flex-row sm:gap-6",
276
262
  children: [showSendFromField && /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
277
263
  required: true,
278
- className: classnames__default["default"]({
279
- "w-full flex-grow-0": !disableReplyTo
280
- }),
281
264
  "data-testid": "neeto-molecules-share-via-email-send-from",
282
265
  label: t("neetoMolecules.shareViaEmail.sendFrom"),
283
- name: "sendFromEmail"
266
+ name: "sendFromEmail",
267
+ className: classnames__default["default"]({
268
+ "w-full flex-grow-0": !disableReplyTo
269
+ })
284
270
  }), !disableReplyTo && /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
285
271
  required: true,
286
272
  "data-testid": "replyTo-field",
@@ -291,6 +277,66 @@ var Form = function Form(_ref) {
291
277
  })
292
278
  })]
293
279
  })]
280
+ })]
281
+ });
282
+ };
283
+
284
+ var EmailBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
285
+ var id = _ref.id,
286
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
287
+ var _useTranslation = reactI18next.useTranslation(),
288
+ t = _useTranslation.t;
289
+ return /*#__PURE__*/jsxRuntime.jsx(FormikEditor__default["default"], {
290
+ id: id,
291
+ ref: ref,
292
+ required: true,
293
+ className: "mb-6",
294
+ "data-cy": "email-body",
295
+ label: t("neetoMolecules.shareViaEmail.emailBody"),
296
+ name: "emailBody",
297
+ addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray__default["default"](EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
298
+ });
299
+ });
300
+ EmailBody.displayName = "EmailBody";
301
+
302
+ var Form = function Form(_ref) {
303
+ var showSendFromField = _ref.showSendFromField,
304
+ disableReplyTo = _ref.disableReplyTo,
305
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
306
+ children = _ref.children;
307
+ var _useFormikContext = formik.useFormikContext(),
308
+ initialValues = _useFormikContext.initialValues;
309
+ var editorRef = React.useRef();
310
+ var _useTranslation = reactI18next.useTranslation(),
311
+ t = _useTranslation.t;
312
+ var handleReset = function handleReset() {
313
+ return editorRef.current.editor.commands.setContent(initialValues.emailBody);
314
+ };
315
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
316
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
317
+ className: "space-y-4",
318
+ children: [/*#__PURE__*/jsxRuntime.jsx(SendToFields, {
319
+ showUploadCsvButton: true,
320
+ emailInputProps: {
321
+ label: t("neetoMolecules.shareViaEmail.sendTo"),
322
+ name: "notifyEmails",
323
+ required: true
324
+ }
325
+ }), /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
326
+ required: true,
327
+ className: "col-span-1",
328
+ label: t("neetoMolecules.shareViaEmail.subject"),
329
+ name: "emailSubject"
330
+ }), /*#__PURE__*/jsxRuntime.jsx(EmailBody, {
331
+ showVideoEmbedInEditor: showVideoEmbedInEditor,
332
+ id: "emailBody",
333
+ ref: editorRef
334
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
335
+ ref: editorRef
336
+ }), /*#__PURE__*/jsxRuntime.jsx(AdvancedProperties, {
337
+ disableReplyTo: disableReplyTo,
338
+ showSendFromField: showSendFromField
339
+ })]
294
340
  }), children && /*#__PURE__*/jsxRuntime.jsxs("div", {
295
341
  className: "neeto-ui-border-gray-300 mt-4 border-t py-4",
296
342
  children: [/*#__PURE__*/jsxRuntime.jsx("h3", {