@bigbinary/neeto-molecules 3.2.2 → 3.2.4
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/BrowserSupport.js +2 -1
- package/dist/BrowserSupport.js.map +1 -1
- package/dist/Builder.js +3 -3
- package/dist/Builder.js.map +1 -1
- package/dist/DownloadMobileAppCallout.js +2 -1
- package/dist/DownloadMobileAppCallout.js.map +1 -1
- package/dist/EmailForm.js +2 -1
- package/dist/EmailForm.js.map +1 -1
- package/dist/FloatingActionMenu.js +2 -1
- package/dist/FloatingActionMenu.js.map +1 -1
- package/dist/IconPicker.js +916 -4
- package/dist/IconPicker.js.map +1 -1
- package/dist/IpRestriction.js +3093 -7
- package/dist/IpRestriction.js.map +1 -1
- package/dist/KeyboardShortcuts.js +2 -1
- package/dist/KeyboardShortcuts.js.map +1 -1
- package/dist/MenuBar.js +1804 -12
- package/dist/MenuBar.js.map +1 -1
- package/dist/NeetoWidget.js +1957 -3
- package/dist/NeetoWidget.js.map +1 -1
- package/dist/PhoneNumber.js +12 -4
- package/dist/PhoneNumber.js.map +1 -1
- package/dist/SendToFields.js +1919 -1
- package/dist/SendToFields.js.map +1 -1
- package/dist/ShareViaEmail.js +2 -1
- package/dist/ShareViaEmail.js.map +1 -1
- package/dist/ShareViaLink.js +860 -2
- package/dist/ShareViaLink.js.map +1 -1
- package/dist/_commonjsHelpers-1c8beb5f.js +4 -0
- package/dist/_commonjsHelpers-1c8beb5f.js.map +1 -0
- package/dist/cjs/BrowserSupport.js +3 -3
- package/dist/cjs/BrowserSupport.js.map +1 -1
- package/dist/cjs/Builder.js +3 -3
- package/dist/cjs/Builder.js.map +1 -1
- package/dist/cjs/DownloadMobileAppCallout.js +3 -3
- package/dist/cjs/DownloadMobileAppCallout.js.map +1 -1
- package/dist/cjs/EmailForm.js +2 -1
- package/dist/cjs/EmailForm.js.map +1 -1
- package/dist/cjs/FloatingActionMenu.js +2 -1
- package/dist/cjs/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/IconPicker.js +920 -5
- package/dist/cjs/IconPicker.js.map +1 -1
- package/dist/cjs/IpRestriction.js +3101 -15
- package/dist/cjs/IpRestriction.js.map +1 -1
- package/dist/cjs/KeyboardShortcuts.js +3 -3
- package/dist/cjs/KeyboardShortcuts.js.map +1 -1
- package/dist/cjs/MenuBar.js +1807 -10
- package/dist/cjs/MenuBar.js.map +1 -1
- package/dist/cjs/NeetoWidget.js +1958 -5
- package/dist/cjs/NeetoWidget.js.map +1 -1
- package/dist/cjs/PhoneNumber.js +12 -4
- package/dist/cjs/PhoneNumber.js.map +1 -1
- package/dist/cjs/SendToFields.js +1921 -3
- package/dist/cjs/SendToFields.js.map +1 -1
- package/dist/cjs/ShareViaEmail.js +2 -1
- package/dist/cjs/ShareViaEmail.js.map +1 -1
- package/dist/cjs/ShareViaLink.js +860 -3
- package/dist/cjs/ShareViaLink.js.map +1 -1
- package/dist/cjs/_commonjsHelpers-68cdf74f.js +6 -0
- package/dist/cjs/_commonjsHelpers-68cdf74f.js.map +1 -0
- package/dist/cjs/platform-628b3bd8.js +1252 -0
- package/dist/cjs/platform-628b3bd8.js.map +1 -0
- package/dist/platform-e221afea.js +1250 -0
- package/dist/platform-e221afea.js.map +1 -0
- package/package.json +14 -16
package/dist/EmailForm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailForm.js","sources":["../src/components/EmailForm/constants.js","../src/components/EmailForm/contexts/EmailForm.js","../src/components/EmailForm/ReplyToField.jsx","../src/components/EmailForm/SendToField.jsx","../src/components/EmailForm/SubjectField.jsx","../src/components/EmailForm/EmailForm.jsx","../src/components/EmailForm/utils.js","../src/components/EmailForm/EmailFormProvider.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport { prop } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const INITIAL_FORM_VALUES = {\n sendTo: [],\n sendToId: \"\",\n sendToCc: [],\n sendToBcc: [],\n replyTo: \"\",\n showCopyEmails: false,\n subject: \"\",\n message: \"\",\n};\n\nexport const EMAIL_FORM_VALIDATION_SCHEMA = yup.object({\n subject: yup\n .string()\n .required(t(\"neetoMolecules.emailForm.errors.subjectRequired\")),\n message: yup\n .string()\n .test(\n \"message\",\n t(\"neetoMolecules.emailForm.errors.messageRequired\"),\n value => !isEditorEmpty(value)\n ),\n});\n\nexport const sendToFieldValidation = maxEmails => {\n const validation = yup\n .array()\n .test(\n \"all-emails-valid\",\n t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"),\n emails => emails?.every(prop(\"valid\"))\n )\n .test(\n \"max-email-count\",\n t(\"neetoMolecules.emailForm.errors.maxEmails\", { count: maxEmails }),\n emails => emails?.length <= maxEmails\n );\n\n return yup.object({\n sendTo: validation\n .min(\n 1,\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.sendToEmailAddress\"),\n })\n )\n .nullable(),\n sendToCc: validation,\n sendToBcc: validation,\n });\n};\n\nexport const SEND_TO_ID_FIELD_VALIDATION = yup.object({\n sendToId: yup.string().required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n })\n ),\n});\n\nexport const REPLY_TO_FIELD_VALIDATION = yup.object({\n replyTo: yup\n .string()\n .nullable()\n .email(t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"))\n .required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.replyToEmailAddress\"),\n })\n ),\n});\n\nexport const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n \"video-embed\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","/* eslint-disable @bigbinary/neeto/use-zustand-for-global-state-management */\nimport React from \"react\";\n\nconst EmailFormContext = React.createContext({\n showSendToField: false,\n showSendToAsRadio: false,\n showReplyToField: false,\n});\n\nexport { EmailFormContext };\n","import React from \"react\";\n\nimport { 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 React from \"react\";\n\nimport 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 React, { 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 React, { 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 React from \"react\";\n\nimport { 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","React","createContext","showSendToField","showSendToAsRadio","showReplyToField","ReplyToField","_ref","replyToOptions","_useTranslation","useTranslation","isDropdownField","isNotEmpty","_useFormikContext","useFormikContext","setFieldValue","createElement","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","Fragment","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","Item","FormikEditor","isMenuCollapsible","addons","ActionBlock","cancelButtonProps","onClick","isSubmitting","getValidationSchema","customValidations","schema","clone","shape","EmailFormProvider","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","children","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 React from \"react\";\n\nconst EmailFormContext = React.createContext({\n showSendToField: false,\n showSendToAsRadio: false,\n showReplyToField: false,\n});\n\nexport { EmailFormContext };\n","import React from \"react\";\n\nimport { 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 React from \"react\";\n\nimport 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 React, { 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 React, { 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 React from \"react\";\n\nimport { 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","React","createContext","showSendToField","showSendToAsRadio","showReplyToField","ReplyToField","_ref","replyToOptions","_useTranslation","useTranslation","isDropdownField","isNotEmpty","_useFormikContext","useFormikContext","setFieldValue","createElement","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","Fragment","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","Item","FormikEditor","isMenuCollapsible","addons","ActionBlock","cancelButtonProps","onClick","isSubmitting","getValidationSchema","customValidations","schema","clone","shape","EmailFormProvider","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","children","formikProps","_ref$validationSchema","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$maxEmails","Provider","Form","_objectSpread","enableReinitialize","globalProps","user"],"mappings":"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"}
|
|
@@ -40,7 +40,8 @@ import '@bigbinary/neetoui/Button';
|
|
|
40
40
|
import '@bigbinary/neetoui/managers';
|
|
41
41
|
import '@bigbinary/neeto-hotkeys';
|
|
42
42
|
import '@bigbinary/neetoui/Kbd';
|
|
43
|
-
import 'platform';
|
|
43
|
+
import './platform-e221afea.js';
|
|
44
|
+
import './_commonjsHelpers-1c8beb5f.js';
|
|
44
45
|
|
|
45
46
|
var css$1 = ".neeto-molecules-product-switcher__wrapper{align-items:flex-start;background-color:rgb(var(--neeto-ui-white));display:flex;flex-direction:column;justify-content:flex-start;max-width:100%;overflow-y:auto;padding:24px;position:relative;transition:all .3s;width:100%}@media screen and (max-width:768px){.neeto-molecules-product-switcher__wrapper{padding:16px}}.neeto-molecules-product-switcher__grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(288px,1fr))}@media only screen and (max-width:992px){.neeto-molecules-product-switcher__grid{grid-template-columns:repeat(auto-fill,minmax(248px,1fr))}}@media only screen and (max-width:640px){.neeto-molecules-product-switcher__grid{grid-template-columns:repeat(auto-fill,minmax(100%,1fr))}}.neeto-molecules-product-switcher__header{align-items:center;display:flex;gap:32px;justify-content:space-between;margin-bottom:32px;position:relative;width:100%}@media only screen and (max-width:768px){.neeto-molecules-product-switcher__header{align-items:flex-start;flex-direction:column;gap:24px}}@media only screen and (max-width:640px){.neeto-molecules-product-switcher__header h1{font-size:24px}}@media only screen and (max-width:768px){.neeto-molecules-product-switcher_modal-container .neeto-molecules-product-switcher__header-mobile{align-items:flex-start;margin-bottom:24px}}.neeto-molecules-product-switcher__close-btn{position:absolute;right:12px;top:12px}.neeto-molecules-product-switcher__search-wrapper{flex-grow:1}@media only screen and (min-width:992px){.neeto-molecules-product-switcher__search-wrapper{flex-grow:0;width:296px}}.neeto-molecules-product-switcher__body{display:flex;flex-direction:column;font-size:var(--neeto-ui-text-sm);gap:12px;margin-bottom:24px;width:100%}.neeto-molecules-product-switcher-link{align-items:center;background-color:rgb(var(--neeto-ui-gray-100));border-color:rgb(var(--neeto-ui-gray-100));border-radius:var(--neeto-ui-rounded-lg);border-style:solid;border-width:2px;cursor:pointer;display:flex;gap:12px;max-width:100%;padding:10px 8px;text-decoration:none;transition:all .3s ease-in-out;width:100%}.neeto-molecules-product-switcher-link:focus,.neeto-molecules-product-switcher-link:focus-visible{outline:none}.neeto-molecules-product-switcher-link:focus-visible{background-color:rgb(var(--neeto-ui-gray-200))}.neeto-molecules-product-switcher-link:focus-visible .neeto-molecules-product-switcher-link__divider{background-color:rgb(var(--neeto-ui-gray-300))}.neeto-molecules-product-switcher-link:not(.neeto-molecules-product-switcher-link--active):hover{background-color:rgb(var(--neeto-ui-gray-200));border-color:rgb(var(--neeto-ui-gray-200))}.neeto-molecules-product-switcher-link:not(.neeto-molecules-product-switcher-link--active):hover .neeto-molecules-product-switcher-link__divider{background-color:rgb(var(--neeto-ui-gray-300))}.neeto-molecules-product-switcher-link--active{border-color:rgb(var(--neeto-ui-primary-500))}.neeto-molecules-product-switcher-link--active .neeto-molecules-product-switcher-link__divider{background-color:rgb(var(--neeto-ui-gray-300))}.neeto-molecules-product-switcher-link__icon-holder{flex-grow:1;flex-shrink:0}.neeto-molecules-product-switcher-link__icon-holder svg{height:26px;width:auto}.neeto-molecules-product-switcher-link__icon-holder .neeto-molecules-product-switcher-link__icon-default{height:16px}.neeto-molecules-product-switcher-link__content{flex-shrink:0;width:50%}.neeto-molecules-product-switcher-link__content span{display:block}.neeto-molecules-product-switcher-link__divider{align-self:center;flex-shrink:0;height:42px;transition:all .3s ease-in-out;width:1px}.neeto-molecules-product-switcher_modal{z-index:100000}.neeto-molecules-product-switcher_modal .neeto-ui-modal__wrapper--fullscreen{display:flex;flex-direction:column;height:100dvh!important;width:100vw!important}.neeto-molecules-product-switcher_modal .neeto-ui-modal__wrapper--fullscreen .neeto-ui-modal__header{flex-shrink:0}.neeto-molecules-product-switcher_modal .neeto-ui-modal__wrapper--fullscreen .neeto-ui-modal__body{flex-grow:1;min-height:0;overflow-y:auto}";
|
|
46
47
|
n(css$1,{});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingActionMenu.js","sources":["../src/components/FloatingActionMenu/components/ProductSwitcher/ProductLink.jsx","../src/components/FloatingActionMenu/components/ProductSwitcher/Menu.jsx","../src/components/FloatingActionMenu/components/ProductSwitcher/Modal.jsx","../src/components/FloatingActionMenu/constants.js","../src/components/FloatingActionMenu/components/LinkSection.jsx","../src/components/FloatingActionMenu/components/ProductSwitcher/MenuButton.jsx","../src/components/FloatingActionMenu/components/ProductSwitcher/Dropdown.jsx","../src/components/FloatingActionMenu/components/ProductSwitcher/index.jsx","../src/components/FloatingActionMenu/components/ProfileHeader.jsx","../src/components/FloatingActionMenu/utils.js","../src/components/FloatingActionMenu/components/ThemeSwitcher/MenuButton.jsx","../src/components/FloatingActionMenu/components/ThemeSwitcher/index.jsx","../src/components/FloatingActionMenu/components/ProfileMenu.jsx","../src/components/FloatingActionMenu/components/ProfileButton.jsx","../src/components/FloatingActionMenu/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { Neeto } from \"neetoicons/typeface-logos\";\nimport * as AppIcons from \"neetoicons/typeface-logos\";\nimport { Typography } from \"neetoui\";\n\nimport \"./product-switcher.scss\";\n\nconst ProductLink = ({ name, description, url }) => {\n const appName = `Neeto${name.charAt(0)}${name.slice(1).toLowerCase()}`;\n const AppIcon = AppIcons[appName];\n\n return (\n <a\n data-cy={`${name}-app-link`}\n data-test-id={`neetoapp-link-${name}`}\n href={url}\n rel=\"noreferrer\"\n target=\"_blank\"\n className={classnames(\"neeto-molecules-product-switcher-link\", {\n \"neeto-molecules-product-switcher-link--active\":\n globalProps.appName.includes(name),\n })}\n >\n <div className=\"neeto-molecules-product-switcher-link__icon-holder\">\n {AppIcon ? (\n <AppIcon />\n ) : (\n <Neeto className=\"neeto-molecules-product-switcher-link__icon-default\" />\n )}\n </div>\n <div className=\"neeto-molecules-product-switcher-link__divider neeto-ui-bg-gray-200\" />\n <div className=\"neeto-molecules-product-switcher-link__content\">\n <Typography component=\"span\" style=\"body3\" weight=\"medium\">\n {description}\n </Typography>\n </div>\n </a>\n );\n};\n\nexport default React.memo(ProductLink);\n","import React, { useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport useFetchNeetoApps from \"neetocommons/react-utils/useFetchNeetoApps\";\nimport { Search } from \"neetoicons\";\nimport { Input, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport \"./product-switcher.scss\";\nimport ProductLink from \"./ProductLink\";\n\nconst Menu = ({ isMobile = false }) => {\n const { t } = useTranslation();\n\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const { data } = useFetchNeetoApps({ enabled: false });\n\n const substring = searchTerm.replace(/ /g, \"\").toLowerCase();\n\n const filteredApps = data?.neetoApps.filter(({ name }) =>\n name.toLowerCase().includes(substring)\n );\n\n const handleSearch = e => setSearchTerm(e.target.value);\n\n return (\n <div\n className=\"neeto-molecules-product-switcher__wrapper\"\n data-cy=\"switcher-wrapper\"\n data-testid=\"switcher-wrapper\"\n key=\"switcher-wrapper\"\n >\n <div\n data-cy=\"product-switcher-body-wrapper\"\n className={classNames(\"neeto-molecules-product-switcher__header\", {\n \"neeto-molecules-product-switcher__header-mobile\": isMobile,\n })}\n >\n {!isMobile && (\n <Typography style=\"h1\">\n {t(\"neetoMolecules.productSwitcher.chooseNeetoProduct\")}\n </Typography>\n )}\n <div className=\"neeto-molecules-product-switcher__search-wrapper\">\n <Input\n autoFocus\n data-cy=\"product-switcher-search-input\"\n placeholder={t(\"neetoMolecules.productSwitcher.searchProducts\")}\n prefix={<Search />}\n type=\"search\"\n value={searchTerm}\n onChange={handleSearch}\n />\n </div>\n </div>\n <div\n className={classNames(\"neeto-molecules-product-switcher__body\", {\n [\"neeto-molecules-product-switcher__body-mobile\"]: isMobile,\n })}\n >\n {filteredApps?.length > 0 ? (\n <div className=\"neeto-molecules-product-switcher__grid\">\n {filteredApps.map(app => (\n <ProductLink key={app.name} {...app} />\n ))}\n </div>\n ) : (\n <Typography className=\"neeto-ui-text-center\" style=\"body1\">\n {t(\"neetoMolecules.productSwitcher.noApps\")}\n </Typography>\n )}\n </div>\n </div>\n );\n};\n\nexport default Menu;\n","import React from \"react\";\n\nimport { withT } from \"neetocommons/react-utils\";\nimport { Modal as NeetoUIModal, Typography } from \"neetoui\";\n\nimport Menu from \"./Menu\";\n\nconst Modal = withT(({ t, isOpen, onClose }) => (\n <NeetoUIModal\n {...{ isOpen, onClose }}\n backdropClassName=\"neeto-molecules-product-switcher_modal\"\n size=\"fullScreen\"\n >\n <NeetoUIModal.Header>\n <Typography className=\"pr-4\" style=\"h2\">\n {t(\"neetoMolecules.productSwitcher.chooseNeetoProduct\")}\n </Typography>\n </NeetoUIModal.Header>\n <NeetoUIModal.Body>\n <div\n className=\"neeto-molecules-product-switcher_modal-container\"\n data-testid=\"product-switcher-modal\"\n >\n <Menu isMobile />\n </div>\n </NeetoUIModal.Body>\n </NeetoUIModal>\n));\n\nexport default Modal;\n","import { t } from \"i18next\";\nimport { Book, Help } from \"neetoicons\";\nimport { toLower } from \"ramda\";\n\nconst shouldShowWhatsNew = () => {\n const currentUserEmail = window.globalProps?.user?.email;\n\n return (\n window.location.hostname === \"localhost\" ||\n currentUserEmail === \"oliver@example.com\" ||\n currentUserEmail?.endsWith(\"@bigbinary.com\")\n );\n};\n\nexport const MY_ORGANIZATION_URL = \"/auth/organization/edit\";\nexport const CHANGELOG_WIDGET_TRIGGER_ID = \"neetochangelog-trigger\";\nexport const MENU_ITEMS_WITH_ICONS = [\"Chat with support\", \"Help articles\"];\n\nexport const DEFAULT_HELP_LINK_PROPS = {\n helpCenterProps: {\n label: t(\"neetoMolecules.sidebar.helpLinks.helpArticles\"),\n icon: Book,\n \"data-cy\": \"help-link-help-center-button\",\n \"data-btn-weight\": \"bold\",\n href: `https://help.${toLower(globalProps.appName)}.com/`,\n target: \"_blank\",\n },\n liveChatProps: {\n label: t(\"neetoMolecules.sidebar.helpLinks.liveChat\"),\n icon: Help,\n \"data-cy\": \"help-link-live-chat-button\",\n \"data-btn-weight\": \"bold\",\n onClick: () => {\n window.NeetoChat?.contextualHelp?.maximizeWidget();\n window.NeetoChat?.contextualHelp?.openWidget();\n },\n },\n};\n\nexport const DEFAULT_MENU_LINK_PROPS = {\n changelogProps: {\n id: CHANGELOG_WIDGET_TRIGGER_ID,\n label: t(\"neetoMolecules.sidebar.helpLinks.whatsNew\"),\n \"data-cy\": \"help-link-changelog-button\",\n isVisible: shouldShowWhatsNew,\n },\n keyboardShortcutProps: {\n label: t(\"neetoMolecules.sidebar.helpLinks.keyboardShortcuts\"),\n \"data-cy\": \"help-link-keyboard-shortcut-button\",\n },\n};\n\nexport const NON_BUTTON_PROPS = [\"isVisible\"];\n\n// Theme switcher\nexport const APP_THEME_LOCALSTORAGE_KEY = \"appTheme\";\n\nexport const THEMES = {\n LIGHT: \"neeto-ui-theme--light\",\n DARK: \"neeto-ui-theme--dark\",\n};\n","import React from \"react\";\n\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { Dropdown } from \"neetoui\";\nimport { omit } from \"ramda\";\n\nimport { MENU_ITEMS_WITH_ICONS, NON_BUTTON_PROPS } from \"../constants\";\n\nconst LinkSection = ({ links }) => {\n const { MenuItem } = Dropdown;\n if (isNotPresent(links)) return null;\n\n return (\n <>\n {links.map(({ label, icon: Icon, changesCount, ...otherProps }, idx) => (\n <MenuItem.Button\n className=\"neeto-molecules-menu-sublist__item-btn\"\n data-cy=\"floating-action-menu-link-section\"\n key={idx}\n style=\"text\"\n prefix={\n MENU_ITEMS_WITH_ICONS.includes(label) ? (\n <Icon size={18} />\n ) : undefined\n }\n {...omit(NON_BUTTON_PROPS, otherProps)}\n >\n {label}\n {isPresent(changesCount) && (\n <span\n className=\"neeto-molecules-menu-list__item-btn-count\"\n data-cy=\"help-section-menu-changes-count\"\n data-testid=\"help-section-menu-changes-count\"\n >\n {changesCount}\n </span>\n )}\n </MenuItem.Button>\n ))}\n </>\n );\n};\n\nexport default LinkSection;\n","import React from \"react\";\n\nimport { Right } from \"neetoicons\";\nimport { Dropdown, Spinner } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst MenuButton = ({ isLoading, onMouseEnter, ...otherProps }) => {\n const { t } = useTranslation();\n const { MenuItem } = Dropdown;\n\n return (\n <MenuItem.Button\n {...{ onMouseEnter }}\n className=\"neeto-molecules-menu-sublist__item-btn\"\n data-cy=\"product-switcher-button\"\n data-testid=\"product-switcher-button\"\n label={t(\"neetoMolecules.sidebar.productSwitcher\")}\n style=\"text\"\n suffix={isLoading ? <Spinner /> : <Right size={18} />}\n {...otherProps}\n >\n {t(\"neetoMolecules.sidebar.productSwitcher\")}\n </MenuItem.Button>\n );\n};\n\nexport default MenuButton;\n","import React from \"react\";\n\nimport useFetchNeetoApps from \"neetocommons/react-utils/useFetchNeetoApps\";\nimport { Dropdown as NeetoUIDropdown } from \"neetoui\";\n\nimport ProductSwitcherMenu from \"./Menu\";\nimport MenuItemButton from \"./MenuButton\";\n\nconst Dropdown = () => {\n const { Menu, MenuItem } = NeetoUIDropdown;\n\n const {\n data,\n isLoading,\n isStale,\n refetch: refetchNeetoApps,\n } = useFetchNeetoApps();\n\n const onMouseEnter = () => {\n if (!isStale) return;\n refetchNeetoApps();\n };\n\n return (\n <NeetoUIDropdown\n className=\"neeto-molecules-product-switcher-menu-popup-wrapper\"\n closeOnSelect={false}\n customTarget={<MenuItemButton {...{ isLoading, onMouseEnter }} />}\n disabled={!data || isLoading}\n interactiveDebounce={30}\n isOpen={!data ? false : undefined}\n offset={[0, 5]}\n position=\"right\"\n trigger=\"all\"\n zIndex={99999}\n dropdownProps={{\n classNames: \"neeto-molecules-product-switcher-menu-popup__dropdown\",\n }}\n >\n <Menu>\n <MenuItem>\n <ProductSwitcherMenu />\n </MenuItem>\n </Menu>\n </NeetoUIDropdown>\n );\n};\n\nexport default Dropdown;\n","import React from \"react\";\n\nimport useBreakpoints from \"neetocommons/react-utils/useBreakpoints\";\n\nimport Dropdown from \"./Dropdown\";\nimport MenuButton from \"./MenuButton\";\n\nconst ProductSwitcher = ({ toggleModal }) => {\n const { isSize } = useBreakpoints();\n const isMobile = isSize(\"mobile\");\n\n return isMobile ? (\n <MenuButton onClick={() => toggleModal(true)} />\n ) : (\n <Dropdown />\n );\n};\n\nexport default ProductSwitcher;\n","import React from \"react\";\n\nimport { truncate } from \"neetocist\";\nimport { Avatar, Typography } from \"neetoui\";\n\nconst ProfileHeader = ({ profileInfo }) => {\n const { name, email } = profileInfo;\n\n return (\n <div\n className=\"neeto-ui-relative neeto-ui-flex neeto-ui-items-center neeto-ui-p-3 neeto-ui-bg-primary-50 neeto-molecules-profile-popup__top-section\"\n data-cy=\"floating-action-menu-profile-header\"\n >\n <div className=\"left-0 top-0\">\n <Avatar\n data-cy=\"floating-action-menu-header-profile-icon\"\n size=\"large\"\n user={profileInfo}\n />\n </div>\n <div className=\"neeto-ui-flex neeto-ui-flex-col neeto-ui-flex-grow neeto-ui-min-w-0 neeto-ui-pl-3\">\n <Typography\n className=\"neeto-ui-m-0\"\n component=\"h2\"\n data-cy=\"floating-action-menu-header-user-name\"\n lineHeight=\"tight\"\n style=\"h5\"\n title={name}\n weight=\"semibold\"\n >\n {truncate(name, 18)}\n </Typography>\n {email && (\n <Typography\n className=\"neeto-ui-w-full neeto-ui-truncate neeto-ui-text-gray-700\"\n data-cy=\"floating-action-menu-header-user-email\"\n lineHeight=\"tight\"\n style=\"body3\"\n >\n {email}\n </Typography>\n )}\n </div>\n </div>\n );\n};\n\nexport default ProfileHeader;\n","import { t } from \"i18next\";\nimport { getFromLocalStorage } from \"neetocommons/utils\";\nimport { resetAuthTokens } from \"neetocommons/utils/axios\";\nimport { removeFromLocalStorage } from \"neetocommons/utils/general\";\nimport { mergeDeepLeft } from \"ramda\";\n\nimport {\n MY_ORGANIZATION_URL,\n THEMES,\n APP_THEME_LOCALSTORAGE_KEY,\n} from \"./constants\";\n\nconst getSidebarStateLocalStorageKey = () => {\n const user = globalProps.user?.email || globalProps.user?.phoneNumber;\n\n return `sidebarState-${user}`;\n};\n\nexport const getDefaultTopLinks = (isOwner, setIsProfilePaneOpen) =>\n [\n {\n label: t(\"neetoMolecules.sidebar.myProfile\"),\n onClick: () => setIsProfilePaneOpen(true),\n \"data-cy\": \"my-profile-button\",\n \"data-testid\": \"my-profile-button\",\n },\n isOwner && {\n label: t(\"neetoMolecules.sidebar.myWorkspace\"),\n onClick: () => window.open(MY_ORGANIZATION_URL, \"_self\"),\n \"data-cy\": \"profile-organization-settings-button\",\n },\n ].filter(Boolean);\n\nexport const getDefaultBottomLinks = () => [\n {\n label: t(\"neetoMolecules.sidebar.logout\"),\n onClick: () => {\n resetAuthTokens();\n removeFromLocalStorage(getSidebarStateLocalStorageKey());\n // eslint-disable-next-line xss/no-location-href-assign\n window.location.href = \"/logout\";\n },\n \"data-cy\": \"profile-logout-button\",\n },\n];\n\nexport const getProfileInfo = profileInfoOverrides =>\n mergeDeepLeft(profileInfoOverrides, {\n name: `${globalProps.user?.firstName} ${globalProps.user?.lastName}`,\n imageUrl: globalProps.user?.profileImageUrl,\n email: globalProps.user?.email || globalProps.user?.phoneNumber,\n });\n\n// Theme switcher utils.\nexport const setDarkTheme = () => {\n document.body.classList.remove(THEMES.LIGHT);\n document.body.classList.add(THEMES.DARK);\n};\n\nexport const setLightTheme = () => {\n document.body.classList.remove(THEMES.DARK);\n document.body.classList.add(THEMES.LIGHT);\n};\n\nexport const setAppTheme = () => {\n const isDarkTheme =\n getFromLocalStorage(APP_THEME_LOCALSTORAGE_KEY) === THEMES.DARK;\n isDarkTheme ? setDarkTheme() : setLightTheme();\n};\n","import React from \"react\";\n\nimport { withT } from \"neetocommons/react-utils\";\nimport { Right } from \"neetoicons\";\nimport { Dropdown } from \"neetoui\";\n\nconst { MenuItem } = Dropdown;\n\nconst MenuButton = withT(({ t, selectedThemeName }) => (\n <MenuItem.Button\n className=\"neeto-molecules-menu-sublist__item-btn\"\n data-cy=\"theme-switcher-button\"\n data-testid=\"theme-switcher-button\"\n style=\"text\"\n suffix={<Right size={18} />}\n >\n {t(\"neetoMolecules.sidebar.themeSwitcher.label\", {\n selectedTheme: selectedThemeName,\n })}\n </MenuItem.Button>\n));\n\nexport default MenuButton;\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport useBreakpoints from \"neetocommons/react-utils/useBreakpoints\";\nimport useLocalStorage from \"neetocommons/react-utils/useLocalStorage\";\nimport { Check } from \"neetoicons\";\nimport { Dropdown as NeetoUIDropdown } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n APP_THEME_LOCALSTORAGE_KEY,\n THEMES,\n} from \"components/FloatingActionMenu/constants\";\nimport {\n setDarkTheme,\n setLightTheme,\n} from \"components/FloatingActionMenu/utils\";\n\nimport MenuItemButton from \"./MenuButton\";\n\nconst { Menu, MenuItem } = NeetoUIDropdown;\n\nconst ThemeSwitcher = () => {\n const { t } = useTranslation();\n const { isSize } = useBreakpoints();\n\n const [appTheme, setAppTheme] = useLocalStorage(\n APP_THEME_LOCALSTORAGE_KEY,\n THEMES.LIGHT\n );\n const isDarkThemeSelected = appTheme === THEMES.DARK;\n const selectedThemeName = isDarkThemeSelected\n ? t(\"neetoMolecules.sidebar.themeSwitcher.dark\")\n : t(\"neetoMolecules.sidebar.themeSwitcher.light\");\n\n const isMobile = isSize(\"mobile\");\n\n const switchTheme = theme => {\n theme === THEMES.LIGHT ? setLightTheme() : setDarkTheme();\n setAppTheme(theme);\n };\n\n return (\n <NeetoUIDropdown\n className=\"neeto-molecules-theme-switcher-menu-popup-wrapper\"\n closeOnSelect={false}\n customTarget={<MenuItemButton {...{ selectedThemeName }} />}\n interactiveDebounce={30}\n offset={[0, 5]}\n position={isMobile ? \"bottom\" : \"right\"}\n trigger=\"all\"\n zIndex={99999}\n >\n <Menu>\n <MenuItem.Button\n suffix={!isDarkThemeSelected && <Check size={18} />}\n className={classNames({\n \"neeto-molecules-theme-switcher-active-button\":\n !isDarkThemeSelected,\n })}\n onClick={() => switchTheme(THEMES.LIGHT)}\n >\n {t(\"neetoMolecules.sidebar.themeSwitcher.light\")}\n </MenuItem.Button>\n <MenuItem.Button\n suffix={isDarkThemeSelected && <Check size={18} />}\n className={classNames({\n \"neeto-molecules-theme-switcher-active-button\": isDarkThemeSelected,\n })}\n onClick={() => switchTheme(THEMES.DARK)}\n >\n {t(\"neetoMolecules.sidebar.themeSwitcher.dark\")}\n </MenuItem.Button>\n </Menu>\n </NeetoUIDropdown>\n );\n};\n\nexport default ThemeSwitcher;\n","import React from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { Dropdown } from \"neetoui\";\n\nimport LinkSection from \"./LinkSection\";\nimport ProductSwitcherMenu from \"./ProductSwitcher\";\nimport ProfileHeader from \"./ProfileHeader\";\nimport ThemeSwitcher from \"./ThemeSwitcher\";\n\nconst ProfileMenu = ({\n profileInfo,\n showProductSwitcher,\n helpLinks,\n defaultLinks,\n topLinks,\n bottomLinks,\n customContent,\n toggleModal,\n isThemeSwitcherEnabled,\n}) => {\n const { Menu, MenuItem, Divider } = Dropdown;\n\n return (\n <Menu className=\"pb-1\">\n <MenuItem\n className=\"neeto-molecules-profile-popup mb-1\"\n data-cy=\"profile-popup\"\n data-testid=\"profile-popup\"\n >\n <ProfileHeader {...{ profileInfo }} />\n </MenuItem>\n {showProductSwitcher && <ProductSwitcherMenu {...{ toggleModal }} />}\n {isThemeSwitcherEnabled && <ThemeSwitcher />}\n <Divider />\n <LinkSection links={topLinks} />\n {isPresent(customContent) && (\n <>\n <Divider />\n <MenuItem className=\"neeto-molecules-floating-action-button__profile-wrapper-custom-content\">\n {customContent}\n </MenuItem>\n </>\n )}\n <Divider />\n <LinkSection links={defaultLinks} />\n <Divider />\n <LinkSection links={helpLinks} />\n <Divider />\n <LinkSection links={bottomLinks} />\n </Menu>\n );\n};\n\nexport default ProfileMenu;\n","import React, { useEffect, useState } from \"react\";\n\nimport { isPresent, noop } from \"neetocist\";\nimport useFetchNeetoApps from \"neetocommons/react-utils/useFetchNeetoApps\";\nimport { Profile } from \"neetoteam\";\nimport { Avatar, Dropdown } from \"neetoui\";\n\nimport KeyboardShortcuts from \"components/KeyboardShortcuts\";\n\nimport ProductSwitcherModal from \"./ProductSwitcher/Modal\";\nimport ProfileMenu from \"./ProfileMenu\";\n\nimport { DEFAULT_HELP_LINK_PROPS, DEFAULT_MENU_LINK_PROPS } from \"../constants\";\nimport {\n getDefaultBottomLinks,\n getDefaultTopLinks,\n getProfileInfo,\n} from \"../utils\";\n\nconst ProfileButton = ({\n helpLinkOverrides,\n profileInfoOverrides,\n showProductSwitcher,\n bottomLinks,\n topLinks,\n customContent,\n isThemeSwitcherEnabled,\n}) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [changesCount, setChangesCount] = useState(null);\n\n const [, setIsOpen] = KeyboardShortcuts.usePaneState();\n const [, setIsProfilePaneOpen] = Profile.usePaneState();\n\n const { data, refetch, isStale } = useFetchNeetoApps();\n\n const profileInfo = getProfileInfo(profileInfoOverrides);\n\n useEffect(() => {\n const Nv = {\n onReceiveData: data => {\n if (!data.unreadCount) return;\n setChangesCount(data.unreadCount);\n },\n onShow: () => {\n setChangesCount(null);\n },\n };\n\n window.Nv = window.Nv ? Object.assign(window.Nv, Nv) : Nv;\n }, []);\n\n useEffect(() => {\n if (!isStale) return;\n refetch();\n }, [isStale]);\n\n const newTopLinks =\n globalProps.appName !== \"neetoAuth\"\n ? [\n ...getDefaultTopLinks(data?.isOwner, setIsProfilePaneOpen),\n ...topLinks,\n ]\n : topLinks;\n\n const newBottomLinks = [...getDefaultBottomLinks(), ...bottomLinks];\n\n const helpLinks = Object.keys(DEFAULT_HELP_LINK_PROPS)\n .map(key => ({ ...DEFAULT_HELP_LINK_PROPS[key] }))\n .filter(({ hide }) => !hide);\n\n const defaultLinks = Object.keys(DEFAULT_MENU_LINK_PROPS)\n .filter(key => DEFAULT_MENU_LINK_PROPS[key].isVisible?.() ?? true)\n .map(key => ({\n ...DEFAULT_MENU_LINK_PROPS[key],\n ...helpLinkOverrides[key],\n ...(key === \"keyboardShortcutProps\" && {\n onClick: () => setIsOpen(prev => !prev),\n }),\n ...(key === \"changelogProps\" && changesCount && { changesCount }),\n }))\n .filter(({ hide }) => !hide);\n\n return (\n <>\n <Profile.Pane />\n <Dropdown\n isMultiLevel\n appendTo={() => document.body}\n buttonStyle=\"link\"\n closeOnSelect={false}\n data-cy=\"floating-action-button\"\n data-testid=\"floating-action-button\"\n icon={noop}\n interactiveDebounce={30}\n offset={[15, 10]}\n position=\"right-end\"\n strategy=\"fixed\"\n theme=\"light\"\n trigger=\"all\"\n zIndex={99999}\n customTarget={\n <button\n className=\"neeto-molecules-floating-action-button\"\n type=\"button\"\n >\n <Avatar\n className=\"neeto-ui-flex-shrink-0 neeto-molecules-floating-action-button__profile-avatar\"\n data-cy=\"profile-avatar\"\n data-testid=\"profile-avatar\"\n size=\"medium\"\n user={profileInfo}\n />\n </button>\n }\n dropdownProps={{\n classNames: \"neeto-molecules-floating-action-button__dropdown\",\n }}\n >\n <ProfileMenu\n {...{\n customContent,\n defaultLinks,\n helpLinks,\n isThemeSwitcherEnabled,\n profileInfo,\n showProductSwitcher,\n }}\n bottomLinks={newBottomLinks}\n toggleModal={setIsModalOpen}\n topLinks={newTopLinks}\n />\n </Dropdown>\n {isPresent(changesCount) && (\n <span\n className=\"neeto-molecules-menu__notif-count\"\n data-cy=\"help-icon-changes-count\"\n data-testid=\"help-icon-changes-count\"\n >\n {changesCount}\n </span>\n )}\n <ProductSwitcherModal\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n />\n </>\n );\n};\n\nexport default ProfileButton;\n","import React, { forwardRef, useEffect } from \"react\";\n\nimport PropTypes from \"prop-types\";\n\nimport ProfileButton from \"./components/ProfileButton\";\nimport \"./floating-action-menu.scss\";\nimport { setAppTheme } from \"./utils\";\n\nconst FloatingActionMenu = forwardRef(\n (\n {\n profileInfoOverrides = {},\n helpLinkOverrides = {},\n topLinks = [],\n bottomLinks = [],\n showProductSwitcher = true,\n isThemeSwitcherEnabled = false,\n customContent,\n ...otherProps\n },\n ref\n ) => {\n useEffect(() => {\n isThemeSwitcherEnabled && setAppTheme();\n }, []);\n\n return (\n <div\n {...{ ref }}\n className=\"neeto-molecules-floating-action-menu__container\"\n data-cy=\"floating-action-menu-container\"\n data-testid=\"floating-action-menu-container\"\n {...otherProps}\n >\n <ProfileButton\n {...{\n bottomLinks,\n customContent,\n helpLinkOverrides,\n isThemeSwitcherEnabled,\n profileInfoOverrides,\n showProductSwitcher,\n topLinks,\n }}\n />\n </div>\n );\n }\n);\n\nFloatingActionMenu.displayName = \"FloatingActionMenu\";\n\nFloatingActionMenu.propTypes = {\n /**\n * To specify the profile info to be rendered in the menu\n */\n profileInfoOverrides: PropTypes.shape({\n name: PropTypes.string,\n email: PropTypes.string,\n imageUrl: PropTypes.string,\n }),\n /**\n * Custom content to be rendered in the menu between the top and bottom links if any\n */\n customContent: PropTypes.element,\n /**\n * Any extra links to be rendered at the top of the menu.\n */\n topLinks: PropTypes.arrayOf(\n PropTypes.shape({\n onClick: PropTypes.func,\n label: PropTypes.string,\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n })\n ),\n /**\n * Any extra links to be rendered at the bottom of the menu.\n */\n bottomLinks: PropTypes.arrayOf(\n PropTypes.shape({\n onClick: PropTypes.func,\n label: PropTypes.string,\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n })\n ),\n /**\n * To override the values in the help links section in the menu.\n */\n helpLinkOverrides: PropTypes.object,\n /**\n * To display the product switcher menu option.\n */\n showProductSwitcher: PropTypes.bool,\n /**\n * To display the app theme switcher above the user profile.\n If this prop is set to `true`, it will set the last selected\n theme to the app when the component is mounted.\n */\n isThemeSwitcherEnabled: PropTypes.bool,\n};\n\nexport default FloatingActionMenu;\n"],"names":["ProductLink","_ref","name","description","url","appName","concat","charAt","slice","toLowerCase","AppIcon","AppIcons","React","createElement","href","rel","target","className","classnames","globalProps","includes","Neeto","Typography","component","style","weight","memo","Menu","_ref$isMobile","isMobile","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","searchTerm","setSearchTerm","_useFetchNeetoApps","useFetchNeetoApps","enabled","data","substring","replace","filteredApps","neetoApps","filter","_ref2","handleSearch","e","value","key","classNames","Input","autoFocus","placeholder","prefix","Search","type","onChange","_defineProperty","length","map","app","_extends","Modal","withT","isOpen","onClose","NeetoUIModal","backdropClassName","size","Header","Body","shouldShowWhatsNew","_window$globalProps","_window$globalProps$u","currentUserEmail","window","user","email","location","hostname","endsWith","MY_ORGANIZATION_URL","CHANGELOG_WIDGET_TRIGGER_ID","MENU_ITEMS_WITH_ICONS","DEFAULT_HELP_LINK_PROPS","helpCenterProps","label","icon","Book","toLower","liveChatProps","Help","onClick","_window$NeetoChat","_window$NeetoChat$con","_window$NeetoChat2","_window$NeetoChat2$co","NeetoChat","contextualHelp","maximizeWidget","openWidget","DEFAULT_MENU_LINK_PROPS","changelogProps","id","isVisible","keyboardShortcutProps","NON_BUTTON_PROPS","APP_THEME_LOCALSTORAGE_KEY","THEMES","LIGHT","DARK","LinkSection","links","MenuItem","Dropdown","isNotPresent","Fragment","idx","Icon","changesCount","otherProps","_objectWithoutProperties","_excluded","Button","undefined","omit","isPresent","MenuButton","isLoading","onMouseEnter","suffix","Spinner","Right","NeetoUIDropdown","isStale","refetchNeetoApps","refetch","closeOnSelect","customTarget","MenuItemButton","disabled","interactiveDebounce","offset","position","trigger","zIndex","dropdownProps","ProductSwitcherMenu","ProductSwitcher","toggleModal","_useBreakpoints","useBreakpoints","isSize","ProfileHeader","profileInfo","Avatar","lineHeight","title","truncate","getSidebarStateLocalStorageKey","_globalProps$user","_globalProps$user2","phoneNumber","getDefaultTopLinks","isOwner","setIsProfilePaneOpen","open","Boolean","getDefaultBottomLinks","resetAuthTokens","removeFromLocalStorage","getProfileInfo","profileInfoOverrides","_globalProps$user3","_globalProps$user4","_globalProps$user5","_globalProps$user6","_globalProps$user7","mergeDeepLeft","firstName","lastName","imageUrl","profileImageUrl","setDarkTheme","document","body","classList","remove","add","setLightTheme","setAppTheme","isDarkTheme","getFromLocalStorage","selectedThemeName","selectedTheme","ThemeSwitcher","_useLocalStorage","useLocalStorage","_useLocalStorage2","appTheme","isDarkThemeSelected","switchTheme","theme","Check","ProfileMenu","showProductSwitcher","helpLinks","defaultLinks","topLinks","bottomLinks","customContent","isThemeSwitcherEnabled","Divider","ProfileButton","helpLinkOverrides","isModalOpen","setIsModalOpen","_useState3","_useState4","setChangesCount","_KeyboardShortcuts$us","KeyboardShortcuts","usePaneState","_KeyboardShortcuts$us2","setIsOpen","_Profile$usePaneState","Profile","_Profile$usePaneState2","useEffect","Nv","onReceiveData","unreadCount","onShow","Object","assign","newTopLinks","_toConsumableArray","newBottomLinks","keys","_objectSpread","hide","_DEFAULT_MENU_LINK_PR","_DEFAULT_MENU_LINK_PR2","_DEFAULT_MENU_LINK_PR3","call","prev","_ref3","Pane","isMultiLevel","appendTo","buttonStyle","noop","strategy","ProductSwitcherModal","FloatingActionMenu","forwardRef","ref","_ref$profileInfoOverr","_ref$helpLinkOverride","_ref$topLinks","_ref$bottomLinks","_ref$showProductSwitc","_ref$isThemeSwitcherE","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FloatingActionMenu.js","sources":["../src/components/FloatingActionMenu/components/ProductSwitcher/ProductLink.jsx","../src/components/FloatingActionMenu/components/ProductSwitcher/Menu.jsx","../src/components/FloatingActionMenu/components/ProductSwitcher/Modal.jsx","../src/components/FloatingActionMenu/constants.js","../src/components/FloatingActionMenu/components/LinkSection.jsx","../src/components/FloatingActionMenu/components/ProductSwitcher/MenuButton.jsx","../src/components/FloatingActionMenu/components/ProductSwitcher/Dropdown.jsx","../src/components/FloatingActionMenu/components/ProductSwitcher/index.jsx","../src/components/FloatingActionMenu/components/ProfileHeader.jsx","../src/components/FloatingActionMenu/utils.js","../src/components/FloatingActionMenu/components/ThemeSwitcher/MenuButton.jsx","../src/components/FloatingActionMenu/components/ThemeSwitcher/index.jsx","../src/components/FloatingActionMenu/components/ProfileMenu.jsx","../src/components/FloatingActionMenu/components/ProfileButton.jsx","../src/components/FloatingActionMenu/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { Neeto } from \"neetoicons/typeface-logos\";\nimport * as AppIcons from \"neetoicons/typeface-logos\";\nimport { Typography } from \"neetoui\";\n\nimport \"./product-switcher.scss\";\n\nconst ProductLink = ({ name, description, url }) => {\n const appName = `Neeto${name.charAt(0)}${name.slice(1).toLowerCase()}`;\n const AppIcon = AppIcons[appName];\n\n return (\n <a\n data-cy={`${name}-app-link`}\n data-test-id={`neetoapp-link-${name}`}\n href={url}\n rel=\"noreferrer\"\n target=\"_blank\"\n className={classnames(\"neeto-molecules-product-switcher-link\", {\n \"neeto-molecules-product-switcher-link--active\":\n globalProps.appName.includes(name),\n })}\n >\n <div className=\"neeto-molecules-product-switcher-link__icon-holder\">\n {AppIcon ? (\n <AppIcon />\n ) : (\n <Neeto className=\"neeto-molecules-product-switcher-link__icon-default\" />\n )}\n </div>\n <div className=\"neeto-molecules-product-switcher-link__divider neeto-ui-bg-gray-200\" />\n <div className=\"neeto-molecules-product-switcher-link__content\">\n <Typography component=\"span\" style=\"body3\" weight=\"medium\">\n {description}\n </Typography>\n </div>\n </a>\n );\n};\n\nexport default React.memo(ProductLink);\n","import React, { useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport useFetchNeetoApps from \"neetocommons/react-utils/useFetchNeetoApps\";\nimport { Search } from \"neetoicons\";\nimport { Input, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport \"./product-switcher.scss\";\nimport ProductLink from \"./ProductLink\";\n\nconst Menu = ({ isMobile = false }) => {\n const { t } = useTranslation();\n\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const { data } = useFetchNeetoApps({ enabled: false });\n\n const substring = searchTerm.replace(/ /g, \"\").toLowerCase();\n\n const filteredApps = data?.neetoApps.filter(({ name }) =>\n name.toLowerCase().includes(substring)\n );\n\n const handleSearch = e => setSearchTerm(e.target.value);\n\n return (\n <div\n className=\"neeto-molecules-product-switcher__wrapper\"\n data-cy=\"switcher-wrapper\"\n data-testid=\"switcher-wrapper\"\n key=\"switcher-wrapper\"\n >\n <div\n data-cy=\"product-switcher-body-wrapper\"\n className={classNames(\"neeto-molecules-product-switcher__header\", {\n \"neeto-molecules-product-switcher__header-mobile\": isMobile,\n })}\n >\n {!isMobile && (\n <Typography style=\"h1\">\n {t(\"neetoMolecules.productSwitcher.chooseNeetoProduct\")}\n </Typography>\n )}\n <div className=\"neeto-molecules-product-switcher__search-wrapper\">\n <Input\n autoFocus\n data-cy=\"product-switcher-search-input\"\n placeholder={t(\"neetoMolecules.productSwitcher.searchProducts\")}\n prefix={<Search />}\n type=\"search\"\n value={searchTerm}\n onChange={handleSearch}\n />\n </div>\n </div>\n <div\n className={classNames(\"neeto-molecules-product-switcher__body\", {\n [\"neeto-molecules-product-switcher__body-mobile\"]: isMobile,\n })}\n >\n {filteredApps?.length > 0 ? (\n <div className=\"neeto-molecules-product-switcher__grid\">\n {filteredApps.map(app => (\n <ProductLink key={app.name} {...app} />\n ))}\n </div>\n ) : (\n <Typography className=\"neeto-ui-text-center\" style=\"body1\">\n {t(\"neetoMolecules.productSwitcher.noApps\")}\n </Typography>\n )}\n </div>\n </div>\n );\n};\n\nexport default Menu;\n","import React from \"react\";\n\nimport { withT } from \"neetocommons/react-utils\";\nimport { Modal as NeetoUIModal, Typography } from \"neetoui\";\n\nimport Menu from \"./Menu\";\n\nconst Modal = withT(({ t, isOpen, onClose }) => (\n <NeetoUIModal\n {...{ isOpen, onClose }}\n backdropClassName=\"neeto-molecules-product-switcher_modal\"\n size=\"fullScreen\"\n >\n <NeetoUIModal.Header>\n <Typography className=\"pr-4\" style=\"h2\">\n {t(\"neetoMolecules.productSwitcher.chooseNeetoProduct\")}\n </Typography>\n </NeetoUIModal.Header>\n <NeetoUIModal.Body>\n <div\n className=\"neeto-molecules-product-switcher_modal-container\"\n data-testid=\"product-switcher-modal\"\n >\n <Menu isMobile />\n </div>\n </NeetoUIModal.Body>\n </NeetoUIModal>\n));\n\nexport default Modal;\n","import { t } from \"i18next\";\nimport { Book, Help } from \"neetoicons\";\nimport { toLower } from \"ramda\";\n\nconst shouldShowWhatsNew = () => {\n const currentUserEmail = window.globalProps?.user?.email;\n\n return (\n window.location.hostname === \"localhost\" ||\n currentUserEmail === \"oliver@example.com\" ||\n currentUserEmail?.endsWith(\"@bigbinary.com\")\n );\n};\n\nexport const MY_ORGANIZATION_URL = \"/auth/organization/edit\";\nexport const CHANGELOG_WIDGET_TRIGGER_ID = \"neetochangelog-trigger\";\nexport const MENU_ITEMS_WITH_ICONS = [\"Chat with support\", \"Help articles\"];\n\nexport const DEFAULT_HELP_LINK_PROPS = {\n helpCenterProps: {\n label: t(\"neetoMolecules.sidebar.helpLinks.helpArticles\"),\n icon: Book,\n \"data-cy\": \"help-link-help-center-button\",\n \"data-btn-weight\": \"bold\",\n href: `https://help.${toLower(globalProps.appName)}.com/`,\n target: \"_blank\",\n },\n liveChatProps: {\n label: t(\"neetoMolecules.sidebar.helpLinks.liveChat\"),\n icon: Help,\n \"data-cy\": \"help-link-live-chat-button\",\n \"data-btn-weight\": \"bold\",\n onClick: () => {\n window.NeetoChat?.contextualHelp?.maximizeWidget();\n window.NeetoChat?.contextualHelp?.openWidget();\n },\n },\n};\n\nexport const DEFAULT_MENU_LINK_PROPS = {\n changelogProps: {\n id: CHANGELOG_WIDGET_TRIGGER_ID,\n label: t(\"neetoMolecules.sidebar.helpLinks.whatsNew\"),\n \"data-cy\": \"help-link-changelog-button\",\n isVisible: shouldShowWhatsNew,\n },\n keyboardShortcutProps: {\n label: t(\"neetoMolecules.sidebar.helpLinks.keyboardShortcuts\"),\n \"data-cy\": \"help-link-keyboard-shortcut-button\",\n },\n};\n\nexport const NON_BUTTON_PROPS = [\"isVisible\"];\n\n// Theme switcher\nexport const APP_THEME_LOCALSTORAGE_KEY = \"appTheme\";\n\nexport const THEMES = {\n LIGHT: \"neeto-ui-theme--light\",\n DARK: \"neeto-ui-theme--dark\",\n};\n","import React from \"react\";\n\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { Dropdown } from \"neetoui\";\nimport { omit } from \"ramda\";\n\nimport { MENU_ITEMS_WITH_ICONS, NON_BUTTON_PROPS } from \"../constants\";\n\nconst LinkSection = ({ links }) => {\n const { MenuItem } = Dropdown;\n if (isNotPresent(links)) return null;\n\n return (\n <>\n {links.map(({ label, icon: Icon, changesCount, ...otherProps }, idx) => (\n <MenuItem.Button\n className=\"neeto-molecules-menu-sublist__item-btn\"\n data-cy=\"floating-action-menu-link-section\"\n key={idx}\n style=\"text\"\n prefix={\n MENU_ITEMS_WITH_ICONS.includes(label) ? (\n <Icon size={18} />\n ) : undefined\n }\n {...omit(NON_BUTTON_PROPS, otherProps)}\n >\n {label}\n {isPresent(changesCount) && (\n <span\n className=\"neeto-molecules-menu-list__item-btn-count\"\n data-cy=\"help-section-menu-changes-count\"\n data-testid=\"help-section-menu-changes-count\"\n >\n {changesCount}\n </span>\n )}\n </MenuItem.Button>\n ))}\n </>\n );\n};\n\nexport default LinkSection;\n","import React from \"react\";\n\nimport { Right } from \"neetoicons\";\nimport { Dropdown, Spinner } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst MenuButton = ({ isLoading, onMouseEnter, ...otherProps }) => {\n const { t } = useTranslation();\n const { MenuItem } = Dropdown;\n\n return (\n <MenuItem.Button\n {...{ onMouseEnter }}\n className=\"neeto-molecules-menu-sublist__item-btn\"\n data-cy=\"product-switcher-button\"\n data-testid=\"product-switcher-button\"\n label={t(\"neetoMolecules.sidebar.productSwitcher\")}\n style=\"text\"\n suffix={isLoading ? <Spinner /> : <Right size={18} />}\n {...otherProps}\n >\n {t(\"neetoMolecules.sidebar.productSwitcher\")}\n </MenuItem.Button>\n );\n};\n\nexport default MenuButton;\n","import React from \"react\";\n\nimport useFetchNeetoApps from \"neetocommons/react-utils/useFetchNeetoApps\";\nimport { Dropdown as NeetoUIDropdown } from \"neetoui\";\n\nimport ProductSwitcherMenu from \"./Menu\";\nimport MenuItemButton from \"./MenuButton\";\n\nconst Dropdown = () => {\n const { Menu, MenuItem } = NeetoUIDropdown;\n\n const {\n data,\n isLoading,\n isStale,\n refetch: refetchNeetoApps,\n } = useFetchNeetoApps();\n\n const onMouseEnter = () => {\n if (!isStale) return;\n refetchNeetoApps();\n };\n\n return (\n <NeetoUIDropdown\n className=\"neeto-molecules-product-switcher-menu-popup-wrapper\"\n closeOnSelect={false}\n customTarget={<MenuItemButton {...{ isLoading, onMouseEnter }} />}\n disabled={!data || isLoading}\n interactiveDebounce={30}\n isOpen={!data ? false : undefined}\n offset={[0, 5]}\n position=\"right\"\n trigger=\"all\"\n zIndex={99999}\n dropdownProps={{\n classNames: \"neeto-molecules-product-switcher-menu-popup__dropdown\",\n }}\n >\n <Menu>\n <MenuItem>\n <ProductSwitcherMenu />\n </MenuItem>\n </Menu>\n </NeetoUIDropdown>\n );\n};\n\nexport default Dropdown;\n","import React from \"react\";\n\nimport useBreakpoints from \"neetocommons/react-utils/useBreakpoints\";\n\nimport Dropdown from \"./Dropdown\";\nimport MenuButton from \"./MenuButton\";\n\nconst ProductSwitcher = ({ toggleModal }) => {\n const { isSize } = useBreakpoints();\n const isMobile = isSize(\"mobile\");\n\n return isMobile ? (\n <MenuButton onClick={() => toggleModal(true)} />\n ) : (\n <Dropdown />\n );\n};\n\nexport default ProductSwitcher;\n","import React from \"react\";\n\nimport { truncate } from \"neetocist\";\nimport { Avatar, Typography } from \"neetoui\";\n\nconst ProfileHeader = ({ profileInfo }) => {\n const { name, email } = profileInfo;\n\n return (\n <div\n className=\"neeto-ui-relative neeto-ui-flex neeto-ui-items-center neeto-ui-p-3 neeto-ui-bg-primary-50 neeto-molecules-profile-popup__top-section\"\n data-cy=\"floating-action-menu-profile-header\"\n >\n <div className=\"left-0 top-0\">\n <Avatar\n data-cy=\"floating-action-menu-header-profile-icon\"\n size=\"large\"\n user={profileInfo}\n />\n </div>\n <div className=\"neeto-ui-flex neeto-ui-flex-col neeto-ui-flex-grow neeto-ui-min-w-0 neeto-ui-pl-3\">\n <Typography\n className=\"neeto-ui-m-0\"\n component=\"h2\"\n data-cy=\"floating-action-menu-header-user-name\"\n lineHeight=\"tight\"\n style=\"h5\"\n title={name}\n weight=\"semibold\"\n >\n {truncate(name, 18)}\n </Typography>\n {email && (\n <Typography\n className=\"neeto-ui-w-full neeto-ui-truncate neeto-ui-text-gray-700\"\n data-cy=\"floating-action-menu-header-user-email\"\n lineHeight=\"tight\"\n style=\"body3\"\n >\n {email}\n </Typography>\n )}\n </div>\n </div>\n );\n};\n\nexport default ProfileHeader;\n","import { t } from \"i18next\";\nimport { getFromLocalStorage } from \"neetocommons/utils\";\nimport { resetAuthTokens } from \"neetocommons/utils/axios\";\nimport { removeFromLocalStorage } from \"neetocommons/utils/general\";\nimport { mergeDeepLeft } from \"ramda\";\n\nimport {\n MY_ORGANIZATION_URL,\n THEMES,\n APP_THEME_LOCALSTORAGE_KEY,\n} from \"./constants\";\n\nconst getSidebarStateLocalStorageKey = () => {\n const user = globalProps.user?.email || globalProps.user?.phoneNumber;\n\n return `sidebarState-${user}`;\n};\n\nexport const getDefaultTopLinks = (isOwner, setIsProfilePaneOpen) =>\n [\n {\n label: t(\"neetoMolecules.sidebar.myProfile\"),\n onClick: () => setIsProfilePaneOpen(true),\n \"data-cy\": \"my-profile-button\",\n \"data-testid\": \"my-profile-button\",\n },\n isOwner && {\n label: t(\"neetoMolecules.sidebar.myWorkspace\"),\n onClick: () => window.open(MY_ORGANIZATION_URL, \"_self\"),\n \"data-cy\": \"profile-organization-settings-button\",\n },\n ].filter(Boolean);\n\nexport const getDefaultBottomLinks = () => [\n {\n label: t(\"neetoMolecules.sidebar.logout\"),\n onClick: () => {\n resetAuthTokens();\n removeFromLocalStorage(getSidebarStateLocalStorageKey());\n // eslint-disable-next-line xss/no-location-href-assign\n window.location.href = \"/logout\";\n },\n \"data-cy\": \"profile-logout-button\",\n },\n];\n\nexport const getProfileInfo = profileInfoOverrides =>\n mergeDeepLeft(profileInfoOverrides, {\n name: `${globalProps.user?.firstName} ${globalProps.user?.lastName}`,\n imageUrl: globalProps.user?.profileImageUrl,\n email: globalProps.user?.email || globalProps.user?.phoneNumber,\n });\n\n// Theme switcher utils.\nexport const setDarkTheme = () => {\n document.body.classList.remove(THEMES.LIGHT);\n document.body.classList.add(THEMES.DARK);\n};\n\nexport const setLightTheme = () => {\n document.body.classList.remove(THEMES.DARK);\n document.body.classList.add(THEMES.LIGHT);\n};\n\nexport const setAppTheme = () => {\n const isDarkTheme =\n getFromLocalStorage(APP_THEME_LOCALSTORAGE_KEY) === THEMES.DARK;\n isDarkTheme ? setDarkTheme() : setLightTheme();\n};\n","import React from \"react\";\n\nimport { withT } from \"neetocommons/react-utils\";\nimport { Right } from \"neetoicons\";\nimport { Dropdown } from \"neetoui\";\n\nconst { MenuItem } = Dropdown;\n\nconst MenuButton = withT(({ t, selectedThemeName }) => (\n <MenuItem.Button\n className=\"neeto-molecules-menu-sublist__item-btn\"\n data-cy=\"theme-switcher-button\"\n data-testid=\"theme-switcher-button\"\n style=\"text\"\n suffix={<Right size={18} />}\n >\n {t(\"neetoMolecules.sidebar.themeSwitcher.label\", {\n selectedTheme: selectedThemeName,\n })}\n </MenuItem.Button>\n));\n\nexport default MenuButton;\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport useBreakpoints from \"neetocommons/react-utils/useBreakpoints\";\nimport useLocalStorage from \"neetocommons/react-utils/useLocalStorage\";\nimport { Check } from \"neetoicons\";\nimport { Dropdown as NeetoUIDropdown } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n APP_THEME_LOCALSTORAGE_KEY,\n THEMES,\n} from \"components/FloatingActionMenu/constants\";\nimport {\n setDarkTheme,\n setLightTheme,\n} from \"components/FloatingActionMenu/utils\";\n\nimport MenuItemButton from \"./MenuButton\";\n\nconst { Menu, MenuItem } = NeetoUIDropdown;\n\nconst ThemeSwitcher = () => {\n const { t } = useTranslation();\n const { isSize } = useBreakpoints();\n\n const [appTheme, setAppTheme] = useLocalStorage(\n APP_THEME_LOCALSTORAGE_KEY,\n THEMES.LIGHT\n );\n const isDarkThemeSelected = appTheme === THEMES.DARK;\n const selectedThemeName = isDarkThemeSelected\n ? t(\"neetoMolecules.sidebar.themeSwitcher.dark\")\n : t(\"neetoMolecules.sidebar.themeSwitcher.light\");\n\n const isMobile = isSize(\"mobile\");\n\n const switchTheme = theme => {\n theme === THEMES.LIGHT ? setLightTheme() : setDarkTheme();\n setAppTheme(theme);\n };\n\n return (\n <NeetoUIDropdown\n className=\"neeto-molecules-theme-switcher-menu-popup-wrapper\"\n closeOnSelect={false}\n customTarget={<MenuItemButton {...{ selectedThemeName }} />}\n interactiveDebounce={30}\n offset={[0, 5]}\n position={isMobile ? \"bottom\" : \"right\"}\n trigger=\"all\"\n zIndex={99999}\n >\n <Menu>\n <MenuItem.Button\n suffix={!isDarkThemeSelected && <Check size={18} />}\n className={classNames({\n \"neeto-molecules-theme-switcher-active-button\":\n !isDarkThemeSelected,\n })}\n onClick={() => switchTheme(THEMES.LIGHT)}\n >\n {t(\"neetoMolecules.sidebar.themeSwitcher.light\")}\n </MenuItem.Button>\n <MenuItem.Button\n suffix={isDarkThemeSelected && <Check size={18} />}\n className={classNames({\n \"neeto-molecules-theme-switcher-active-button\": isDarkThemeSelected,\n })}\n onClick={() => switchTheme(THEMES.DARK)}\n >\n {t(\"neetoMolecules.sidebar.themeSwitcher.dark\")}\n </MenuItem.Button>\n </Menu>\n </NeetoUIDropdown>\n );\n};\n\nexport default ThemeSwitcher;\n","import React from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { Dropdown } from \"neetoui\";\n\nimport LinkSection from \"./LinkSection\";\nimport ProductSwitcherMenu from \"./ProductSwitcher\";\nimport ProfileHeader from \"./ProfileHeader\";\nimport ThemeSwitcher from \"./ThemeSwitcher\";\n\nconst ProfileMenu = ({\n profileInfo,\n showProductSwitcher,\n helpLinks,\n defaultLinks,\n topLinks,\n bottomLinks,\n customContent,\n toggleModal,\n isThemeSwitcherEnabled,\n}) => {\n const { Menu, MenuItem, Divider } = Dropdown;\n\n return (\n <Menu className=\"pb-1\">\n <MenuItem\n className=\"neeto-molecules-profile-popup mb-1\"\n data-cy=\"profile-popup\"\n data-testid=\"profile-popup\"\n >\n <ProfileHeader {...{ profileInfo }} />\n </MenuItem>\n {showProductSwitcher && <ProductSwitcherMenu {...{ toggleModal }} />}\n {isThemeSwitcherEnabled && <ThemeSwitcher />}\n <Divider />\n <LinkSection links={topLinks} />\n {isPresent(customContent) && (\n <>\n <Divider />\n <MenuItem className=\"neeto-molecules-floating-action-button__profile-wrapper-custom-content\">\n {customContent}\n </MenuItem>\n </>\n )}\n <Divider />\n <LinkSection links={defaultLinks} />\n <Divider />\n <LinkSection links={helpLinks} />\n <Divider />\n <LinkSection links={bottomLinks} />\n </Menu>\n );\n};\n\nexport default ProfileMenu;\n","import React, { useEffect, useState } from \"react\";\n\nimport { isPresent, noop } from \"neetocist\";\nimport useFetchNeetoApps from \"neetocommons/react-utils/useFetchNeetoApps\";\nimport { Profile } from \"neetoteam\";\nimport { Avatar, Dropdown } from \"neetoui\";\n\nimport KeyboardShortcuts from \"components/KeyboardShortcuts\";\n\nimport ProductSwitcherModal from \"./ProductSwitcher/Modal\";\nimport ProfileMenu from \"./ProfileMenu\";\n\nimport { DEFAULT_HELP_LINK_PROPS, DEFAULT_MENU_LINK_PROPS } from \"../constants\";\nimport {\n getDefaultBottomLinks,\n getDefaultTopLinks,\n getProfileInfo,\n} from \"../utils\";\n\nconst ProfileButton = ({\n helpLinkOverrides,\n profileInfoOverrides,\n showProductSwitcher,\n bottomLinks,\n topLinks,\n customContent,\n isThemeSwitcherEnabled,\n}) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [changesCount, setChangesCount] = useState(null);\n\n const [, setIsOpen] = KeyboardShortcuts.usePaneState();\n const [, setIsProfilePaneOpen] = Profile.usePaneState();\n\n const { data, refetch, isStale } = useFetchNeetoApps();\n\n const profileInfo = getProfileInfo(profileInfoOverrides);\n\n useEffect(() => {\n const Nv = {\n onReceiveData: data => {\n if (!data.unreadCount) return;\n setChangesCount(data.unreadCount);\n },\n onShow: () => {\n setChangesCount(null);\n },\n };\n\n window.Nv = window.Nv ? Object.assign(window.Nv, Nv) : Nv;\n }, []);\n\n useEffect(() => {\n if (!isStale) return;\n refetch();\n }, [isStale]);\n\n const newTopLinks =\n globalProps.appName !== \"neetoAuth\"\n ? [\n ...getDefaultTopLinks(data?.isOwner, setIsProfilePaneOpen),\n ...topLinks,\n ]\n : topLinks;\n\n const newBottomLinks = [...getDefaultBottomLinks(), ...bottomLinks];\n\n const helpLinks = Object.keys(DEFAULT_HELP_LINK_PROPS)\n .map(key => ({ ...DEFAULT_HELP_LINK_PROPS[key] }))\n .filter(({ hide }) => !hide);\n\n const defaultLinks = Object.keys(DEFAULT_MENU_LINK_PROPS)\n .filter(key => DEFAULT_MENU_LINK_PROPS[key].isVisible?.() ?? true)\n .map(key => ({\n ...DEFAULT_MENU_LINK_PROPS[key],\n ...helpLinkOverrides[key],\n ...(key === \"keyboardShortcutProps\" && {\n onClick: () => setIsOpen(prev => !prev),\n }),\n ...(key === \"changelogProps\" && changesCount && { changesCount }),\n }))\n .filter(({ hide }) => !hide);\n\n return (\n <>\n <Profile.Pane />\n <Dropdown\n isMultiLevel\n appendTo={() => document.body}\n buttonStyle=\"link\"\n closeOnSelect={false}\n data-cy=\"floating-action-button\"\n data-testid=\"floating-action-button\"\n icon={noop}\n interactiveDebounce={30}\n offset={[15, 10]}\n position=\"right-end\"\n strategy=\"fixed\"\n theme=\"light\"\n trigger=\"all\"\n zIndex={99999}\n customTarget={\n <button\n className=\"neeto-molecules-floating-action-button\"\n type=\"button\"\n >\n <Avatar\n className=\"neeto-ui-flex-shrink-0 neeto-molecules-floating-action-button__profile-avatar\"\n data-cy=\"profile-avatar\"\n data-testid=\"profile-avatar\"\n size=\"medium\"\n user={profileInfo}\n />\n </button>\n }\n dropdownProps={{\n classNames: \"neeto-molecules-floating-action-button__dropdown\",\n }}\n >\n <ProfileMenu\n {...{\n customContent,\n defaultLinks,\n helpLinks,\n isThemeSwitcherEnabled,\n profileInfo,\n showProductSwitcher,\n }}\n bottomLinks={newBottomLinks}\n toggleModal={setIsModalOpen}\n topLinks={newTopLinks}\n />\n </Dropdown>\n {isPresent(changesCount) && (\n <span\n className=\"neeto-molecules-menu__notif-count\"\n data-cy=\"help-icon-changes-count\"\n data-testid=\"help-icon-changes-count\"\n >\n {changesCount}\n </span>\n )}\n <ProductSwitcherModal\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n />\n </>\n );\n};\n\nexport default ProfileButton;\n","import React, { forwardRef, useEffect } from \"react\";\n\nimport PropTypes from \"prop-types\";\n\nimport ProfileButton from \"./components/ProfileButton\";\nimport \"./floating-action-menu.scss\";\nimport { setAppTheme } from \"./utils\";\n\nconst FloatingActionMenu = forwardRef(\n (\n {\n profileInfoOverrides = {},\n helpLinkOverrides = {},\n topLinks = [],\n bottomLinks = [],\n showProductSwitcher = true,\n isThemeSwitcherEnabled = false,\n customContent,\n ...otherProps\n },\n ref\n ) => {\n useEffect(() => {\n isThemeSwitcherEnabled && setAppTheme();\n }, []);\n\n return (\n <div\n {...{ ref }}\n className=\"neeto-molecules-floating-action-menu__container\"\n data-cy=\"floating-action-menu-container\"\n data-testid=\"floating-action-menu-container\"\n {...otherProps}\n >\n <ProfileButton\n {...{\n bottomLinks,\n customContent,\n helpLinkOverrides,\n isThemeSwitcherEnabled,\n profileInfoOverrides,\n showProductSwitcher,\n topLinks,\n }}\n />\n </div>\n );\n }\n);\n\nFloatingActionMenu.displayName = \"FloatingActionMenu\";\n\nFloatingActionMenu.propTypes = {\n /**\n * To specify the profile info to be rendered in the menu\n */\n profileInfoOverrides: PropTypes.shape({\n name: PropTypes.string,\n email: PropTypes.string,\n imageUrl: PropTypes.string,\n }),\n /**\n * Custom content to be rendered in the menu between the top and bottom links if any\n */\n customContent: PropTypes.element,\n /**\n * Any extra links to be rendered at the top of the menu.\n */\n topLinks: PropTypes.arrayOf(\n PropTypes.shape({\n onClick: PropTypes.func,\n label: PropTypes.string,\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n })\n ),\n /**\n * Any extra links to be rendered at the bottom of the menu.\n */\n bottomLinks: PropTypes.arrayOf(\n PropTypes.shape({\n onClick: PropTypes.func,\n label: PropTypes.string,\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n })\n ),\n /**\n * To override the values in the help links section in the menu.\n */\n helpLinkOverrides: PropTypes.object,\n /**\n * To display the product switcher menu option.\n */\n showProductSwitcher: PropTypes.bool,\n /**\n * To display the app theme switcher above the user profile.\n If this prop is set to `true`, it will set the last selected\n theme to the app when the component is mounted.\n */\n isThemeSwitcherEnabled: PropTypes.bool,\n};\n\nexport default FloatingActionMenu;\n"],"names":["ProductLink","_ref","name","description","url","appName","concat","charAt","slice","toLowerCase","AppIcon","AppIcons","React","createElement","href","rel","target","className","classnames","globalProps","includes","Neeto","Typography","component","style","weight","memo","Menu","_ref$isMobile","isMobile","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","searchTerm","setSearchTerm","_useFetchNeetoApps","useFetchNeetoApps","enabled","data","substring","replace","filteredApps","neetoApps","filter","_ref2","handleSearch","e","value","key","classNames","Input","autoFocus","placeholder","prefix","Search","type","onChange","_defineProperty","length","map","app","_extends","Modal","withT","isOpen","onClose","NeetoUIModal","backdropClassName","size","Header","Body","shouldShowWhatsNew","_window$globalProps","_window$globalProps$u","currentUserEmail","window","user","email","location","hostname","endsWith","MY_ORGANIZATION_URL","CHANGELOG_WIDGET_TRIGGER_ID","MENU_ITEMS_WITH_ICONS","DEFAULT_HELP_LINK_PROPS","helpCenterProps","label","icon","Book","toLower","liveChatProps","Help","onClick","_window$NeetoChat","_window$NeetoChat$con","_window$NeetoChat2","_window$NeetoChat2$co","NeetoChat","contextualHelp","maximizeWidget","openWidget","DEFAULT_MENU_LINK_PROPS","changelogProps","id","isVisible","keyboardShortcutProps","NON_BUTTON_PROPS","APP_THEME_LOCALSTORAGE_KEY","THEMES","LIGHT","DARK","LinkSection","links","MenuItem","Dropdown","isNotPresent","Fragment","idx","Icon","changesCount","otherProps","_objectWithoutProperties","_excluded","Button","undefined","omit","isPresent","MenuButton","isLoading","onMouseEnter","suffix","Spinner","Right","NeetoUIDropdown","isStale","refetchNeetoApps","refetch","closeOnSelect","customTarget","MenuItemButton","disabled","interactiveDebounce","offset","position","trigger","zIndex","dropdownProps","ProductSwitcherMenu","ProductSwitcher","toggleModal","_useBreakpoints","useBreakpoints","isSize","ProfileHeader","profileInfo","Avatar","lineHeight","title","truncate","getSidebarStateLocalStorageKey","_globalProps$user","_globalProps$user2","phoneNumber","getDefaultTopLinks","isOwner","setIsProfilePaneOpen","open","Boolean","getDefaultBottomLinks","resetAuthTokens","removeFromLocalStorage","getProfileInfo","profileInfoOverrides","_globalProps$user3","_globalProps$user4","_globalProps$user5","_globalProps$user6","_globalProps$user7","mergeDeepLeft","firstName","lastName","imageUrl","profileImageUrl","setDarkTheme","document","body","classList","remove","add","setLightTheme","setAppTheme","isDarkTheme","getFromLocalStorage","selectedThemeName","selectedTheme","ThemeSwitcher","_useLocalStorage","useLocalStorage","_useLocalStorage2","appTheme","isDarkThemeSelected","switchTheme","theme","Check","ProfileMenu","showProductSwitcher","helpLinks","defaultLinks","topLinks","bottomLinks","customContent","isThemeSwitcherEnabled","Divider","ProfileButton","helpLinkOverrides","isModalOpen","setIsModalOpen","_useState3","_useState4","setChangesCount","_KeyboardShortcuts$us","KeyboardShortcuts","usePaneState","_KeyboardShortcuts$us2","setIsOpen","_Profile$usePaneState","Profile","_Profile$usePaneState2","useEffect","Nv","onReceiveData","unreadCount","onShow","Object","assign","newTopLinks","_toConsumableArray","newBottomLinks","keys","_objectSpread","hide","_DEFAULT_MENU_LINK_PR","_DEFAULT_MENU_LINK_PR2","_DEFAULT_MENU_LINK_PR3","call","prev","_ref3","Pane","isMultiLevel","appendTo","buttonStyle","noop","strategy","ProductSwitcherModal","FloatingActionMenu","forwardRef","ref","_ref$profileInfoOverr","_ref$helpLinkOverride","_ref$topLinks","_ref$bottomLinks","_ref$showProductSwitc","_ref$isThemeSwitcherE","displayName"],"mappings":"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"}
|