@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.
- package/dist/EmailForm.js +35 -31
- package/dist/EmailForm.js.map +1 -1
- package/dist/ShareViaEmail.js +108 -64
- package/dist/ShareViaEmail.js.map +1 -1
- package/dist/ShareViaLink.js +45 -12
- package/dist/ShareViaLink.js.map +1 -1
- package/dist/cjs/EmailForm.js +34 -30
- package/dist/cjs/EmailForm.js.map +1 -1
- package/dist/cjs/ShareViaEmail.js +114 -68
- package/dist/cjs/ShareViaEmail.js.map +1 -1
- package/dist/cjs/ShareViaLink.js +46 -12
- package/dist/cjs/ShareViaLink.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/en.json +2 -1
- package/types/EmailForm.d.ts +3 -3
- package/types/ShareViaLink.d.ts +13 -0
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 {
|
|
6
|
+
import { isPresent, isNotEmpty, 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';
|
|
@@ -94,6 +94,31 @@ var EmailFormContext = /*#__PURE__*/createContext({
|
|
|
94
94
|
|
|
95
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
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; }
|
|
97
|
+
var getValidationSchema = function getValidationSchema(_ref) {
|
|
98
|
+
var showSendToField = _ref.showSendToField,
|
|
99
|
+
showReplyToField = _ref.showReplyToField,
|
|
100
|
+
showSendToAsRadio = _ref.showSendToAsRadio,
|
|
101
|
+
customValidations = _ref.customValidations,
|
|
102
|
+
maxEmails = _ref.maxEmails;
|
|
103
|
+
var schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();
|
|
104
|
+
if (showSendToField) {
|
|
105
|
+
schema = schema.concat(showSendToAsRadio ? SEND_TO_ID_FIELD_VALIDATION : sendToFieldValidation(maxEmails));
|
|
106
|
+
}
|
|
107
|
+
if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);
|
|
108
|
+
return schema.shape(customValidations);
|
|
109
|
+
};
|
|
110
|
+
var getReplyToFieldLabelProps = function getReplyToFieldLabelProps(_ref2) {
|
|
111
|
+
var popoverProps = _ref2.popoverProps;
|
|
112
|
+
return {
|
|
113
|
+
helpIconProps: _defineProperty(_defineProperty(_defineProperty({}, "data-testid", "reply-to-tooltip"), "tooltipProps", !isPresent(popoverProps) && {
|
|
114
|
+
content: t("neetoMolecules.emailForm.tooltips.replyTo"),
|
|
115
|
+
touch: ["hold", 500]
|
|
116
|
+
}), "popoverProps", isPresent(popoverProps) && _objectSpread$2(_objectSpread$2({}, popoverProps), {}, {
|
|
117
|
+
description: popoverProps.description || t("neetoMolecules.emailForm.tooltips.replyTo")
|
|
118
|
+
}))
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
|
|
97
122
|
var ReplyToField = function ReplyToField(_ref) {
|
|
98
123
|
var _ref$options = _ref.options,
|
|
99
124
|
options = _ref$options === void 0 ? [] : _ref$options,
|
|
@@ -101,25 +126,21 @@ var ReplyToField = function ReplyToField(_ref) {
|
|
|
101
126
|
popoverProps = _ref$popoverProps === void 0 ? {} : _ref$popoverProps;
|
|
102
127
|
var _useTranslation = useTranslation(),
|
|
103
128
|
t = _useTranslation.t;
|
|
104
|
-
var isDropdownField = isNotEmpty(options);
|
|
105
129
|
var _useFormikContext = useFormikContext(),
|
|
106
130
|
setFieldValue = _useFormikContext.setFieldValue;
|
|
131
|
+
var isDropdownField = isNotEmpty(options);
|
|
132
|
+
var labelProps = getReplyToFieldLabelProps({
|
|
133
|
+
popoverProps: popoverProps
|
|
134
|
+
});
|
|
107
135
|
if (isDropdownField) {
|
|
108
136
|
return /*#__PURE__*/jsx(Select, {
|
|
137
|
+
labelProps: labelProps,
|
|
109
138
|
options: options,
|
|
110
139
|
isClearable: true,
|
|
111
140
|
className: "w-full",
|
|
112
141
|
"data-testid": "replyToOptions",
|
|
113
142
|
label: t("neetoMolecules.emailForm.labels.replyTo"),
|
|
114
143
|
name: "replyTo",
|
|
115
|
-
labelProps: {
|
|
116
|
-
helpIconProps: _defineProperty(_defineProperty(_defineProperty({}, "data-testid", "reply-to-tooltip"), "tooltipProps", !isPresent(popoverProps) && {
|
|
117
|
-
content: t("neetoMolecules.emailForm.tooltips.replyTo"),
|
|
118
|
-
touch: ["hold", 500]
|
|
119
|
-
}), "popoverProps", isPresent(popoverProps) && _objectSpread$2(_objectSpread$2({}, popoverProps), {}, {
|
|
120
|
-
description: popoverProps.description || t("neetoMolecules.emailForm.tooltips.replyTo")
|
|
121
|
-
}))
|
|
122
|
-
},
|
|
123
144
|
onChange: function onChange(data) {
|
|
124
145
|
var _data$value;
|
|
125
146
|
return setFieldValue("replyTo", (_data$value = data === null || data === void 0 ? void 0 : data.value) !== null && _data$value !== void 0 ? _data$value : "");
|
|
@@ -127,6 +148,7 @@ var ReplyToField = function ReplyToField(_ref) {
|
|
|
127
148
|
});
|
|
128
149
|
}
|
|
129
150
|
return /*#__PURE__*/jsx(Input, {
|
|
151
|
+
labelProps: labelProps,
|
|
130
152
|
autoFocus: true,
|
|
131
153
|
required: true,
|
|
132
154
|
className: "w-full",
|
|
@@ -135,13 +157,9 @@ var ReplyToField = function ReplyToField(_ref) {
|
|
|
135
157
|
name: "replyTo",
|
|
136
158
|
placeholder: t("neetoMolecules.emailForm.placeholders.emailPlaceholder"),
|
|
137
159
|
size: "large",
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
touch: ["hold", 500]
|
|
142
|
-
}), "popoverProps", isPresent(popoverProps) && _objectSpread$2(_objectSpread$2({}, popoverProps), {}, {
|
|
143
|
-
description: popoverProps.description || t("neetoMolecules.emailForm.tooltips.replyTo")
|
|
144
|
-
}))
|
|
160
|
+
onChange: function onChange(event) {
|
|
161
|
+
var _event$target$value;
|
|
162
|
+
return setFieldValue("replyTo", (_event$target$value = event.target.value) === null || _event$target$value === void 0 ? void 0 : _event$target$value.toLowerCase());
|
|
145
163
|
}
|
|
146
164
|
});
|
|
147
165
|
};
|
|
@@ -343,20 +361,6 @@ var EmailForm = function EmailForm(_ref) {
|
|
|
343
361
|
});
|
|
344
362
|
};
|
|
345
363
|
|
|
346
|
-
var getValidationSchema = function getValidationSchema(_ref) {
|
|
347
|
-
var showSendToField = _ref.showSendToField,
|
|
348
|
-
showReplyToField = _ref.showReplyToField,
|
|
349
|
-
showSendToAsRadio = _ref.showSendToAsRadio,
|
|
350
|
-
customValidations = _ref.customValidations,
|
|
351
|
-
maxEmails = _ref.maxEmails;
|
|
352
|
-
var schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();
|
|
353
|
-
if (showSendToField) {
|
|
354
|
-
schema = schema.concat(showSendToAsRadio ? SEND_TO_ID_FIELD_VALIDATION : sendToFieldValidation(maxEmails));
|
|
355
|
-
}
|
|
356
|
-
if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);
|
|
357
|
-
return schema.shape(customValidations);
|
|
358
|
-
};
|
|
359
|
-
|
|
360
364
|
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; }
|
|
361
365
|
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(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; }
|
|
362
366
|
var EmailFormProvider = function EmailFormProvider(_ref) {
|
package/dist/EmailForm.js.map
CHANGED
|
@@ -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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"}
|
package/dist/ShareViaEmail.js
CHANGED
|
@@ -4,27 +4,29 @@ import Typography from '@bigbinary/neetoui/Typography';
|
|
|
4
4
|
import Form$1 from '@bigbinary/neetoui/formik/Form';
|
|
5
5
|
import { useTranslation } from 'react-i18next';
|
|
6
6
|
import EmailPreview from './EmailPreview.js';
|
|
7
|
-
import { forwardRef, useRef } from 'react';
|
|
8
|
-
import classnames from 'classnames';
|
|
7
|
+
import { useState, forwardRef, useRef } from 'react';
|
|
9
8
|
import { useField, useFormikContext } from 'formik';
|
|
10
|
-
import Label from '@bigbinary/neetoui/Label';
|
|
11
9
|
import Input from '@bigbinary/neetoui/formik/Input';
|
|
12
|
-
import Switch from '@bigbinary/neetoui/formik/Switch';
|
|
13
10
|
import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
|
|
14
11
|
import SendToFields from './SendToFields.js';
|
|
15
|
-
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
16
|
-
import FormikEditor from '@bigbinary/neeto-editor/FormikEditor';
|
|
17
|
-
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
18
|
-
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
19
12
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
13
|
+
import classnames from 'classnames';
|
|
14
|
+
import Down from '@bigbinary/neeto-icons/Down';
|
|
15
|
+
import Up from '@bigbinary/neeto-icons/Up';
|
|
16
|
+
import Label from '@bigbinary/neetoui/Label';
|
|
17
|
+
import Switch from '@bigbinary/neetoui/formik/Switch';
|
|
18
|
+
import { prop, not } from 'ramda';
|
|
19
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
20
20
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
21
21
|
import DatePicker from '@bigbinary/neetoui/DatePicker';
|
|
22
22
|
import { t } from 'i18next';
|
|
23
23
|
import { dynamicArray } from '@bigbinary/neeto-cist';
|
|
24
24
|
import { dayjs } from '@bigbinary/neeto-commons-frontend/utils';
|
|
25
25
|
import { isEditorEmpty } from '@bigbinary/neeto-editor/utils';
|
|
26
|
-
import { prop } from 'ramda';
|
|
27
26
|
import * as yup from 'yup';
|
|
27
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
28
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
29
|
+
import FormikEditor from '@bigbinary/neeto-editor/FormikEditor';
|
|
28
30
|
import '@bigbinary/neeto-commons-frontend/react-utils/withT';
|
|
29
31
|
import '@bigbinary/neeto-editor/EditorContent';
|
|
30
32
|
import './index-1f87fe13.js';
|
|
@@ -52,24 +54,6 @@ var INITIAL_VALUES = {
|
|
|
52
54
|
var EDITOR_ADDONS = ["emoji", "block-quote", "image-upload", "divider"];
|
|
53
55
|
var TIME_FORMAT = "hh:mm A";
|
|
54
56
|
|
|
55
|
-
var EmailBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
56
|
-
var id = _ref.id,
|
|
57
|
-
showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
|
|
58
|
-
var _useTranslation = useTranslation(),
|
|
59
|
-
t = _useTranslation.t;
|
|
60
|
-
return /*#__PURE__*/jsx(FormikEditor, {
|
|
61
|
-
id: id,
|
|
62
|
-
ref: ref,
|
|
63
|
-
required: true,
|
|
64
|
-
className: "mb-6",
|
|
65
|
-
"data-cy": "email-body",
|
|
66
|
-
label: t("neetoMolecules.shareViaEmail.emailBody"),
|
|
67
|
-
name: "emailBody",
|
|
68
|
-
addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray(EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
EmailBody.displayName = "EmailBody";
|
|
72
|
-
|
|
73
57
|
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; }
|
|
74
58
|
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; }
|
|
75
59
|
var isPastDate = function isPastDate(date) {
|
|
@@ -170,42 +154,41 @@ var FormikDatePicker = function FormikDatePicker(_ref) {
|
|
|
170
154
|
}, props));
|
|
171
155
|
};
|
|
172
156
|
|
|
173
|
-
var
|
|
157
|
+
var AdvancedProperties = function AdvancedProperties(_ref) {
|
|
174
158
|
var showSendFromField = _ref.showSendFromField,
|
|
175
|
-
disableReplyTo = _ref.disableReplyTo
|
|
176
|
-
showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
|
|
177
|
-
children = _ref.children;
|
|
178
|
-
var _useFormikContext = useFormikContext(),
|
|
179
|
-
values = _useFormikContext.values,
|
|
180
|
-
initialValues = _useFormikContext.initialValues;
|
|
181
|
-
var editorRef = useRef();
|
|
159
|
+
disableReplyTo = _ref.disableReplyTo;
|
|
182
160
|
var _useTranslation = useTranslation(),
|
|
183
161
|
t = _useTranslation.t;
|
|
184
|
-
var
|
|
185
|
-
|
|
162
|
+
var _useFormikContext = useFormikContext(),
|
|
163
|
+
values = _useFormikContext.values;
|
|
164
|
+
var _useState = useState(false),
|
|
165
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
166
|
+
isAdvancedPropertiesVisible = _useState2[0],
|
|
167
|
+
setIsAdvancedPropertiesVisible = _useState2[1];
|
|
168
|
+
var toggleAdvancedOptions = function toggleAdvancedOptions() {
|
|
169
|
+
return setIsAdvancedPropertiesVisible(not);
|
|
186
170
|
};
|
|
187
|
-
return /*#__PURE__*/jsxs(
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
})
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
}), /*#__PURE__*/jsx("div", {
|
|
171
|
+
return /*#__PURE__*/jsxs("div", {
|
|
172
|
+
className: "flex w-full flex-col items-start gap-4",
|
|
173
|
+
children: [/*#__PURE__*/jsxs("button", {
|
|
174
|
+
className: "flex w-full cursor-pointer items-start justify-between overflow-hidden border-0 py-4",
|
|
175
|
+
type: "button",
|
|
176
|
+
onClick: toggleAdvancedOptions,
|
|
177
|
+
children: [/*#__PURE__*/jsx(Typography, {
|
|
178
|
+
className: "flex min-w-0 flex-grow",
|
|
179
|
+
component: "span",
|
|
180
|
+
style: "h5",
|
|
181
|
+
weight: "medium",
|
|
182
|
+
children: t("neetoMolecules.shareViaEmail.advancedProperties")
|
|
183
|
+
}), isAdvancedPropertiesVisible ? /*#__PURE__*/jsx(Up, {
|
|
184
|
+
className: "flex-shrink-0",
|
|
185
|
+
size: 20
|
|
186
|
+
}) : /*#__PURE__*/jsx(Down, {
|
|
187
|
+
className: "flex-shrink-0",
|
|
188
|
+
size: 20
|
|
189
|
+
})]
|
|
190
|
+
}), isAdvancedPropertiesVisible && /*#__PURE__*/jsxs(Fragment, {
|
|
191
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
209
192
|
children: /*#__PURE__*/jsxs(Label, {
|
|
210
193
|
className: "flex items-center gap-2",
|
|
211
194
|
children: [/*#__PURE__*/jsx(Switch, {
|
|
@@ -230,18 +213,19 @@ var Form = function Form(_ref) {
|
|
|
230
213
|
size: "large"
|
|
231
214
|
}), /*#__PURE__*/jsx(Input, {
|
|
232
215
|
required: true,
|
|
216
|
+
className: "w-full",
|
|
233
217
|
label: t("neetoMolecules.shareViaEmail.startButtonText"),
|
|
234
218
|
name: "actionButtonText"
|
|
235
219
|
}), /*#__PURE__*/jsxs("div", {
|
|
236
|
-
className: "flex flex-col gap-4 sm:flex-row sm:gap-6",
|
|
220
|
+
className: "flex w-full flex-col gap-4 sm:flex-row sm:gap-6",
|
|
237
221
|
children: [showSendFromField && /*#__PURE__*/jsx(Input, {
|
|
238
222
|
required: true,
|
|
239
|
-
className: classnames({
|
|
240
|
-
"w-full flex-grow-0": !disableReplyTo
|
|
241
|
-
}),
|
|
242
223
|
"data-testid": "neeto-molecules-share-via-email-send-from",
|
|
243
224
|
label: t("neetoMolecules.shareViaEmail.sendFrom"),
|
|
244
|
-
name: "sendFromEmail"
|
|
225
|
+
name: "sendFromEmail",
|
|
226
|
+
className: classnames({
|
|
227
|
+
"w-full flex-grow-0": !disableReplyTo
|
|
228
|
+
})
|
|
245
229
|
}), !disableReplyTo && /*#__PURE__*/jsx(Input, {
|
|
246
230
|
required: true,
|
|
247
231
|
"data-testid": "replyTo-field",
|
|
@@ -252,6 +236,66 @@ var Form = function Form(_ref) {
|
|
|
252
236
|
})
|
|
253
237
|
})]
|
|
254
238
|
})]
|
|
239
|
+
})]
|
|
240
|
+
});
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
var EmailBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
244
|
+
var id = _ref.id,
|
|
245
|
+
showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
|
|
246
|
+
var _useTranslation = useTranslation(),
|
|
247
|
+
t = _useTranslation.t;
|
|
248
|
+
return /*#__PURE__*/jsx(FormikEditor, {
|
|
249
|
+
id: id,
|
|
250
|
+
ref: ref,
|
|
251
|
+
required: true,
|
|
252
|
+
className: "mb-6",
|
|
253
|
+
"data-cy": "email-body",
|
|
254
|
+
label: t("neetoMolecules.shareViaEmail.emailBody"),
|
|
255
|
+
name: "emailBody",
|
|
256
|
+
addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray(EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
EmailBody.displayName = "EmailBody";
|
|
260
|
+
|
|
261
|
+
var Form = function Form(_ref) {
|
|
262
|
+
var showSendFromField = _ref.showSendFromField,
|
|
263
|
+
disableReplyTo = _ref.disableReplyTo,
|
|
264
|
+
showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
|
|
265
|
+
children = _ref.children;
|
|
266
|
+
var _useFormikContext = useFormikContext(),
|
|
267
|
+
initialValues = _useFormikContext.initialValues;
|
|
268
|
+
var editorRef = useRef();
|
|
269
|
+
var _useTranslation = useTranslation(),
|
|
270
|
+
t = _useTranslation.t;
|
|
271
|
+
var handleReset = function handleReset() {
|
|
272
|
+
return editorRef.current.editor.commands.setContent(initialValues.emailBody);
|
|
273
|
+
};
|
|
274
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
275
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
276
|
+
className: "space-y-4",
|
|
277
|
+
children: [/*#__PURE__*/jsx(SendToFields, {
|
|
278
|
+
showUploadCsvButton: true,
|
|
279
|
+
emailInputProps: {
|
|
280
|
+
label: t("neetoMolecules.shareViaEmail.sendTo"),
|
|
281
|
+
name: "notifyEmails",
|
|
282
|
+
required: true
|
|
283
|
+
}
|
|
284
|
+
}), /*#__PURE__*/jsx(Input, {
|
|
285
|
+
required: true,
|
|
286
|
+
className: "col-span-1",
|
|
287
|
+
label: t("neetoMolecules.shareViaEmail.subject"),
|
|
288
|
+
name: "emailSubject"
|
|
289
|
+
}), /*#__PURE__*/jsx(EmailBody, {
|
|
290
|
+
showVideoEmbedInEditor: showVideoEmbedInEditor,
|
|
291
|
+
id: "emailBody",
|
|
292
|
+
ref: editorRef
|
|
293
|
+
}), /*#__PURE__*/jsx("div", {
|
|
294
|
+
ref: editorRef
|
|
295
|
+
}), /*#__PURE__*/jsx(AdvancedProperties, {
|
|
296
|
+
disableReplyTo: disableReplyTo,
|
|
297
|
+
showSendFromField: showSendFromField
|
|
298
|
+
})]
|
|
255
299
|
}), children && /*#__PURE__*/jsxs("div", {
|
|
256
300
|
className: "neeto-ui-border-gray-300 mt-4 border-t py-4",
|
|
257
301
|
children: [/*#__PURE__*/jsx("h3", {
|