@bigbinary/neeto-molecules 3.7.6 → 3.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/EmailForm.js CHANGED
@@ -3,7 +3,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
3
  import { createContext, useState, useContext, createElement } from 'react';
4
4
  import classnames from 'classnames';
5
5
  import { useFormikContext, Field } from 'formik';
6
- import { isNotEmpty, noop } from '@bigbinary/neeto-cist';
6
+ import { isNotEmpty, isPresent, noop } from '@bigbinary/neeto-cist';
7
7
  import FormikEditor from '@bigbinary/neeto-editor/FormikEditor';
8
8
  import Typography from '@bigbinary/neetoui/Typography';
9
9
  import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
@@ -92,26 +92,33 @@ var EmailFormContext = /*#__PURE__*/createContext({
92
92
  showReplyToField: false
93
93
  });
94
94
 
95
+ 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; }
96
+ 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(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; }
95
97
  var ReplyToField = function ReplyToField(_ref) {
96
- var replyToOptions = _ref.replyToOptions;
98
+ var _ref$options = _ref.options,
99
+ options = _ref$options === void 0 ? [] : _ref$options,
100
+ _ref$popoverProps = _ref.popoverProps,
101
+ popoverProps = _ref$popoverProps === void 0 ? {} : _ref$popoverProps;
97
102
  var _useTranslation = useTranslation(),
98
103
  t = _useTranslation.t;
99
- var isDropdownField = isNotEmpty(replyToOptions);
104
+ var isDropdownField = isNotEmpty(options);
100
105
  var _useFormikContext = useFormikContext(),
101
106
  setFieldValue = _useFormikContext.setFieldValue;
102
107
  if (isDropdownField) {
103
108
  return /*#__PURE__*/jsx(Select, {
109
+ options: options,
104
110
  isClearable: true,
105
111
  className: "w-full",
106
112
  "data-testid": "replyToOptions",
107
113
  label: t("neetoMolecules.emailForm.labels.replyTo"),
108
114
  name: "replyTo",
109
- options: replyToOptions,
110
115
  labelProps: {
111
- helpIconProps: _defineProperty(_defineProperty({}, "data-testid", "reply-to-tooltip"), "tooltipProps", {
116
+ helpIconProps: _defineProperty(_defineProperty(_defineProperty({}, "data-testid", "reply-to-tooltip"), "tooltipProps", !isPresent(popoverProps) && {
112
117
  content: t("neetoMolecules.emailForm.tooltips.replyTo"),
113
118
  touch: ["hold", 500]
114
- })
119
+ }), "popoverProps", isPresent(popoverProps) && _objectSpread$2(_objectSpread$2({}, popoverProps), {}, {
120
+ description: popoverProps.description || t("neetoMolecules.emailForm.tooltips.replyTo")
121
+ }))
115
122
  },
116
123
  onChange: function onChange(data) {
117
124
  var _data$value;
@@ -129,10 +136,12 @@ var ReplyToField = function ReplyToField(_ref) {
129
136
  placeholder: t("neetoMolecules.emailForm.placeholders.emailPlaceholder"),
130
137
  size: "large",
131
138
  labelProps: {
132
- helpIconProps: _defineProperty(_defineProperty({}, "data-testid", "reply-to-tooltip"), "tooltipProps", {
139
+ helpIconProps: _defineProperty(_defineProperty(_defineProperty({}, "data-testid", "reply-to-tooltip"), "tooltipProps", !isPresent(popoverProps) && {
133
140
  content: t("neetoMolecules.emailForm.tooltips.replyTo"),
134
141
  touch: ["hold", 500]
135
- })
142
+ }), "popoverProps", isPresent(popoverProps) && _objectSpread$2(_objectSpread$2({}, popoverProps), {}, {
143
+ description: popoverProps.description || t("neetoMolecules.emailForm.tooltips.replyTo")
144
+ }))
136
145
  }
137
146
  });
138
147
  };
@@ -222,6 +231,8 @@ var SubjectField = function SubjectField(_ref) {
222
231
  });
223
232
  };
224
233
 
234
+ 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; }
235
+ 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(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; }
225
236
  var EmailForm = function EmailForm(_ref) {
226
237
  var _ref$messageVariables = _ref.messageVariables,
227
238
  messageVariables = _ref$messageVariables === void 0 ? [] : _ref$messageVariables,
@@ -229,8 +240,9 @@ var EmailForm = function EmailForm(_ref) {
229
240
  subjectVariables = _ref$subjectVariables === void 0 ? [] : _ref$subjectVariables,
230
241
  handleCancel = _ref.handleCancel,
231
242
  isLoading = _ref.isLoading,
232
- _ref$replyToOptions = _ref.replyToOptions,
233
- replyToOptions = _ref$replyToOptions === void 0 ? [] : _ref$replyToOptions,
243
+ replyToFieldProps = _ref.replyToFieldProps,
244
+ sendToFieldProps = _ref.sendToFieldProps,
245
+ replyToOptions = _ref.replyToOptions,
234
246
  _ref$sendToOptions = _ref.sendToOptions,
235
247
  sendToOptions = _ref$sendToOptions === void 0 ? [] : _ref$sendToOptions,
236
248
  _ref$isUpdating = _ref.isUpdating,
@@ -247,7 +259,8 @@ var EmailForm = function EmailForm(_ref) {
247
259
  showReplyToField = _useContext.showReplyToField;
248
260
  var _useFormikContext = useFormikContext(),
249
261
  setFieldValue = _useFormikContext.setFieldValue;
250
- var showSendToRadioField = showSendToField && showSendToAsRadio && isNotEmpty(sendToOptions);
262
+ var sendToFieldOptions = (sendToFieldProps === null || sendToFieldProps === void 0 ? void 0 : sendToFieldProps.options) || sendToOptions;
263
+ var showSendToRadioField = showSendToField && showSendToAsRadio && isNotEmpty(sendToFieldOptions);
251
264
  var showSendToTextField = showSendToField && !showSendToRadioField;
252
265
  return /*#__PURE__*/jsxs("div", {
253
266
  "data-cy": "email-form",
@@ -281,7 +294,7 @@ var EmailForm = function EmailForm(_ref) {
281
294
  required: true
282
295
  },
283
296
  name: "sendToId",
284
- children: sendToOptions.map(function (_ref3) {
297
+ children: sendToFieldOptions.map(function (_ref3) {
285
298
  var label = _ref3.label,
286
299
  value = _ref3.value;
287
300
  return /*#__PURE__*/createElement(Radio.Item, {
@@ -290,9 +303,9 @@ var EmailForm = function EmailForm(_ref) {
290
303
  key: value
291
304
  });
292
305
  })
293
- }), showSendToTextField && /*#__PURE__*/jsx(SendToField, {}), showReplyToField && /*#__PURE__*/jsx(ReplyToField, {
294
- replyToOptions: replyToOptions
295
- }), /*#__PURE__*/jsxs("div", {
306
+ }), showSendToTextField && /*#__PURE__*/jsx(SendToField, {}), showReplyToField && /*#__PURE__*/jsx(ReplyToField, _objectSpread$1({
307
+ options: replyToOptions
308
+ }, replyToFieldProps)), /*#__PURE__*/jsxs("div", {
296
309
  className: "w-full",
297
310
  children: [/*#__PURE__*/jsx(FormikEditor, {
298
311
  isMenuCollapsible: true,
@@ -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 { isNotEmpty } from \"neetocist\";\nimport { Select, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ReplyToField = ({ replyToOptions }) => {\n const { t } = useTranslation();\n\n const isDropdownField = isNotEmpty(replyToOptions);\n\n const { setFieldValue } = useFormikContext();\n\n if (isDropdownField) {\n return (\n <Select\n isClearable\n className=\"w-full\"\n data-testid=\"replyToOptions\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n options={replyToOptions}\n labelProps={{\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n tooltipProps: {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n touch: [\"hold\", 500],\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: {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n touch: [\"hold\", 500],\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 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 const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToOptions);\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 {sendToOptions.map(({ label, value }) => (\n <Radio.Item {...{ label, value }} key={value} />\n ))}\n </Radio>\n )}\n {showSendToTextField && <SendToField />}\n {showReplyToField && <ReplyToField {...{ replyToOptions }} />}\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\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","replyToOptions","_useTranslation","useTranslation","isDropdownField","isNotEmpty","_useFormikContext","useFormikContext","setFieldValue","_jsx","Select","isClearable","className","label","name","options","labelProps","helpIconProps","_defineProperty","content","touch","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","_ref$replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$showFields","showFields","_ref$className","_useContext","useContext","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","_objectSpread","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/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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"}
@@ -130,26 +130,33 @@ var EmailFormContext = /*#__PURE__*/React.createContext({
130
130
  showReplyToField: false
131
131
  });
132
132
 
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
+ 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; }
133
135
  var ReplyToField = function ReplyToField(_ref) {
134
- var replyToOptions = _ref.replyToOptions;
136
+ var _ref$options = _ref.options,
137
+ options = _ref$options === void 0 ? [] : _ref$options,
138
+ _ref$popoverProps = _ref.popoverProps,
139
+ popoverProps = _ref$popoverProps === void 0 ? {} : _ref$popoverProps;
135
140
  var _useTranslation = reactI18next.useTranslation(),
136
141
  t = _useTranslation.t;
137
- var isDropdownField = neetoCist.isNotEmpty(replyToOptions);
142
+ var isDropdownField = neetoCist.isNotEmpty(options);
138
143
  var _useFormikContext = formik.useFormikContext(),
139
144
  setFieldValue = _useFormikContext.setFieldValue;
140
145
  if (isDropdownField) {
141
146
  return /*#__PURE__*/jsxRuntime.jsx(Select__default["default"], {
147
+ options: options,
142
148
  isClearable: true,
143
149
  className: "w-full",
144
150
  "data-testid": "replyToOptions",
145
151
  label: t("neetoMolecules.emailForm.labels.replyTo"),
146
152
  name: "replyTo",
147
- options: replyToOptions,
148
153
  labelProps: {
149
- helpIconProps: _defineProperty__default["default"](_defineProperty__default["default"]({}, "data-testid", "reply-to-tooltip"), "tooltipProps", {
154
+ helpIconProps: _defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"]({}, "data-testid", "reply-to-tooltip"), "tooltipProps", !neetoCist.isPresent(popoverProps) && {
150
155
  content: t("neetoMolecules.emailForm.tooltips.replyTo"),
151
156
  touch: ["hold", 500]
152
- })
157
+ }), "popoverProps", neetoCist.isPresent(popoverProps) && _objectSpread$2(_objectSpread$2({}, popoverProps), {}, {
158
+ description: popoverProps.description || t("neetoMolecules.emailForm.tooltips.replyTo")
159
+ }))
153
160
  },
154
161
  onChange: function onChange(data) {
155
162
  var _data$value;
@@ -167,10 +174,12 @@ var ReplyToField = function ReplyToField(_ref) {
167
174
  placeholder: t("neetoMolecules.emailForm.placeholders.emailPlaceholder"),
168
175
  size: "large",
169
176
  labelProps: {
170
- helpIconProps: _defineProperty__default["default"](_defineProperty__default["default"]({}, "data-testid", "reply-to-tooltip"), "tooltipProps", {
177
+ helpIconProps: _defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"]({}, "data-testid", "reply-to-tooltip"), "tooltipProps", !neetoCist.isPresent(popoverProps) && {
171
178
  content: t("neetoMolecules.emailForm.tooltips.replyTo"),
172
179
  touch: ["hold", 500]
173
- })
180
+ }), "popoverProps", neetoCist.isPresent(popoverProps) && _objectSpread$2(_objectSpread$2({}, popoverProps), {}, {
181
+ description: popoverProps.description || t("neetoMolecules.emailForm.tooltips.replyTo")
182
+ }))
174
183
  }
175
184
  });
176
185
  };
@@ -260,6 +269,8 @@ var SubjectField = function SubjectField(_ref) {
260
269
  });
261
270
  };
262
271
 
272
+ 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; }
273
+ 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; }
263
274
  var EmailForm = function EmailForm(_ref) {
264
275
  var _ref$messageVariables = _ref.messageVariables,
265
276
  messageVariables = _ref$messageVariables === void 0 ? [] : _ref$messageVariables,
@@ -267,8 +278,9 @@ var EmailForm = function EmailForm(_ref) {
267
278
  subjectVariables = _ref$subjectVariables === void 0 ? [] : _ref$subjectVariables,
268
279
  handleCancel = _ref.handleCancel,
269
280
  isLoading = _ref.isLoading,
270
- _ref$replyToOptions = _ref.replyToOptions,
271
- replyToOptions = _ref$replyToOptions === void 0 ? [] : _ref$replyToOptions,
281
+ replyToFieldProps = _ref.replyToFieldProps,
282
+ sendToFieldProps = _ref.sendToFieldProps,
283
+ replyToOptions = _ref.replyToOptions,
272
284
  _ref$sendToOptions = _ref.sendToOptions,
273
285
  sendToOptions = _ref$sendToOptions === void 0 ? [] : _ref$sendToOptions,
274
286
  _ref$isUpdating = _ref.isUpdating,
@@ -285,7 +297,8 @@ var EmailForm = function EmailForm(_ref) {
285
297
  showReplyToField = _useContext.showReplyToField;
286
298
  var _useFormikContext = formik.useFormikContext(),
287
299
  setFieldValue = _useFormikContext.setFieldValue;
288
- var showSendToRadioField = showSendToField && showSendToAsRadio && neetoCist.isNotEmpty(sendToOptions);
300
+ var sendToFieldOptions = (sendToFieldProps === null || sendToFieldProps === void 0 ? void 0 : sendToFieldProps.options) || sendToOptions;
301
+ var showSendToRadioField = showSendToField && showSendToAsRadio && neetoCist.isNotEmpty(sendToFieldOptions);
289
302
  var showSendToTextField = showSendToField && !showSendToRadioField;
290
303
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
291
304
  "data-cy": "email-form",
@@ -319,7 +332,7 @@ var EmailForm = function EmailForm(_ref) {
319
332
  required: true
320
333
  },
321
334
  name: "sendToId",
322
- children: sendToOptions.map(function (_ref3) {
335
+ children: sendToFieldOptions.map(function (_ref3) {
323
336
  var label = _ref3.label,
324
337
  value = _ref3.value;
325
338
  return /*#__PURE__*/React.createElement(Radio__default["default"].Item, {
@@ -328,9 +341,9 @@ var EmailForm = function EmailForm(_ref) {
328
341
  key: value
329
342
  });
330
343
  })
331
- }), showSendToTextField && /*#__PURE__*/jsxRuntime.jsx(SendToField, {}), showReplyToField && /*#__PURE__*/jsxRuntime.jsx(ReplyToField, {
332
- replyToOptions: replyToOptions
333
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
344
+ }), showSendToTextField && /*#__PURE__*/jsxRuntime.jsx(SendToField, {}), showReplyToField && /*#__PURE__*/jsxRuntime.jsx(ReplyToField, _objectSpread$1({
345
+ options: replyToOptions
346
+ }, replyToFieldProps)), /*#__PURE__*/jsxRuntime.jsxs("div", {
334
347
  className: "w-full",
335
348
  children: [/*#__PURE__*/jsxRuntime.jsx(FormikEditor__default["default"], {
336
349
  isMenuCollapsible: true,
@@ -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 { isNotEmpty } from \"neetocist\";\nimport { Select, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ReplyToField = ({ replyToOptions }) => {\n const { t } = useTranslation();\n\n const isDropdownField = isNotEmpty(replyToOptions);\n\n const { setFieldValue } = useFormikContext();\n\n if (isDropdownField) {\n return (\n <Select\n isClearable\n className=\"w-full\"\n data-testid=\"replyToOptions\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n options={replyToOptions}\n labelProps={{\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n tooltipProps: {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n touch: [\"hold\", 500],\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: {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n touch: [\"hold\", 500],\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 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 const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToOptions);\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 {sendToOptions.map(({ label, value }) => (\n <Radio.Item {...{ label, value }} key={value} />\n ))}\n </Radio>\n )}\n {showSendToTextField && <SendToField />}\n {showReplyToField && <ReplyToField {...{ replyToOptions }} />}\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\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","replyToOptions","_useTranslation","useTranslation","isDropdownField","isNotEmpty","_useFormikContext","useFormikContext","setFieldValue","_jsx","Select","isClearable","className","label","name","options","labelProps","helpIconProps","_defineProperty","content","touch","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","_ref$replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$showFields","showFields","_ref$className","_useContext","useContext","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","_objectSpread","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/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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "3.7.6",
3
+ "version": "3.7.8",
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>",
@@ -199,7 +199,7 @@
199
199
  },
200
200
  "developmentInfo": "This page can be accessed only in SSO mode. To access the page, run NeetoAuth in the background and restart the application in SSO mode.",
201
201
  "tooltips": {
202
- "productIsDisabled": "The product '{{productName, anyCase}}' is disabled for this organization. Please enable the product to enable this widget."
202
+ "productIsDisabled": "The product '{{productName, anyCase}}' is disabled for this workspace. Please enable the product to enable this widget."
203
203
  }
204
204
  },
205
205
  "customDomain": {
@@ -351,7 +351,7 @@
351
351
  "unsavedChanges": "* You have unsaved changes"
352
352
  },
353
353
  "currentIpMessage": "Your current IP is <strong>{{ip}}</strong> and it should be present in the allowed IP range.",
354
- "warningMessage": "Please be careful enabling this feature. There have been cases where the IP address assigned to people at home is dynamic. After a few days, the IP changed and those people were unable to access neeto applications.\n\nIf you are using a VPN with a fixed range of IP addresses, you are a good candidate for this feature.\n\nIf you get locked out or if you run into any issue, then you can send an email to <strong>support@neeto.com</strong> with your organization name and subdomain.",
354
+ "warningMessage": "Please be careful enabling this feature. There have been cases where the IP address assigned to people at home is dynamic. After a few days, the IP changed and those people were unable to access neeto applications.\n\nIf you are using a VPN with a fixed range of IP addresses, you are a good candidate for this feature.\n\nIf you get locked out or if you run into any issue, then you can send an email to <strong>support@neeto.com</strong> with your workspace name and subdomain.",
355
355
  "enableAlert": {
356
356
  "title": "Enable IP restriction?",
357
357
  "message": "I have read the warning message about using IP restriction. I know that I can email <strong>support@neeto.com</strong>, if I can't log in or have any problems.",
@@ -1,4 +1,6 @@
1
+ import { ButtonProps, PopoverProps } from "@bigbinary/neetoui";
1
2
  import React from "react";
3
+ import { HelpPopoverProps } from "./HelpPopover";
2
4
  type ContentVariables = {
3
5
  label: string;
4
6
  key: string;
@@ -7,6 +9,13 @@ type FieldOptions = {
7
9
  label: string;
8
10
  value: string;
9
11
  };
12
+ type ReplyToFieldProps = {
13
+ popoverProps: HelpPopoverProps;
14
+ options: FieldOptions[];
15
+ };
16
+ type SendToFieldProps = {
17
+ options: FieldOptions[];
18
+ };
10
19
  /**
11
20
  *
12
21
  * This is a component used to create or edit an email template. It includes fields
@@ -32,9 +41,17 @@ type FieldOptions = {
32
41
  * showReplyToField
33
42
  * showSendToField
34
43
  * messageVariables={messageVariables}
35
- * replyToOptions={replyToOptions}
36
- * sendToOptions={sendToOptions}
37
44
  * subjectVariables={subjectVariables}
45
+ * sendToFieldProps={{options: sendToOptions}}
46
+ * replyToFieldProps={{
47
+ * options: replyToOptions,
48
+ * popoverProps: {
49
+ * helpLinkProps: {
50
+ * label: "Help link",
51
+ * href: "https://help.neetoform.com/articles/reply-to-field-for-emails",
52
+ * },
53
+ * },
54
+ * }}
38
55
  * />
39
56
  * <EmailPreview
40
57
  * body={values.message}
@@ -60,5 +77,7 @@ const EmailForm: React.FC<{
60
77
  isUpdating?: boolean;
61
78
  showFields?: boolean;
62
79
  className?: string;
80
+ replyToFieldProps?: ReplyToFieldProps;
81
+ sendToFieldProps?: SendToFieldProps;
63
82
  }>;
64
83
  export default EmailForm;