@bigbinary/neeto-molecules 3.3.23 → 3.3.24
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/Builder.js +3 -1
- package/dist/Builder.js.map +1 -1
- package/dist/ConfigurePageSidebar.js +2 -1
- package/dist/ConfigurePageSidebar.js.map +1 -1
- package/dist/DateFormat.js +2 -1
- package/dist/DateFormat.js.map +1 -1
- package/dist/EmailForm.js +4 -2
- package/dist/EmailForm.js.map +1 -1
- package/dist/EmojiPicker.js +2 -1
- package/dist/EmojiPicker.js.map +1 -1
- package/dist/EmojiReactions.js +1 -0
- package/dist/EmojiReactions.js.map +1 -1
- package/dist/IconPicker.js +1 -0
- package/dist/IconPicker.js.map +1 -1
- package/dist/Insights.js +2 -1
- package/dist/Insights.js.map +1 -1
- package/dist/IpRestriction.js +2 -1
- package/dist/IpRestriction.js.map +1 -1
- package/dist/MoreDropdown.js +4 -2
- package/dist/MoreDropdown.js.map +1 -1
- package/dist/NavigationHeader.js +1 -0
- package/dist/NavigationHeader.js.map +1 -1
- package/dist/OptionFields.js +6 -3
- package/dist/OptionFields.js.map +1 -1
- package/dist/PublishBlock.js +6 -3
- package/dist/PublishBlock.js.map +1 -1
- package/dist/Schedule.js +5 -2
- package/dist/Schedule.js.map +1 -1
- package/dist/ShareViaLink.js +2 -1
- package/dist/ShareViaLink.js.map +1 -1
- package/dist/Sidebar.js +2 -1
- package/dist/Sidebar.js.map +1 -1
- package/dist/SubHeader.js +6 -3
- package/dist/SubHeader.js.map +1 -1
- package/dist/cjs/Builder.js +3 -1
- package/dist/cjs/Builder.js.map +1 -1
- package/dist/cjs/ConfigurePageSidebar.js +2 -1
- package/dist/cjs/ConfigurePageSidebar.js.map +1 -1
- package/dist/cjs/DateFormat.js +2 -1
- package/dist/cjs/DateFormat.js.map +1 -1
- package/dist/cjs/EmailForm.js +4 -2
- package/dist/cjs/EmailForm.js.map +1 -1
- package/dist/cjs/EmojiPicker.js +2 -1
- package/dist/cjs/EmojiPicker.js.map +1 -1
- package/dist/cjs/EmojiReactions.js +1 -0
- package/dist/cjs/EmojiReactions.js.map +1 -1
- package/dist/cjs/IconPicker.js +1 -0
- package/dist/cjs/IconPicker.js.map +1 -1
- package/dist/cjs/Insights.js +2 -1
- package/dist/cjs/Insights.js.map +1 -1
- package/dist/cjs/IpRestriction.js +2 -1
- package/dist/cjs/IpRestriction.js.map +1 -1
- package/dist/cjs/MoreDropdown.js +4 -2
- package/dist/cjs/MoreDropdown.js.map +1 -1
- package/dist/cjs/NavigationHeader.js +1 -0
- package/dist/cjs/NavigationHeader.js.map +1 -1
- package/dist/cjs/OptionFields.js +6 -3
- package/dist/cjs/OptionFields.js.map +1 -1
- package/dist/cjs/PublishBlock.js +6 -3
- package/dist/cjs/PublishBlock.js.map +1 -1
- package/dist/cjs/Schedule.js +5 -2
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/ShareViaLink.js +2 -1
- package/dist/cjs/ShareViaLink.js.map +1 -1
- package/dist/cjs/Sidebar.js +2 -1
- package/dist/cjs/Sidebar.js.map +1 -1
- package/dist/cjs/SubHeader.js +6 -3
- package/dist/cjs/SubHeader.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/DateFormat.js
CHANGED
|
@@ -33,7 +33,8 @@ var DateFormat = ramda.fromPairs(ramda.keys(datetime.timeFormat).map(function (k
|
|
|
33
33
|
return /*#__PURE__*/jsxRuntime.jsx(Tooltip__default["default"], _objectSpread(_objectSpread({
|
|
34
34
|
content: datetime.timeFormat[tooltipDateFormat](date),
|
|
35
35
|
disabled: key === tooltipDateFormat,
|
|
36
|
-
position: "top"
|
|
36
|
+
position: "top",
|
|
37
|
+
touch: ["hold", 500]
|
|
37
38
|
}, tooltipProps), {}, {
|
|
38
39
|
children: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], _objectSpread(_objectSpread({
|
|
39
40
|
component: "span",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateFormat.js","sources":["../../src/components/DateFormat.jsx"],"sourcesContent":["import { capitalize } from \"neetocist\";\nimport useTimer from \"neetocommons/react-utils/useTimer\";\nimport { timeFormat } from \"neetocommons/utils/datetime\";\nimport { Tooltip, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { fromPairs, keys } from \"ramda\";\n\nconst DateFormat = fromPairs(\n keys(timeFormat).map(key => [\n capitalize(key),\n ({\n date,\n timerInterval = 60,\n tooltipProps = {},\n typographyProps = {},\n tooltipDateFormat = \"extended\",\n }) => {\n useTimer(timerInterval);\n\n return (\n <Tooltip\n content={timeFormat[tooltipDateFormat](date)}\n disabled={key === tooltipDateFormat}\n position=\"top\"\n {...tooltipProps}\n >\n <Typography component=\"span\" style=\"body2\" {...typographyProps}>\n {timeFormat[key](date)}\n </Typography>\n </Tooltip>\n );\n },\n ])\n);\n\nDateFormat.propTypes = {\n /**\n * The date object to be formatted.\n */\n date: PropTypes.instanceOf(Date),\n /**\n * This prop will be used to re-render the component in every `timerInterval` seconds to show updated relative time.\n */\n timerInterval: PropTypes.number,\n /**\n * This prop will accept a string to set the format corresponding to\n * [dateFormat](https://github.com/bigbinary/neeto-commons-frontend/blob/main/docs/utils/dateFormat.md)\n * options from `neeto-commons-frontend`.\n */\n tooltipDateFormat: PropTypes.string,\n /**\n * This prop will be forwarded to the neetoui Tooltip component. Default position is \"top\".\n */\n tooltipProps: PropTypes.object,\n /**\n * This prop will be forwarded to the neetoui Typography component.\n */\n typographyProps: PropTypes.object,\n};\n\nexport default DateFormat;\n"],"names":["DateFormat","fromPairs","keys","timeFormat","map","key","capitalize","_ref","date","_ref$timerInterval","timerInterval","_ref$tooltipProps","tooltipProps","_ref$typographyProps","typographyProps","_ref$tooltipDateForma","tooltipDateFormat","useTimer","_jsx","Tooltip","_objectSpread","content","disabled","position","children","Typography","component","style"],"mappings":";;;;;;;;;;;;;;;;;;;;AAOA,IAAMA,UAAU,GAAGC,eAAS,CAC1BC,UAAI,CAACC,mBAAU,CAAC,CAACC,GAAG,CAAC,UAAAC,GAAG,EAAA;EAAA,OAAI,CAC1BC,oBAAU,CAACD,GAAG,CAAC,EACf,UAAAE,IAAA,EAMM;AAAA,IAAA,IALJC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAAC,kBAAA,GAAAF,IAAA,CACJG,aAAa;AAAbA,MAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,kBAAA;MAAAE,iBAAA,GAAAJ,IAAA,CAClBK,YAAY;AAAZA,MAAAA,YAAY,GAAAD,iBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,iBAAA;MAAAE,oBAAA,GAAAN,IAAA,CACjBO,eAAe;AAAfA,MAAAA,eAAe,GAAAD,oBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,oBAAA;MAAAE,qBAAA,GAAAR,IAAA,CACpBS,iBAAiB;AAAjBA,MAAAA,iBAAiB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,qBAAA,CAAA;IAE9BE,4BAAQ,CAACP,aAAa,CAAC,CAAA;AAEvB,IAAA,oBACEQ,cAAA,CAACC,2BAAO,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACNC,MAAAA,OAAO,EAAElB,mBAAU,CAACa,iBAAiB,CAAC,CAACR,IAAI,CAAE;MAC7Cc,QAAQ,EAAEjB,GAAG,KAAKW,iBAAkB;AACpCO,MAAAA,QAAQ,EAAC,
|
|
1
|
+
{"version":3,"file":"DateFormat.js","sources":["../../src/components/DateFormat.jsx"],"sourcesContent":["import { capitalize } from \"neetocist\";\nimport useTimer from \"neetocommons/react-utils/useTimer\";\nimport { timeFormat } from \"neetocommons/utils/datetime\";\nimport { Tooltip, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { fromPairs, keys } from \"ramda\";\n\nconst DateFormat = fromPairs(\n keys(timeFormat).map(key => [\n capitalize(key),\n ({\n date,\n timerInterval = 60,\n tooltipProps = {},\n typographyProps = {},\n tooltipDateFormat = \"extended\",\n }) => {\n useTimer(timerInterval);\n\n return (\n <Tooltip\n content={timeFormat[tooltipDateFormat](date)}\n disabled={key === tooltipDateFormat}\n position=\"top\"\n touch={[\"hold\", 500]}\n {...tooltipProps}\n >\n <Typography component=\"span\" style=\"body2\" {...typographyProps}>\n {timeFormat[key](date)}\n </Typography>\n </Tooltip>\n );\n },\n ])\n);\n\nDateFormat.propTypes = {\n /**\n * The date object to be formatted.\n */\n date: PropTypes.instanceOf(Date),\n /**\n * This prop will be used to re-render the component in every `timerInterval` seconds to show updated relative time.\n */\n timerInterval: PropTypes.number,\n /**\n * This prop will accept a string to set the format corresponding to\n * [dateFormat](https://github.com/bigbinary/neeto-commons-frontend/blob/main/docs/utils/dateFormat.md)\n * options from `neeto-commons-frontend`.\n */\n tooltipDateFormat: PropTypes.string,\n /**\n * This prop will be forwarded to the neetoui Tooltip component. Default position is \"top\".\n */\n tooltipProps: PropTypes.object,\n /**\n * This prop will be forwarded to the neetoui Typography component.\n */\n typographyProps: PropTypes.object,\n};\n\nexport default DateFormat;\n"],"names":["DateFormat","fromPairs","keys","timeFormat","map","key","capitalize","_ref","date","_ref$timerInterval","timerInterval","_ref$tooltipProps","tooltipProps","_ref$typographyProps","typographyProps","_ref$tooltipDateForma","tooltipDateFormat","useTimer","_jsx","Tooltip","_objectSpread","content","disabled","position","touch","children","Typography","component","style"],"mappings":";;;;;;;;;;;;;;;;;;;;AAOA,IAAMA,UAAU,GAAGC,eAAS,CAC1BC,UAAI,CAACC,mBAAU,CAAC,CAACC,GAAG,CAAC,UAAAC,GAAG,EAAA;EAAA,OAAI,CAC1BC,oBAAU,CAACD,GAAG,CAAC,EACf,UAAAE,IAAA,EAMM;AAAA,IAAA,IALJC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAAC,kBAAA,GAAAF,IAAA,CACJG,aAAa;AAAbA,MAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,kBAAA;MAAAE,iBAAA,GAAAJ,IAAA,CAClBK,YAAY;AAAZA,MAAAA,YAAY,GAAAD,iBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,iBAAA;MAAAE,oBAAA,GAAAN,IAAA,CACjBO,eAAe;AAAfA,MAAAA,eAAe,GAAAD,oBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,oBAAA;MAAAE,qBAAA,GAAAR,IAAA,CACpBS,iBAAiB;AAAjBA,MAAAA,iBAAiB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,qBAAA,CAAA;IAE9BE,4BAAQ,CAACP,aAAa,CAAC,CAAA;AAEvB,IAAA,oBACEQ,cAAA,CAACC,2BAAO,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACNC,MAAAA,OAAO,EAAElB,mBAAU,CAACa,iBAAiB,CAAC,CAACR,IAAI,CAAE;MAC7Cc,QAAQ,EAAEjB,GAAG,KAAKW,iBAAkB;AACpCO,MAAAA,QAAQ,EAAC,KAAK;AACdC,MAAAA,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,CAAA;AAAE,KAAA,EACjBZ,YAAY,CAAA,EAAA,EAAA,EAAA;AAAAa,MAAAA,QAAA,eAEhBP,cAAA,CAACQ,8BAAU,EAAAN,aAAA,CAAAA,aAAA,CAAA;AAACO,QAAAA,SAAS,EAAC,MAAM;AAACC,QAAAA,KAAK,EAAC,OAAA;AAAO,OAAA,EAAKd,eAAe,CAAA,EAAA,EAAA,EAAA;AAAAW,QAAAA,QAAA,EAC3DtB,mBAAU,CAACE,GAAG,CAAC,CAACG,IAAI,CAAA;OACX,CAAA,CAAA;AAAC,KAAA,CACN,CAAC,CAAA;AAEd,GAAC,CACF,CAAA;AAAA,CAAA,CACH;;;;"}
|
package/dist/cjs/EmailForm.js
CHANGED
|
@@ -147,7 +147,8 @@ var ReplyToField = function ReplyToField(_ref) {
|
|
|
147
147
|
options: replyToOptions,
|
|
148
148
|
labelProps: {
|
|
149
149
|
helpIconProps: _defineProperty__default["default"](_defineProperty__default["default"]({}, "data-testid", "reply-to-tooltip"), "tooltipProps", {
|
|
150
|
-
content: t("neetoMolecules.emailForm.tooltips.replyTo")
|
|
150
|
+
content: t("neetoMolecules.emailForm.tooltips.replyTo"),
|
|
151
|
+
touch: ["hold", 500]
|
|
151
152
|
})
|
|
152
153
|
},
|
|
153
154
|
onChange: function onChange(data) {
|
|
@@ -167,7 +168,8 @@ var ReplyToField = function ReplyToField(_ref) {
|
|
|
167
168
|
size: "large",
|
|
168
169
|
labelProps: {
|
|
169
170
|
helpIconProps: _defineProperty__default["default"](_defineProperty__default["default"]({}, "data-testid", "reply-to-tooltip"), "tooltipProps", {
|
|
170
|
-
content: t("neetoMolecules.emailForm.tooltips.replyTo")
|
|
171
|
+
content: t("neetoMolecules.emailForm.tooltips.replyTo"),
|
|
172
|
+
touch: ["hold", 500]
|
|
171
173
|
})
|
|
172
174
|
}
|
|
173
175
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailForm.js","sources":["../../src/components/EmailForm/constants.js","../../src/components/EmailForm/contexts/EmailForm.js","../../src/components/EmailForm/ReplyToField.jsx","../../src/components/EmailForm/SendToField.jsx","../../src/components/EmailForm/SubjectField.jsx","../../src/components/EmailForm/EmailForm.jsx","../../src/components/EmailForm/utils.js","../../src/components/EmailForm/EmailFormProvider.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport { prop } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const INITIAL_FORM_VALUES = {\n sendTo: [],\n sendToId: \"\",\n sendToCc: [],\n sendToBcc: [],\n replyTo: \"\",\n showCopyEmails: false,\n subject: \"\",\n message: \"\",\n};\n\nexport const EMAIL_FORM_VALIDATION_SCHEMA = yup.object({\n subject: yup\n .string()\n .required(t(\"neetoMolecules.emailForm.errors.subjectRequired\")),\n message: yup\n .string()\n .test(\n \"message\",\n t(\"neetoMolecules.emailForm.errors.messageRequired\"),\n value => !isEditorEmpty(value)\n ),\n});\n\nexport const sendToFieldValidation = maxEmails => {\n const validation = yup\n .array()\n .test(\n \"all-emails-valid\",\n t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"),\n emails => emails?.every(prop(\"valid\"))\n )\n .test(\n \"max-email-count\",\n t(\"neetoMolecules.emailForm.errors.maxEmails\", { count: maxEmails }),\n emails => emails?.length <= maxEmails\n );\n\n return yup.object({\n sendTo: validation\n .min(\n 1,\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.sendToEmailAddress\"),\n })\n )\n .nullable(),\n sendToCc: validation,\n sendToBcc: validation,\n });\n};\n\nexport const SEND_TO_ID_FIELD_VALIDATION = yup.object({\n sendToId: yup.string().required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n })\n ),\n});\n\nexport const REPLY_TO_FIELD_VALIDATION = yup.object({\n replyTo: yup\n .string()\n .nullable()\n .email(t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"))\n .required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.replyToEmailAddress\"),\n })\n ),\n});\n\nexport const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n \"video-embed\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","/* eslint-disable @bigbinary/neeto/use-zustand-for-global-state-management */\nimport { createContext } from \"react\";\n\nconst EmailFormContext = createContext({\n showSendToField: false,\n showSendToAsRadio: false,\n showReplyToField: false,\n});\n\nexport { EmailFormContext };\n","import { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Select, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ReplyToField = ({ replyToOptions }) => {\n const { t } = useTranslation();\n\n const isDropdownField = isNotEmpty(replyToOptions);\n\n const { setFieldValue } = useFormikContext();\n\n if (isDropdownField) {\n return (\n <Select\n isClearable\n className=\"w-full\"\n data-testid=\"replyToOptions\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n options={replyToOptions}\n labelProps={{\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n tooltipProps: {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n },\n }}\n onChange={data => setFieldValue(\"replyTo\", data?.value ?? \"\")}\n />\n );\n }\n\n return (\n <Input\n autoFocus\n required\n className=\"w-full\"\n data-testid=\"replyToInput\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n placeholder={t(\"neetoMolecules.emailForm.placeholders.emailPlaceholder\")}\n size=\"large\"\n labelProps={{\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n tooltipProps: {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n },\n }}\n />\n );\n};\n\nexport default ReplyToField;\n","import withT from \"neetocommons/react-utils/withT\";\n\nimport SendToFields from \"components/SendToFields\";\n\nconst SendToField = withT(({ t }) => (\n <SendToFields\n showCcBccButton\n bccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.bCc\"),\n name: \"sendToBcc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n ccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.cc\"),\n name: \"sendToCc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n emailInputProps={{\n id: \"sendTo\",\n name: \"sendTo\",\n label: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n required: true,\n }}\n />\n));\n\nexport default SendToField;\n","import { useState } from \"react\";\n\nimport { withEventTargetValue } from \"neetocommons/utils/general\";\nimport { Input, Typography } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport DynamicVariables from \"components/DynamicVariables\";\n\nconst SubjectField = ({\n name,\n text,\n updateText,\n subjectVariables = [],\n error,\n required = false,\n}) => {\n const [isFieldFocusedOnce, setIsFieldFocusedOnce] = useState(false);\n\n const { t } = useTranslation();\n\n const tagClickHandler = ({ key: slug }) => {\n const textAreaElement = document.querySelector(`textarea[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && textAreaElement\n ? textAreaElement.selectionEnd\n : text.length;\n\n const updatedSubject = [\n text.slice(0, splitIndex),\n ` {{${slug}}}`,\n text.slice(splitIndex),\n ].join(\"\");\n updateText(updatedSubject);\n };\n\n return (\n <>\n <Input\n {...{ error, name, required }}\n label={t(\"neetoMolecules.emailForm.labels.subject\")}\n size=\"large\"\n value={text}\n suffix={\n <DynamicVariables\n variables={subjectVariables}\n dropdownProps={{\n className: \"neeto-ui-dropdown__popup overflow-y-auto\",\n buttonSize: \"small\",\n }}\n onVariableClick={tagClickHandler}\n />\n }\n onChange={withEventTargetValue(updateText)}\n onFocus={() => setIsFieldFocusedOnce(true)}\n />\n <Typography\n className=\"neeto-ui-text-gray-600 mt-2\"\n data-cy=\"subject-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n components={{ span: <span className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"subject\" }}\n />\n </Typography>\n </>\n );\n};\n\nexport default SubjectField;\n","import { useContext } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Field, useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { ActionBlock, Radio } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport ReplyToField from \"./ReplyToField\";\nimport SendToField from \"./SendToField\";\nimport SubjectField from \"./SubjectField\";\n\nconst EmailForm = ({\n messageVariables = [],\n subjectVariables = [],\n handleCancel,\n isLoading,\n replyToOptions = [],\n sendToOptions = [],\n isUpdating = false,\n showFields = true,\n className = \"\",\n}) => {\n const { t } = useTranslation();\n\n const { showSendToField, showSendToAsRadio, showReplyToField } =\n useContext(EmailFormContext);\n\n const { setFieldValue } = useFormikContext();\n const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToOptions);\n\n const showSendToTextField = showSendToField && !showSendToRadioField;\n\n return (\n <div\n data-cy=\"email-form\"\n data-testid=\"email-form\"\n className={classnames(\"flex flex-1 flex-col items-start gap-2\", {\n [className]: className,\n })}\n >\n {showFields && (\n <div className=\"flex w-full flex-col items-start justify-start gap-6\">\n <Field name=\"subject\">\n {({ field: { value }, meta: { error } }) => (\n <div className=\"w-full\">\n <SubjectField\n {...{ subjectVariables }}\n required\n error={t(error)}\n name=\"subject\"\n text={value}\n updateText={text => setFieldValue(\"subject\", text)}\n />\n </div>\n )}\n </Field>\n {showSendToRadioField && (\n <Radio\n data-testid=\"send-to-id\"\n label={t(\"neetoMolecules.emailForm.labels.sendTo\")}\n labelProps={{ required: true }}\n name=\"sendToId\"\n >\n {sendToOptions.map(({ label, value }) => (\n <Radio.Item {...{ label, value }} key={value} />\n ))}\n </Radio>\n )}\n {showSendToTextField && <SendToField />}\n {showReplyToField && <ReplyToField {...{ replyToOptions }} />}\n <div className=\"w-full\">\n <FormikEditor\n isMenuCollapsible\n required\n addons={EDITOR_ADDONS}\n data-cy=\"message-input-field\"\n id=\"form_message\"\n label={t(\"neetoMolecules.emailForm.labels.message\")}\n name=\"message\"\n variables={messageVariables}\n />\n <Typography\n className=\"neeto-ui-text-gray-500 mt-2\"\n data-cy=\"message-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"message\" }}\n components={{\n span: <span className=\"font-semibold\" />,\n }}\n />\n </Typography>\n </div>\n </div>\n )}\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n className=\"mt-6 w-full justify-start\"\n isSubmitting={isLoading || isUpdating}\n />\n </div>\n );\n};\n\nEmailForm.propTypes = {\n /**\n * This is an array of objects used for templating within the message field. Each object in the array has a **label** and a **key**.\n */\n messageVariables: PropTypes.array,\n /**\n * This is an array of objects used for templating within the subject field. Each object in the array has a **label** and a **key**.\n */\n subjectVariables: PropTypes.array,\n /**\n * This function that gets triggered when the 'Cancel' button is clicked.\n */\n handleCancel: PropTypes.func,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Reply To' field into a dropdown menu with given options. Without this prop, 'Reply To' will be a text input field.\n */\n replyToOptions: PropTypes.array,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Send To' field into a radio group with given options. Without this prop, 'Send To' will be a multi email input field.\n */\n sendToOptions: PropTypes.array,\n /**\n * A Boolean flag indicating whether an update operation is currently in progress. When set to `true`, the 'Save changes' button is disabled.\n */\n isUpdating: PropTypes.bool,\n /**\n * To provide additional classnames to the button.\n */\n className: PropTypes.string,\n};\n\nexport default EmailForm;\n","import {\n EMAIL_FORM_VALIDATION_SCHEMA,\n REPLY_TO_FIELD_VALIDATION,\n sendToFieldValidation,\n SEND_TO_ID_FIELD_VALIDATION,\n} from \"./constants\";\n\nexport const getValidationSchema = ({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio\n ? SEND_TO_ID_FIELD_VALIDATION\n : sendToFieldValidation(maxEmails)\n );\n }\n\n if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);\n\n return schema.shape(customValidations);\n};\n","import { noop } from \"neetocist\";\nimport { Form } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\n\nimport { INITIAL_FORM_VALUES } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport { getValidationSchema } from \"./utils\";\n\nconst EmailFormProvider = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema: customValidations = {},\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n maxEmails = 10,\n}) => (\n <div data-testid=\"email-form-provider\">\n <EmailFormContext.Provider\n value={{ showSendToField, showSendToAsRadio, showReplyToField }}\n >\n <Form\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n }),\n initialValues: {\n ...initialValues,\n replyTo: initialValues.replyTo || globalProps.user.email,\n },\n onSubmit,\n ...formikProps,\n }}\n >\n {children}\n </Form>\n </EmailFormContext.Provider>\n </div>\n);\n\nEmailFormProvider.propTypes = {\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be radio type or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n }),\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n};\n\nexport default EmailFormProvider;\n"],"names":["INITIAL_FORM_VALUES","sendTo","sendToId","sendToCc","sendToBcc","replyTo","showCopyEmails","subject","message","EMAIL_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","test","value","isEditorEmpty","sendToFieldValidation","maxEmails","validation","array","emails","every","prop","count","length","min","entity","nullable","SEND_TO_ID_FIELD_VALIDATION","REPLY_TO_FIELD_VALIDATION","email","EDITOR_ADDONS","EmailFormContext","createContext","showSendToField","showSendToAsRadio","showReplyToField","ReplyToField","_ref","replyToOptions","_useTranslation","useTranslation","isDropdownField","isNotEmpty","_useFormikContext","useFormikContext","setFieldValue","_jsx","Select","isClearable","className","label","name","options","labelProps","helpIconProps","_defineProperty","content","onChange","data","_data$value","Input","autoFocus","placeholder","size","SendToField","withT","SendToFields","showCcBccButton","bccInputProps","ccInputProps","emailInputProps","id","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","error","_ref$required","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","_ref2","slug","key","textAreaElement","document","querySelector","concat","splitIndex","selectionEnd","updatedSubject","slice","join","_jsxs","_Fragment","children","suffix","DynamicVariables","variables","dropdownProps","buttonSize","onVariableClick","withEventTargetValue","onFocus","Typography","style","Trans","components","span","i18nKey","values","type","EmailForm","_ref$messageVariables","messageVariables","handleCancel","isLoading","_ref$replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$showFields","showFields","_ref$className","_useContext","useContext","showSendToRadioField","showSendToTextField","classnames","Field","field","meta","Radio","map","_ref3","_createElement","Item","FormikEditor","isMenuCollapsible","addons","ActionBlock","cancelButtonProps","onClick","isSubmitting","getValidationSchema","customValidations","schema","clone","shape","EmailFormProvider","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","_ref$validationSchema","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$maxEmails","Provider","Form","_objectSpread","enableReinitialize","globalProps","user"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EmailForm.js","sources":["../../src/components/EmailForm/constants.js","../../src/components/EmailForm/contexts/EmailForm.js","../../src/components/EmailForm/ReplyToField.jsx","../../src/components/EmailForm/SendToField.jsx","../../src/components/EmailForm/SubjectField.jsx","../../src/components/EmailForm/EmailForm.jsx","../../src/components/EmailForm/utils.js","../../src/components/EmailForm/EmailFormProvider.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport { prop } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const INITIAL_FORM_VALUES = {\n sendTo: [],\n sendToId: \"\",\n sendToCc: [],\n sendToBcc: [],\n replyTo: \"\",\n showCopyEmails: false,\n subject: \"\",\n message: \"\",\n};\n\nexport const EMAIL_FORM_VALIDATION_SCHEMA = yup.object({\n subject: yup\n .string()\n .required(t(\"neetoMolecules.emailForm.errors.subjectRequired\")),\n message: yup\n .string()\n .test(\n \"message\",\n t(\"neetoMolecules.emailForm.errors.messageRequired\"),\n value => !isEditorEmpty(value)\n ),\n});\n\nexport const sendToFieldValidation = maxEmails => {\n const validation = yup\n .array()\n .test(\n \"all-emails-valid\",\n t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"),\n emails => emails?.every(prop(\"valid\"))\n )\n .test(\n \"max-email-count\",\n t(\"neetoMolecules.emailForm.errors.maxEmails\", { count: maxEmails }),\n emails => emails?.length <= maxEmails\n );\n\n return yup.object({\n sendTo: validation\n .min(\n 1,\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.sendToEmailAddress\"),\n })\n )\n .nullable(),\n sendToCc: validation,\n sendToBcc: validation,\n });\n};\n\nexport const SEND_TO_ID_FIELD_VALIDATION = yup.object({\n sendToId: yup.string().required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n })\n ),\n});\n\nexport const REPLY_TO_FIELD_VALIDATION = yup.object({\n replyTo: yup\n .string()\n .nullable()\n .email(t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"))\n .required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.replyToEmailAddress\"),\n })\n ),\n});\n\nexport const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n \"video-embed\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","/* eslint-disable @bigbinary/neeto/use-zustand-for-global-state-management */\nimport { createContext } from \"react\";\n\nconst EmailFormContext = createContext({\n showSendToField: false,\n showSendToAsRadio: false,\n showReplyToField: false,\n});\n\nexport { EmailFormContext };\n","import { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Select, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ReplyToField = ({ replyToOptions }) => {\n const { t } = useTranslation();\n\n const isDropdownField = isNotEmpty(replyToOptions);\n\n const { setFieldValue } = useFormikContext();\n\n if (isDropdownField) {\n return (\n <Select\n isClearable\n className=\"w-full\"\n data-testid=\"replyToOptions\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n options={replyToOptions}\n labelProps={{\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n tooltipProps: {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n touch: [\"hold\", 500],\n },\n },\n }}\n onChange={data => setFieldValue(\"replyTo\", data?.value ?? \"\")}\n />\n );\n }\n\n return (\n <Input\n autoFocus\n required\n className=\"w-full\"\n data-testid=\"replyToInput\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n placeholder={t(\"neetoMolecules.emailForm.placeholders.emailPlaceholder\")}\n size=\"large\"\n labelProps={{\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n tooltipProps: {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n touch: [\"hold\", 500],\n },\n },\n }}\n />\n );\n};\n\nexport default ReplyToField;\n","import withT from \"neetocommons/react-utils/withT\";\n\nimport SendToFields from \"components/SendToFields\";\n\nconst SendToField = withT(({ t }) => (\n <SendToFields\n showCcBccButton\n bccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.bCc\"),\n name: \"sendToBcc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n ccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.cc\"),\n name: \"sendToCc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n emailInputProps={{\n id: \"sendTo\",\n name: \"sendTo\",\n label: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n required: true,\n }}\n />\n));\n\nexport default SendToField;\n","import { useState } from \"react\";\n\nimport { withEventTargetValue } from \"neetocommons/utils/general\";\nimport { Input, Typography } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport DynamicVariables from \"components/DynamicVariables\";\n\nconst SubjectField = ({\n name,\n text,\n updateText,\n subjectVariables = [],\n error,\n required = false,\n}) => {\n const [isFieldFocusedOnce, setIsFieldFocusedOnce] = useState(false);\n\n const { t } = useTranslation();\n\n const tagClickHandler = ({ key: slug }) => {\n const textAreaElement = document.querySelector(`textarea[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && textAreaElement\n ? textAreaElement.selectionEnd\n : text.length;\n\n const updatedSubject = [\n text.slice(0, splitIndex),\n ` {{${slug}}}`,\n text.slice(splitIndex),\n ].join(\"\");\n updateText(updatedSubject);\n };\n\n return (\n <>\n <Input\n {...{ error, name, required }}\n label={t(\"neetoMolecules.emailForm.labels.subject\")}\n size=\"large\"\n value={text}\n suffix={\n <DynamicVariables\n variables={subjectVariables}\n dropdownProps={{\n className: \"neeto-ui-dropdown__popup overflow-y-auto\",\n buttonSize: \"small\",\n }}\n onVariableClick={tagClickHandler}\n />\n }\n onChange={withEventTargetValue(updateText)}\n onFocus={() => setIsFieldFocusedOnce(true)}\n />\n <Typography\n className=\"neeto-ui-text-gray-600 mt-2\"\n data-cy=\"subject-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n components={{ span: <span className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"subject\" }}\n />\n </Typography>\n </>\n );\n};\n\nexport default SubjectField;\n","import { useContext } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Field, useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { ActionBlock, Radio } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport ReplyToField from \"./ReplyToField\";\nimport SendToField from \"./SendToField\";\nimport SubjectField from \"./SubjectField\";\n\nconst EmailForm = ({\n messageVariables = [],\n subjectVariables = [],\n handleCancel,\n isLoading,\n replyToOptions = [],\n sendToOptions = [],\n isUpdating = false,\n showFields = true,\n className = \"\",\n}) => {\n const { t } = useTranslation();\n\n const { showSendToField, showSendToAsRadio, showReplyToField } =\n useContext(EmailFormContext);\n\n const { setFieldValue } = useFormikContext();\n const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToOptions);\n\n const showSendToTextField = showSendToField && !showSendToRadioField;\n\n return (\n <div\n data-cy=\"email-form\"\n data-testid=\"email-form\"\n className={classnames(\"flex flex-1 flex-col items-start gap-2\", {\n [className]: className,\n })}\n >\n {showFields && (\n <div className=\"flex w-full flex-col items-start justify-start gap-6\">\n <Field name=\"subject\">\n {({ field: { value }, meta: { error } }) => (\n <div className=\"w-full\">\n <SubjectField\n {...{ subjectVariables }}\n required\n error={t(error)}\n name=\"subject\"\n text={value}\n updateText={text => setFieldValue(\"subject\", text)}\n />\n </div>\n )}\n </Field>\n {showSendToRadioField && (\n <Radio\n data-testid=\"send-to-id\"\n label={t(\"neetoMolecules.emailForm.labels.sendTo\")}\n labelProps={{ required: true }}\n name=\"sendToId\"\n >\n {sendToOptions.map(({ label, value }) => (\n <Radio.Item {...{ label, value }} key={value} />\n ))}\n </Radio>\n )}\n {showSendToTextField && <SendToField />}\n {showReplyToField && <ReplyToField {...{ replyToOptions }} />}\n <div className=\"w-full\">\n <FormikEditor\n isMenuCollapsible\n required\n addons={EDITOR_ADDONS}\n data-cy=\"message-input-field\"\n id=\"form_message\"\n label={t(\"neetoMolecules.emailForm.labels.message\")}\n name=\"message\"\n variables={messageVariables}\n />\n <Typography\n className=\"neeto-ui-text-gray-500 mt-2\"\n data-cy=\"message-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"message\" }}\n components={{\n span: <span className=\"font-semibold\" />,\n }}\n />\n </Typography>\n </div>\n </div>\n )}\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n className=\"mt-6 w-full justify-start\"\n isSubmitting={isLoading || isUpdating}\n />\n </div>\n );\n};\n\nEmailForm.propTypes = {\n /**\n * This is an array of objects used for templating within the message field. Each object in the array has a **label** and a **key**.\n */\n messageVariables: PropTypes.array,\n /**\n * This is an array of objects used for templating within the subject field. Each object in the array has a **label** and a **key**.\n */\n subjectVariables: PropTypes.array,\n /**\n * This function that gets triggered when the 'Cancel' button is clicked.\n */\n handleCancel: PropTypes.func,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Reply To' field into a dropdown menu with given options. Without this prop, 'Reply To' will be a text input field.\n */\n replyToOptions: PropTypes.array,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Send To' field into a radio group with given options. Without this prop, 'Send To' will be a multi email input field.\n */\n sendToOptions: PropTypes.array,\n /**\n * A Boolean flag indicating whether an update operation is currently in progress. When set to `true`, the 'Save changes' button is disabled.\n */\n isUpdating: PropTypes.bool,\n /**\n * To provide additional classnames to the button.\n */\n className: PropTypes.string,\n};\n\nexport default EmailForm;\n","import {\n EMAIL_FORM_VALIDATION_SCHEMA,\n REPLY_TO_FIELD_VALIDATION,\n sendToFieldValidation,\n SEND_TO_ID_FIELD_VALIDATION,\n} from \"./constants\";\n\nexport const getValidationSchema = ({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio\n ? SEND_TO_ID_FIELD_VALIDATION\n : sendToFieldValidation(maxEmails)\n );\n }\n\n if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);\n\n return schema.shape(customValidations);\n};\n","import { noop } from \"neetocist\";\nimport { Form } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\n\nimport { INITIAL_FORM_VALUES } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport { getValidationSchema } from \"./utils\";\n\nconst EmailFormProvider = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema: customValidations = {},\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n maxEmails = 10,\n}) => (\n <div data-testid=\"email-form-provider\">\n <EmailFormContext.Provider\n value={{ showSendToField, showSendToAsRadio, showReplyToField }}\n >\n <Form\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n }),\n initialValues: {\n ...initialValues,\n replyTo: initialValues.replyTo || globalProps.user.email,\n },\n onSubmit,\n ...formikProps,\n }}\n >\n {children}\n </Form>\n </EmailFormContext.Provider>\n </div>\n);\n\nEmailFormProvider.propTypes = {\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be radio type or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n }),\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n};\n\nexport default EmailFormProvider;\n"],"names":["INITIAL_FORM_VALUES","sendTo","sendToId","sendToCc","sendToBcc","replyTo","showCopyEmails","subject","message","EMAIL_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","test","value","isEditorEmpty","sendToFieldValidation","maxEmails","validation","array","emails","every","prop","count","length","min","entity","nullable","SEND_TO_ID_FIELD_VALIDATION","REPLY_TO_FIELD_VALIDATION","email","EDITOR_ADDONS","EmailFormContext","createContext","showSendToField","showSendToAsRadio","showReplyToField","ReplyToField","_ref","replyToOptions","_useTranslation","useTranslation","isDropdownField","isNotEmpty","_useFormikContext","useFormikContext","setFieldValue","_jsx","Select","isClearable","className","label","name","options","labelProps","helpIconProps","_defineProperty","content","touch","onChange","data","_data$value","Input","autoFocus","placeholder","size","SendToField","withT","SendToFields","showCcBccButton","bccInputProps","ccInputProps","emailInputProps","id","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","error","_ref$required","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","_ref2","slug","key","textAreaElement","document","querySelector","concat","splitIndex","selectionEnd","updatedSubject","slice","join","_jsxs","_Fragment","children","suffix","DynamicVariables","variables","dropdownProps","buttonSize","onVariableClick","withEventTargetValue","onFocus","Typography","style","Trans","components","span","i18nKey","values","type","EmailForm","_ref$messageVariables","messageVariables","handleCancel","isLoading","_ref$replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$showFields","showFields","_ref$className","_useContext","useContext","showSendToRadioField","showSendToTextField","classnames","Field","field","meta","Radio","map","_ref3","_createElement","Item","FormikEditor","isMenuCollapsible","addons","ActionBlock","cancelButtonProps","onClick","isSubmitting","getValidationSchema","customValidations","schema","clone","shape","EmailFormProvider","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","_ref$validationSchema","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$maxEmails","Provider","Form","_objectSpread","enableReinitialize","globalProps","user"],"mappings":"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"}
|
package/dist/cjs/EmojiPicker.js
CHANGED
|
@@ -97,7 +97,8 @@ var EmojiPicker = function EmojiPicker(_ref) {
|
|
|
97
97
|
icon: SmileFaceGrey__default["default"],
|
|
98
98
|
tooltipProps: {
|
|
99
99
|
content: t("neetoMolecules.common.emojiPicker"),
|
|
100
|
-
position: "top"
|
|
100
|
+
position: "top",
|
|
101
|
+
touch: ["hold", 500]
|
|
101
102
|
},
|
|
102
103
|
onClick: function onClick() {
|
|
103
104
|
return setIsOpen(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmojiPicker.js","sources":["../../src/components/EmojiPicker/api.js","../../src/components/EmojiPicker/constants.js","../../src/components/EmojiPicker/hooks/useEmojiData.js","../../src/components/EmojiPicker/EmojiPickerMenu.jsx","../../src/components/EmojiPicker/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nconst fetch = () => axios.get(\"https://cdn.jsdelivr.net/npm/@emoji-mart/data\");\n\nconst emojiPickerApi = { fetch };\n\nexport default emojiPickerApi;\n","export const QUERY_KEYS = { EMOJI_DATA: \"emoji-data\" };\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport emojiPickerApi from \"../api\";\nimport { QUERY_KEYS } from \"../constants\";\n\nexport const useEmojiData = () =>\n useQuery({\n queryKey: [QUERY_KEYS.EMOJI_DATA],\n queryFn: emojiPickerApi.fetch,\n });\n","import { Picker } from \"emoji-mart\";\nimport PropTypes from \"prop-types\";\n\nimport { useEmojiData } from \"./hooks/useEmojiData\";\n\nconst EmojiPickerMenu = ({ onEmojiSelect }) => {\n const { data } = useEmojiData();\n\n const createPicker = ref => {\n new Picker({\n autoFocus: true,\n data,\n native: true,\n onEmojiSelect,\n previewPosition: \"none\",\n ref: { current: ref },\n skinTonePosition: \"none\",\n style: { maxWidth: \"100%\" },\n theme: \"light\",\n });\n };\n\n return <div ref={createPicker} style={{ minWidth: \"350px\" }} />;\n};\n\nEmojiPickerMenu.propTypes = { onEmojiSelect: PropTypes.func };\n\nexport default EmojiPickerMenu;\n","import { useState } from \"react\";\n\nimport { SmileFaceGrey } from \"neetoicons\";\nimport { Dropdown } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmojiPickerMenu from \"./EmojiPickerMenu\";\n\nconst EmojiPicker = ({ onSelect, dropdownProps, open = false }) => {\n const { t } = useTranslation();\n const [isOpen, setIsOpen] = useState(open);\n\n const onEmojiClick = emoji => {\n setIsOpen(false);\n onSelect(emoji);\n };\n\n return (\n <Dropdown\n {...{ isOpen }}\n closeOnEsc\n closeOnSelect={false}\n dropdownProps={{ className: \"neeto-ui-shadow-s z-10\" }}\n position=\"bottom-start\"\n strategy=\"fixed\"\n buttonProps={{\n \"data-cy\": \"emoji-picker-dropdown-icon\",\n icon: SmileFaceGrey,\n tooltipProps: {\n content: t(\"neetoMolecules.common.emojiPicker\"),\n position: \"top\",\n },\n onClick: () => setIsOpen(true),\n style: \"text\",\n }}\n onClickOutside={() => setIsOpen(false)}\n onClose={() => setIsOpen(false)}\n {...dropdownProps}\n >\n <EmojiPickerMenu onEmojiSelect={onEmojiClick} />\n </Dropdown>\n );\n};\n\nEmojiPicker.propTypes = {\n /**\n * Function to be called when an emoji is selected\n */\n onSelect: PropTypes.func,\n /**\n * Props to be passed to the dropdown component.\n */\n dropdownProps: PropTypes.shape({\n strategy: PropTypes.oneOf(Object.values([\"absolute\", \"fixed\"])),\n }),\n /**\n * Whether to open the emoji picker by default or not.\n */\n open: PropTypes.bool,\n};\n\nexport default EmojiPicker;\n"],"names":["fetch","axios","get","emojiPickerApi","QUERY_KEYS","EMOJI_DATA","useEmojiData","useQuery","queryKey","queryFn","EmojiPickerMenu","_ref","onEmojiSelect","_useEmojiData","data","createPicker","ref","Picker","autoFocus","previewPosition","current","skinTonePosition","style","maxWidth","theme","_jsx","minWidth","EmojiPicker","onSelect","dropdownProps","_ref$open","open","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","onEmojiClick","emoji","Dropdown","_objectSpread","closeOnEsc","closeOnSelect","className","position","strategy","buttonProps","icon","SmileFaceGrey","tooltipProps","content","onClick","onClickOutside","onClose","children"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EmojiPicker.js","sources":["../../src/components/EmojiPicker/api.js","../../src/components/EmojiPicker/constants.js","../../src/components/EmojiPicker/hooks/useEmojiData.js","../../src/components/EmojiPicker/EmojiPickerMenu.jsx","../../src/components/EmojiPicker/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nconst fetch = () => axios.get(\"https://cdn.jsdelivr.net/npm/@emoji-mart/data\");\n\nconst emojiPickerApi = { fetch };\n\nexport default emojiPickerApi;\n","export const QUERY_KEYS = { EMOJI_DATA: \"emoji-data\" };\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport emojiPickerApi from \"../api\";\nimport { QUERY_KEYS } from \"../constants\";\n\nexport const useEmojiData = () =>\n useQuery({\n queryKey: [QUERY_KEYS.EMOJI_DATA],\n queryFn: emojiPickerApi.fetch,\n });\n","import { Picker } from \"emoji-mart\";\nimport PropTypes from \"prop-types\";\n\nimport { useEmojiData } from \"./hooks/useEmojiData\";\n\nconst EmojiPickerMenu = ({ onEmojiSelect }) => {\n const { data } = useEmojiData();\n\n const createPicker = ref => {\n new Picker({\n autoFocus: true,\n data,\n native: true,\n onEmojiSelect,\n previewPosition: \"none\",\n ref: { current: ref },\n skinTonePosition: \"none\",\n style: { maxWidth: \"100%\" },\n theme: \"light\",\n });\n };\n\n return <div ref={createPicker} style={{ minWidth: \"350px\" }} />;\n};\n\nEmojiPickerMenu.propTypes = { onEmojiSelect: PropTypes.func };\n\nexport default EmojiPickerMenu;\n","import { useState } from \"react\";\n\nimport { SmileFaceGrey } from \"neetoicons\";\nimport { Dropdown } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmojiPickerMenu from \"./EmojiPickerMenu\";\n\nconst EmojiPicker = ({ onSelect, dropdownProps, open = false }) => {\n const { t } = useTranslation();\n const [isOpen, setIsOpen] = useState(open);\n\n const onEmojiClick = emoji => {\n setIsOpen(false);\n onSelect(emoji);\n };\n\n return (\n <Dropdown\n {...{ isOpen }}\n closeOnEsc\n closeOnSelect={false}\n dropdownProps={{ className: \"neeto-ui-shadow-s z-10\" }}\n position=\"bottom-start\"\n strategy=\"fixed\"\n buttonProps={{\n \"data-cy\": \"emoji-picker-dropdown-icon\",\n icon: SmileFaceGrey,\n tooltipProps: {\n content: t(\"neetoMolecules.common.emojiPicker\"),\n position: \"top\",\n touch: [\"hold\", 500],\n },\n onClick: () => setIsOpen(true),\n style: \"text\",\n }}\n onClickOutside={() => setIsOpen(false)}\n onClose={() => setIsOpen(false)}\n {...dropdownProps}\n >\n <EmojiPickerMenu onEmojiSelect={onEmojiClick} />\n </Dropdown>\n );\n};\n\nEmojiPicker.propTypes = {\n /**\n * Function to be called when an emoji is selected\n */\n onSelect: PropTypes.func,\n /**\n * Props to be passed to the dropdown component.\n */\n dropdownProps: PropTypes.shape({\n strategy: PropTypes.oneOf(Object.values([\"absolute\", \"fixed\"])),\n }),\n /**\n * Whether to open the emoji picker by default or not.\n */\n open: PropTypes.bool,\n};\n\nexport default EmojiPicker;\n"],"names":["fetch","axios","get","emojiPickerApi","QUERY_KEYS","EMOJI_DATA","useEmojiData","useQuery","queryKey","queryFn","EmojiPickerMenu","_ref","onEmojiSelect","_useEmojiData","data","createPicker","ref","Picker","autoFocus","previewPosition","current","skinTonePosition","style","maxWidth","theme","_jsx","minWidth","EmojiPicker","onSelect","dropdownProps","_ref$open","open","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","onEmojiClick","emoji","Dropdown","_objectSpread","closeOnEsc","closeOnSelect","className","position","strategy","buttonProps","icon","SmileFaceGrey","tooltipProps","content","touch","onClick","onClickOutside","onClose","children"],"mappings":"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"}
|
|
@@ -47,6 +47,7 @@ var EmojiReactions = function EmojiReactions(_ref) {
|
|
|
47
47
|
var reaction = grouped[0];
|
|
48
48
|
return /*#__PURE__*/jsxRuntime.jsx(Tooltip__default["default"], {
|
|
49
49
|
position: "top",
|
|
50
|
+
touch: ["hold", 500],
|
|
50
51
|
content: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
51
52
|
className: "flex flex-col items-center justify-center",
|
|
52
53
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmojiReactions.js","sources":["../../src/components/EmojiReactions/utils.js","../../src/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 classNames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { Tooltip, Typography } from \"neetoui\";\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 = \"neeto-ui-bg-white 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\", reactions).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=\"neeto-ui-bg-white neeto-ui-rounded mb-1 flex h-10 w-10 items-center justify-center\">\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-cy={`emoji-reactions-${reaction.unified}`}\n className={classNames(\n [\n \"neeto-ui-rounded-full hover:neeto-ui-bg-gray-100 neeto-ui-bg-gray-100 flex cursor-pointer items-center justify-center 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 className=\"space-x-2 text-sm\" style=\"body2\">\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","style","length"],"mappings":";;;;;;;;;;;;;;;;;;;AAAO,IAAMA,OAAO,GAAG,SAAVA,OAAOA,CAAIC,WAAW,EAAEC,QAAQ,EAAA;EAAA,OAC3CD,WAAW,CAACE,MAAM,CAAC,UAACC,IAAI,EAAEC,GAAG,EAAK;IAChC,CAACD,IAAI,CAACC,GAAG,CAACH,QAAQ,CAAC,CAAC,GAAGE,IAAI,CAACC,GAAG,CAACH,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAEI,IAAI,CAACD,GAAG,CAAC,CAAA;AAE3D,IAAA,OAAOD,IAAI,CAAA;GACZ,EAAE,EAAE,CAAC,CAAA;AAAA,CAAA;;ACMR,IAAMG,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAMd;AAAA,EAAA,IALJC,UAAU,GAAAD,IAAA,CAAVC,UAAU;IACVC,SAAS,GAAAF,IAAA,CAATE,SAAS;IAAAC,oBAAA,GAAAH,IAAA,CACTI,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAGE,KAAAA,CAAAA,GAAAA,cAAI,GAAAF,oBAAA;IAAAG,cAAA,GAAAN,IAAA,CACtBO,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,cAAA;IAAAE,kBAAA,GAAAR,IAAA,CACrBS,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,6BAA6B,GAAAA,kBAAA,CAAA;AAE7C,EAAA,IAAAE,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;EACT,IAAMC,gBAAgB,GAAGC,aAAO,CAC9B,YAAA;AAAA,IAAA,OAAMtB,OAAO,CAACU,SAAS,IAAI,EAAE,EAAE,SAAS,CAAC,CAAA;GACzC,EAAA,CAACA,SAAS,CACZ,CAAC,CAAA;EAED,oBACEa,cAAA,CAAAC,mBAAA,EAAA;AAAAC,IAAAA,QAAA,EACGC,MAAM,CAACC,OAAO,CAACN,gBAAgB,CAAC,CAACO,GAAG,CAAC,UAAAC,KAAA,EAAwB;AAAA,MAAA,IAAAC,KAAA,GAAAC,kCAAA,CAAAF,KAAA,EAAA,CAAA,CAAA;AAAtBG,QAAAA,OAAO,GAAAF,KAAA,CAAA,CAAA,CAAA;AAAEG,QAAAA,OAAO,GAAAH,KAAA,CAAA,CAAA,CAAA,CAAA;AACtD,MAAA,IAAMI,YAAY,GAAGC,WAAK,CAAC,UAAU,EAAEzB,SAAS,CAAC,CAAC0B,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5D,MAAA,IAAMC,QAAQ,GAAGJ,OAAO,CAAC,CAAC,CAAC,CAAA;MAE3B,oBACEV,cAAA,CAACe,2BAAO,EAAA;AAENC,QAAAA,QAAQ,EAAC,KAAK;AACdC,QAAAA,OAAO,eACLC,eAAA,CAAA,KAAA,EAAA;AAAKC,UAAAA,SAAS,EAAC,2CAA2C;
|
|
1
|
+
{"version":3,"file":"EmojiReactions.js","sources":["../../src/components/EmojiReactions/utils.js","../../src/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 classNames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { Tooltip, Typography } from \"neetoui\";\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 = \"neeto-ui-bg-white 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\", reactions).join(\", \");\n const reaction = grouped[0];\n\n return (\n <Tooltip\n key={unified}\n position=\"top\"\n touch={[\"hold\", 500]}\n content={\n <div className=\"flex flex-col items-center justify-center\">\n <div className=\"neeto-ui-bg-white neeto-ui-rounded mb-1 flex h-10 w-10 items-center justify-center\">\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-cy={`emoji-reactions-${reaction.unified}`}\n className={classNames(\n [\n \"neeto-ui-rounded-full hover:neeto-ui-bg-gray-100 neeto-ui-bg-gray-100 flex cursor-pointer items-center justify-center 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 className=\"space-x-2 text-sm\" style=\"body2\">\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","touch","content","_jsxs","className","concat","classNames","onClick","Typography","style","length"],"mappings":"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"}
|
package/dist/cjs/IconPicker.js
CHANGED
|
@@ -969,6 +969,7 @@ var Icon = function Icon(_ref) {
|
|
|
969
969
|
return /*#__PURE__*/jsxRuntime.jsx(Tooltip__default["default"], {
|
|
970
970
|
content: neetoCist.humanize(icon),
|
|
971
971
|
position: "bottom",
|
|
972
|
+
touch: ["hold", 500],
|
|
972
973
|
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
973
974
|
style: style,
|
|
974
975
|
"data-testid": "icon-picker-icon-".concat(icon),
|