@bigbinary/neeto-molecules 5.1.18 → 5.1.19
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 +2 -0
- package/dist/EmailForm.js.map +1 -1
- package/dist/EmailPreview.js +1 -20
- package/dist/EmailPreview.js.map +1 -1
- package/dist/GoogleFontPicker.js +1 -449
- package/dist/GoogleFontPicker.js.map +1 -1
- package/dist/IconPicker.js +6 -914
- package/dist/IconPicker.js.map +1 -1
- package/dist/SendToFields.js +3 -1943
- package/dist/SendToFields.js.map +1 -1
- package/dist/ShareViaEmail.js +2 -0
- package/dist/ShareViaEmail.js.map +1 -1
- package/dist/avatar-placeholder-DEjUhVlU.js +23 -0
- package/dist/avatar-placeholder-DEjUhVlU.js.map +1 -0
- package/dist/cjs/EmailForm.js +2 -0
- package/dist/cjs/EmailForm.js.map +1 -1
- package/dist/cjs/EmailPreview.js +2 -39
- package/dist/cjs/EmailPreview.js.map +1 -1
- package/dist/cjs/GoogleFontPicker.js +9 -457
- package/dist/cjs/GoogleFontPicker.js.map +1 -1
- package/dist/cjs/IconPicker.js +6 -914
- package/dist/cjs/IconPicker.js.map +1 -1
- package/dist/cjs/SendToFields.js +4 -1944
- package/dist/cjs/SendToFields.js.map +1 -1
- package/dist/cjs/ShareViaEmail.js +2 -0
- package/dist/cjs/ShareViaEmail.js.map +1 -1
- package/dist/cjs/avatar-placeholder-CSJpe1V0.js +44 -0
- package/dist/cjs/avatar-placeholder-CSJpe1V0.js.map +1 -0
- package/dist/cjs/download-B53zeKGa.js +21 -0
- package/dist/cjs/download-B53zeKGa.js.map +1 -0
- package/dist/cjs/index.es-Bcx0v5Pd.js +454 -0
- package/dist/cjs/index.es-Bcx0v5Pd.js.map +1 -0
- package/dist/cjs/index.esm-Bb1Vtlp2.js +919 -0
- package/dist/cjs/index.esm-Bb1Vtlp2.js.map +1 -0
- package/dist/cjs/papaparse-B5u_uWB3.js +1948 -0
- package/dist/cjs/papaparse-B5u_uWB3.js.map +1 -0
- package/dist/cjs/upload-C5ZnN-d5.js +21 -0
- package/dist/cjs/upload-C5ZnN-d5.js.map +1 -0
- package/dist/cjs/v2/CalendarView.js +1 -0
- package/dist/cjs/v2/CalendarView.js.map +1 -1
- package/dist/cjs/v2/DeleteArchiveModal.js +91 -0
- package/dist/cjs/v2/DeleteArchiveModal.js.map +1 -0
- package/dist/cjs/v2/DownloadMobileAppCallout.js +43 -0
- package/dist/cjs/v2/DownloadMobileAppCallout.js.map +1 -0
- package/dist/cjs/v2/EmailForm.js +622 -0
- package/dist/cjs/v2/EmailForm.js.map +1 -0
- package/dist/cjs/v2/EmailPreview.js +138 -0
- package/dist/cjs/v2/EmailPreview.js.map +1 -0
- package/dist/cjs/v2/EmojiReactions.js +82 -0
- package/dist/cjs/v2/EmojiReactions.js.map +1 -0
- package/dist/cjs/v2/FileUpload.js +5 -19
- package/dist/cjs/v2/FileUpload.js.map +1 -1
- package/dist/cjs/v2/GoogleFontPicker.js +130 -0
- package/dist/cjs/v2/GoogleFontPicker.js.map +1 -0
- package/dist/cjs/v2/IconPicker.js +274 -0
- package/dist/cjs/v2/IconPicker.js.map +1 -0
- package/dist/cjs/v2/SendToFields.js +313 -0
- package/dist/cjs/v2/SendToFields.js.map +1 -0
- package/dist/cjs/v2/SubHeader.js +4 -18
- package/dist/cjs/v2/SubHeader.js.map +1 -1
- package/dist/download-CZ7Q6k7-.js +19 -0
- package/dist/download-CZ7Q6k7-.js.map +1 -0
- package/dist/index.es-BQ-dr8y1.js +451 -0
- package/dist/index.es-BQ-dr8y1.js.map +1 -0
- package/dist/index.esm-DLni3-hz.js +917 -0
- package/dist/index.esm-DLni3-hz.js.map +1 -0
- package/dist/papaparse-p7fkGgWo.js +1946 -0
- package/dist/papaparse-p7fkGgWo.js.map +1 -0
- package/dist/upload-BNvlRoRJ.js +19 -0
- package/dist/upload-BNvlRoRJ.js.map +1 -0
- package/dist/v2/CalendarView.js +1 -0
- package/dist/v2/CalendarView.js.map +1 -1
- package/dist/v2/DeleteArchiveModal.js +89 -0
- package/dist/v2/DeleteArchiveModal.js.map +1 -0
- package/dist/v2/DownloadMobileAppCallout.js +41 -0
- package/dist/v2/DownloadMobileAppCallout.js.map +1 -0
- package/dist/v2/EmailForm.js +596 -0
- package/dist/v2/EmailForm.js.map +1 -0
- package/dist/v2/EmailPreview.js +136 -0
- package/dist/v2/EmailPreview.js.map +1 -0
- package/dist/v2/EmojiReactions.js +80 -0
- package/dist/v2/EmojiReactions.js.map +1 -0
- package/dist/v2/FileUpload.js +4 -18
- package/dist/v2/FileUpload.js.map +1 -1
- package/dist/v2/GoogleFontPicker.js +128 -0
- package/dist/v2/GoogleFontPicker.js.map +1 -0
- package/dist/v2/IconPicker.js +272 -0
- package/dist/v2/IconPicker.js.map +1 -0
- package/dist/v2/SendToFields.js +311 -0
- package/dist/v2/SendToFields.js.map +1 -0
- package/dist/v2/SubHeader.js +3 -17
- package/dist/v2/SubHeader.js.map +1 -1
- package/package.json +5 -5
- package/types/v2/DeleteArchiveModal.d.ts +16 -0
- package/types/v2/DownloadMobileAppCallout.d.ts +7 -0
- package/types/v2/EmailForm.d.ts +88 -0
- package/types/v2/EmailFormProvider.d.ts +29 -0
- package/types/v2/EmailPreview.d.ts +16 -0
- package/types/v2/EmojiReactions.d.ts +22 -0
- package/types/v2/GoogleFontPicker.d.ts +19 -0
- package/types/v2/IconPicker.d.ts +11 -0
- package/types/v2/SendToFields.d.ts +25 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailForm.js","sources":["../../../src/v2/components/EmailForm/constants.js","../../../src/v2/components/EmailForm/contexts/EmailForm.js","../../../src/v2/components/EmailForm/utils.js","../../../src/v2/components/EmailForm/ReplyToField.jsx","../../../src/v2/components/EmailForm/SendToField.jsx","../../../src/v2/components/EmailForm/SubjectField.jsx","../../../src/v2/components/EmailForm/EmailForm.jsx","../../../src/v2/components/EmailForm/EmailFormComponent/index.jsx","../../../src/v2/components/EmailForm/EmailFormProvider.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport { prop } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const INITIAL_FORM_VALUES = {\n sendTo: [],\n sendToId: \"\",\n sendToCc: [],\n sendToBcc: [],\n replyTo: \"\",\n showCopyEmails: false,\n subject: \"\",\n message: \"\",\n isEnabled: false,\n};\n\nexport const EMAIL_FORM_VALIDATION_SCHEMA = yup.object({\n subject: yup\n .string()\n .required(t(\"neetoMolecules.emailForm.errors.subjectRequired\")),\n message: yup\n .string()\n .test(\n \"message\",\n t(\"neetoMolecules.emailForm.errors.messageRequired\"),\n value => !isEditorEmpty(value)\n ),\n});\n\nexport const sendToFieldValidation = maxEmails => {\n const validation = yup\n .array()\n .test(\n \"all-emails-valid\",\n t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"),\n emails => emails?.every(prop(\"valid\"))\n )\n .test(\n \"max-email-count\",\n t(\"neetoMolecules.emailForm.errors.maxEmails\", { count: maxEmails }),\n emails => emails?.length <= maxEmails\n );\n\n return yup.object({\n sendTo: validation\n .min(\n 1,\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.sendToEmailAddress\"),\n })\n )\n .nullable(),\n sendToCc: validation,\n sendToBcc: validation,\n });\n};\n\nexport const SEND_TO_ID_FIELD_VALIDATION = yup.object({\n sendToId: yup.string().required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n })\n ),\n});\n\nexport const REPLY_TO_FIELD_VALIDATION = yup.object({\n replyTo: yup\n .string()\n .nullable()\n .email(t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"))\n .required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.replyToEmailAddress\"),\n })\n ),\n});\n\nexport const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n \"video-embed\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","/* eslint-disable @bigbinary/neeto/use-zustand-for-global-state-management */\nimport { createContext } from \"react\";\n\nconst EmailFormContext = createContext({\n showSendToField: false,\n showSendToAsRadio: false,\n showReplyToField: false,\n showCcField: false,\n showBccField: false,\n});\n\nexport { EmailFormContext };\n","import { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\n\nimport {\n EMAIL_FORM_VALIDATION_SCHEMA,\n REPLY_TO_FIELD_VALIDATION,\n sendToFieldValidation,\n SEND_TO_ID_FIELD_VALIDATION,\n} from \"./constants\";\n\nexport const getValidationSchema = ({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio\n ? SEND_TO_ID_FIELD_VALIDATION\n : sendToFieldValidation(maxEmails)\n );\n }\n\n if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);\n\n const isYupObject = customValidations.type === \"object\";\n\n if (isYupObject) {\n const customFields = customValidations.fields || {};\n schema = schema.shape(customFields);\n } else if (typeof customValidations === \"object\") {\n schema = schema.shape(customValidations);\n }\n\n return schema;\n};\n\nexport const getReplyToFieldLabelProps = ({ popoverProps }) => ({\n helpIconProps: {\n className: \"reply-to-help-icon\",\n ...(isPresent(popoverProps)\n ? {\n popoverProps: {\n ...popoverProps,\n description:\n popoverProps.description ||\n t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n }\n : {\n tooltipProps: {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n }),\n },\n});\n\nexport const resolveContent = (content, func, variable) => {\n if (typeof func === \"function\") {\n return func(content, variable);\n }\n\n return content;\n};\n\nexport const normalizeHtmlString = str => {\n if (typeof str !== \"string\") return str;\n\n return str\n .replace(/\\uFEFF/g, \"\")\n .replace(/\\r\\n|\\r/g, \"\\n\")\n .replace(/ /g, \" \")\n .replace(/[\\t ]+/g, \" \")\n .replace(/\\s*\\n\\s*/g, \"\\n\")\n .replace(/\\n+/g, \"\\n\")\n .replace(/>\\s+</g, \"><\")\n .trim();\n};\n","import { Input, Select } from \"@bigbinary/neeto-atoms/formik\";\nimport { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getReplyToFieldLabelProps } from \"./utils\";\n\nconst ReplyToField = ({ options = [], popoverProps = {} }) => {\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n\n const isDropdownField = isNotEmpty(options);\n const labelProps = getReplyToFieldLabelProps({ popoverProps });\n\n if (isDropdownField) {\n return (\n <Select\n {...{ labelProps, options }}\n isClearable\n className=\"w-full\"\n data-testid=\"reply-to-select-field\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n onChange={value => setFieldValue(\"replyTo\", value ?? \"\")}\n />\n );\n }\n\n return (\n <Input\n {...{ labelProps }}\n autoFocus\n nakedInput\n required\n className=\"w-full\"\n data-testid=\"reply-to-input-field\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n placeholder={t(\"neetoMolecules.emailForm.placeholders.emailPlaceholder\")}\n size=\"large\"\n onChange={event =>\n setFieldValue(\"replyTo\", event.target.value?.toLowerCase())\n }\n />\n );\n};\n\nexport default ReplyToField;\n","import { useTranslation } from \"react-i18next\";\n\nimport SendToFields from \"../SendToFields\";\n\nconst SendToField = ({ showBccField, showCcField, showSendToTextField }) => {\n const { t } = useTranslation();\n\n if (!showSendToTextField && !showBccField && !showCcField) return null;\n\n return (\n <SendToFields\n showCcBccButton\n showBccField={showSendToTextField ? false : showBccField}\n showCcField={showSendToTextField ? false : showCcField}\n showSendToField={showSendToTextField}\n bccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.bCc\"),\n name: \"sendToBcc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n ccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.cc\"),\n name: \"sendToCc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n emailInputProps={{\n id: \"sendTo\",\n name: \"sendTo\",\n label: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n required: true,\n }}\n />\n );\n};\n\nexport default SendToField;\n","import { useState } from \"react\";\n\nimport { Input } from \"@bigbinary/neeto-atoms\";\nimport { withEventTargetValue } from \"neetocommons/v2/utils/general\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DynamicVariables from \"../DynamicVariables\";\n\nconst SubjectField = ({\n name,\n text,\n updateText,\n subjectVariables = [],\n error,\n required = false,\n onBlur,\n}) => {\n const [isFieldFocusedOnce, setIsFieldFocusedOnce] = useState(false);\n\n const { t } = useTranslation();\n\n const tagClickHandler = ({ key: slug, category }) => {\n const textAreaElement = document.querySelector(`textarea[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && textAreaElement\n ? textAreaElement.selectionEnd\n : text.length;\n\n const variable = category ? `${category}.${slug}` : slug;\n const updatedSubject = [\n text.slice(0, splitIndex),\n ` {{${variable}}}`,\n text.slice(splitIndex),\n ].join(\"\");\n updateText(updatedSubject);\n };\n\n return (\n <Input\n {...{ error, name, onBlur, required }}\n nakedInput\n label={t(\"neetoMolecules.emailForm.labels.subject\")}\n placeholder={t(\"neetoMolecules.emailForm.placeholders.subject\")}\n value={text}\n suffix={\n <DynamicVariables\n buttonProps={{ className: \"m-1\" }}\n dropdownProps={{ className: \"overflow-y-auto\" }}\n variables={subjectVariables}\n onVariableClick={tagClickHandler}\n />\n }\n onChange={withEventTargetValue(updateText)}\n onFocus={() => setIsFieldFocusedOnce(true)}\n />\n );\n};\n\nexport default SubjectField;\n","import { useContext } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { ActionBlock, RadioGroup } from \"@bigbinary/neeto-atoms/formik\";\nimport classnames from \"classnames\";\nimport { Field, useFormikContext } from \"formik\";\nimport { notEqualsDeep, isNotEmpty } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { FormikEditor } from \"neetoeditor/v2\";\nimport PropTypes from \"prop-types\";\nimport { equals } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport ReplyToField from \"./ReplyToField\";\nimport SendToField from \"./SendToField\";\nimport SubjectField from \"./SubjectField\";\nimport { normalizeHtmlString } from \"./utils\";\n\nconst EmailForm = ({\n messageVariables = [],\n subjectVariables = [],\n handleCancel,\n handleResetToDefault,\n isLoading,\n replyToFieldProps,\n sendToFieldProps,\n replyToOptions,\n sendToOptions = [],\n isUpdating = false,\n isResetting = false,\n showFields = true,\n className = \"\",\n editorAddons = EDITOR_ADDONS,\n showResetToDefaultButton,\n editorRef = null,\n defaultValues = {},\n}) => {\n const { t } = useTranslation();\n\n const {\n showSendToField,\n showSendToAsRadio,\n showReplyToField,\n showCcField,\n showBccField,\n } = useContext(EmailFormContext);\n\n const { setFieldValue, values, resetForm } = useFormikContext();\n\n const normalizedValues = {\n ...values,\n message: normalizeHtmlString(values.message),\n };\n\n const normalizedDefaultValues = {\n ...defaultValues,\n message: normalizeHtmlString(defaultValues?.message),\n };\n\n normalizedDefaultValues.replyTo ||= globalProps.user?.email;\n\n const disabled = equals(normalizedValues, normalizedDefaultValues);\n\n const sendToFieldOptions = sendToFieldProps?.options || sendToOptions;\n const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToFieldOptions);\n\n const showSendToTextField = showSendToField && !showSendToRadioField;\n\n return (\n <div\n data-testid=\"email-form\"\n className={classnames(\"flex flex-1 flex-col items-start gap-2 !pb-0\", {\n [className]: className,\n })}\n >\n <div className=\"w-full grow\">\n {showFields && (\n <div className=\"flex w-full flex-col items-start justify-start gap-5\">\n {showSendToRadioField && (\n <RadioGroup\n className=\"pb-2\"\n data-testid=\"send-to-id\"\n label={t(\"neetoMolecules.emailForm.labels.sendTo\")}\n labelProps={{ required: true }}\n name=\"sendToId\"\n >\n {sendToFieldOptions.map(({ label, value }) => (\n <RadioGroup.Item {...{ label, value }} key={value} />\n ))}\n </RadioGroup>\n )}\n <SendToField\n {...{ showBccField, showCcField, showSendToTextField }}\n />\n {showReplyToField && (\n <div className=\"border-border w-full border-b pb-1\">\n <ReplyToField options={replyToOptions} {...replyToFieldProps} />\n </div>\n )}\n <Field name=\"subject\">\n {({ field: { value, onBlur }, meta: { error, touched } }) => (\n <div className=\"border-border w-full border-b pb-1\">\n <SubjectField\n {...{ onBlur, subjectVariables }}\n required\n error={touched && error ? t(error) : undefined}\n name=\"subject\"\n text={value}\n updateText={text => setFieldValue(\"subject\", text)}\n />\n </div>\n )}\n </Field>\n <div className=\"w-full\" data-testid=\"message-input-container\">\n <FormikEditor\n required\n addons={editorAddons}\n data-testid=\"message-input-field\"\n hideSlashCommands={false}\n id=\"form_message\"\n menuType=\"fixed\"\n name=\"message\"\n placeholder={t(\"neetoMolecules.emailForm.placeholders.message\")}\n ref={editorRef}\n variables={messageVariables}\n shouldUpdate={(nextProps, prevProps) =>\n notEqualsDeep(nextProps.variables, prevProps.variables)\n }\n />\n </div>\n </div>\n )}\n </div>\n <div className=\"bg-background z-10 flex w-full justify-between py-6 lg:sticky lg:bottom-0\">\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isLoading || isUpdating}\n />\n {showResetToDefaultButton && (\n <div>\n <Button\n {...{ disabled }}\n data-testid=\"reset-to-default-button\"\n label={t(\"neetoMolecules.emailForm.labels.resetToDefault\")}\n loading={isResetting}\n variant=\"secondary\"\n onClick={() => {\n resetForm();\n handleResetToDefault();\n }}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nEmailForm.propTypes = {\n /**\n * This is an array of objects used for templating within the message field. Each object in the array has a **label** and a **key**.\n */\n messageVariables: PropTypes.array,\n /**\n * This is an array of objects used for templating within the subject field. Each object in the array has a **label** and a **key**.\n */\n subjectVariables: PropTypes.array,\n /**\n * This function that gets triggered when the 'Cancel' button is clicked.\n */\n handleCancel: PropTypes.func,\n /**\n * This function that gets triggered when the 'Reset to default' button is clicked.\n */\n handleResetToDefault: PropTypes.func,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Reset to default' button.\n */\n isResetting: PropTypes.bool,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Reply To' field into a dropdown menu with given options. Without this prop, 'Reply To' will be a text input field.\n */\n replyToOptions: PropTypes.array,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Send To' field into a radio group with given options. Without this prop, 'Send To' will be a multi email input field.\n */\n sendToOptions: PropTypes.array,\n /**\n * A Boolean flag indicating whether an update operation is currently in progress. When set to `true`, the 'Save changes' button is disabled.\n */\n isUpdating: PropTypes.bool,\n /**\n * To provide additional classnames to the button.\n */\n className: PropTypes.string,\n /**\n * To provide props to the replyToField. Supports options that will\n * be rendered as the reply to options and popover props.\n */\n replyToFieldProps: PropTypes.object,\n /**\n * To provide props to the sendToField. Supports sendTo options.\n */\n sendToFieldProps: PropTypes.object,\n /**\n * This Boolean value, when set to true, shows reset to default button.\n */\n showResetToDefaultButton: PropTypes.bool,\n /**\n * A reference to the editor.\n */\n editorRef: PropTypes.any,\n /**\n * To override the default editor addons\n */\n editorAddons: PropTypes.array,\n /**\n * The default values for the email form.\n */\n defaultValues: PropTypes.object,\n};\n\nexport default EmailForm;\n","import { Tooltip } from \"@bigbinary/neeto-atoms\";\nimport { BlockNavigation, Switch } from \"@bigbinary/neeto-atoms/formik\";\nimport { noop, isNotEmpty } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty, pluck } from \"ramda\";\n\nimport { EmailFormProvider, EmailForm, EmailPreview } from \"..\";\nimport Header from \"../../Header\";\nimport MobilePreviewHeader from \"../../MobilePreviewHeader\";\nimport { INITIAL_FORM_VALUES } from \"../constants\";\nimport { resolveContent } from \"../utils\";\n\nconst EmailFormComponent = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema,\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n blockNavigation = true,\n showCcField = false,\n showBccField = false,\n isLoading = false,\n maxEmails = 10,\n emailFormProps = {},\n emailPreviewProps = {},\n headerProps = {},\n tooltipProps = {},\n switchProps = {},\n mobilePreviewProps = {},\n}) => {\n const { formatBody, formatSubject, bodyVariables, subjectVariables } =\n emailPreviewProps;\n\n const shouldShowFields = values => isEmpty(switchProps) || values.isEnabled;\n\n return (\n <EmailFormProvider\n {...{\n formikProps,\n initialValues,\n maxEmails,\n onSubmit,\n showBccField,\n showCcField,\n showReplyToField,\n showSendToAsRadio,\n showSendToField,\n validationSchema,\n }}\n >\n {({ values, isSubmitting }) => (\n <div className=\"flex h-[calc(100dvh-64px)] flex-grow flex-col overflow-y-auto lg:flex-row\">\n <div className=\"flex w-full flex-col px-5 md:px-10 lg:h-full lg:w-1/2 lg:overflow-y-auto\">\n {blockNavigation && <BlockNavigation />}\n {isNotEmpty(headerProps) && (\n <Header className=\"px-0\" size=\"small\" {...headerProps} />\n )}\n {isNotEmpty(switchProps) && (\n <div className=\"flex items-center justify-between gap-y-0.5 pb-6\">\n <Tooltip\n disabled={!switchProps?.disabled}\n position=\"top\"\n {...tooltipProps}\n >\n <div className=\"flex items-center gap-2\">\n <Switch\n data-testid=\"switch\"\n name=\"isEnabled\"\n {...switchProps}\n />\n </div>\n </Tooltip>\n </div>\n )}\n {shouldShowFields(values) && children}\n <EmailForm\n isLoading={isSubmitting || isLoading}\n isUpdating={isSubmitting || isLoading}\n showFields={shouldShowFields(values)}\n {...emailFormProps}\n />\n </div>\n {shouldShowFields(values) && (\n <MobilePreviewHeader\n className=\"lg:hidden\"\n {...mobilePreviewProps}\n />\n )}\n {shouldShowFields(values) && (\n <div className=\"bg-muted w-full px-6 py-10 lg:w-1/2 lg:overflow-y-auto\">\n <EmailPreview\n body={resolveContent(values.message, formatBody, bodyVariables)}\n from={values.sendFrom}\n to={pluck(\"value\", values?.sendTo ?? [])}\n subject={resolveContent(\n values.subject,\n formatSubject,\n subjectVariables\n )}\n {...emailPreviewProps}\n />\n </div>\n )}\n </div>\n )}\n </EmailFormProvider>\n );\n};\n\nEmailFormComponent.propTypes = {\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n isEnabled: PropTypes.bool,\n }),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be radio type or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * These are the values that will be passed to EmailForm Component\n */\n emailFormProps: PropTypes.shape({\n messageVariables: PropTypes.array,\n subjectVariables: PropTypes.array,\n handleCancel: PropTypes.func,\n handleResetToDefault: PropTypes.func,\n isLoading: PropTypes.bool,\n replyToFieldProps: PropTypes.object,\n sendToFieldProps: PropTypes.object,\n replyToOptions: PropTypes.array,\n sendToOptions: PropTypes.array,\n isUpdating: PropTypes.bool,\n showFields: PropTypes.bool,\n className: PropTypes.string,\n showResetToDefaultButton: PropTypes.bool,\n editorRef: PropTypes.any,\n editorAddons: PropTypes.array,\n }),\n /**\n * These are the values that will be passed to EmailPreview Component\n */\n emailPreviewProps: PropTypes.shape({\n to: PropTypes.array,\n from: PropTypes.string,\n subject: PropTypes.string,\n body: PropTypes.string,\n actionButtonText: PropTypes.string,\n logo: PropTypes.string,\n customContent: PropTypes.string,\n className: PropTypes.string,\n formatBody: PropTypes.func,\n formatSubject: PropTypes.func,\n bodyVariables: PropTypes.object,\n subjectVariables: PropTypes.object,\n }),\n /**\n * These are the values that will be passed to Header Component\n */\n headerProps: PropTypes.object,\n /**\n * These are the values that will be passed to Tooltip Component\n */\n tooltipProps: PropTypes.object,\n /**\n * These are the values that will be passed to Switch Component\n */\n switchProps: PropTypes.object,\n /**\n * These are the values that will be passed to MobilePreviewHeader Component\n */\n mobilePreviewProps: PropTypes.object,\n};\n\nexport default EmailFormComponent;\n","import { Form } from \"@bigbinary/neeto-atoms/formik\";\nimport { noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport PropTypes from \"prop-types\";\n\nimport { INITIAL_FORM_VALUES } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport { getValidationSchema } from \"./utils\";\n\nconst EmailFormProvider = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema: customValidations = {},\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n showCcField = false,\n showBccField = false,\n maxEmails = 10,\n}) => (\n <div data-testid=\"email-form-provider\">\n <EmailFormContext.Provider\n value={{\n showSendToField,\n showSendToAsRadio,\n showReplyToField,\n showCcField,\n showBccField,\n }}\n >\n <Form\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n }),\n initialValues: {\n ...initialValues,\n replyTo: initialValues.replyTo || globalProps.user?.email,\n },\n onSubmit,\n ...formikProps,\n }}\n >\n {children}\n </Form>\n </EmailFormContext.Provider>\n </div>\n);\n\nEmailFormProvider.propTypes = {\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be radio type or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n }),\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n};\n\nexport default EmailFormProvider;\n"],"names":["INITIAL_FORM_VALUES","sendTo","sendToId","sendToCc","sendToBcc","replyTo","showCopyEmails","subject","message","isEnabled","EMAIL_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","test","value","isEditorEmpty","sendToFieldValidation","maxEmails","validation","array","emails","every","prop","count","length","min","entity","nullable","SEND_TO_ID_FIELD_VALIDATION","REPLY_TO_FIELD_VALIDATION","email","EDITOR_ADDONS","EmailFormContext","createContext","showSendToField","showSendToAsRadio","showReplyToField","showCcField","showBccField","getValidationSchema","_ref","customValidations","schema","clone","concat","isYupObject","type","customFields","fields","shape","_typeof","getReplyToFieldLabelProps","_ref2","popoverProps","helpIconProps","_objectSpread","className","isPresent","description","tooltipProps","content","resolveContent","func","variable","normalizeHtmlString","str","replace","trim","ReplyToField","_ref$options","options","_ref$popoverProps","_useTranslation","useTranslation","_useFormikContext","useFormikContext","setFieldValue","isDropdownField","isNotEmpty","labelProps","_jsx","Select","isClearable","label","name","onChange","Input","autoFocus","nakedInput","placeholder","size","event","_event$target$value","target","toLowerCase","SendToField","showSendToTextField","SendToFields","showCcBccButton","bccInputProps","ccInputProps","emailInputProps","id","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","error","_ref$required","onBlur","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","slug","key","category","textAreaElement","document","querySelector","splitIndex","selectionEnd","updatedSubject","slice","join","suffix","DynamicVariables","buttonProps","dropdownProps","variables","onVariableClick","withEventTargetValue","onFocus","EmailForm","_globalProps$user","_ref$messageVariables","messageVariables","handleCancel","handleResetToDefault","isLoading","replyToFieldProps","sendToFieldProps","replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$isResetting","isResetting","_ref$showFields","showFields","_ref$className","_ref$editorAddons","editorAddons","showResetToDefaultButton","_ref$editorRef","editorRef","_ref$defaultValues","defaultValues","_useContext","useContext","values","resetForm","normalizedValues","normalizedDefaultValues","globalProps","user","disabled","equals","sendToFieldOptions","showSendToRadioField","_jsxs","classnames","_defineProperty","children","RadioGroup","map","_createElement","Item","Field","_ref3","_ref3$field","field","_ref3$meta","meta","touched","undefined","FormikEditor","addons","hideSlashCommands","menuType","ref","shouldUpdate","nextProps","prevProps","notEqualsDeep","ActionBlock","cancelButtonProps","onClick","isSubmitting","Button","loading","variant","EmailFormComponent","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$blockNavigation","blockNavigation","_ref$showCcField","_ref$showBccField","_ref$isLoading","_ref$maxEmails","_ref$emailFormProps","emailFormProps","_ref$emailPreviewProp","emailPreviewProps","_ref$headerProps","headerProps","_ref$tooltipProps","_ref$switchProps","switchProps","_ref$mobilePreviewPro","mobilePreviewProps","formatBody","formatSubject","bodyVariables","shouldShowFields","isEmpty","EmailFormProvider","_values$sendTo","BlockNavigation","Header","Tooltip","position","Switch","MobilePreviewHeader","EmailPreview","body","from","sendFrom","to","pluck","_ref$validationSchema","Provider","Form","enableReinitialize"],"mappings":"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"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
5
|
+
var classnames = require('classnames');
|
|
6
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
7
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
|
|
8
|
+
var EditorContent = require('@bigbinary/neeto-editor/EditorContent');
|
|
9
|
+
var index = require('../index-JY2zVpnv.js');
|
|
10
|
+
var avatarPlaceholder = require('../avatar-placeholder-CSJpe1V0.js');
|
|
11
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
12
|
+
require('../_commonjsHelpers-BJu3ubxk.js');
|
|
13
|
+
|
|
14
|
+
var MemoizedEditorContent = /*#__PURE__*/React.memo(EditorContent);
|
|
15
|
+
var EmailPreview = reactUtils.withT(function (_ref) {
|
|
16
|
+
var t = _ref.t,
|
|
17
|
+
_ref$to = _ref.to,
|
|
18
|
+
to = _ref$to === void 0 ? [] : _ref$to,
|
|
19
|
+
from = _ref.from,
|
|
20
|
+
subject = _ref.subject,
|
|
21
|
+
body = _ref.body,
|
|
22
|
+
actionButtonText = _ref.actionButtonText,
|
|
23
|
+
logo = _ref.logo,
|
|
24
|
+
_ref$className = _ref.className,
|
|
25
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
26
|
+
customContent = _ref.customContent;
|
|
27
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
28
|
+
"data-testid": "email-preview-card",
|
|
29
|
+
className: classnames("bg-background neeto-ui-theme--light relative flex flex-1 flex-col rounded-lg px-6 py-8", className),
|
|
30
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
31
|
+
className: "absolute -top-1.5 -right-1.5 z-10 min-w-max rounded-tl-md rounded-tr-md rounded-bl-md px-3 py-1.5 text-center text-sm font-medium text-[#49545c] shadow-[0px_3px_4px_0px_#00000026] [background:#ffee6a] after:absolute after:top-full after:right-0 after:-z-20 after:[border-width:0_0_12px_6px] after:border-solid after:[border-color:transparent_#ddd06b] after:content-['']",
|
|
32
|
+
children: t("neetoMolecules.emailPreview.previewMessage")
|
|
33
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
34
|
+
className: "w-full pb-4",
|
|
35
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
36
|
+
className: "text-foreground min-w-0 grow space-x-2 leading-normal break-words",
|
|
37
|
+
"data-testid": "email-subject-preview",
|
|
38
|
+
variant: "h4",
|
|
39
|
+
children: /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
40
|
+
children: subject || /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
41
|
+
className: "bg-muted h-2 w-40 rounded-full"
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
45
|
+
className: "mt-4 flex items-center gap-2",
|
|
46
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
47
|
+
className: "shrink-0",
|
|
48
|
+
children: /*#__PURE__*/jsxRuntime.jsx(avatarPlaceholder.SvgAvatarPlaceholder, {})
|
|
49
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
50
|
+
className: "flex flex-col gap-1",
|
|
51
|
+
children: [neetoCist.isPresent(from) ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
52
|
+
variant: "h6",
|
|
53
|
+
weight: "medium",
|
|
54
|
+
children: from
|
|
55
|
+
}) : /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
56
|
+
className: "flex gap-2",
|
|
57
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
58
|
+
className: "bg-muted h-2 w-24 rounded-full"
|
|
59
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
60
|
+
className: "bg-muted h-2 w-24 rounded-full"
|
|
61
|
+
})]
|
|
62
|
+
}), neetoCist.isPresent(to) ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
63
|
+
className: "text-muted-foreground line-clamp-1",
|
|
64
|
+
"data-testid": "email-to-block",
|
|
65
|
+
variant: "nano",
|
|
66
|
+
children: to.join(", ")
|
|
67
|
+
}) : /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
68
|
+
className: "bg-muted h-2 w-16 rounded-full",
|
|
69
|
+
"data-testid": "email-to-block"
|
|
70
|
+
})]
|
|
71
|
+
})]
|
|
72
|
+
})]
|
|
73
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
74
|
+
className: "bg-muted flex flex-1 flex-col justify-between gap-y-6 rounded px-6 py-4 text-base leading-relaxed",
|
|
75
|
+
"data-testid": "email-body-preview-container",
|
|
76
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
77
|
+
className: "bg-background w-full p-6 md:p-8 2xl:mx-auto 2xl:max-w-lg",
|
|
78
|
+
children: [body ? /*#__PURE__*/jsxRuntime.jsx(MemoizedEditorContent, {
|
|
79
|
+
className: "whitespace-normal",
|
|
80
|
+
content: body
|
|
81
|
+
}) : /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
82
|
+
className: "flex flex-col gap-y-4",
|
|
83
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
84
|
+
className: "bg-muted h-2 w-48 max-w-full rounded-full md:w-80"
|
|
85
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
86
|
+
className: "bg-muted h-2 w-40 max-w-full rounded-full md:w-72"
|
|
87
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
88
|
+
className: "bg-muted h-2 w-48 max-w-full rounded-full md:w-80"
|
|
89
|
+
})]
|
|
90
|
+
}), customContent && customContent, actionButtonText && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
91
|
+
className: "mt-6 flex w-full items-center justify-center",
|
|
92
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
93
|
+
className: "pointer-events-none",
|
|
94
|
+
label: actionButtonText
|
|
95
|
+
})
|
|
96
|
+
}), logo && /*#__PURE__*/jsxRuntime.jsx("img", {
|
|
97
|
+
alt: t("neetoMolecules.emailPreview.logoAltText"),
|
|
98
|
+
className: "h-20 w-36 object-cover",
|
|
99
|
+
"data-testid": "company-logo-preview",
|
|
100
|
+
src: logo
|
|
101
|
+
})]
|
|
102
|
+
})
|
|
103
|
+
})]
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
EmailPreview.propTypes = {
|
|
107
|
+
/**
|
|
108
|
+
* The value of the send-to field.
|
|
109
|
+
*/
|
|
110
|
+
to: index.PropTypes.arrayOf(index.PropTypes.string),
|
|
111
|
+
/**
|
|
112
|
+
* The value of the send-from field.
|
|
113
|
+
*/
|
|
114
|
+
from: index.PropTypes.string,
|
|
115
|
+
/**
|
|
116
|
+
* The subject of the email.
|
|
117
|
+
*/
|
|
118
|
+
subject: index.PropTypes.string,
|
|
119
|
+
/**
|
|
120
|
+
* The body of the email.
|
|
121
|
+
*/
|
|
122
|
+
body: index.PropTypes.string,
|
|
123
|
+
/**
|
|
124
|
+
* The text to be shown in the action button.
|
|
125
|
+
*/
|
|
126
|
+
actionButtonText: index.PropTypes.string,
|
|
127
|
+
/**
|
|
128
|
+
* Source link for the company logo.
|
|
129
|
+
*/
|
|
130
|
+
logo: index.PropTypes.string,
|
|
131
|
+
/**
|
|
132
|
+
* To pass custom content that will be rendered above the action button.
|
|
133
|
+
*/
|
|
134
|
+
customContent: index.PropTypes.string
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
module.exports = EmailPreview;
|
|
138
|
+
//# sourceMappingURL=EmailPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailPreview.js","sources":["../../../src/v2/components/EmailPreview.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { withT } from \"neetocommons/v2/react-utils\";\nimport { EditorContent } from \"neetoeditor\";\nimport PropTypes from \"prop-types\";\n\nimport AvatarPlaceholder from \"assets/images/avatar-placeholder\";\n\nconst MemoizedEditorContent = memo(EditorContent);\n\nconst EmailPreview = withT(\n ({\n t,\n to = [],\n from,\n subject,\n body,\n actionButtonText,\n logo,\n className = \"\",\n customContent,\n }) => (\n <div\n data-testid=\"email-preview-card\"\n className={classnames(\n \"bg-background neeto-ui-theme--light relative flex flex-1 flex-col rounded-lg px-6 py-8\",\n className\n )}\n >\n <div className=\"absolute -top-1.5 -right-1.5 z-10 min-w-max rounded-tl-md rounded-tr-md rounded-bl-md px-3 py-1.5 text-center text-sm font-medium text-[#49545c] shadow-[0px_3px_4px_0px_#00000026] [background:#ffee6a] after:absolute after:top-full after:right-0 after:-z-20 after:[border-width:0_0_12px_6px] after:border-solid after:[border-color:transparent_#ddd06b] after:content-['']\">\n {t(\"neetoMolecules.emailPreview.previewMessage\")}\n </div>\n <div className=\"w-full pb-4\">\n <Typography\n className=\"text-foreground min-w-0 grow space-x-2 leading-normal break-words\"\n data-testid=\"email-subject-preview\"\n variant=\"h4\"\n >\n <span>\n {subject || <span className=\"bg-muted h-2 w-40 rounded-full\" />}\n </span>\n </Typography>\n <div className=\"mt-4 flex items-center gap-2\">\n <div className=\"shrink-0\">\n <AvatarPlaceholder />\n </div>\n <div className=\"flex flex-col gap-1\">\n {isPresent(from) ? (\n <Typography variant=\"h6\" weight=\"medium\">\n {from}\n </Typography>\n ) : (\n <div className=\"flex gap-2\">\n <span className=\"bg-muted h-2 w-24 rounded-full\" />\n <span className=\"bg-muted h-2 w-24 rounded-full\" />\n </div>\n )}\n {isPresent(to) ? (\n <Typography\n className=\"text-muted-foreground line-clamp-1\"\n data-testid=\"email-to-block\"\n variant=\"nano\"\n >\n {to.join(\", \")}\n </Typography>\n ) : (\n <span\n className=\"bg-muted h-2 w-16 rounded-full\"\n data-testid=\"email-to-block\"\n />\n )}\n </div>\n </div>\n </div>\n <div\n className=\"bg-muted flex flex-1 flex-col justify-between gap-y-6 rounded px-6 py-4 text-base leading-relaxed\"\n data-testid=\"email-body-preview-container\"\n >\n <div className=\"bg-background w-full p-6 md:p-8 2xl:mx-auto 2xl:max-w-lg\">\n {body ? (\n <MemoizedEditorContent\n className=\"whitespace-normal\"\n content={body}\n />\n ) : (\n <div className=\"flex flex-col gap-y-4\">\n <div className=\"bg-muted h-2 w-48 max-w-full rounded-full md:w-80\" />\n <div className=\"bg-muted h-2 w-40 max-w-full rounded-full md:w-72\" />\n <div className=\"bg-muted h-2 w-48 max-w-full rounded-full md:w-80\" />\n </div>\n )}\n {customContent && customContent}\n {actionButtonText && (\n <div className=\"mt-6 flex w-full items-center justify-center\">\n <Button\n className=\"pointer-events-none\"\n label={actionButtonText}\n />\n </div>\n )}\n {logo && (\n <img\n alt={t(\"neetoMolecules.emailPreview.logoAltText\")}\n className=\"h-20 w-36 object-cover\"\n data-testid=\"company-logo-preview\"\n src={logo}\n />\n )}\n </div>\n </div>\n </div>\n )\n);\n\nEmailPreview.propTypes = {\n /**\n * The value of the send-to field.\n */\n to: PropTypes.arrayOf(PropTypes.string),\n /**\n * The value of the send-from field.\n */\n from: PropTypes.string,\n /**\n * The subject of the email.\n */\n subject: PropTypes.string,\n /**\n * The body of the email.\n */\n body: PropTypes.string,\n /**\n * The text to be shown in the action button.\n */\n actionButtonText: PropTypes.string,\n /**\n * Source link for the company logo.\n */\n logo: PropTypes.string,\n /**\n * To pass custom content that will be rendered above the action button.\n */\n customContent: PropTypes.string,\n};\n\nexport default EmailPreview;\n"],"names":["MemoizedEditorContent","memo","EditorContent","EmailPreview","withT","_ref","t","_ref$to","to","from","subject","body","actionButtonText","logo","_ref$className","className","customContent","_jsxs","classnames","children","_jsx","Typography","variant","AvatarPlaceholder","isPresent","weight","join","content","Button","label","alt","src","propTypes","PropTypes","arrayOf","string"],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
6
|
+
var classnames = require('classnames');
|
|
7
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
8
|
+
var ramda = require('ramda');
|
|
9
|
+
var reactI18next = require('react-i18next');
|
|
10
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
11
|
+
|
|
12
|
+
var groupBy = function groupBy(objectArray, groupKey) {
|
|
13
|
+
return objectArray.reduce(function (data, obj) {
|
|
14
|
+
(data[obj[groupKey]] = data[obj[groupKey]] || []).push(obj);
|
|
15
|
+
return data;
|
|
16
|
+
}, {});
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
var EmojiReactions = function EmojiReactions(_ref) {
|
|
20
|
+
var isUpdating = _ref.isUpdating,
|
|
21
|
+
reactions = _ref.reactions,
|
|
22
|
+
_ref$onReactionClick = _ref.onReactionClick,
|
|
23
|
+
onReactionClick = _ref$onReactionClick === void 0 ? neetoCist.noop : _ref$onReactionClick,
|
|
24
|
+
_ref$emojiSize = _ref.emojiSize,
|
|
25
|
+
emojiSize = _ref$emojiSize === void 0 ? "text-sm" : _ref$emojiSize,
|
|
26
|
+
_ref$emojiBoxStyle = _ref.emojiBoxStyle,
|
|
27
|
+
emojiBoxStyle = _ref$emojiBoxStyle === void 0 ? "bg-background py-1 px-2" : _ref$emojiBoxStyle;
|
|
28
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
29
|
+
t = _useTranslation.t;
|
|
30
|
+
var groupedReactions = React.useMemo(function () {
|
|
31
|
+
return groupBy(reactions || [], "unified");
|
|
32
|
+
}, [reactions]);
|
|
33
|
+
return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
34
|
+
children: Object.entries(groupedReactions).map(function (_ref2) {
|
|
35
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
36
|
+
unified = _ref3[0],
|
|
37
|
+
grouped = _ref3[1];
|
|
38
|
+
var groupedNames = ramda.pluck("userName", grouped).join(", ");
|
|
39
|
+
var reaction = grouped[0];
|
|
40
|
+
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, {
|
|
41
|
+
position: "top",
|
|
42
|
+
content: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
43
|
+
className: "flex flex-col items-center justify-center",
|
|
44
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
45
|
+
className: "bg-background mb-1 flex h-10 w-10 items-center justify-center rounded",
|
|
46
|
+
children: reaction["native"]
|
|
47
|
+
}), /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
48
|
+
className: "text-center text-xs",
|
|
49
|
+
children: t("neetoMolecules.reactions.content", {
|
|
50
|
+
groupedNames: groupedNames
|
|
51
|
+
})
|
|
52
|
+
})]
|
|
53
|
+
}),
|
|
54
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
55
|
+
"data-testid": "emoji-reactions-".concat(reaction.unified),
|
|
56
|
+
className: classnames(["bg-muted hover:bg-muted flex cursor-pointer items-center justify-center rounded-full px-2 py-1", emojiBoxStyle], {
|
|
57
|
+
"opacity-80": isUpdating
|
|
58
|
+
}),
|
|
59
|
+
onClick: function onClick() {
|
|
60
|
+
return !isUpdating && onReactionClick({
|
|
61
|
+
"native": reaction["native"],
|
|
62
|
+
unified: reaction.unified
|
|
63
|
+
}, grouped);
|
|
64
|
+
},
|
|
65
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Typography, {
|
|
66
|
+
className: "flex items-center gap-x-2 text-sm",
|
|
67
|
+
variant: "body2",
|
|
68
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
69
|
+
className: emojiSize,
|
|
70
|
+
children: reaction["native"]
|
|
71
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
72
|
+
children: grouped.length
|
|
73
|
+
})]
|
|
74
|
+
})
|
|
75
|
+
})
|
|
76
|
+
}, unified);
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
module.exports = EmojiReactions;
|
|
82
|
+
//# sourceMappingURL=EmojiReactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmojiReactions.js","sources":["../../../src/v2/components/EmojiReactions/utils.js","../../../src/v2/components/EmojiReactions/index.jsx"],"sourcesContent":["export const groupBy = (objectArray, groupKey) =>\n objectArray.reduce((data, obj) => {\n (data[obj[groupKey]] = data[obj[groupKey]] || []).push(obj);\n\n return data;\n }, {});\n","import { useMemo } from \"react\";\n\nimport { Tooltip, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { groupBy } from \"./utils\";\n\nconst EmojiReactions = ({\n isUpdating,\n reactions,\n onReactionClick = noop,\n emojiSize = \"text-sm\",\n emojiBoxStyle = \"bg-background py-1 px-2\",\n}) => {\n const { t } = useTranslation();\n const groupedReactions = useMemo(\n () => groupBy(reactions || [], \"unified\"),\n [reactions]\n );\n\n return (\n <>\n {Object.entries(groupedReactions).map(([unified, grouped]) => {\n const groupedNames = pluck(\"userName\", grouped).join(\", \");\n const reaction = grouped[0];\n\n return (\n <Tooltip\n key={unified}\n position=\"top\"\n content={\n <div className=\"flex flex-col items-center justify-center\">\n <div className=\"bg-background mb-1 flex h-10 w-10 items-center justify-center rounded\">\n {reaction.native}\n </div>\n <p className=\"text-center text-xs\">\n {t(\"neetoMolecules.reactions.content\", { groupedNames })}\n </p>\n </div>\n }\n >\n <div\n data-testid={`emoji-reactions-${reaction.unified}`}\n className={classNames(\n [\n \"bg-muted hover:bg-muted flex cursor-pointer items-center justify-center rounded-full px-2 py-1\",\n emojiBoxStyle,\n ],\n { \"opacity-80\": isUpdating }\n )}\n onClick={() =>\n !isUpdating &&\n onReactionClick(\n {\n native: reaction.native,\n unified: reaction.unified,\n },\n grouped\n )\n }\n >\n <Typography\n className=\"flex items-center gap-x-2 text-sm\"\n variant=\"body2\"\n >\n <span className={emojiSize}>{reaction.native}</span>\n <span>{grouped.length}</span>\n </Typography>\n </div>\n </Tooltip>\n );\n })}\n </>\n );\n};\n\nEmojiReactions.propTypes = {\n /**\n * Array of reactions to be displayed\n */\n reactions: PropTypes.arrayOf(\n PropTypes.shape({\n native: PropTypes.string,\n unified: PropTypes.string,\n userName: PropTypes.string,\n })\n ),\n /**\n * Callback function to be called when user click on an existing reaction\n */\n onReactionClick: PropTypes.func,\n /**\n * Size of the emoji\n */\n emojiSize: PropTypes.string,\n /**\n * Emoji picker box style\n */\n emojiBoxStyle: PropTypes.string,\n /**\n * Use this flag to block click action while backend is updating.\n */\n isUpdating: PropTypes.bool,\n};\n\nexport default EmojiReactions;\n"],"names":["groupBy","objectArray","groupKey","reduce","data","obj","push","EmojiReactions","_ref","isUpdating","reactions","_ref$onReactionClick","onReactionClick","noop","_ref$emojiSize","emojiSize","_ref$emojiBoxStyle","emojiBoxStyle","_useTranslation","useTranslation","t","groupedReactions","useMemo","_jsx","_Fragment","children","Object","entries","map","_ref2","_ref3","_slicedToArray","unified","grouped","groupedNames","pluck","join","reaction","Tooltip","position","content","_jsxs","className","concat","classNames","onClick","Typography","variant","length"],"mappings":"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"}
|
|
@@ -8,12 +8,13 @@ var React = require('react');
|
|
|
8
8
|
var classnames = require('classnames');
|
|
9
9
|
var reactI18next = require('react-i18next');
|
|
10
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
|
-
var
|
|
11
|
+
var upload = require('../upload-C5ZnN-d5.js');
|
|
12
12
|
var path = require('path');
|
|
13
13
|
var i18next = require('i18next');
|
|
14
14
|
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
15
15
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
|
|
16
16
|
var framerMotion = require('framer-motion');
|
|
17
|
+
var createLucideIcon = require('../createLucideIcon-DBDhE7kE.js');
|
|
17
18
|
var check = require('../check-VgZf0qTr.js');
|
|
18
19
|
var x = require('../x-B38UX0_0.js');
|
|
19
20
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
@@ -32,7 +33,7 @@ var formik = require('formik');
|
|
|
32
33
|
*/
|
|
33
34
|
|
|
34
35
|
|
|
35
|
-
const __iconNode
|
|
36
|
+
const __iconNode = [
|
|
36
37
|
[
|
|
37
38
|
"path",
|
|
38
39
|
{
|
|
@@ -45,22 +46,7 @@ const __iconNode$1 = [
|
|
|
45
46
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
46
47
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
47
48
|
];
|
|
48
|
-
const FileText = createLucideIcon.createLucideIcon("file-text", __iconNode
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* @license lucide-react v1.7.0 - ISC
|
|
52
|
-
*
|
|
53
|
-
* This source code is licensed under the ISC license.
|
|
54
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
55
|
-
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const __iconNode = [
|
|
59
|
-
["path", { d: "M12 3v12", key: "1x0j5s" }],
|
|
60
|
-
["path", { d: "m17 8-5-5-5 5", key: "7q97r8" }],
|
|
61
|
-
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }]
|
|
62
|
-
];
|
|
63
|
-
const Upload = createLucideIcon.createLucideIcon("upload", __iconNode);
|
|
49
|
+
const FileText = createLucideIcon.createLucideIcon("file-text", __iconNode);
|
|
64
50
|
|
|
65
51
|
var FILE_MIME_TYPES = {
|
|
66
52
|
pdf: ["application/pdf"],
|
|
@@ -125,7 +111,7 @@ var DropZone = function DropZone(_ref) {
|
|
|
125
111
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
126
112
|
className: "flex flex-col items-center gap-2 text-center",
|
|
127
113
|
"data-testid": "file-upload-body",
|
|
128
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Upload, {
|
|
114
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(upload.Upload, {
|
|
129
115
|
className: "text-muted-foreground",
|
|
130
116
|
size: 24
|
|
131
117
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|