@bigbinary/neeto-molecules 3.7.27 → 3.7.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Builder.js.map +1 -1
- package/dist/CustomDomain.js +1 -4
- package/dist/CustomDomain.js.map +1 -1
- package/dist/CustomDomainDashboard.js +3 -6
- package/dist/CustomDomainDashboard.js.map +1 -1
- package/dist/EmailForm.js +1 -1
- package/dist/EmailForm.js.map +1 -1
- package/dist/FloatingActionMenu.js +137 -27
- package/dist/FloatingActionMenu.js.map +1 -1
- package/dist/IpRestriction.js +1 -1
- package/dist/IpRestriction.js.map +1 -1
- package/dist/MoreDropdown.js +1 -1
- package/dist/MoreDropdown.js.map +1 -1
- package/dist/Onboarding.js.map +1 -1
- package/dist/PublishBlock.js +15 -13
- package/dist/PublishBlock.js.map +1 -1
- package/dist/ToggleFeatureCard.js +7 -3
- package/dist/ToggleFeatureCard.js.map +1 -1
- package/dist/cjs/Builder.js.map +1 -1
- package/dist/cjs/CustomDomain.js +1 -4
- package/dist/cjs/CustomDomain.js.map +1 -1
- package/dist/cjs/CustomDomainDashboard.js +3 -6
- package/dist/cjs/CustomDomainDashboard.js.map +1 -1
- package/dist/cjs/EmailForm.js +1 -1
- package/dist/cjs/EmailForm.js.map +1 -1
- package/dist/cjs/FloatingActionMenu.js +138 -28
- package/dist/cjs/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/IpRestriction.js +1 -1
- package/dist/cjs/IpRestriction.js.map +1 -1
- package/dist/cjs/MoreDropdown.js +1 -1
- package/dist/cjs/MoreDropdown.js.map +1 -1
- package/dist/cjs/Onboarding.js.map +1 -1
- package/dist/cjs/PublishBlock.js +12 -10
- package/dist/cjs/PublishBlock.js.map +1 -1
- package/dist/cjs/ToggleFeatureCard.js +7 -3
- package/dist/cjs/ToggleFeatureCard.js.map +1 -1
- package/dist/cjs/{index-Dfq9GJPm.js → index-C4nGx1kT.js} +6 -5
- package/dist/cjs/index-C4nGx1kT.js.map +1 -0
- package/dist/{index-YZ7vuBmP.js → index-BXT7Ma5O.js} +6 -5
- package/dist/index-BXT7Ma5O.js.map +1 -0
- package/package.json +5 -3
- package/src/translations/en.json +4 -0
- package/types/FloatingActionMenu.d.ts +1 -0
- package/types/Onboarding.d.ts +1 -1
- package/dist/cjs/index-Dfq9GJPm.js.map +0 -1
- package/dist/index-YZ7vuBmP.js.map +0 -1
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/utils.js","../src/components/EmailForm/ReplyToField.jsx","../src/components/EmailForm/SendToField.jsx","../src/components/EmailForm/SubjectField.jsx","../src/components/EmailForm/EmailForm.jsx","../src/components/EmailForm/EmailFormProvider.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport { prop } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const INITIAL_FORM_VALUES = {\n sendTo: [],\n sendToId: \"\",\n sendToCc: [],\n sendToBcc: [],\n replyTo: \"\",\n showCopyEmails: false,\n subject: \"\",\n message: \"\",\n};\n\nexport const EMAIL_FORM_VALIDATION_SCHEMA = yup.object({\n subject: yup\n .string()\n .required(t(\"neetoMolecules.emailForm.errors.subjectRequired\")),\n message: yup\n .string()\n .test(\n \"message\",\n t(\"neetoMolecules.emailForm.errors.messageRequired\"),\n value => !isEditorEmpty(value)\n ),\n});\n\nexport const sendToFieldValidation = maxEmails => {\n const validation = yup\n .array()\n .test(\n \"all-emails-valid\",\n t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"),\n emails => emails?.every(prop(\"valid\"))\n )\n .test(\n \"max-email-count\",\n t(\"neetoMolecules.emailForm.errors.maxEmails\", { count: maxEmails }),\n emails => emails?.length <= maxEmails\n );\n\n return yup.object({\n sendTo: validation\n .min(\n 1,\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.sendToEmailAddress\"),\n })\n )\n .nullable(),\n sendToCc: validation,\n sendToBcc: validation,\n });\n};\n\nexport const SEND_TO_ID_FIELD_VALIDATION = yup.object({\n sendToId: yup.string().required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n })\n ),\n});\n\nexport const REPLY_TO_FIELD_VALIDATION = yup.object({\n replyTo: yup\n .string()\n .nullable()\n .email(t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"))\n .required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.replyToEmailAddress\"),\n })\n ),\n});\n\nexport const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n \"video-embed\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","/* eslint-disable @bigbinary/neeto/use-zustand-for-global-state-management */\nimport { createContext } from \"react\";\n\nconst EmailFormContext = createContext({\n showSendToField: false,\n showSendToAsRadio: false,\n showReplyToField: false,\n});\n\nexport { EmailFormContext };\n","import { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\n\nimport {\n EMAIL_FORM_VALIDATION_SCHEMA,\n REPLY_TO_FIELD_VALIDATION,\n sendToFieldValidation,\n SEND_TO_ID_FIELD_VALIDATION,\n} from \"./constants\";\n\nexport const getValidationSchema = ({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio\n ? SEND_TO_ID_FIELD_VALIDATION\n : sendToFieldValidation(maxEmails)\n );\n }\n\n if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);\n\n return schema.shape(customValidations);\n};\n\nexport const getReplyToFieldLabelProps = ({ popoverProps }) => ({\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n tooltipProps: !isPresent(popoverProps) && {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n touch: [\"hold\", 500],\n },\n popoverProps: isPresent(popoverProps) && {\n ...popoverProps,\n description:\n popoverProps.description ||\n t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n },\n});\n","import { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Select, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getReplyToFieldLabelProps } from \"./utils\";\n\nconst ReplyToField = ({ options = [], popoverProps = {} }) => {\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n\n const isDropdownField = isNotEmpty(options);\n const labelProps = getReplyToFieldLabelProps({ popoverProps });\n\n if (isDropdownField) {\n return (\n <Select\n {...{ labelProps, options }}\n isClearable\n className=\"w-full\"\n data-testid=\"replyToOptions\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n onChange={data => setFieldValue(\"replyTo\", data?.value ?? \"\")}\n />\n );\n }\n\n return (\n <Input\n {...{ labelProps }}\n autoFocus\n required\n className=\"w-full\"\n data-testid=\"replyToInput\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n placeholder={t(\"neetoMolecules.emailForm.placeholders.emailPlaceholder\")}\n size=\"large\"\n onChange={event =>\n setFieldValue(\"replyTo\", event.target.value?.toLowerCase())\n }\n />\n );\n};\n\nexport default ReplyToField;\n","import { useTranslation } from \"react-i18next\";\n\nimport SendToFields from \"components/SendToFields\";\n\nconst SendToField = ({ showBccField, showCcField, showSendToTextField }) => {\n const { t } = useTranslation();\n\n if (!showSendToTextField && !showBccField && !showCcField) return null;\n\n return (\n <SendToFields\n showCcBccButton\n showBccField={showSendToTextField ? false : showBccField}\n showCcField={showSendToTextField ? false : showCcField}\n showSendToField={showSendToTextField}\n bccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.bCc\"),\n name: \"sendToBcc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n ccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.cc\"),\n name: \"sendToCc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n emailInputProps={{\n id: \"sendTo\",\n name: \"sendTo\",\n label: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n required: true,\n }}\n />\n );\n};\n\nexport default SendToField;\n","import { useState } from \"react\";\n\nimport { withEventTargetValue } from \"neetocommons/utils/general\";\nimport { Input, Typography } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport DynamicVariables from \"components/DynamicVariables\";\n\nconst SubjectField = ({\n name,\n text,\n updateText,\n subjectVariables = [],\n error,\n required = false,\n}) => {\n const [isFieldFocusedOnce, setIsFieldFocusedOnce] = useState(false);\n\n const { t } = useTranslation();\n\n const tagClickHandler = ({ key: slug }) => {\n const textAreaElement = document.querySelector(`textarea[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && textAreaElement\n ? textAreaElement.selectionEnd\n : text.length;\n\n const updatedSubject = [\n text.slice(0, splitIndex),\n ` {{${slug}}}`,\n text.slice(splitIndex),\n ].join(\"\");\n updateText(updatedSubject);\n };\n\n return (\n <>\n <Input\n {...{ error, name, required }}\n label={t(\"neetoMolecules.emailForm.labels.subject\")}\n size=\"large\"\n value={text}\n suffix={\n <DynamicVariables\n variables={subjectVariables}\n dropdownProps={{\n className: \"neeto-ui-dropdown__popup overflow-y-auto\",\n buttonSize: \"small\",\n }}\n onVariableClick={tagClickHandler}\n />\n }\n onChange={withEventTargetValue(updateText)}\n onFocus={() => setIsFieldFocusedOnce(true)}\n />\n <Typography\n className=\"neeto-ui-text-gray-600 mt-2\"\n data-cy=\"subject-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n components={{ span: <span className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"subject\" }}\n />\n </Typography>\n </>\n );\n};\n\nexport default SubjectField;\n","import { useContext } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Field, useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { ActionBlock, Radio } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport ReplyToField from \"./ReplyToField\";\nimport SendToField from \"./SendToField\";\nimport SubjectField from \"./SubjectField\";\n\nconst EmailForm = ({\n messageVariables = [],\n subjectVariables = [],\n handleCancel,\n isLoading,\n replyToFieldProps,\n sendToFieldProps,\n replyToOptions,\n sendToOptions = [],\n isUpdating = false,\n showFields = true,\n className = \"\",\n}) => {\n const { t } = useTranslation();\n\n const {\n showSendToField,\n showSendToAsRadio,\n showReplyToField,\n showCcField,\n showBccField,\n } = useContext(EmailFormContext);\n\n const { setFieldValue } = useFormikContext();\n\n const sendToFieldOptions = sendToFieldProps?.options || sendToOptions;\n const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToFieldOptions);\n\n const showSendToTextField = showSendToField && !showSendToRadioField;\n\n return (\n <div\n data-cy=\"email-form\"\n data-testid=\"email-form\"\n className={classnames(\"flex flex-1 flex-col items-start gap-2 !pb-0\", {\n [className]: className,\n })}\n >\n {showFields && (\n <div className=\"flex w-full flex-col items-start justify-start gap-6\">\n <Field name=\"subject\">\n {({ field: { value }, meta: { error } }) => (\n <div className=\"w-full\">\n <SubjectField\n {...{ subjectVariables }}\n required\n error={t(error)}\n name=\"subject\"\n text={value}\n updateText={text => setFieldValue(\"subject\", text)}\n />\n </div>\n )}\n </Field>\n {showSendToRadioField && (\n <Radio\n data-testid=\"send-to-id\"\n label={t(\"neetoMolecules.emailForm.labels.sendTo\")}\n labelProps={{ required: true }}\n name=\"sendToId\"\n >\n {sendToFieldOptions.map(({ label, value }) => (\n <Radio.Item {...{ label, value }} key={value} />\n ))}\n </Radio>\n )}\n <SendToField\n {...{ showBccField, showCcField, showSendToTextField }}\n />\n {showReplyToField && (\n <ReplyToField options={replyToOptions} {...replyToFieldProps} />\n )}\n <div className=\"w-full\">\n <FormikEditor\n isMenuCollapsible\n required\n addons={EDITOR_ADDONS}\n data-cy=\"message-input-field\"\n id=\"form_message\"\n label={t(\"neetoMolecules.emailForm.labels.message\")}\n name=\"message\"\n variables={messageVariables}\n />\n <Typography\n className=\"neeto-ui-text-gray-500 mt-2\"\n data-cy=\"message-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"message\" }}\n components={{\n span: <span className=\"font-semibold\" />,\n }}\n />\n </Typography>\n </div>\n </div>\n )}\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n className=\"neeto-ui-bg-white z-10 w-full justify-start py-6 lg:sticky lg:bottom-0\"\n isSubmitting={isLoading || isUpdating}\n />\n </div>\n );\n};\n\nEmailForm.propTypes = {\n /**\n * This is an array of objects used for templating within the message field. Each object in the array has a **label** and a **key**.\n */\n messageVariables: PropTypes.array,\n /**\n * This is an array of objects used for templating within the subject field. Each object in the array has a **label** and a **key**.\n */\n subjectVariables: PropTypes.array,\n /**\n * This function that gets triggered when the 'Cancel' button is clicked.\n */\n handleCancel: PropTypes.func,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Reply To' field into a dropdown menu with given options. Without this prop, 'Reply To' will be a text input field.\n */\n replyToOptions: PropTypes.array,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Send To' field into a radio group with given options. Without this prop, 'Send To' will be a multi email input field.\n */\n sendToOptions: PropTypes.array,\n /**\n * A Boolean flag indicating whether an update operation is currently in progress. When set to `true`, the 'Save changes' button is disabled.\n */\n isUpdating: PropTypes.bool,\n /**\n * To provide additional classnames to the button.\n */\n className: PropTypes.string,\n /**\n * To provide props to the replyToField. Supports options that will\n * be rendered as the reply to options and popover props.\n */\n replyToFieldProps: PropTypes.object,\n /**\n * To provide props to the sendToField. Supports sendTo options.\n */\n sendToFieldProps: PropTypes.object,\n};\n\nexport default EmailForm;\n","import { noop } from \"neetocist\";\nimport { Form } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\n\nimport { INITIAL_FORM_VALUES } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport { getValidationSchema } from \"./utils\";\n\nconst EmailFormProvider = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema: customValidations = {},\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n showCcField = false,\n showBccField = false,\n maxEmails = 10,\n}) => (\n <div data-testid=\"email-form-provider\">\n <EmailFormContext.Provider\n value={{\n showSendToField,\n showSendToAsRadio,\n showReplyToField,\n showCcField,\n showBccField,\n }}\n >\n <Form\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n }),\n initialValues: {\n ...initialValues,\n replyTo: initialValues.replyTo || globalProps.user.email,\n },\n onSubmit,\n ...formikProps,\n }}\n >\n {children}\n </Form>\n </EmailFormContext.Provider>\n </div>\n);\n\nEmailFormProvider.propTypes = {\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be radio type or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n }),\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n};\n\nexport default EmailFormProvider;\n"],"names":["INITIAL_FORM_VALUES","sendTo","sendToId","sendToCc","sendToBcc","replyTo","showCopyEmails","subject","message","EMAIL_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","test","value","isEditorEmpty","sendToFieldValidation","maxEmails","validation","array","emails","every","prop","count","length","min","entity","nullable","SEND_TO_ID_FIELD_VALIDATION","REPLY_TO_FIELD_VALIDATION","email","EDITOR_ADDONS","EmailFormContext","createContext","showSendToField","showSendToAsRadio","showReplyToField","getValidationSchema","_ref","customValidations","schema","clone","concat","shape","getReplyToFieldLabelProps","_ref2","popoverProps","helpIconProps","_defineProperty","isPresent","content","touch","_objectSpread","description","ReplyToField","_ref$options","options","_ref$popoverProps","_useTranslation","useTranslation","_useFormikContext","useFormikContext","setFieldValue","isDropdownField","isNotEmpty","labelProps","_jsx","Select","isClearable","className","label","name","onChange","data","_data$value","Input","autoFocus","placeholder","size","event","_event$target$value","target","toLowerCase","SendToField","showBccField","showCcField","showSendToTextField","SendToFields","showCcBccButton","bccInputProps","ccInputProps","emailInputProps","id","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","error","_ref$required","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","slug","key","textAreaElement","document","querySelector","splitIndex","selectionEnd","updatedSubject","slice","join","_jsxs","_Fragment","children","suffix","DynamicVariables","variables","dropdownProps","buttonSize","onVariableClick","withEventTargetValue","onFocus","Typography","style","Trans","components","span","i18nKey","values","type","EmailForm","_ref$messageVariables","messageVariables","handleCancel","isLoading","replyToFieldProps","sendToFieldProps","replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$showFields","showFields","_ref$className","_useContext","useContext","sendToFieldOptions","showSendToRadioField","classnames","Field","field","meta","Radio","map","_ref3","_createElement","Item","FormikEditor","isMenuCollapsible","addons","ActionBlock","cancelButtonProps","onClick","isSubmitting","EmailFormProvider","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","_ref$validationSchema","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$showCcField","_ref$showBccField","_ref$maxEmails","Provider","Form","enableReinitialize","globalProps","user"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EmailForm.js","sources":["../src/components/EmailForm/constants.js","../src/components/EmailForm/contexts/EmailForm.js","../src/components/EmailForm/utils.js","../src/components/EmailForm/ReplyToField.jsx","../src/components/EmailForm/SendToField.jsx","../src/components/EmailForm/SubjectField.jsx","../src/components/EmailForm/EmailForm.jsx","../src/components/EmailForm/EmailFormProvider.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport { prop } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const INITIAL_FORM_VALUES = {\n sendTo: [],\n sendToId: \"\",\n sendToCc: [],\n sendToBcc: [],\n replyTo: \"\",\n showCopyEmails: false,\n subject: \"\",\n message: \"\",\n};\n\nexport const EMAIL_FORM_VALIDATION_SCHEMA = yup.object({\n subject: yup\n .string()\n .required(t(\"neetoMolecules.emailForm.errors.subjectRequired\")),\n message: yup\n .string()\n .test(\n \"message\",\n t(\"neetoMolecules.emailForm.errors.messageRequired\"),\n value => !isEditorEmpty(value)\n ),\n});\n\nexport const sendToFieldValidation = maxEmails => {\n const validation = yup\n .array()\n .test(\n \"all-emails-valid\",\n t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"),\n emails => emails?.every(prop(\"valid\"))\n )\n .test(\n \"max-email-count\",\n t(\"neetoMolecules.emailForm.errors.maxEmails\", { count: maxEmails }),\n emails => emails?.length <= maxEmails\n );\n\n return yup.object({\n sendTo: validation\n .min(\n 1,\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.sendToEmailAddress\"),\n })\n )\n .nullable(),\n sendToCc: validation,\n sendToBcc: validation,\n });\n};\n\nexport const SEND_TO_ID_FIELD_VALIDATION = yup.object({\n sendToId: yup.string().required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n })\n ),\n});\n\nexport const REPLY_TO_FIELD_VALIDATION = yup.object({\n replyTo: yup\n .string()\n .nullable()\n .email(t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"))\n .required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.replyToEmailAddress\"),\n })\n ),\n});\n\nexport const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n \"video-embed\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","/* eslint-disable @bigbinary/neeto/use-zustand-for-global-state-management */\nimport { createContext } from \"react\";\n\nconst EmailFormContext = createContext({\n showSendToField: false,\n showSendToAsRadio: false,\n showReplyToField: false,\n});\n\nexport { EmailFormContext };\n","import { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\n\nimport {\n EMAIL_FORM_VALIDATION_SCHEMA,\n REPLY_TO_FIELD_VALIDATION,\n sendToFieldValidation,\n SEND_TO_ID_FIELD_VALIDATION,\n} from \"./constants\";\n\nexport const getValidationSchema = ({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio\n ? SEND_TO_ID_FIELD_VALIDATION\n : sendToFieldValidation(maxEmails)\n );\n }\n\n if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);\n\n return schema.shape(customValidations);\n};\n\nexport const getReplyToFieldLabelProps = ({ popoverProps }) => ({\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n tooltipProps: !isPresent(popoverProps) && {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n touch: [\"hold\", 500],\n },\n popoverProps: isPresent(popoverProps) && {\n ...popoverProps,\n appendTo: \"parent\",\n description:\n popoverProps.description ||\n t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n },\n});\n","import { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Select, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getReplyToFieldLabelProps } from \"./utils\";\n\nconst ReplyToField = ({ options = [], popoverProps = {} }) => {\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n\n const isDropdownField = isNotEmpty(options);\n const labelProps = getReplyToFieldLabelProps({ popoverProps });\n\n if (isDropdownField) {\n return (\n <Select\n {...{ labelProps, options }}\n isClearable\n className=\"w-full\"\n data-testid=\"replyToOptions\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n onChange={data => setFieldValue(\"replyTo\", data?.value ?? \"\")}\n />\n );\n }\n\n return (\n <Input\n {...{ labelProps }}\n autoFocus\n required\n className=\"w-full\"\n data-testid=\"replyToInput\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n placeholder={t(\"neetoMolecules.emailForm.placeholders.emailPlaceholder\")}\n size=\"large\"\n onChange={event =>\n setFieldValue(\"replyTo\", event.target.value?.toLowerCase())\n }\n />\n );\n};\n\nexport default ReplyToField;\n","import { useTranslation } from \"react-i18next\";\n\nimport SendToFields from \"components/SendToFields\";\n\nconst SendToField = ({ showBccField, showCcField, showSendToTextField }) => {\n const { t } = useTranslation();\n\n if (!showSendToTextField && !showBccField && !showCcField) return null;\n\n return (\n <SendToFields\n showCcBccButton\n showBccField={showSendToTextField ? false : showBccField}\n showCcField={showSendToTextField ? false : showCcField}\n showSendToField={showSendToTextField}\n bccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.bCc\"),\n name: \"sendToBcc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n ccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.cc\"),\n name: \"sendToCc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n emailInputProps={{\n id: \"sendTo\",\n name: \"sendTo\",\n label: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n required: true,\n }}\n />\n );\n};\n\nexport default SendToField;\n","import { useState } from \"react\";\n\nimport { withEventTargetValue } from \"neetocommons/utils/general\";\nimport { Input, Typography } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport DynamicVariables from \"components/DynamicVariables\";\n\nconst SubjectField = ({\n name,\n text,\n updateText,\n subjectVariables = [],\n error,\n required = false,\n}) => {\n const [isFieldFocusedOnce, setIsFieldFocusedOnce] = useState(false);\n\n const { t } = useTranslation();\n\n const tagClickHandler = ({ key: slug }) => {\n const textAreaElement = document.querySelector(`textarea[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && textAreaElement\n ? textAreaElement.selectionEnd\n : text.length;\n\n const updatedSubject = [\n text.slice(0, splitIndex),\n ` {{${slug}}}`,\n text.slice(splitIndex),\n ].join(\"\");\n updateText(updatedSubject);\n };\n\n return (\n <>\n <Input\n {...{ error, name, required }}\n label={t(\"neetoMolecules.emailForm.labels.subject\")}\n size=\"large\"\n value={text}\n suffix={\n <DynamicVariables\n variables={subjectVariables}\n dropdownProps={{\n className: \"neeto-ui-dropdown__popup overflow-y-auto\",\n buttonSize: \"small\",\n }}\n onVariableClick={tagClickHandler}\n />\n }\n onChange={withEventTargetValue(updateText)}\n onFocus={() => setIsFieldFocusedOnce(true)}\n />\n <Typography\n className=\"neeto-ui-text-gray-600 mt-2\"\n data-cy=\"subject-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n components={{ span: <span className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"subject\" }}\n />\n </Typography>\n </>\n );\n};\n\nexport default SubjectField;\n","import { useContext } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Field, useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { ActionBlock, Radio } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport ReplyToField from \"./ReplyToField\";\nimport SendToField from \"./SendToField\";\nimport SubjectField from \"./SubjectField\";\n\nconst EmailForm = ({\n messageVariables = [],\n subjectVariables = [],\n handleCancel,\n isLoading,\n replyToFieldProps,\n sendToFieldProps,\n replyToOptions,\n sendToOptions = [],\n isUpdating = false,\n showFields = true,\n className = \"\",\n}) => {\n const { t } = useTranslation();\n\n const {\n showSendToField,\n showSendToAsRadio,\n showReplyToField,\n showCcField,\n showBccField,\n } = useContext(EmailFormContext);\n\n const { setFieldValue } = useFormikContext();\n\n const sendToFieldOptions = sendToFieldProps?.options || sendToOptions;\n const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToFieldOptions);\n\n const showSendToTextField = showSendToField && !showSendToRadioField;\n\n return (\n <div\n data-cy=\"email-form\"\n data-testid=\"email-form\"\n className={classnames(\"flex flex-1 flex-col items-start gap-2 !pb-0\", {\n [className]: className,\n })}\n >\n {showFields && (\n <div className=\"flex w-full flex-col items-start justify-start gap-6\">\n <Field name=\"subject\">\n {({ field: { value }, meta: { error } }) => (\n <div className=\"w-full\">\n <SubjectField\n {...{ subjectVariables }}\n required\n error={t(error)}\n name=\"subject\"\n text={value}\n updateText={text => setFieldValue(\"subject\", text)}\n />\n </div>\n )}\n </Field>\n {showSendToRadioField && (\n <Radio\n data-testid=\"send-to-id\"\n label={t(\"neetoMolecules.emailForm.labels.sendTo\")}\n labelProps={{ required: true }}\n name=\"sendToId\"\n >\n {sendToFieldOptions.map(({ label, value }) => (\n <Radio.Item {...{ label, value }} key={value} />\n ))}\n </Radio>\n )}\n <SendToField\n {...{ showBccField, showCcField, showSendToTextField }}\n />\n {showReplyToField && (\n <ReplyToField options={replyToOptions} {...replyToFieldProps} />\n )}\n <div className=\"w-full\">\n <FormikEditor\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=\"neeto-ui-bg-white z-10 w-full justify-start py-6 lg:sticky lg:bottom-0\"\n isSubmitting={isLoading || isUpdating}\n />\n </div>\n );\n};\n\nEmailForm.propTypes = {\n /**\n * This is an array of objects used for templating within the message field. Each object in the array has a **label** and a **key**.\n */\n messageVariables: PropTypes.array,\n /**\n * This is an array of objects used for templating within the subject field. Each object in the array has a **label** and a **key**.\n */\n subjectVariables: PropTypes.array,\n /**\n * This function that gets triggered when the 'Cancel' button is clicked.\n */\n handleCancel: PropTypes.func,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Reply To' field into a dropdown menu with given options. Without this prop, 'Reply To' will be a text input field.\n */\n replyToOptions: PropTypes.array,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Send To' field into a radio group with given options. Without this prop, 'Send To' will be a multi email input field.\n */\n sendToOptions: PropTypes.array,\n /**\n * A Boolean flag indicating whether an update operation is currently in progress. When set to `true`, the 'Save changes' button is disabled.\n */\n isUpdating: PropTypes.bool,\n /**\n * To provide additional classnames to the button.\n */\n className: PropTypes.string,\n /**\n * To provide props to the replyToField. Supports options that will\n * be rendered as the reply to options and popover props.\n */\n replyToFieldProps: PropTypes.object,\n /**\n * To provide props to the sendToField. Supports sendTo options.\n */\n sendToFieldProps: PropTypes.object,\n};\n\nexport default EmailForm;\n","import { noop } from \"neetocist\";\nimport { Form } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\n\nimport { INITIAL_FORM_VALUES } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport { getValidationSchema } from \"./utils\";\n\nconst EmailFormProvider = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema: customValidations = {},\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n showCcField = false,\n showBccField = false,\n maxEmails = 10,\n}) => (\n <div data-testid=\"email-form-provider\">\n <EmailFormContext.Provider\n value={{\n showSendToField,\n showSendToAsRadio,\n showReplyToField,\n showCcField,\n showBccField,\n }}\n >\n <Form\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n }),\n initialValues: {\n ...initialValues,\n replyTo: initialValues.replyTo || globalProps.user.email,\n },\n onSubmit,\n ...formikProps,\n }}\n >\n {children}\n </Form>\n </EmailFormContext.Provider>\n </div>\n);\n\nEmailFormProvider.propTypes = {\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be radio type or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n }),\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n};\n\nexport default EmailFormProvider;\n"],"names":["INITIAL_FORM_VALUES","sendTo","sendToId","sendToCc","sendToBcc","replyTo","showCopyEmails","subject","message","EMAIL_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","test","value","isEditorEmpty","sendToFieldValidation","maxEmails","validation","array","emails","every","prop","count","length","min","entity","nullable","SEND_TO_ID_FIELD_VALIDATION","REPLY_TO_FIELD_VALIDATION","email","EDITOR_ADDONS","EmailFormContext","createContext","showSendToField","showSendToAsRadio","showReplyToField","getValidationSchema","_ref","customValidations","schema","clone","concat","shape","getReplyToFieldLabelProps","_ref2","popoverProps","helpIconProps","_defineProperty","isPresent","content","touch","_objectSpread","appendTo","description","ReplyToField","_ref$options","options","_ref$popoverProps","_useTranslation","useTranslation","_useFormikContext","useFormikContext","setFieldValue","isDropdownField","isNotEmpty","labelProps","_jsx","Select","isClearable","className","label","name","onChange","data","_data$value","Input","autoFocus","placeholder","size","event","_event$target$value","target","toLowerCase","SendToField","showBccField","showCcField","showSendToTextField","SendToFields","showCcBccButton","bccInputProps","ccInputProps","emailInputProps","id","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","error","_ref$required","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","slug","key","textAreaElement","document","querySelector","splitIndex","selectionEnd","updatedSubject","slice","join","_jsxs","_Fragment","children","suffix","DynamicVariables","variables","dropdownProps","buttonSize","onVariableClick","withEventTargetValue","onFocus","Typography","style","Trans","components","span","i18nKey","values","type","EmailForm","_ref$messageVariables","messageVariables","handleCancel","isLoading","replyToFieldProps","sendToFieldProps","replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$showFields","showFields","_ref$className","_useContext","useContext","sendToFieldOptions","showSendToRadioField","classnames","Field","field","meta","Radio","map","_ref3","_createElement","Item","FormikEditor","addons","ActionBlock","cancelButtonProps","onClick","isSubmitting","EmailFormProvider","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","_ref$validationSchema","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$showCcField","_ref$showBccField","_ref$maxEmails","Provider","Form","enableReinitialize","globalProps","user"],"mappings":"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"}
|
|
@@ -21,10 +21,14 @@ import { n } from './inject-css-DmrvuTKK.js';
|
|
|
21
21
|
import Neeto from '@bigbinary/neeto-icons/typeface-logos/Neeto';
|
|
22
22
|
import * as AppIcons from '@bigbinary/neeto-icons/typeface-logos';
|
|
23
23
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
24
|
-
import { toLower, omit,
|
|
24
|
+
import { toLower, omit, mergeDeepLeft } from 'ramda';
|
|
25
25
|
import { t } from 'i18next';
|
|
26
26
|
import Book from '@bigbinary/neeto-icons/Book';
|
|
27
|
+
import { globalProps as globalProps$1 } from '@bigbinary/neeto-commons-frontend/initializers';
|
|
27
28
|
import useBreakpoints from '@bigbinary/neeto-commons-frontend/react-utils/useBreakpoints';
|
|
29
|
+
import ExternalLink from '@bigbinary/neeto-icons/ExternalLink';
|
|
30
|
+
import { useQuery } from '@tanstack/react-query';
|
|
31
|
+
import axios from 'axios';
|
|
28
32
|
import Right from '@bigbinary/neeto-icons/Right';
|
|
29
33
|
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
30
34
|
import useLocalStorage from '@bigbinary/neeto-commons-frontend/react-utils/useLocalStorage';
|
|
@@ -83,7 +87,7 @@ var ProductLink$1 = /*#__PURE__*/memo(ProductLink);
|
|
|
83
87
|
|
|
84
88
|
function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
85
89
|
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
86
|
-
var Menu$
|
|
90
|
+
var Menu$3 = function Menu(_ref) {
|
|
87
91
|
var _ref$isMobile = _ref.isMobile,
|
|
88
92
|
isMobile = _ref$isMobile === void 0 ? false : _ref$isMobile;
|
|
89
93
|
var _useTranslation = useTranslation(),
|
|
@@ -163,7 +167,7 @@ var Modal = withT(function (_ref) {
|
|
|
163
167
|
children: /*#__PURE__*/jsx("div", {
|
|
164
168
|
className: "neeto-molecules-product-switcher_modal-container",
|
|
165
169
|
"data-testid": "product-switcher-modal",
|
|
166
|
-
children: /*#__PURE__*/jsx(Menu$
|
|
170
|
+
children: /*#__PURE__*/jsx(Menu$3, {
|
|
167
171
|
isMobile: true
|
|
168
172
|
})
|
|
169
173
|
})
|
|
@@ -253,6 +257,104 @@ var LinkSection = function LinkSection(_ref) {
|
|
|
253
257
|
});
|
|
254
258
|
};
|
|
255
259
|
|
|
260
|
+
var fetch = function fetch(email) {
|
|
261
|
+
return axios.get("/logged_in_organizations", {
|
|
262
|
+
params: {
|
|
263
|
+
email: email
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
};
|
|
267
|
+
var loggedInOrganizationsApi = {
|
|
268
|
+
fetch: fetch
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
var QUERY_KEYS = {
|
|
272
|
+
LOGGED_IN_ORGANIZATIONS_LIST: "logged-in-organizations-list"
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
var LOGGED_IN_ORGANIZATIONS_LIST = QUERY_KEYS.LOGGED_IN_ORGANIZATIONS_LIST;
|
|
276
|
+
var useFetchLoggedInOrganizations = function useFetchLoggedInOrganizations(email) {
|
|
277
|
+
return useQuery({
|
|
278
|
+
queryKey: [LOGGED_IN_ORGANIZATIONS_LIST],
|
|
279
|
+
queryFn: function queryFn() {
|
|
280
|
+
return loggedInOrganizationsApi.fetch(email);
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
var MenuItem$4 = Dropdown$1.MenuItem;
|
|
286
|
+
var MenuButton$2 = withT(function (_ref) {
|
|
287
|
+
var t = _ref.t;
|
|
288
|
+
return /*#__PURE__*/jsx(MenuItem$4.Button, {
|
|
289
|
+
className: "neeto-molecules-menu-sublist__item-btn",
|
|
290
|
+
"data-cy": "organization-switcher-button",
|
|
291
|
+
"data-testid": "organization-switcher-button",
|
|
292
|
+
style: "text",
|
|
293
|
+
suffix: /*#__PURE__*/jsx(Right, {
|
|
294
|
+
size: 18
|
|
295
|
+
}),
|
|
296
|
+
children: t("neetoMolecules.sidebar.organizationSwitcher.label")
|
|
297
|
+
});
|
|
298
|
+
});
|
|
299
|
+
|
|
300
|
+
var Menu$2 = Dropdown$1.Menu,
|
|
301
|
+
MenuItem$3 = Dropdown$1.MenuItem;
|
|
302
|
+
var OrganizationSwitcher = function OrganizationSwitcher() {
|
|
303
|
+
var _globalProps$user;
|
|
304
|
+
var _useTranslation = useTranslation(),
|
|
305
|
+
t = _useTranslation.t;
|
|
306
|
+
var _useBreakpoints = useBreakpoints(),
|
|
307
|
+
isSize = _useBreakpoints.isSize;
|
|
308
|
+
var _useFetchLoggedInOrga = useFetchLoggedInOrganizations(globalProps$1 === null || globalProps$1 === void 0 ? void 0 : (_globalProps$user = globalProps$1.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.email),
|
|
309
|
+
_useFetchLoggedInOrga2 = _useFetchLoggedInOrga.data,
|
|
310
|
+
_useFetchLoggedInOrga3 = _useFetchLoggedInOrga2 === void 0 ? {} : _useFetchLoggedInOrga2,
|
|
311
|
+
organizations = _useFetchLoggedInOrga3.organizations,
|
|
312
|
+
authAppUrl = _useFetchLoggedInOrga3.authAppUrl;
|
|
313
|
+
var isMobile = isSize("mobile");
|
|
314
|
+
var isCurrentSubdomain = function isCurrentSubdomain(link) {
|
|
315
|
+
var currentSubdomain = window.location.hostname.split(".")[0];
|
|
316
|
+
var linkSubdomain = new URL(link).hostname.split(".")[0];
|
|
317
|
+
return currentSubdomain === linkSubdomain;
|
|
318
|
+
};
|
|
319
|
+
return /*#__PURE__*/jsx(Dropdown$1, {
|
|
320
|
+
className: "neeto-molecules-theme-switcher-menu-popup-wrapper",
|
|
321
|
+
closeOnSelect: false,
|
|
322
|
+
customTarget: /*#__PURE__*/jsx(MenuButton$2, {}),
|
|
323
|
+
interactiveDebounce: 30,
|
|
324
|
+
offset: [0, 5],
|
|
325
|
+
position: isMobile ? "bottom" : "right",
|
|
326
|
+
trigger: "all",
|
|
327
|
+
zIndex: 99999,
|
|
328
|
+
children: /*#__PURE__*/jsxs(Menu$2, {
|
|
329
|
+
children: [organizations === null || organizations === void 0 ? void 0 : organizations.map(function (organization) {
|
|
330
|
+
return /*#__PURE__*/jsxs(MenuItem$3.Button, {
|
|
331
|
+
href: organization.organizationUrl,
|
|
332
|
+
rel: "noreferrer",
|
|
333
|
+
style: "text",
|
|
334
|
+
suffix: /*#__PURE__*/jsx(ExternalLink, {
|
|
335
|
+
size: 18
|
|
336
|
+
}),
|
|
337
|
+
target: "_blank",
|
|
338
|
+
className: classnames({
|
|
339
|
+
"neeto-molecules-organization-switcher-active-button": isCurrentSubdomain(organization.organizationUrl)
|
|
340
|
+
}),
|
|
341
|
+
children: [/*#__PURE__*/jsx(Avatar, {
|
|
342
|
+
user: {
|
|
343
|
+
name: organization.userName,
|
|
344
|
+
imageUrl: organization.userImageUrl
|
|
345
|
+
}
|
|
346
|
+
}), organization.orgName]
|
|
347
|
+
}, organization.userId);
|
|
348
|
+
}), /*#__PURE__*/jsx(MenuItem$3.Button, {
|
|
349
|
+
href: authAppUrl,
|
|
350
|
+
rel: "noreferrer",
|
|
351
|
+
target: "_blank",
|
|
352
|
+
children: t("neetoMolecules.sidebar.organizationSwitcher.addAccount")
|
|
353
|
+
})]
|
|
354
|
+
})
|
|
355
|
+
});
|
|
356
|
+
};
|
|
357
|
+
|
|
256
358
|
var _excluded$1 = ["isLoading", "onMouseEnter"];
|
|
257
359
|
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
258
360
|
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -278,9 +380,9 @@ var MenuButton$1 = function MenuButton(_ref) {
|
|
|
278
380
|
}));
|
|
279
381
|
};
|
|
280
382
|
|
|
383
|
+
var Menu$1 = Dropdown$1.Menu,
|
|
384
|
+
MenuItem$2 = Dropdown$1.MenuItem;
|
|
281
385
|
var Dropdown = function Dropdown() {
|
|
282
|
-
var Menu = Dropdown$1.Menu,
|
|
283
|
-
MenuItem = Dropdown$1.MenuItem;
|
|
284
386
|
var _useFetchNeetoApps = useFetchNeetoApps(),
|
|
285
387
|
data = _useFetchNeetoApps.data,
|
|
286
388
|
isLoading = _useFetchNeetoApps.isLoading,
|
|
@@ -291,6 +393,7 @@ var Dropdown = function Dropdown() {
|
|
|
291
393
|
refetchNeetoApps();
|
|
292
394
|
};
|
|
293
395
|
return /*#__PURE__*/jsx(Dropdown$1, {
|
|
396
|
+
appendTo: "parent",
|
|
294
397
|
className: "neeto-molecules-product-switcher-menu-popup-wrapper",
|
|
295
398
|
closeOnSelect: false,
|
|
296
399
|
customTarget: /*#__PURE__*/jsx(MenuButton$1, {
|
|
@@ -307,9 +410,9 @@ var Dropdown = function Dropdown() {
|
|
|
307
410
|
dropdownProps: {
|
|
308
411
|
classNames: "neeto-molecules-product-switcher-menu-popup__dropdown"
|
|
309
412
|
},
|
|
310
|
-
children: /*#__PURE__*/jsx(Menu, {
|
|
311
|
-
children: /*#__PURE__*/jsx(MenuItem, {
|
|
312
|
-
children: /*#__PURE__*/jsx(Menu$
|
|
413
|
+
children: /*#__PURE__*/jsx(Menu$1, {
|
|
414
|
+
children: /*#__PURE__*/jsx(MenuItem$2, {
|
|
415
|
+
children: /*#__PURE__*/jsx(Menu$3, {})
|
|
313
416
|
})
|
|
314
417
|
})
|
|
315
418
|
});
|
|
@@ -369,22 +472,25 @@ var getSidebarStateLocalStorageKey = function getSidebarStateLocalStorageKey() {
|
|
|
369
472
|
return "sidebarState-".concat(user);
|
|
370
473
|
};
|
|
371
474
|
var getDefaultTopLinks = function getDefaultTopLinks(isOwner, setIsProfilePaneOpen, isAuthenticated) {
|
|
372
|
-
return [
|
|
475
|
+
if (!isAuthenticated) return [];
|
|
476
|
+
var topLinks = [{
|
|
373
477
|
label: t("neetoMolecules.sidebar.myProfile"),
|
|
374
478
|
onClick: function onClick() {
|
|
375
479
|
return setIsProfilePaneOpen(true);
|
|
376
480
|
},
|
|
377
481
|
"data-cy": "my-profile-button",
|
|
378
|
-
"data-testid": "my-profile-button"
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
482
|
+
"data-testid": "my-profile-button"
|
|
483
|
+
}];
|
|
484
|
+
if (isOwner) {
|
|
485
|
+
topLinks.push({
|
|
486
|
+
label: t("neetoMolecules.sidebar.myWorkspace"),
|
|
487
|
+
onClick: function onClick() {
|
|
488
|
+
return window.open(MY_ORGANIZATION_URL, "_self");
|
|
489
|
+
},
|
|
490
|
+
"data-cy": "profile-organization-settings-button"
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
return topLinks;
|
|
388
494
|
};
|
|
389
495
|
var getDefaultBottomLinks = function getDefaultBottomLinks(isAuthenticated) {
|
|
390
496
|
return [isAuthenticated ? {
|
|
@@ -466,6 +572,7 @@ var ThemeSwitcher = function ThemeSwitcher() {
|
|
|
466
572
|
setAppTheme(theme);
|
|
467
573
|
};
|
|
468
574
|
return /*#__PURE__*/jsx(Dropdown$1, {
|
|
575
|
+
appendTo: "parent",
|
|
469
576
|
className: "neeto-molecules-theme-switcher-menu-popup-wrapper",
|
|
470
577
|
closeOnSelect: false,
|
|
471
578
|
customTarget: /*#__PURE__*/jsx(MenuButton, {
|
|
@@ -513,7 +620,8 @@ var ProfileMenu = function ProfileMenu(_ref) {
|
|
|
513
620
|
bottomLinks = _ref.bottomLinks,
|
|
514
621
|
customContent = _ref.customContent,
|
|
515
622
|
toggleModal = _ref.toggleModal,
|
|
516
|
-
isThemeSwitcherEnabled = _ref.isThemeSwitcherEnabled
|
|
623
|
+
isThemeSwitcherEnabled = _ref.isThemeSwitcherEnabled,
|
|
624
|
+
isOrganizationSwitcherEnabled = _ref.isOrganizationSwitcherEnabled;
|
|
517
625
|
var Menu = Dropdown$1.Menu,
|
|
518
626
|
MenuItem = Dropdown$1.MenuItem,
|
|
519
627
|
Divider = Dropdown$1.Divider;
|
|
@@ -529,7 +637,7 @@ var ProfileMenu = function ProfileMenu(_ref) {
|
|
|
529
637
|
})
|
|
530
638
|
}), showProductSwitcher && /*#__PURE__*/jsx(ProductSwitcher, {
|
|
531
639
|
toggleModal: toggleModal
|
|
532
|
-
}), isThemeSwitcherEnabled && /*#__PURE__*/jsx(ThemeSwitcher, {}), isNotEmpty(topLinks) && /*#__PURE__*/jsxs(Fragment, {
|
|
640
|
+
}), isOrganizationSwitcherEnabled && /*#__PURE__*/jsx(OrganizationSwitcher, {}), isThemeSwitcherEnabled && /*#__PURE__*/jsx(ThemeSwitcher, {}), isNotEmpty(topLinks) && /*#__PURE__*/jsxs(Fragment, {
|
|
533
641
|
children: [/*#__PURE__*/jsx(Divider, {}), /*#__PURE__*/jsx(LinkSection, {
|
|
534
642
|
links: topLinks
|
|
535
643
|
})]
|
|
@@ -557,7 +665,8 @@ var ProfileButton = function ProfileButton(_ref) {
|
|
|
557
665
|
bottomLinks = _ref.bottomLinks,
|
|
558
666
|
topLinks = _ref.topLinks,
|
|
559
667
|
customContent = _ref.customContent,
|
|
560
|
-
isThemeSwitcherEnabled = _ref.isThemeSwitcherEnabled
|
|
668
|
+
isThemeSwitcherEnabled = _ref.isThemeSwitcherEnabled,
|
|
669
|
+
isOrganizationSwitcherEnabled = _ref.isOrganizationSwitcherEnabled;
|
|
561
670
|
var _useState = useState(false),
|
|
562
671
|
_useState2 = _slicedToArray(_useState, 2),
|
|
563
672
|
isModalOpen = _useState2[0],
|
|
@@ -620,14 +729,11 @@ var ProfileButton = function ProfileButton(_ref) {
|
|
|
620
729
|
});
|
|
621
730
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
622
731
|
children: [/*#__PURE__*/jsx(Profile.Pane, {}), /*#__PURE__*/jsx(Dropdown$1, {
|
|
623
|
-
isMultiLevel: true,
|
|
624
732
|
appendTo: function appendTo() {
|
|
625
733
|
return document.body;
|
|
626
734
|
},
|
|
627
735
|
buttonStyle: "link",
|
|
628
736
|
closeOnSelect: false,
|
|
629
|
-
"data-cy": "floating-action-button",
|
|
630
|
-
"data-testid": "floating-action-button",
|
|
631
737
|
icon: noop,
|
|
632
738
|
interactiveDebounce: 30,
|
|
633
739
|
offset: [15, 10],
|
|
@@ -659,6 +765,7 @@ var ProfileButton = function ProfileButton(_ref) {
|
|
|
659
765
|
customContent: customContent,
|
|
660
766
|
defaultLinks: defaultLinks,
|
|
661
767
|
helpLinks: helpLinks,
|
|
768
|
+
isOrganizationSwitcherEnabled: isOrganizationSwitcherEnabled,
|
|
662
769
|
isThemeSwitcherEnabled: isThemeSwitcherEnabled,
|
|
663
770
|
profileInfo: profileInfo,
|
|
664
771
|
showProductSwitcher: showProductSwitcher,
|
|
@@ -680,10 +787,10 @@ var ProfileButton = function ProfileButton(_ref) {
|
|
|
680
787
|
});
|
|
681
788
|
};
|
|
682
789
|
|
|
683
|
-
var css = ":root{--neeto-molecules-floating-menu-z-index:99999}.neeto-molecules-floating-action-menu__container{background-color:rgb(var(--neeto-ui-white));border:1px solid rgb(var(--neeto-ui-white));border-bottom-right-radius:17px;border-left:none;border-top-right-radius:17px;bottom:16px;left:0;position:fixed;z-index:99999;z-index:var(--neeto-molecules-floating-menu-z-index)}.neeto-molecules-floating-action-button{align-items:center;background-color:rgb(var(--neeto-ui-primary-500));border-bottom-right-radius:16px;border-color:rgb(var(--neeto-ui-primary-500));border-top-right-radius:16px;display:flex;flex-direction:column;gap:6px;justify-content:center;padding:4px}.neeto-molecules-floating-action-button__help-icon{align-items:center;background-color:#fff;border-radius:100px;display:flex;height:26px;justify-content:center;width:26px}.neeto-molecules-floating-action-button__profile-avatar{--neeto-ui-avatar-container-width:26px;--neeto-ui-avatar-container-height:26px;border:2px solid #fff;border-radius:100px}.neeto-molecules-floating-action-button__profile-avatar>div{height:100%;width:100%}.neeto-molecules-floating-action-button__profile-avatar .neeto-ui-avatar{height:100%!important;width:100%!important}.neeto-molecules-floating-action-button__dropdown{flex-shrink:0;max-height:none!important;max-width:none;width:256px;z-index:99999;z-index:var(--neeto-molecules-floating-menu-z-index)}.neeto-molecules-floating-action-button__dropdown ul{padding-top:0!important}.neeto-molecules-product-switcher-menu-popup__dropdown{max-height:none!important;max-width:none}.neeto-molecules-menu__notif-count{border:1px solid #fff;height:15px;min-width:15px;pointer-events:none;position:absolute;right:0;top:0;z-index:3}.neeto-molecules-menu-list__item-btn-count,.neeto-molecules-menu__notif-count{align-items:center;background-color:rgb(var(--neeto-ui-accent-500));border-radius:var(--neeto-ui-rounded-full);color:rgb(var(--neeto-ui-white));display:flex;flex-shrink:0;font-size:var(--neeto-ui-text-xxs);justify-content:center;padding-left:4px;padding-right:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.neeto-molecules-menu-list__item-btn-count{height:18px;min-width:18px}.neeto-ui-dropdown__popup .neeto-molecules-product-switcher-menu-popup-wrapper{border:1px solid rgb(var(--neeto-ui-gray-400));border-radius:var(--neeto-ui-rounded)!important;min-width:240px}.neeto-ui-dropdown__popup .neeto-molecules-product-switcher-menu-popup-wrapper .tippy-content{padding:0}.neeto-ui-dropdown__popup .neeto-molecules-product-switcher-menu-popup-wrapper .tippy-svg-arrow{display:none!important}.neeto-molecules-profile-popup__top-section{border-top-left-radius:var(--neeto-ui-rounded);border-top-right-radius:var(--neeto-ui-rounded)}.neeto-molecules-menu-sublist__item-btn{font-weight:500!important;height:40px}.neeto-molecules-menu-sublist__item-btn[data-btn-weight=bold]{font-weight:700!important}.neeto-molecules-menu-sublist__item-btn.active{background-color:rgb(var(--neeto-ui-gray-800));color:rgb(var(--neeto-ui-white))}.neeto-molecules-menu-sublist__item-btn-icon svg path{vector-effect:non-scaling-stroke}.neeto-molecules-menu-sublist__item-btn span{align-items:center;display:flex;gap:8px}.neeto-molecules-product-switcher-menu-popup-wrapper{height:95vh;overflow-y:auto;width:calc(100vw - 400px)}.neeto-molecules-floating-action-button__profile-wrapper-custom-content:hover{background-color:rgb(var(--neeto-ui-white))!important}.neeto-molecules-theme-switcher-menu-popup-wrapper .neeto-ui-dropdown__popup-menu{padding-top:4px!important}.neeto-molecules-theme-switcher-active-button{color:rgb(var(--neeto-ui-success-600))!important}";
|
|
790
|
+
var css = ":root{--neeto-molecules-floating-menu-z-index:99999}.neeto-molecules-floating-action-menu__container{background-color:rgb(var(--neeto-ui-white));border:1px solid rgb(var(--neeto-ui-white));border-bottom-right-radius:17px;border-left:none;border-top-right-radius:17px;bottom:16px;left:0;position:fixed;z-index:99999;z-index:var(--neeto-molecules-floating-menu-z-index)}.neeto-molecules-floating-action-button{align-items:center;background-color:rgb(var(--neeto-ui-primary-500));border-bottom-right-radius:16px;border-color:rgb(var(--neeto-ui-primary-500));border-top-right-radius:16px;display:flex;flex-direction:column;gap:6px;justify-content:center;padding:4px}.neeto-molecules-floating-action-button__help-icon{align-items:center;background-color:#fff;border-radius:100px;display:flex;height:26px;justify-content:center;width:26px}.neeto-molecules-floating-action-button__profile-avatar{--neeto-ui-avatar-container-width:26px;--neeto-ui-avatar-container-height:26px;border:2px solid #fff;border-radius:100px}.neeto-molecules-floating-action-button__profile-avatar>div{height:100%;width:100%}.neeto-molecules-floating-action-button__profile-avatar .neeto-ui-avatar{height:100%!important;width:100%!important}.neeto-molecules-floating-action-button__dropdown{flex-shrink:0;max-height:none!important;max-width:none;width:256px;z-index:99999;z-index:var(--neeto-molecules-floating-menu-z-index)}.neeto-molecules-floating-action-button__dropdown ul{padding-top:0!important}.neeto-molecules-product-switcher-menu-popup__dropdown{max-height:none!important;max-width:none}.neeto-molecules-menu__notif-count{border:1px solid #fff;height:15px;min-width:15px;pointer-events:none;position:absolute;right:0;top:0;z-index:3}.neeto-molecules-menu-list__item-btn-count,.neeto-molecules-menu__notif-count{align-items:center;background-color:rgb(var(--neeto-ui-accent-500));border-radius:var(--neeto-ui-rounded-full);color:rgb(var(--neeto-ui-white));display:flex;flex-shrink:0;font-size:var(--neeto-ui-text-xxs);justify-content:center;padding-left:4px;padding-right:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.neeto-molecules-menu-list__item-btn-count{height:18px;min-width:18px}.neeto-ui-dropdown__popup .neeto-molecules-product-switcher-menu-popup-wrapper{border:1px solid rgb(var(--neeto-ui-gray-400));border-radius:var(--neeto-ui-rounded)!important;min-width:240px}.neeto-ui-dropdown__popup .neeto-molecules-product-switcher-menu-popup-wrapper .tippy-content{padding:0}.neeto-ui-dropdown__popup .neeto-molecules-product-switcher-menu-popup-wrapper .tippy-svg-arrow{display:none!important}.neeto-molecules-profile-popup__top-section{border-top-left-radius:var(--neeto-ui-rounded);border-top-right-radius:var(--neeto-ui-rounded)}.neeto-molecules-menu-sublist__item-btn{font-weight:500!important;height:40px}.neeto-molecules-menu-sublist__item-btn[data-btn-weight=bold]{font-weight:700!important}.neeto-molecules-menu-sublist__item-btn.active{background-color:rgb(var(--neeto-ui-gray-800));color:rgb(var(--neeto-ui-white))}.neeto-molecules-menu-sublist__item-btn-icon svg path{vector-effect:non-scaling-stroke}.neeto-molecules-menu-sublist__item-btn span{align-items:center;display:flex;gap:8px}.neeto-molecules-product-switcher-menu-popup-wrapper{height:95vh;overflow-y:auto;width:calc(100vw - 400px)}.neeto-molecules-floating-action-button__profile-wrapper-custom-content:hover{background-color:rgb(var(--neeto-ui-white))!important}.neeto-molecules-theme-switcher-menu-popup-wrapper .neeto-ui-dropdown__popup-menu{padding-top:4px!important}.neeto-molecules-organization-switcher-active-button,.neeto-molecules-theme-switcher-active-button{color:rgb(var(--neeto-ui-success-600))!important}";
|
|
684
791
|
n(css,{});
|
|
685
792
|
|
|
686
|
-
var _excluded = ["profileInfoOverrides", "helpLinkOverrides", "topLinks", "bottomLinks", "showProductSwitcher", "isThemeSwitcherEnabled", "customContent"];
|
|
793
|
+
var _excluded = ["profileInfoOverrides", "helpLinkOverrides", "topLinks", "bottomLinks", "showProductSwitcher", "isThemeSwitcherEnabled", "isOrganizationSwitcherEnabled", "customContent"];
|
|
687
794
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
688
795
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
689
796
|
var FloatingActionMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
@@ -699,6 +806,8 @@ var FloatingActionMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
699
806
|
showProductSwitcher = _ref$showProductSwitc === void 0 ? true : _ref$showProductSwitc,
|
|
700
807
|
_ref$isThemeSwitcherE = _ref.isThemeSwitcherEnabled,
|
|
701
808
|
isThemeSwitcherEnabled = _ref$isThemeSwitcherE === void 0 ? false : _ref$isThemeSwitcherE,
|
|
809
|
+
_ref$isOrganizationSw = _ref.isOrganizationSwitcherEnabled,
|
|
810
|
+
isOrganizationSwitcherEnabled = _ref$isOrganizationSw === void 0 ? false : _ref$isOrganizationSw,
|
|
702
811
|
customContent = _ref.customContent,
|
|
703
812
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
704
813
|
useEffect(function () {
|
|
@@ -714,6 +823,7 @@ var FloatingActionMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
714
823
|
bottomLinks: bottomLinks,
|
|
715
824
|
customContent: customContent,
|
|
716
825
|
helpLinkOverrides: helpLinkOverrides,
|
|
826
|
+
isOrganizationSwitcherEnabled: isOrganizationSwitcherEnabled,
|
|
717
827
|
isThemeSwitcherEnabled: isThemeSwitcherEnabled,
|
|
718
828
|
profileInfoOverrides: profileInfoOverrides,
|
|
719
829
|
showProductSwitcher: showProductSwitcher,
|