@bigbinary/neeto-molecules 4.0.93 → 4.0.95

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.
Files changed (42) hide show
  1. package/dist/AuditLogs.js +376 -434
  2. package/dist/AuditLogs.js.map +1 -1
  3. package/dist/EmailForm.js +20 -5
  4. package/dist/EmailForm.js.map +1 -1
  5. package/dist/cjs/AuditLogs.js +373 -431
  6. package/dist/cjs/AuditLogs.js.map +1 -1
  7. package/dist/cjs/EmailForm.js +20 -5
  8. package/dist/cjs/EmailForm.js.map +1 -1
  9. package/package.json +1 -1
  10. package/src/translations/ar.json +23 -0
  11. package/src/translations/ca.json +23 -0
  12. package/src/translations/cs.json +23 -0
  13. package/src/translations/da.json +23 -0
  14. package/src/translations/de.json +23 -0
  15. package/src/translations/en.json +22 -13
  16. package/src/translations/es-MX.json +23 -0
  17. package/src/translations/es.json +23 -0
  18. package/src/translations/et.json +23 -0
  19. package/src/translations/fi.json +23 -0
  20. package/src/translations/fil.json +23 -0
  21. package/src/translations/fr.json +23 -0
  22. package/src/translations/he.json +152 -0
  23. package/src/translations/hr.json +23 -0
  24. package/src/translations/id.json +23 -0
  25. package/src/translations/it.json +23 -0
  26. package/src/translations/ja.json +23 -0
  27. package/src/translations/ko.json +23 -0
  28. package/src/translations/nl.json +23 -0
  29. package/src/translations/pl.json +23 -0
  30. package/src/translations/pt-BR.json +23 -0
  31. package/src/translations/pt.json +23 -0
  32. package/src/translations/ro.json +23 -0
  33. package/src/translations/ru.json +23 -0
  34. package/src/translations/sk.json +23 -0
  35. package/src/translations/sl.json +23 -0
  36. package/src/translations/sv.json +23 -0
  37. package/src/translations/th.json +23 -0
  38. package/src/translations/tr.json +23 -0
  39. package/src/translations/uk.json +23 -0
  40. package/src/translations/vi.json +23 -0
  41. package/src/translations/zh-CN.json +23 -0
  42. package/src/translations/zh-TW.json +23 -0
@@ -1 +1 @@
1
- {"version":3,"file":"AuditLogs.js","sources":["../src/components/AuditLogs/LabelledDetail.jsx","../src/components/AuditLogs/Details/constants.js","../src/components/AuditLogs/Details/utils.js","../src/components/AuditLogs/Details/Changelog/Generic.jsx","../src/components/AuditLogs/Details/Changelog/Permissions.jsx","../src/components/AuditLogs/Details/Emails.jsx","../src/components/AuditLogs/Details/Generic.jsx","../src/components/AuditLogs/constants.js","../src/components/AuditLogs/utils.jsx","../src/components/AuditLogs/AddtionalDetails.jsx","../src/components/AuditLogs/api.js","../src/components/AuditLogs/useAuditLogsApi.js","../src/components/AuditLogs/index.jsx"],"sourcesContent":["import { Typography } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nconst LabelledDetail = ({ label, value }) => (\n <Typography className=\"mb-4\" style=\"body2\">\n <Trans\n components={{ strong: <strong /> }}\n i18nKey={`neetoMolecules.auditLogs.additionalDetails.${label}`}\n values={{ value }}\n />\n </Typography>\n);\n\nexport default LabelledDetail;\n","import { t } from \"i18next\";\n\nexport const DATE_FORMATS = {\n \"%d/%m/%Y\": \"DD/MM/YYYY\",\n \"%m/%d/%Y\": \"MM/DD/YYYY\",\n \"%Y/%m/%d\": \"YYYY/MM/DD\",\n};\n\nexport const DETAILS_KEYS = {\n AFFECTED_EMAIL: \"affectedEmail\",\n ERROR_MESSAGE: \"errorMessage\",\n NAME: \"name\",\n ORGANIZATION_ROLE: \"organizationRole\",\n GENERIC_DETAILS: \"details\",\n ADDED_PERMISSIONS: \"addedPermissions\",\n REMOVED_PERMISSIONS: \"removedPermissions\",\n};\n\nexport const EMAILS_TABLE_COLUMN_DATA = [\n {\n title: t(\"neetoMolecules.auditLogs.details.emails.title\"),\n key: \"email\",\n dataIndex: \"email\",\n },\n];\n\nexport const CHANGELOG_COLUMN_DATA = [\n {\n title: t(\"neetoMolecules.auditLogs.details.changelog.field\"),\n key: \"field\",\n dataIndex: \"field\",\n ellipsis: false,\n },\n {\n title: t(\"neetoMolecules.auditLogs.details.changelog.from\"),\n key: \"from\",\n dataIndex: \"from\",\n width: \"38%\",\n ellipsis: false,\n },\n {\n title: t(\"neetoMolecules.auditLogs.details.changelog.to\"),\n key: \"to\",\n dataIndex: \"to\",\n width: \"38%\",\n ellipsis: false,\n },\n];\n","import { t } from \"i18next\";\nimport { _humanize } from \"neetocist\";\n\nimport { DATE_FORMATS, DETAILS_KEYS } from \"./constants\";\n\nconst formatToFromValue = value => {\n if (value === true) {\n return t(\"neetoMolecules.auditLogs.details.changelog.true\");\n }\n\n if (value === false) {\n return t(\"neetoMolecules.auditLogs.details.changelog.false\");\n }\n\n if (value === null) return \"-\";\n\n return value;\n};\n\nconst transformDateFormat = rawDateFormat => DATE_FORMATS[rawDateFormat];\n\nconst getFormattedValue = (field, value) =>\n field === \"dateFormat\"\n ? transformDateFormat(value)\n : formatToFromValue(value);\n\nexport const formatEmails = emails => emails.map(email => ({ email }));\n\nexport const formatChangeLog = changes =>\n Object.entries(changes).map(([field, { from, to }]) => {\n const formattedField = _humanize(field);\n\n return {\n field: formattedField,\n from: getFormattedValue(field, from),\n to: getFormattedValue(field, to),\n };\n });\n\nexport const getFullName = (firstName, lastName = \"\") =>\n `${firstName} ${lastName}`.trim();\n\nexport const getLabel = ({ firstName, lastName, organizationRole }) => {\n if (firstName || lastName) {\n return DETAILS_KEYS.NAME;\n }\n\n if (organizationRole) {\n return DETAILS_KEYS.ORGANIZATION_ROLE;\n }\n\n return DETAILS_KEYS.GENERIC_DETAILS;\n};\n\nexport const formatPermissionsChangeLog = ({ from, to }) => [\n {\n field: t(\"neetoMolecules.auditLogs.details.permissions.description\"),\n from: getFormattedValue(\"description\", from),\n to: getFormattedValue(\"description\", to),\n },\n];\n\nexport const transformPermissions = permissions =>\n permissions\n .map(permission => {\n const humanizedParts = permission.split(\".\").map(_humanize);\n\n return humanizedParts.join(\" - \");\n })\n .join(\", \");\n","import { isNotEmpty } from \"neetocist\";\nimport { Table } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport LabelledDetail from \"components/AuditLogs/LabelledDetail\";\n\nimport { CHANGELOG_COLUMN_DATA, DETAILS_KEYS } from \"../constants\";\nimport { formatChangeLog } from \"../utils\";\n\nconst GenericChangelog = ({ details }) => {\n const { t } = useTranslation();\n\n const { email = \"\", changes = {}, errorMessage = \"\", status } = details;\n\n return (\n <div>\n <LabelledDetail label={DETAILS_KEYS.AFFECTED_EMAIL} value={email} />\n {isNotEmpty(changes) && status === \"success\" ? (\n <div className=\"w-full min-w-0 max-w-full\">\n <Table\n columnData={CHANGELOG_COLUMN_DATA}\n enableColumnFreeze={false}\n enableColumnResize={false}\n rowData={formatChangeLog(changes)}\n scroll={{ x: \"100%\" }}\n />\n </div>\n ) : (\n <LabelledDetail\n label={DETAILS_KEYS.ERROR_MESSAGE}\n value={errorMessage || t(\"neetoMolecules.auditLogs.noError\")}\n />\n )}\n </div>\n );\n};\n\nexport default GenericChangelog;\n","import { isNotEmpty } from \"neetocist\";\nimport { Table } from \"neetoui\";\n\nimport LabelledDetail from \"components/AuditLogs/LabelledDetail\";\n\nimport { DETAILS_KEYS, CHANGELOG_COLUMN_DATA } from \"../constants\";\nimport { formatPermissionsChangeLog, transformPermissions } from \"../utils\";\n\nconst PermissionsChangelog = ({ details }) => {\n const {\n description = {},\n organizationRole = \"\",\n addedPermissions = [],\n removedPermissions = [],\n } = details;\n\n return (\n <div>\n <LabelledDetail\n label={DETAILS_KEYS.ORGANIZATION_ROLE}\n value={organizationRole}\n />\n {isNotEmpty(addedPermissions) && (\n <LabelledDetail\n label={DETAILS_KEYS.ADDED_PERMISSIONS}\n value={transformPermissions(addedPermissions)}\n />\n )}\n {isNotEmpty(removedPermissions) && (\n <LabelledDetail\n label={DETAILS_KEYS.REMOVED_PERMISSIONS}\n value={transformPermissions(removedPermissions)}\n />\n )}\n {isNotEmpty(description) && (\n <div className=\"w-full min-w-0 max-w-full\">\n <Table\n columnData={CHANGELOG_COLUMN_DATA}\n enableColumnFreeze={false}\n enableColumnResize={false}\n rowData={formatPermissionsChangeLog(description)}\n scroll={{ x: \"100%\" }}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default PermissionsChangelog;\n","import { isNotEmpty } from \"neetocist\";\nimport { Table } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DETAILS_KEYS, EMAILS_TABLE_COLUMN_DATA } from \"./constants\";\nimport { formatEmails } from \"./utils\";\n\nimport LabelledDetail from \"../LabelledDetail\";\n\nconst Emails = ({ details }) => {\n const { t } = useTranslation();\n\n const { emails = [], status, errorMessage = \"\" } = details;\n\n return (\n <>\n {isNotEmpty(emails) && status === \"success\" ? (\n <div className=\"w-full min-w-0 max-w-full\">\n <Table\n columns={EMAILS_TABLE_COLUMN_DATA}\n enableColumnFreeze={false}\n enableColumnResize={false}\n loading={false}\n rowData={formatEmails(emails)}\n scroll={{ x: \"100%\" }}\n />\n </div>\n ) : (\n <LabelledDetail\n label={DETAILS_KEYS.ERROR_MESSAGE}\n value={errorMessage || t(\"neetoMolecules.auditLogs.noError\")}\n />\n )}\n </>\n );\n};\n\nexport default Emails;\n","import { getLabel, getFullName } from \"./utils\";\n\nimport LabelledDetail from \"../LabelledDetail\";\n\nconst GenericDetails = ({ details }) => {\n const { firstName = \"\", lastName = \"\", organizationRole = \"\" } = details;\n\n const name = getFullName(firstName, lastName);\n const label = getLabel({ firstName, lastName, organizationRole });\n const value = name || organizationRole || JSON.stringify(details);\n\n return <LabelledDetail {...{ label, value }} />;\n};\n\nexport default GenericDetails;\n","import GenericChangelog from \"./Details/Changelog/Generic\";\nimport PermissionsChangelog from \"./Details/Changelog/Permissions\";\nimport Emails from \"./Details/Emails\";\nimport GenericDetails from \"./Details/Generic\";\n\nexport const AUDIT_LOGS_QUERY_KEY = \"audit-logs\";\n\nexport const ACTIONS = {\n INVITED_USERS: \"invitedUsers\",\n USER_SIGNED_UP: \"userSignedUp\",\n UPDATED_USER: \"updatedUser\",\n BULK_UPDATE_USERS: \"bulkUpdateUsers\",\n UPDATED_USER_PROFILE: \"updatedUserProfile\",\n CREATED_ROLE: \"createdRole\",\n UPDATED_ROLE: \"updatedRole\",\n DELETED_ROLE: \"deletedRole\",\n};\n\nexport const ADDITIONAL_DETAILS_KEYS = {\n ACTION: \"action\",\n PERFORMED_BY: \"performedBy\",\n PERFORMED_AT: \"performedAt\",\n PRODUCT: \"product\",\n};\n\nexport const DETAILS_COMPONENT_MAP = {\n [ACTIONS.INVITED_USERS]: Emails,\n [ACTIONS.BULK_UPDATE_USERS]: Emails,\n [ACTIONS.USER_SIGNED_UP]: GenericDetails,\n [ACTIONS.UPDATED_USER]: GenericChangelog,\n [ACTIONS.UPDATED_USER_PROFILE]: GenericChangelog,\n [ACTIONS.CREATED_ROLE]: GenericDetails,\n [ACTIONS.UPDATED_ROLE]: PermissionsChangelog,\n [ACTIONS.DELETED_ROLE]: GenericDetails,\n};\n","import { t } from \"i18next\";\nimport { capitalize, snakeToCamelCase } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { dateFormat } from \"neetocommons/utils\";\nimport { Button } from \"neetoui\";\n\nimport { DETAILS_COMPONENT_MAP } from \"./constants\";\nimport GenericDetails from \"./Details/Generic\";\n\nconst transformAction = action =>\n snakeToCamelCase(action.replace(\"audit_logs.organization.\", \"\"));\n\nexport const transformLogsForTable = logs =>\n logs.map(\n ({\n id,\n key: action,\n metadata: { status, ...restOfMetadata },\n performer: { name: performedBy = \"\" },\n updatedAt: performedAt,\n }) => {\n const transformedAction = transformAction(action);\n const formattedPerformedAt = dateFormat.dateTime(performedAt);\n\n return {\n id,\n action: transformedAction,\n status: capitalize(status),\n performedAt: formattedPerformedAt,\n performedBy,\n additionalDetails: {\n ...restOfMetadata,\n action: transformedAction,\n performedAt: formattedPerformedAt,\n performedBy,\n status,\n },\n };\n }\n );\n\nexport const getColumnData = handleClick => [\n {\n title: t(\"neetoMolecules.auditLogs.table.headers.action\", SINGULAR),\n key: \"action\",\n dataIndex: \"action\",\n render: (action, { additionalDetails }) => (\n <Button\n data-testid=\"action-link-button\"\n label={t(`neetoMolecules.auditLogs.actions.${action}`)}\n style=\"link\"\n onClick={() => handleClick(additionalDetails)}\n />\n ),\n width: 200,\n },\n {\n title: t(\"neetoMolecules.auditLogs.table.headers.status\"),\n key: \"status\",\n dataIndex: \"status\",\n width: 150,\n },\n {\n title: t(\"neetoMolecules.auditLogs.table.headers.performedBy\"),\n key: \"performedBy\",\n dataIndex: \"performedBy\",\n width: 160,\n },\n {\n title: t(\"neetoMolecules.auditLogs.table.headers.performedAt\"),\n key: \"performedAt\",\n dataIndex: \"performedAt\",\n width: 160,\n },\n];\n\nexport const getComponentForDetail = action =>\n DETAILS_COMPONENT_MAP[action] || GenericDetails;\n","import { _capitalize } from \"neetocist\";\nimport { Typography, Pane } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ADDITIONAL_DETAILS_KEYS } from \"./constants\";\nimport LabelledDetail from \"./LabelledDetail\";\nimport { getComponentForDetail } from \"./utils\";\n\nconst AdditionalDetails = ({ additionalDetails, isOpen, onClose }) => {\n const { t } = useTranslation();\n\n const {\n message,\n action: defaultAction,\n performedBy,\n performedAt,\n via: product,\n ...details\n } = additionalDetails;\n\n const action =\n message || t(`neetoMolecules.auditLogs.actions.${defaultAction}`);\n\n const DetailComponent = getComponentForDetail(defaultAction);\n\n return (\n <Pane\n {...{ isOpen, onClose }}\n data-testid=\"additional-details-pane\"\n size=\"large\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.auditLogs.additionalDetails.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body hasFooter={false}>\n <>\n <LabelledDetail\n label={ADDITIONAL_DETAILS_KEYS.ACTION}\n value={action}\n />\n <LabelledDetail\n label={ADDITIONAL_DETAILS_KEYS.PERFORMED_BY}\n value={performedBy}\n />\n <LabelledDetail\n label={ADDITIONAL_DETAILS_KEYS.PERFORMED_AT}\n value={performedAt}\n />\n <LabelledDetail\n label={ADDITIONAL_DETAILS_KEYS.PRODUCT}\n value={_capitalize(product)}\n />\n <DetailComponent {...{ details }} />\n </>\n </Pane.Body>\n </Pane>\n );\n};\n\nexport default AdditionalDetails;\n","import axios from \"axios\";\n\nconst fetchAuditLogs = params => axios.get(\"api/v1/audit_logs\", { params });\n\nconst auditLogsApi = { fetchAuditLogs };\n\nexport default auditLogsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport auditLogsApi from \"./api\";\nimport { AUDIT_LOGS_QUERY_KEY } from \"./constants\";\n\nexport const useFetchAuditLogs = ({ params, options = {} }) =>\n useQuery({\n queryKey: [AUDIT_LOGS_QUERY_KEY, params],\n queryFn: () => auditLogsApi.fetchAuditLogs(params),\n ...options,\n });\n","import { useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { NoData, Table, Typography, Spinner } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\nimport SubHeader from \"components/SubHeader\";\nimport TableWrapper from \"components/TableWrapper\";\n\nimport AdditionalDetails from \"./AddtionalDetails\";\nimport { useFetchAuditLogs } from \"./useAuditLogsApi\";\nimport { transformLogsForTable, getColumnData } from \"./utils\";\n\nconst AuditLogs = ({ headerProps, noDataHelpText, noDataTitle }) => {\n const [isAdditionalDetailsPaneOpen, setIsAdditionalDetailsPaneOpen] =\n useState(false);\n const [additionalDetails, setAdditionalDetails] = useState({});\n\n const { t } = useTranslation();\n\n const { page = DEFAULT_PAGE_INDEX } = useQueryParams();\n\n const {\n data: { auditLogs = [], totalCount = 0 } = {},\n isLoading,\n isFetching,\n } = useFetchAuditLogs({ params: { page } });\n\n const handleClick = additionalDetails => {\n setIsAdditionalDetailsPaneOpen(true);\n setAdditionalDetails(additionalDetails);\n };\n\n const handleClose = () => {\n setIsAdditionalDetailsPaneOpen(false);\n setAdditionalDetails({});\n };\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <Container>\n <Header title={t(\"neetoMolecules.auditLogs.title\")} {...headerProps} />\n <SubHeader\n leftActionBlock={\n isPresent(auditLogs) && (\n <Typography weight=\"semibold\">\n {t(\"neetoMolecules.auditLogs.logsCount\", { count: totalCount })}\n </Typography>\n )\n }\n />\n <TableWrapper\n className=\"mt-5\"\n hasPagination={totalCount > DEFAULT_PAGE_SIZE}\n >\n {isPresent(auditLogs) ? (\n <Table\n {...{ totalCount }}\n fixedHeight\n columnData={getColumnData(handleClick)}\n currentPageNumber={parseInt(page)}\n data-testid=\"audit-logs-table\"\n defaultPageSize={DEFAULT_PAGE_SIZE}\n enableColumnFreeze={false}\n loading={isFetching}\n rowData={transformLogsForTable(auditLogs)}\n />\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n helpText={noDataHelpText}\n title={noDataTitle || t(\"neetoMolecules.auditLogs.noData\")}\n />\n </div>\n )}\n </TableWrapper>\n <AdditionalDetails\n {...{ additionalDetails }}\n isOpen={isAdditionalDetailsPaneOpen}\n onClose={handleClose}\n />\n </Container>\n );\n};\n\nAuditLogs.propTypes = {\n /**\n * Props to be passed to the `Header` component.\n */\n headerProps: propTypes.object,\n /**\n * Help text to be displayed to the `NoData` component when there are no audit logs.\n */\n noDataHelpText: propTypes.string,\n /**\n * Title to be passed to the `NoData` component when there are no audit logs.\n */\n noDataTitle: propTypes.string,\n};\n\nexport default AuditLogs;\n"],"names":["LabelledDetail","_ref","label","value","_jsx","Typography","className","style","children","Trans","components","strong","i18nKey","concat","values","DATE_FORMATS","DETAILS_KEYS","AFFECTED_EMAIL","ERROR_MESSAGE","NAME","ORGANIZATION_ROLE","GENERIC_DETAILS","ADDED_PERMISSIONS","REMOVED_PERMISSIONS","EMAILS_TABLE_COLUMN_DATA","title","t","key","dataIndex","CHANGELOG_COLUMN_DATA","ellipsis","width","formatToFromValue","transformDateFormat","rawDateFormat","getFormattedValue","field","formatEmails","emails","map","email","formatChangeLog","changes","Object","entries","_ref2","_slicedToArray","_ref2$","from","to","formattedField","_humanize","getFullName","firstName","lastName","arguments","length","undefined","trim","getLabel","_ref3","organizationRole","formatPermissionsChangeLog","_ref4","transformPermissions","permissions","permission","humanizedParts","split","join","GenericChangelog","details","_useTranslation","useTranslation","_details$email","_details$changes","_details$errorMessage","errorMessage","status","_jsxs","isNotEmpty","Table","columnData","enableColumnFreeze","enableColumnResize","rowData","scroll","x","PermissionsChangelog","_details$description","description","_details$organization","_details$addedPermiss","addedPermissions","_details$removedPermi","removedPermissions","Emails","_details$emails","_Fragment","columns","loading","GenericDetails","_details$firstName","_details$lastName","name","JSON","stringify","AUDIT_LOGS_QUERY_KEY","ACTIONS","INVITED_USERS","USER_SIGNED_UP","UPDATED_USER","BULK_UPDATE_USERS","UPDATED_USER_PROFILE","CREATED_ROLE","UPDATED_ROLE","DELETED_ROLE","ADDITIONAL_DETAILS_KEYS","ACTION","PERFORMED_BY","PERFORMED_AT","PRODUCT","DETAILS_COMPONENT_MAP","_defineProperty","transformAction","action","snakeToCamelCase","replace","transformLogsForTable","logs","id","_ref$metadata","metadata","restOfMetadata","_objectWithoutProperties","_excluded","_ref$performer$name","performer","performedBy","performedAt","updatedAt","transformedAction","formattedPerformedAt","dateFormat","dateTime","capitalize","additionalDetails","_objectSpread","getColumnData","handleClick","SINGULAR","render","Button","onClick","getComponentForDetail","AdditionalDetails","isOpen","onClose","message","defaultAction","product","via","DetailComponent","Pane","size","Header","Body","hasFooter","_capitalize","fetchAuditLogs","params","axios","get","auditLogsApi","useFetchAuditLogs","_ref$options","options","useQuery","queryKey","queryFn","AuditLogs","headerProps","noDataHelpText","noDataTitle","_useState","useState","_useState2","isAdditionalDetailsPaneOpen","setIsAdditionalDetailsPaneOpen","_useState3","_useState4","setAdditionalDetails","_useQueryParams","useQueryParams","_useQueryParams$page","page","DEFAULT_PAGE_INDEX","_useFetchAuditLogs","_useFetchAuditLogs$da","data","_useFetchAuditLogs$da2","_useFetchAuditLogs$da3","auditLogs","_useFetchAuditLogs$da4","totalCount","isLoading","isFetching","handleClose","Spinner","Container","SubHeader","leftActionBlock","isPresent","weight","count","TableWrapper","hasPagination","DEFAULT_PAGE_SIZE","fixedHeight","currentPageNumber","parseInt","defaultPageSize","NoData","helpText"],"mappings":"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"}
1
+ {"version":3,"file":"AuditLogs.js","sources":["../src/components/AuditLogs/constants.js","../src/components/AuditLogs/Trans.jsx","../src/components/AuditLogs/utils.jsx","../src/components/AuditLogs/Card.jsx","../src/components/AuditLogs/api.js","../src/components/AuditLogs/useAuditLogsApi.js","../src/components/AuditLogs/index.jsx"],"sourcesContent":["import {\n User,\n UserAdd,\n UserCircle,\n UserRemove,\n UserSettings,\n CustomDomain,\n} from \"neetoicons\";\nimport { GoogleCalendar, Zoom, Stripe, StripeTypeface } from \"neetoicons/misc\";\n\nexport const AUDIT_LOGS_QUERY_KEY = \"audit-logs\";\n\nexport const ACTIONS = {\n INVITED_USERS: \"invitedUsers\",\n USER_SIGNED_UP: \"userSignedUp\",\n UPDATED_USER: \"updatedUser\",\n BULK_UPDATE_USERS: \"bulkUpdateUsers\",\n UPDATED_USER_PROFILE: \"updatedUserProfile\",\n CREATED_ROLE: \"createdRole\",\n UPDATED_ROLE: \"updatedRole\",\n DELETED_ROLE: \"deletedRole\",\n CONNECTED_GOOGLE_CALENDER: \"connectedGoogleCalendar\",\n DISCONNECTED_GOOGLE_CALENDER: \"disconnectedGoogleCalendar\",\n CONNECTED_STRIPE_ACCOUNT: \"connectedStripeAccount\",\n DISCONNECTED_STRIPE_ACCOUNT: \"disconnectedStripeAccount\",\n CONNECTED_ZOOM_INTEGRATION: \"connectedZoomIntegration\",\n DISCONNECTED_ZOOM_INTEGRATION: \"disconnectedZoomIntegration\",\n CONNECTED_CUSTOM_DOMAIN: \"connectedCustomDomain\",\n};\n\nexport const ADDITIONAL_DETAILS_KEYS = {\n ACTION: \"action\",\n PERFORMED_BY: \"performedBy\",\n PERFORMED_AT: \"performedAt\",\n PRODUCT: \"product\",\n};\n\nexport const AUDIT_ICON_MAP = {\n [ACTIONS.INVITED_USERS]: UserCircle,\n [ACTIONS.USER_SIGNED_UP]: UserAdd,\n [ACTIONS.UPDATED_USER]: User,\n [ACTIONS.BULK_UPDATE_USERS]: User,\n [ACTIONS.UPDATED_USER_PROFILE]: UserSettings,\n [ACTIONS.CREATED_ROLE]: UserAdd,\n [ACTIONS.UPDATED_ROLE]: UserSettings,\n [ACTIONS.DELETED_ROLE]: UserRemove,\n [ACTIONS.CONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.DISCONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.CONNECTED_STRIPE_ACCOUNT]: StripeTypeface,\n [ACTIONS.DISCONNECTED_STRIPE_ACCOUNT]: Stripe,\n [ACTIONS.CONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.DISCONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.CONNECTED_CUSTOM_DOMAIN]: CustomDomain,\n};\n\nexport const AUDIT_LOGS_PAGE_SIZE = 12;\n","import { globalProps } from \"neetocommons/initializers\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { Trans as ReactTrans } from \"react-i18next\";\n\nconst Trans = ({\n i18nKey,\n additionalValues = {},\n additionalComponents = {},\n}) => (\n <ReactTrans\n {...{ i18nKey }}\n components={{\n Code: (\n <Typography\n className=\"neeto-ui-rounded-md neeto-ui-bg-gray-100 p-1\"\n component=\"code\"\n style=\"body3\"\n />\n ),\n Semibold: (\n <Typography\n className=\"n inline-block text-sm font-medium\"\n component=\"p\"\n />\n ),\n ...additionalComponents,\n }}\n values={{\n productSuffix: globalProps.appName,\n ...additionalValues,\n }}\n />\n);\n\nTrans.propTypes = {\n i18nKey: PropTypes.string.isRequired,\n additionalValues: PropTypes.object,\n additionalComponents: PropTypes.objectOf(PropTypes.element),\n};\n\nexport default Trans;\n","import { snakeToCamelCase, isNotEmpty, isPresent, humanize } from \"neetocist\";\nimport { values } from \"ramda\";\n\nimport { ACTIONS } from \"./constants\";\nimport Trans from \"./Trans\";\n\nconst formatChangedFields = changes => {\n const fields = Object.keys(changes).map((field, index) => {\n const change = changes[field];\n let element;\n\n if (change && isPresent(change.from)) {\n element = (\n <span key={field}>\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithPreviousValue\"\n additionalValues={{\n field: humanize(field),\n from: change.from,\n to: change.to,\n }}\n />\n </span>\n );\n } else {\n element = (\n <span key={field}>\n <Trans\n additionalValues={{ field: humanize(field), to: change.to }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithNewValue\"\n />\n </span>\n );\n }\n\n return index > 0\n ? [<span key={`sep-${field}`}>, </span>, element]\n : element;\n });\n\n return fields.flat();\n};\n\nexport const transformAction = action =>\n snakeToCamelCase(action.replace(\"audit_logs.organization.\", \"\"));\n\nexport const constructAuditLogText = ({\n action,\n performedBy,\n emails = [],\n firstName,\n lastName,\n organizationRole,\n email,\n changes = {},\n status,\n message,\n errorMessage,\n addedPermissions,\n}) => {\n switch (action) {\n case ACTIONS.INVITED_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsersFailed\"\n />\n );\n }\n\n case ACTIONS.USER_SIGNED_UP: {\n const name = [firstName, lastName].filter(Boolean).join(\" \");\n const userIdentifier = name || organizationRole || email || \"User\";\n\n return (\n <Trans\n additionalValues={{ userIdentifier }}\n i18nKey=\"neetoMolecules.auditLogs.text.userSignedUp\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER: {\n const changedFields = formatChangedFields(changes);\n const affectedUser = email || \"user\";\n\n return (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy, affectedUser, changedFields }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUser\"\n />\n );\n }\n\n case ACTIONS.BULK_UPDATE_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList, message }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsersFailed\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER_PROFILE: {\n const changedFields = formatChangedFields(changes);\n\n return (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUserProfile\"\n />\n );\n }\n\n case ACTIONS.CREATED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.createdRole\"\n />\n );\n }\n\n case ACTIONS.UPDATED_ROLE: {\n const roleName = organizationRole || \"role\";\n const permissionsArray = values(addedPermissions).map(permission =>\n humanize(permission.split(\".\")[1])\n );\n const addedPermissionsText = permissionsArray.join(\", \");\n\n return (\n // Disabling as we're using the same key for both singular and plural cases\n // eslint-disable-next-line @bigbinary/neeto/no-missing-localization\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedRole\"\n additionalValues={{\n performedBy,\n roleName,\n addedPermissionsText,\n count: permissionsArray.length,\n }}\n />\n );\n }\n\n case ACTIONS.CONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedGoogleCalender\"\n additionalValues={{\n performedBy,\n emailAddress: changes.emailAddress,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedGoogleCalender\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedStripeAccount\"\n additionalValues={{\n performedBy,\n stripeAccountId: changes.stripeAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedStripeAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedZoomAccount\"\n additionalValues={{\n performedBy,\n zoomAccountId: changes.zoomAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedZoomAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_CUSTOM_DOMAIN: {\n return (\n <Trans\n additionalValues={{ performedBy, hostname: changes.hostname }}\n i18nKey=\"neetoMolecules.auditLogs.text.connectedCustomDomain\"\n />\n );\n }\n\n case ACTIONS.DELETED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.deletedRole\"\n />\n );\n }\n\n default: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.performedAction\"\n />\n );\n }\n }\n};\n","import classnames from \"classnames\";\nimport { dateFormat } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\n\nimport { AUDIT_ICON_MAP } from \"./constants\";\nimport { constructAuditLogText, transformAction } from \"./utils\";\n\nconst Card = ({ auditLog, index, totalCount }) => {\n const { key, metadata, performer, updatedAt } = auditLog;\n\n const action = transformAction(key);\n const performedBy = performer?.name || \"\";\n const performedAt = dateFormat.dateTime(updatedAt);\n\n const auditText = constructAuditLogText({\n action,\n performedBy,\n ...metadata,\n });\n\n const Icon = AUDIT_ICON_MAP[action];\n\n return (\n <div\n className={classnames(\n \"align-items-center neeto-ui-border-gray-200 flex w-full gap-x-4 border-b border-l border-r p-3\",\n {\n \"rounded-t-md border-t\": index === 0,\n \"rounded-b-md\": index === totalCount - 1,\n }\n )}\n >\n <div className=\"neeto-ui-rounded-full neeto-ui-bg-gray-100 flex size-10 flex-shrink-0 items-center justify-center\">\n <Icon className=\"neeto-ui-text-gray-600 flex-shrink-0\" size={22} />\n </div>\n <div className=\"flex flex-col gap-y-2\">\n <Typography component=\"span\" lineHeight=\"normal\" style=\"body2\">\n {auditText}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-500 m-0\" style=\"body3\">\n {performedAt}\n </Typography>\n </div>\n </div>\n );\n};\n\nexport default Card;\n","import axios from \"axios\";\n\nconst fetchAuditLogs = params => axios.get(\"api/v1/audit_logs\", { params });\n\nconst auditLogsApi = { fetchAuditLogs };\n\nexport default auditLogsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport auditLogsApi from \"./api\";\nimport { AUDIT_LOGS_QUERY_KEY } from \"./constants\";\n\nexport const useFetchAuditLogs = ({ params, options = {} }) =>\n useQuery({\n queryKey: [AUDIT_LOGS_QUERY_KEY, params],\n queryFn: () => auditLogsApi.fetchAuditLogs(params),\n ...options,\n });\n","import { isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX } from \"neetocommons/constants\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { NoData, Spinner, Pagination } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\n\nimport Card from \"./Card\";\nimport { AUDIT_LOGS_PAGE_SIZE } from \"./constants\";\nimport { useFetchAuditLogs } from \"./useAuditLogsApi\";\n\nconst AuditLogs = ({ headerProps, noDataHelpText, noDataTitle }) => {\n const { t } = useTranslation();\n\n const { page = DEFAULT_PAGE_INDEX } = useQueryParams();\n\n const {\n data: { auditLogs = [], totalCount = 0 } = {},\n isLoading,\n isFetching,\n } = useFetchAuditLogs({ params: { page, pageSize: AUDIT_LOGS_PAGE_SIZE } });\n\n if (isLoading || isFetching) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <Container className=\"relative\">\n <Header title={t(\"neetoMolecules.auditLogs.title\")} {...headerProps} />\n {isPresent(auditLogs) ? (\n <div className=\"w-full\">\n {auditLogs.map((auditLog, index) => (\n <Card\n {...{ auditLog, index }}\n key={auditLog.id}\n totalCount={auditLogs.length}\n />\n ))}\n </div>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n helpText={noDataHelpText}\n title={noDataTitle || t(\"neetoMolecules.auditLogs.noData\")}\n />\n </div>\n )}\n <Pagination\n className=\"neeto-ui-bg-white fixed bottom-5 right-6\"\n count={totalCount}\n pageNo={parseInt(page)}\n pageSize={AUDIT_LOGS_PAGE_SIZE}\n />\n </Container>\n );\n};\n\nAuditLogs.propTypes = {\n /**\n * Props to be passed to the `Header` component.\n */\n headerProps: propTypes.object,\n /**\n * Help text to be displayed to the `NoData` component when there are no audit logs.\n */\n noDataHelpText: propTypes.string,\n /**\n * Title to be passed to the `NoData` component when there are no audit logs.\n */\n noDataTitle: propTypes.string,\n};\n\nexport default AuditLogs;\n"],"names":["AUDIT_LOGS_QUERY_KEY","ACTIONS","INVITED_USERS","USER_SIGNED_UP","UPDATED_USER","BULK_UPDATE_USERS","UPDATED_USER_PROFILE","CREATED_ROLE","UPDATED_ROLE","DELETED_ROLE","CONNECTED_GOOGLE_CALENDER","DISCONNECTED_GOOGLE_CALENDER","CONNECTED_STRIPE_ACCOUNT","DISCONNECTED_STRIPE_ACCOUNT","CONNECTED_ZOOM_INTEGRATION","DISCONNECTED_ZOOM_INTEGRATION","CONNECTED_CUSTOM_DOMAIN","AUDIT_ICON_MAP","_AUDIT_ICON_MAP","_defineProperty","UserCircle","UserAdd","User","UserSettings","UserRemove","GoogleCalendar","StripeTypeface","Stripe","Zoom","CustomDomain","AUDIT_LOGS_PAGE_SIZE","Trans","_ref","i18nKey","_ref$additionalValues","additionalValues","_ref$additionalCompon","additionalComponents","_jsx","ReactTrans","components","_objectSpread","Code","Typography","className","component","style","Semibold","values","productSuffix","globalProps","appName","formatChangedFields","changes","fields","Object","keys","map","field","index","change","element","isPresent","from","children","humanize","to","concat","flat","transformAction","action","snakeToCamelCase","replace","constructAuditLogText","performedBy","_ref$emails","emails","firstName","lastName","organizationRole","email","_ref$changes","status","message","errorMessage","addedPermissions","isNotEmpty","emailList","join","name","filter","Boolean","userIdentifier","changedFields","affectedUser","ChangedFields","_Fragment","roleName","permissionsArray","permission","split","addedPermissionsText","count","length","emailAddress","stripeAccountId","zoomAccountId","hostname","Card","auditLog","totalCount","key","metadata","performer","updatedAt","performedAt","dateFormat","dateTime","auditText","Icon","_jsxs","classnames","size","lineHeight","fetchAuditLogs","params","axios","get","auditLogsApi","useFetchAuditLogs","_ref$options","options","useQuery","queryKey","queryFn","AuditLogs","headerProps","noDataHelpText","noDataTitle","_useTranslation","useTranslation","t","_useQueryParams","useQueryParams","_useQueryParams$page","page","DEFAULT_PAGE_INDEX","_useFetchAuditLogs","pageSize","_useFetchAuditLogs$da","data","_useFetchAuditLogs$da2","_useFetchAuditLogs$da3","auditLogs","_useFetchAuditLogs$da4","isLoading","isFetching","Spinner","Container","Header","title","_createElement","id","NoData","helpText","Pagination","pageNo","parseInt"],"mappings":"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"}
package/dist/EmailForm.js CHANGED
@@ -16,6 +16,7 @@ import { isEditorEmpty } from '@bigbinary/neeto-editor/utils';
16
16
  import * as yup from 'yup';
17
17
  import Select from '@bigbinary/neetoui/formik/Select';
18
18
  import Input from '@bigbinary/neetoui/formik/Input';
19
+ import _typeof from '@babel/runtime/helpers/typeof';
19
20
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
20
21
  import SendToFields from './SendToFields.js';
21
22
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
@@ -126,7 +127,14 @@ var getValidationSchema = function getValidationSchema(_ref) {
126
127
  schema = schema.concat(showSendToAsRadio ? SEND_TO_ID_FIELD_VALIDATION : sendToFieldValidation(maxEmails));
127
128
  }
128
129
  if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);
129
- return schema.shape(customValidations);
130
+ var isYupObject = customValidations.type === "object";
131
+ if (isYupObject) {
132
+ var customFields = customValidations.fields || {};
133
+ schema = schema.shape(customFields);
134
+ } else if (_typeof(customValidations) === "object") {
135
+ schema = schema.shape(customValidations);
136
+ }
137
+ return schema;
130
138
  };
131
139
  var getReplyToFieldLabelProps = function getReplyToFieldLabelProps(_ref2) {
132
140
  var popoverProps = _ref2.popoverProps;
@@ -236,7 +244,8 @@ var SubjectField = function SubjectField(_ref) {
236
244
  subjectVariables = _ref$subjectVariables === void 0 ? [] : _ref$subjectVariables,
237
245
  error = _ref.error,
238
246
  _ref$required = _ref.required,
239
- required = _ref$required === void 0 ? false : _ref$required;
247
+ required = _ref$required === void 0 ? false : _ref$required,
248
+ onBlur = _ref.onBlur;
240
249
  var _useState = useState(false),
241
250
  _useState2 = _slicedToArray(_useState, 2),
242
251
  isFieldFocusedOnce = _useState2[0],
@@ -256,6 +265,7 @@ var SubjectField = function SubjectField(_ref) {
256
265
  children: [/*#__PURE__*/jsx(Input$1, {
257
266
  error: error,
258
267
  name: name,
268
+ onBlur: onBlur,
259
269
  required: required,
260
270
  label: t("neetoMolecules.emailForm.labels.subject"),
261
271
  size: "large",
@@ -353,14 +363,19 @@ var EmailForm = function EmailForm(_ref) {
353
363
  children: [/*#__PURE__*/jsx(Field, {
354
364
  name: "subject",
355
365
  children: function children(_ref2) {
356
- var value = _ref2.field.value,
357
- error = _ref2.meta.error;
366
+ var _ref2$field = _ref2.field,
367
+ value = _ref2$field.value,
368
+ onBlur = _ref2$field.onBlur,
369
+ _ref2$meta = _ref2.meta,
370
+ error = _ref2$meta.error,
371
+ touched = _ref2$meta.touched;
358
372
  return /*#__PURE__*/jsx("div", {
359
373
  className: "w-full",
360
374
  children: /*#__PURE__*/jsx(SubjectField, {
375
+ onBlur: onBlur,
361
376
  subjectVariables: subjectVariables,
362
377
  required: true,
363
- error: t(error),
378
+ error: touched && error ? t(error) : undefined,
364
379
  name: "subject",
365
380
  text: value,
366
381
  updateText: function updateText(text) {
@@ -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/EmailFormComponent/index.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 isEnabled: false,\n};\n\nexport const EMAIL_FORM_VALIDATION_SCHEMA = yup.object({\n subject: yup\n .string()\n .required(t(\"neetoMolecules.emailForm.errors.subjectRequired\")),\n message: yup\n .string()\n .test(\n \"message\",\n t(\"neetoMolecules.emailForm.errors.messageRequired\"),\n value => !isEditorEmpty(value)\n ),\n});\n\nexport const sendToFieldValidation = maxEmails => {\n const validation = yup\n .array()\n .test(\n \"all-emails-valid\",\n t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"),\n emails => emails?.every(prop(\"valid\"))\n )\n .test(\n \"max-email-count\",\n t(\"neetoMolecules.emailForm.errors.maxEmails\", { count: maxEmails }),\n emails => emails?.length <= maxEmails\n );\n\n return yup.object({\n sendTo: validation\n .min(\n 1,\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.sendToEmailAddress\"),\n })\n )\n .nullable(),\n sendToCc: validation,\n sendToBcc: validation,\n });\n};\n\nexport const SEND_TO_ID_FIELD_VALIDATION = yup.object({\n sendToId: yup.string().required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n })\n ),\n});\n\nexport const REPLY_TO_FIELD_VALIDATION = yup.object({\n replyTo: yup\n .string()\n .nullable()\n .email(t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"))\n .required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.replyToEmailAddress\"),\n })\n ),\n});\n\nexport const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n \"video-embed\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","/* eslint-disable @bigbinary/neeto/use-zustand-for-global-state-management */\nimport { createContext } from \"react\";\n\nconst EmailFormContext = createContext({\n showSendToField: false,\n showSendToAsRadio: false,\n showReplyToField: false,\n});\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 [\"data-cy\"]: \"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\nexport const resolveContent = (content, func, variable) => {\n if (typeof func === \"function\") {\n return func(content, variable);\n }\n\n return content;\n};\n\nexport const normalizeHtmlString = str => {\n if (typeof str !== \"string\") return str;\n\n return str\n .replace(/\\uFEFF/g, \"\")\n .replace(/\\r\\n|\\r/g, \"\\n\")\n .replace(/&nbsp;/g, \" \")\n .replace(/[\\t ]+/g, \" \")\n .replace(/\\s*\\n\\s*/g, \"\\n\")\n .replace(/\\n+/g, \"\\n\")\n .replace(/>\\s+</g, \"><\")\n .trim();\n};\n","import { 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, category }) => {\n const textAreaElement = document.querySelector(`textarea[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && textAreaElement\n ? textAreaElement.selectionEnd\n : text.length;\n\n const variable = category ? `${category}.${slug}` : slug;\n const updatedSubject = [\n text.slice(0, splitIndex),\n ` {{${variable}}}`,\n text.slice(splitIndex),\n ].join(\"\");\n updateText(updatedSubject);\n };\n\n return (\n <>\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 { notEqualsDeep, isNotEmpty } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography, Button } from \"neetoui\";\nimport { ActionBlock, Radio } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { equals } from \"ramda\";\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\";\nimport { normalizeHtmlString } from \"./utils\";\n\nconst EmailForm = ({\n messageVariables = [],\n subjectVariables = [],\n handleCancel,\n handleResetToDefault,\n isLoading,\n replyToFieldProps,\n sendToFieldProps,\n replyToOptions,\n sendToOptions = [],\n isUpdating = false,\n isResetting = false,\n showFields = true,\n className = \"\",\n editorAddons = EDITOR_ADDONS,\n showResetToDefaultButton,\n editorRef = null,\n defaultValues = {},\n}) => {\n const { t } = useTranslation();\n\n const {\n showSendToField,\n showSendToAsRadio,\n showReplyToField,\n showCcField,\n showBccField,\n } = useContext(EmailFormContext);\n\n const { setFieldValue, values, resetForm } = useFormikContext();\n\n const normalizedValues = {\n ...values,\n message: normalizeHtmlString(values.message),\n };\n\n const normalizedDefaultValues = {\n ...defaultValues,\n message: normalizeHtmlString(defaultValues?.message),\n };\n\n normalizedDefaultValues.replyTo ||= globalProps.user.email;\n\n const disabled = equals(normalizedValues, normalizedDefaultValues);\n\n const sendToFieldOptions = sendToFieldProps?.options || sendToOptions;\n const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToFieldOptions);\n\n const showSendToTextField = showSendToField && !showSendToRadioField;\n\n return (\n <div\n data-cy=\"email-form\"\n data-testid=\"email-form\"\n className={classnames(\n \"neeto-notification-email-wrapper__form-container 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\" data-cy=\"message-input-container\">\n <FormikEditor\n required\n addons={editorAddons}\n data-cy=\"message-input-field\"\n id=\"form_message\"\n label={t(\"neetoMolecules.emailForm.labels.message\")}\n name=\"message\"\n ref={editorRef}\n variables={messageVariables}\n shouldUpdate={(nextProps, prevProps) =>\n notEqualsDeep(nextProps.variables, prevProps.variables)\n }\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 <div className=\"neeto-ui-bg-white neeto-notification-email-wrapper__action-block z-10 flex w-full justify-between py-6 lg:sticky lg:bottom-0\">\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isLoading || isUpdating}\n />\n {showResetToDefaultButton && (\n <div className=\"neeto-ui-action-block__wrapper\">\n <Button\n {...{ disabled }}\n data-cy=\"resetToDefaultButton\"\n label={t(\"neetoMolecules.emailForm.labels.resetToDefault\")}\n loading={isResetting}\n style=\"tertiary\"\n onClick={() => {\n resetForm();\n handleResetToDefault();\n }}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nEmailForm.propTypes = {\n /**\n * This is an array of objects used for templating within the message field. Each object in the array has a **label** and a **key**.\n */\n messageVariables: PropTypes.array,\n /**\n * This is an array of objects used for templating within the subject field. Each object in the array has a **label** and a **key**.\n */\n subjectVariables: PropTypes.array,\n /**\n * This function that gets triggered when the 'Cancel' button is clicked.\n */\n handleCancel: PropTypes.func,\n /**\n * This function that gets triggered when the 'Reset to default' button is clicked.\n */\n handleResetToDefault: PropTypes.func,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Reset to default' button.\n */\n isResetting: PropTypes.bool,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Reply To' field into a dropdown menu with given options. Without this prop, 'Reply To' will be a text input field.\n */\n replyToOptions: PropTypes.array,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Send To' field into a radio group with given options. Without this prop, 'Send To' will be a multi email input field.\n */\n sendToOptions: PropTypes.array,\n /**\n * A Boolean flag indicating whether an update operation is currently in progress. When set to `true`, the 'Save changes' button is disabled.\n */\n isUpdating: PropTypes.bool,\n /**\n * To provide additional classnames to the button.\n */\n className: PropTypes.string,\n /**\n * To provide props to the replyToField. Supports options that will\n * be rendered as the reply to options and popover props.\n */\n replyToFieldProps: PropTypes.object,\n /**\n * To provide props to the sendToField. Supports sendTo options.\n */\n sendToFieldProps: PropTypes.object,\n /**\n * This Boolean value, when set to true, shows reset to default button.\n */\n showResetToDefaultButton: PropTypes.bool,\n /**\n * A reference to the editor.\n */\n editorRef: PropTypes.any,\n /**\n * To override the default editor addons\n */\n editorAddons: PropTypes.array,\n /**\n * The default values for the email form.\n */\n defaultValues: PropTypes.object,\n};\n\nexport default EmailForm;\n","import { noop, isNotEmpty } from \"neetocist\";\nimport { Tooltip } from \"neetoui\";\nimport { BlockNavigation, Switch } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty, pluck } from \"ramda\";\n\nimport { EmailFormProvider, EmailForm, EmailPreview } from \"..\";\nimport Header from \"../../Header\";\nimport MobilePreviewHeader from \"../../MobilePreviewHeader\";\nimport { INITIAL_FORM_VALUES } from \"../constants\";\nimport \"../email-form.scss\";\nimport { resolveContent } from \"../utils\";\n\nconst EmailFormComponent = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema,\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n blockNavigation = true,\n showCcField = false,\n showBccField = false,\n isLoading = false,\n maxEmails = 10,\n emailFormProps = {},\n emailPreviewProps = {},\n headerProps = {},\n tooltipProps = {},\n switchProps = {},\n mobilePreviewProps = {},\n}) => {\n const { formatBody, formatSubject, bodyVariables, subjectVariables } =\n emailPreviewProps;\n\n const shouldShowFields = values => isEmpty(switchProps) || values.isEnabled;\n\n return (\n <EmailFormProvider\n {...{\n formikProps,\n initialValues,\n maxEmails,\n onSubmit,\n showBccField,\n showCcField,\n showReplyToField,\n showSendToAsRadio,\n showSendToField,\n validationSchema,\n }}\n >\n {({ values, isSubmitting }) => (\n <div className=\"neeto-notification-email-wrapper flex flex-grow flex-col overflow-y-auto lg:flex-row\">\n <div className=\"neeto-notification-email-wrapper__form-wrapper flex w-full flex-col px-5 md:px-10 lg:h-full lg:w-1/2 lg:overflow-y-auto\">\n {blockNavigation && <BlockNavigation />}\n {isNotEmpty(headerProps) && (\n <Header className=\"px-0\" size=\"small\" {...headerProps} />\n )}\n {isNotEmpty(switchProps) && (\n <div className=\"flex items-center justify-between gap-y-0.5 pb-6\">\n <Tooltip\n disabled={!switchProps?.disabled}\n position=\"top\"\n {...tooltipProps}\n >\n <div className=\"flex items-center gap-2\">\n <Switch\n data-testid=\"switch\"\n name=\"isEnabled\"\n {...switchProps}\n />\n </div>\n </Tooltip>\n </div>\n )}\n {shouldShowFields(values) && children}\n <EmailForm\n isLoading={isSubmitting || isLoading}\n isUpdating={isSubmitting || isLoading}\n showFields={shouldShowFields(values)}\n {...emailFormProps}\n />\n </div>\n {shouldShowFields(values) && (\n <MobilePreviewHeader\n className=\"lg:hidden\"\n {...mobilePreviewProps}\n />\n )}\n {shouldShowFields(values) && (\n <div className=\"neeto-notification-email-wrapper__preview-wrapper neeto-ui-bg-gray-100 w-full px-6 py-10 lg:w-1/2 lg:overflow-y-auto\">\n <EmailPreview\n body={resolveContent(values.message, formatBody, bodyVariables)}\n from={values.sendFrom}\n to={pluck(\"value\", values?.sendTo ?? [])}\n subject={resolveContent(\n values.subject,\n formatSubject,\n subjectVariables\n )}\n {...emailPreviewProps}\n />\n </div>\n )}\n </div>\n )}\n </EmailFormProvider>\n );\n};\n\nEmailFormComponent.propTypes = {\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n isEnabled: PropTypes.bool,\n }),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be radio type or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * These are the values that will be passed to EmailForm Component\n */\n emailFormProps: PropTypes.shape({\n messageVariables: PropTypes.array,\n subjectVariables: PropTypes.array,\n handleCancel: PropTypes.func,\n handleResetToDefault: PropTypes.func,\n isLoading: PropTypes.bool,\n replyToFieldProps: PropTypes.object,\n sendToFieldProps: PropTypes.object,\n replyToOptions: PropTypes.array,\n sendToOptions: PropTypes.array,\n isUpdating: PropTypes.bool,\n showFields: PropTypes.bool,\n className: PropTypes.string,\n showResetToDefaultButton: PropTypes.bool,\n editorRef: PropTypes.any,\n editorAddons: PropTypes.array,\n }),\n /**\n * These are the values that will be passed to EmailPreview Component\n */\n emailPreviewProps: PropTypes.shape({\n to: PropTypes.array,\n from: PropTypes.string,\n subject: PropTypes.string,\n body: PropTypes.string,\n actionButtonText: PropTypes.string,\n logo: PropTypes.string,\n customContent: PropTypes.string,\n className: PropTypes.string,\n formatBody: PropTypes.func,\n formatSubject: PropTypes.func,\n bodyVariables: PropTypes.object,\n subjectVariables: PropTypes.object,\n }),\n /**\n * These are the values that will be passed to Header Component\n */\n headerProps: PropTypes.object,\n /**\n * These are the values that will be passed to Tooltip Component\n */\n tooltipProps: PropTypes.object,\n /**\n * These are the values that will be passed to Switch Component\n */\n switchProps: PropTypes.object,\n /**\n * These are the values that will be passed to MobilePreviewHeader Component\n */\n mobilePreviewProps: PropTypes.object,\n};\n\nexport default EmailFormComponent;\n","import { 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\n className=\"neeto-notification-email-outer-wrapper\"\n data-testid=\"email-form-provider\"\n >\n <EmailFormContext.Provider\n value={{\n showSendToField,\n showSendToAsRadio,\n showReplyToField,\n showCcField,\n showBccField,\n }}\n >\n <Form\n className=\"neeto-notification-email-inner-wrapper\"\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n }),\n initialValues: {\n ...initialValues,\n replyTo: initialValues.replyTo || globalProps.user.email,\n },\n onSubmit,\n ...formikProps,\n }}\n >\n {children}\n </Form>\n </EmailFormContext.Provider>\n </div>\n);\n\nEmailFormProvider.propTypes = {\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be radio type or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n }),\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n};\n\nexport default EmailFormProvider;\n"],"names":["INITIAL_FORM_VALUES","sendTo","sendToId","sendToCc","sendToBcc","replyTo","showCopyEmails","subject","message","isEnabled","EMAIL_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","test","value","isEditorEmpty","sendToFieldValidation","maxEmails","validation","array","emails","every","prop","count","length","min","entity","nullable","SEND_TO_ID_FIELD_VALIDATION","REPLY_TO_FIELD_VALIDATION","email","EDITOR_ADDONS","EmailFormContext","createContext","showSendToField","showSendToAsRadio","showReplyToField","getValidationSchema","_ref","customValidations","schema","clone","concat","shape","getReplyToFieldLabelProps","_ref2","popoverProps","helpIconProps","_defineProperty","isPresent","content","touch","_objectSpread","appendTo","description","resolveContent","func","variable","normalizeHtmlString","str","replace","trim","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","category","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","handleResetToDefault","isLoading","replyToFieldProps","sendToFieldProps","replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$isResetting","isResetting","_ref$showFields","showFields","_ref$className","_ref$editorAddons","editorAddons","showResetToDefaultButton","_ref$editorRef","editorRef","_ref$defaultValues","defaultValues","_useContext","useContext","resetForm","normalizedValues","normalizedDefaultValues","globalProps","user","disabled","equals","sendToFieldOptions","showSendToRadioField","classnames","Field","field","meta","Radio","map","_ref3","_createElement","Item","FormikEditor","addons","ref","shouldUpdate","nextProps","prevProps","notEqualsDeep","ActionBlock","cancelButtonProps","onClick","isSubmitting","Button","loading","EmailFormComponent","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$blockNavigation","blockNavigation","_ref$showCcField","_ref$showBccField","_ref$isLoading","_ref$maxEmails","_ref$emailFormProps","emailFormProps","_ref$emailPreviewProp","emailPreviewProps","_ref$headerProps","headerProps","_ref$tooltipProps","tooltipProps","_ref$switchProps","switchProps","_ref$mobilePreviewPro","mobilePreviewProps","formatBody","formatSubject","bodyVariables","shouldShowFields","isEmpty","EmailFormProvider","_values$sendTo","BlockNavigation","Header","Tooltip","position","Switch","MobilePreviewHeader","EmailPreview","body","from","sendFrom","to","pluck","_ref$validationSchema","Provider","Form","enableReinitialize"],"mappings":"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"}
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/EmailFormComponent/index.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 isEnabled: false,\n};\n\nexport const EMAIL_FORM_VALIDATION_SCHEMA = yup.object({\n subject: yup\n .string()\n .required(t(\"neetoMolecules.emailForm.errors.subjectRequired\")),\n message: yup\n .string()\n .test(\n \"message\",\n t(\"neetoMolecules.emailForm.errors.messageRequired\"),\n value => !isEditorEmpty(value)\n ),\n});\n\nexport const sendToFieldValidation = maxEmails => {\n const validation = yup\n .array()\n .test(\n \"all-emails-valid\",\n t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"),\n emails => emails?.every(prop(\"valid\"))\n )\n .test(\n \"max-email-count\",\n t(\"neetoMolecules.emailForm.errors.maxEmails\", { count: maxEmails }),\n emails => emails?.length <= maxEmails\n );\n\n return yup.object({\n sendTo: validation\n .min(\n 1,\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.sendToEmailAddress\"),\n })\n )\n .nullable(),\n sendToCc: validation,\n sendToBcc: validation,\n });\n};\n\nexport const SEND_TO_ID_FIELD_VALIDATION = yup.object({\n sendToId: yup.string().required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n })\n ),\n});\n\nexport const REPLY_TO_FIELD_VALIDATION = yup.object({\n replyTo: yup\n .string()\n .nullable()\n .email(t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"))\n .required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.replyToEmailAddress\"),\n })\n ),\n});\n\nexport const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n \"video-embed\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","/* eslint-disable @bigbinary/neeto/use-zustand-for-global-state-management */\nimport { createContext } from \"react\";\n\nconst EmailFormContext = createContext({\n showSendToField: false,\n showSendToAsRadio: false,\n showReplyToField: false,\n});\n\nexport { EmailFormContext };\n","import { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\n\nimport {\n EMAIL_FORM_VALIDATION_SCHEMA,\n REPLY_TO_FIELD_VALIDATION,\n sendToFieldValidation,\n SEND_TO_ID_FIELD_VALIDATION,\n} from \"./constants\";\n\nexport const getValidationSchema = ({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio\n ? SEND_TO_ID_FIELD_VALIDATION\n : sendToFieldValidation(maxEmails)\n );\n }\n\n if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);\n\n const isYupObject = customValidations.type === \"object\";\n\n if (isYupObject) {\n const customFields = customValidations.fields || {};\n schema = schema.shape(customFields);\n } else if (typeof customValidations === \"object\") {\n schema = schema.shape(customValidations);\n }\n\n return schema;\n};\n\nexport const getReplyToFieldLabelProps = ({ popoverProps }) => ({\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n [\"data-cy\"]: \"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\nexport const resolveContent = (content, func, variable) => {\n if (typeof func === \"function\") {\n return func(content, variable);\n }\n\n return content;\n};\n\nexport const normalizeHtmlString = str => {\n if (typeof str !== \"string\") return str;\n\n return str\n .replace(/\\uFEFF/g, \"\")\n .replace(/\\r\\n|\\r/g, \"\\n\")\n .replace(/&nbsp;/g, \" \")\n .replace(/[\\t ]+/g, \" \")\n .replace(/\\s*\\n\\s*/g, \"\\n\")\n .replace(/\\n+/g, \"\\n\")\n .replace(/>\\s+</g, \"><\")\n .trim();\n};\n","import { 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 onBlur,\n}) => {\n const [isFieldFocusedOnce, setIsFieldFocusedOnce] = useState(false);\n\n const { t } = useTranslation();\n\n const tagClickHandler = ({ key: slug, category }) => {\n const textAreaElement = document.querySelector(`textarea[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && textAreaElement\n ? textAreaElement.selectionEnd\n : text.length;\n\n const variable = category ? `${category}.${slug}` : slug;\n const updatedSubject = [\n text.slice(0, splitIndex),\n ` {{${variable}}}`,\n text.slice(splitIndex),\n ].join(\"\");\n updateText(updatedSubject);\n };\n\n return (\n <>\n <Input\n {...{ error, name, onBlur, 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 { notEqualsDeep, isNotEmpty } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography, Button } from \"neetoui\";\nimport { ActionBlock, Radio } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { equals } from \"ramda\";\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\";\nimport { normalizeHtmlString } from \"./utils\";\n\nconst EmailForm = ({\n messageVariables = [],\n subjectVariables = [],\n handleCancel,\n handleResetToDefault,\n isLoading,\n replyToFieldProps,\n sendToFieldProps,\n replyToOptions,\n sendToOptions = [],\n isUpdating = false,\n isResetting = false,\n showFields = true,\n className = \"\",\n editorAddons = EDITOR_ADDONS,\n showResetToDefaultButton,\n editorRef = null,\n defaultValues = {},\n}) => {\n const { t } = useTranslation();\n\n const {\n showSendToField,\n showSendToAsRadio,\n showReplyToField,\n showCcField,\n showBccField,\n } = useContext(EmailFormContext);\n\n const { setFieldValue, values, resetForm } = useFormikContext();\n\n const normalizedValues = {\n ...values,\n message: normalizeHtmlString(values.message),\n };\n\n const normalizedDefaultValues = {\n ...defaultValues,\n message: normalizeHtmlString(defaultValues?.message),\n };\n\n normalizedDefaultValues.replyTo ||= globalProps.user.email;\n\n const disabled = equals(normalizedValues, normalizedDefaultValues);\n\n const sendToFieldOptions = sendToFieldProps?.options || sendToOptions;\n const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToFieldOptions);\n\n const showSendToTextField = showSendToField && !showSendToRadioField;\n\n return (\n <div\n data-cy=\"email-form\"\n data-testid=\"email-form\"\n className={classnames(\n \"neeto-notification-email-wrapper__form-container 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, onBlur }, meta: { error, touched } }) => (\n <div className=\"w-full\">\n <SubjectField\n {...{ onBlur, subjectVariables }}\n required\n error={touched && error ? t(error) : undefined}\n name=\"subject\"\n text={value}\n updateText={text => setFieldValue(\"subject\", text)}\n />\n </div>\n )}\n </Field>\n {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\" data-cy=\"message-input-container\">\n <FormikEditor\n required\n addons={editorAddons}\n data-cy=\"message-input-field\"\n id=\"form_message\"\n label={t(\"neetoMolecules.emailForm.labels.message\")}\n name=\"message\"\n ref={editorRef}\n variables={messageVariables}\n shouldUpdate={(nextProps, prevProps) =>\n notEqualsDeep(nextProps.variables, prevProps.variables)\n }\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 <div className=\"neeto-ui-bg-white neeto-notification-email-wrapper__action-block z-10 flex w-full justify-between py-6 lg:sticky lg:bottom-0\">\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isLoading || isUpdating}\n />\n {showResetToDefaultButton && (\n <div className=\"neeto-ui-action-block__wrapper\">\n <Button\n {...{ disabled }}\n data-cy=\"resetToDefaultButton\"\n label={t(\"neetoMolecules.emailForm.labels.resetToDefault\")}\n loading={isResetting}\n style=\"tertiary\"\n onClick={() => {\n resetForm();\n handleResetToDefault();\n }}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nEmailForm.propTypes = {\n /**\n * This is an array of objects used for templating within the message field. Each object in the array has a **label** and a **key**.\n */\n messageVariables: PropTypes.array,\n /**\n * This is an array of objects used for templating within the subject field. Each object in the array has a **label** and a **key**.\n */\n subjectVariables: PropTypes.array,\n /**\n * This function that gets triggered when the 'Cancel' button is clicked.\n */\n handleCancel: PropTypes.func,\n /**\n * This function that gets triggered when the 'Reset to default' button is clicked.\n */\n handleResetToDefault: PropTypes.func,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Reset to default' button.\n */\n isResetting: PropTypes.bool,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Reply To' field into a dropdown menu with given options. Without this prop, 'Reply To' will be a text input field.\n */\n replyToOptions: PropTypes.array,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Send To' field into a radio group with given options. Without this prop, 'Send To' will be a multi email input field.\n */\n sendToOptions: PropTypes.array,\n /**\n * A Boolean flag indicating whether an update operation is currently in progress. When set to `true`, the 'Save changes' button is disabled.\n */\n isUpdating: PropTypes.bool,\n /**\n * To provide additional classnames to the button.\n */\n className: PropTypes.string,\n /**\n * To provide props to the replyToField. Supports options that will\n * be rendered as the reply to options and popover props.\n */\n replyToFieldProps: PropTypes.object,\n /**\n * To provide props to the sendToField. Supports sendTo options.\n */\n sendToFieldProps: PropTypes.object,\n /**\n * This Boolean value, when set to true, shows reset to default button.\n */\n showResetToDefaultButton: PropTypes.bool,\n /**\n * A reference to the editor.\n */\n editorRef: PropTypes.any,\n /**\n * To override the default editor addons\n */\n editorAddons: PropTypes.array,\n /**\n * The default values for the email form.\n */\n defaultValues: PropTypes.object,\n};\n\nexport default EmailForm;\n","import { noop, isNotEmpty } from \"neetocist\";\nimport { Tooltip } from \"neetoui\";\nimport { BlockNavigation, Switch } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty, pluck } from \"ramda\";\n\nimport { EmailFormProvider, EmailForm, EmailPreview } from \"..\";\nimport Header from \"../../Header\";\nimport MobilePreviewHeader from \"../../MobilePreviewHeader\";\nimport { INITIAL_FORM_VALUES } from \"../constants\";\nimport \"../email-form.scss\";\nimport { resolveContent } from \"../utils\";\n\nconst EmailFormComponent = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema,\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n blockNavigation = true,\n showCcField = false,\n showBccField = false,\n isLoading = false,\n maxEmails = 10,\n emailFormProps = {},\n emailPreviewProps = {},\n headerProps = {},\n tooltipProps = {},\n switchProps = {},\n mobilePreviewProps = {},\n}) => {\n const { formatBody, formatSubject, bodyVariables, subjectVariables } =\n emailPreviewProps;\n\n const shouldShowFields = values => isEmpty(switchProps) || values.isEnabled;\n\n return (\n <EmailFormProvider\n {...{\n formikProps,\n initialValues,\n maxEmails,\n onSubmit,\n showBccField,\n showCcField,\n showReplyToField,\n showSendToAsRadio,\n showSendToField,\n validationSchema,\n }}\n >\n {({ values, isSubmitting }) => (\n <div className=\"neeto-notification-email-wrapper flex flex-grow flex-col overflow-y-auto lg:flex-row\">\n <div className=\"neeto-notification-email-wrapper__form-wrapper flex w-full flex-col px-5 md:px-10 lg:h-full lg:w-1/2 lg:overflow-y-auto\">\n {blockNavigation && <BlockNavigation />}\n {isNotEmpty(headerProps) && (\n <Header className=\"px-0\" size=\"small\" {...headerProps} />\n )}\n {isNotEmpty(switchProps) && (\n <div className=\"flex items-center justify-between gap-y-0.5 pb-6\">\n <Tooltip\n disabled={!switchProps?.disabled}\n position=\"top\"\n {...tooltipProps}\n >\n <div className=\"flex items-center gap-2\">\n <Switch\n data-testid=\"switch\"\n name=\"isEnabled\"\n {...switchProps}\n />\n </div>\n </Tooltip>\n </div>\n )}\n {shouldShowFields(values) && children}\n <EmailForm\n isLoading={isSubmitting || isLoading}\n isUpdating={isSubmitting || isLoading}\n showFields={shouldShowFields(values)}\n {...emailFormProps}\n />\n </div>\n {shouldShowFields(values) && (\n <MobilePreviewHeader\n className=\"lg:hidden\"\n {...mobilePreviewProps}\n />\n )}\n {shouldShowFields(values) && (\n <div className=\"neeto-notification-email-wrapper__preview-wrapper neeto-ui-bg-gray-100 w-full px-6 py-10 lg:w-1/2 lg:overflow-y-auto\">\n <EmailPreview\n body={resolveContent(values.message, formatBody, bodyVariables)}\n from={values.sendFrom}\n to={pluck(\"value\", values?.sendTo ?? [])}\n subject={resolveContent(\n values.subject,\n formatSubject,\n subjectVariables\n )}\n {...emailPreviewProps}\n />\n </div>\n )}\n </div>\n )}\n </EmailFormProvider>\n );\n};\n\nEmailFormComponent.propTypes = {\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n isEnabled: PropTypes.bool,\n }),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be radio type or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * These are the values that will be passed to EmailForm Component\n */\n emailFormProps: PropTypes.shape({\n messageVariables: PropTypes.array,\n subjectVariables: PropTypes.array,\n handleCancel: PropTypes.func,\n handleResetToDefault: PropTypes.func,\n isLoading: PropTypes.bool,\n replyToFieldProps: PropTypes.object,\n sendToFieldProps: PropTypes.object,\n replyToOptions: PropTypes.array,\n sendToOptions: PropTypes.array,\n isUpdating: PropTypes.bool,\n showFields: PropTypes.bool,\n className: PropTypes.string,\n showResetToDefaultButton: PropTypes.bool,\n editorRef: PropTypes.any,\n editorAddons: PropTypes.array,\n }),\n /**\n * These are the values that will be passed to EmailPreview Component\n */\n emailPreviewProps: PropTypes.shape({\n to: PropTypes.array,\n from: PropTypes.string,\n subject: PropTypes.string,\n body: PropTypes.string,\n actionButtonText: PropTypes.string,\n logo: PropTypes.string,\n customContent: PropTypes.string,\n className: PropTypes.string,\n formatBody: PropTypes.func,\n formatSubject: PropTypes.func,\n bodyVariables: PropTypes.object,\n subjectVariables: PropTypes.object,\n }),\n /**\n * These are the values that will be passed to Header Component\n */\n headerProps: PropTypes.object,\n /**\n * These are the values that will be passed to Tooltip Component\n */\n tooltipProps: PropTypes.object,\n /**\n * These are the values that will be passed to Switch Component\n */\n switchProps: PropTypes.object,\n /**\n * These are the values that will be passed to MobilePreviewHeader Component\n */\n mobilePreviewProps: PropTypes.object,\n};\n\nexport default EmailFormComponent;\n","import { 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\n className=\"neeto-notification-email-outer-wrapper\"\n data-testid=\"email-form-provider\"\n >\n <EmailFormContext.Provider\n value={{\n showSendToField,\n showSendToAsRadio,\n showReplyToField,\n showCcField,\n showBccField,\n }}\n >\n <Form\n className=\"neeto-notification-email-inner-wrapper\"\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n }),\n initialValues: {\n ...initialValues,\n replyTo: initialValues.replyTo || globalProps.user.email,\n },\n onSubmit,\n ...formikProps,\n }}\n >\n {children}\n </Form>\n </EmailFormContext.Provider>\n </div>\n);\n\nEmailFormProvider.propTypes = {\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be radio type or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n }),\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n};\n\nexport default EmailFormProvider;\n"],"names":["INITIAL_FORM_VALUES","sendTo","sendToId","sendToCc","sendToBcc","replyTo","showCopyEmails","subject","message","isEnabled","EMAIL_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","test","value","isEditorEmpty","sendToFieldValidation","maxEmails","validation","array","emails","every","prop","count","length","min","entity","nullable","SEND_TO_ID_FIELD_VALIDATION","REPLY_TO_FIELD_VALIDATION","email","EDITOR_ADDONS","EmailFormContext","createContext","showSendToField","showSendToAsRadio","showReplyToField","getValidationSchema","_ref","customValidations","schema","clone","concat","isYupObject","type","customFields","fields","shape","_typeof","getReplyToFieldLabelProps","_ref2","popoverProps","helpIconProps","_defineProperty","isPresent","content","touch","_objectSpread","appendTo","description","resolveContent","func","variable","normalizeHtmlString","str","replace","trim","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","onBlur","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","slug","key","category","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","EmailForm","_ref$messageVariables","messageVariables","handleCancel","handleResetToDefault","isLoading","replyToFieldProps","sendToFieldProps","replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$isResetting","isResetting","_ref$showFields","showFields","_ref$className","_ref$editorAddons","editorAddons","showResetToDefaultButton","_ref$editorRef","editorRef","_ref$defaultValues","defaultValues","_useContext","useContext","resetForm","normalizedValues","normalizedDefaultValues","globalProps","user","disabled","equals","sendToFieldOptions","showSendToRadioField","classnames","Field","_ref2$field","field","_ref2$meta","meta","touched","undefined","Radio","map","_ref3","_createElement","Item","FormikEditor","addons","ref","shouldUpdate","nextProps","prevProps","notEqualsDeep","ActionBlock","cancelButtonProps","onClick","isSubmitting","Button","loading","EmailFormComponent","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$blockNavigation","blockNavigation","_ref$showCcField","_ref$showBccField","_ref$isLoading","_ref$maxEmails","_ref$emailFormProps","emailFormProps","_ref$emailPreviewProp","emailPreviewProps","_ref$headerProps","headerProps","_ref$tooltipProps","tooltipProps","_ref$switchProps","switchProps","_ref$mobilePreviewPro","mobilePreviewProps","formatBody","formatSubject","bodyVariables","shouldShowFields","isEmpty","EmailFormProvider","_values$sendTo","BlockNavigation","Header","Tooltip","position","Switch","MobilePreviewHeader","EmailPreview","body","from","sendFrom","to","pluck","_ref$validationSchema","Provider","Form","enableReinitialize"],"mappings":"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"}