@bigbinary/neeto-molecules 3.2.10 → 3.2.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Taxonomy.js","sources":["../src/components/Taxonomy/constants.js","../src/components/Taxonomy/api.js","../src/components/Taxonomy/useTaxonomyApi.js","../src/components/Taxonomy/utils.jsx","../src/components/Taxonomy/EditPane.jsx","../src/components/Taxonomy/LeftActionBlock.jsx","../src/components/Taxonomy/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const LABEL_REJECT_CHARS_REGEX = /[^a-zA-Z\\d\\s_-]+/;\n\nexport const VALIDATION_SCHEMA = yup.object().shape({\n singularLabel: yup\n .string()\n .trim()\n .required(\n t(\"neetoMolecules.taxonomy.editPane.validations.singularLabelRequired\")\n ),\n pluralLabel: yup\n .string()\n .trim()\n .required(\n t(\"neetoMolecules.taxonomy.editPane.validations.pluralLabelRequired\")\n ),\n});\n\nexport const TAXONOMY_EVENTS = { UPDATED: \"taxonomy_updated\" };\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/constants\";\n\nconst update = ({ keyName, payload }) =>\n axios.patch(`${BASE_API_V1_URL}/taxonomies/${keyName}`, payload);\n\nconst bulkDestroy = payload =>\n axios.delete(`${BASE_API_V1_URL}/taxonomies/bulk_destroy`, {\n data: payload,\n });\n\nconst taxonomiesApi = { update, bulkDestroy };\n\nexport default taxonomiesApi;\n","import { useMutation } from \"@tanstack/react-query\";\n\nimport taxonomiesApi from \"./api\";\n\nconst useUpdateTaxonomy = options =>\n useMutation({ mutationFn: taxonomiesApi.update, ...options });\n\nconst useBulkDestroyTaxonomies = options =>\n useMutation({ mutationFn: taxonomiesApi.bulkDestroy, ...options });\n\nexport { useUpdateTaxonomy, useBulkDestroyTaxonomies };\n","import React from \"react\";\n\nimport { t } from \"i18next\";\nimport { capitalize } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport { fromPairs, toPairs } from \"ramda\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nexport const formatLabel = label => capitalize(label.trim());\n\nexport const formatDataForTable = taxonomies =>\n toPairs(taxonomies).map(([keyName, labels]) => ({\n keyName,\n singularLabel: labels[\"singular\"],\n pluralLabel: labels[\"plural\"],\n }));\n\nexport const getColumnData = (\n handleEdit,\n setCurrentKeys,\n setIsResetModalOpen\n) => [\n {\n title: t(\"neetoMolecules.taxonomy.defaultLabel\"),\n dataIndex: \"default\",\n key: \"defaultLabel\",\n width: 400,\n render: (_, values) => {\n const menuItems = [\n {\n key: \"edit\",\n label: t(\"neetoMolecules.common.actions.edit\"),\n onClick: () => handleEdit(values),\n },\n {\n key: \"reset\",\n label: t(\"neetoMolecules.common.actions.resetToDefaults\"),\n onClick: () => {\n setCurrentKeys([values.keyName]);\n setIsResetModalOpen(true);\n },\n },\n ];\n\n return (\n <div className=\"flex items-center justify-between gap-x-3\">\n <Typography style=\"body2\">\n {t(`taxonomyDefaultLabels.${values.keyName}.singular`)}\n </Typography>\n <MoreDropdown\n dropdownProps={{ strategy: \"fixed\" }}\n dropdownButtonProps={{\n \"data-testid\": `nui-dropdown-icon-${values.keyName}`,\n }}\n {...{ menuItems }}\n />\n </div>\n );\n },\n },\n {\n title: t(\"neetoMolecules.taxonomy.singularLabel\"),\n dataIndex: \"singularLabel\",\n key: \"singularLabel\",\n width: 300,\n },\n {\n title: t(\"neetoMolecules.taxonomy.pluralLabel\"),\n dataIndex: \"pluralLabel\",\n key: \"pluralLabel\",\n width: 300,\n },\n];\n\nexport const getFilteredTaxonomies = (matchString, taxonomies) => {\n const filteredArray = toPairs(taxonomies).filter(([key, value]) => {\n const defaultLabel = t(`taxonomyDefaultLabels.${key}.singular`);\n const valuesToSearch = [defaultLabel, ...Object.values(value)];\n\n return valuesToSearch.some(str =>\n str.toLowerCase().includes(matchString.toLowerCase())\n );\n });\n\n return fromPairs(filteredArray);\n};\n","import React, { useRef } from \"react\";\n\nimport { captureAnalyticsEvent } from \"neetocommons/utils\";\nimport { Pane, Toastr, Typography } from \"neetoui\";\nimport { ActionBlock, Form, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n LABEL_REJECT_CHARS_REGEX,\n TAXONOMY_EVENTS,\n VALIDATION_SCHEMA,\n} from \"./constants\";\nimport { useUpdateTaxonomy } from \"./useTaxonomyApi\";\nimport { formatLabel } from \"./utils\";\n\nconst EditPane = ({ initialValues, isOpen, onClose }) => {\n const { t } = useTranslation();\n const initialFocusRef = useRef(null);\n\n const { mutate: updateTaxonomy } = useUpdateTaxonomy();\n\n const handleSubmit = (values, { setSubmitting }) => {\n const { keyName, singularLabel, pluralLabel } = values;\n\n const payload = {\n taxonomy: {\n keyName,\n singularLabel: formatLabel(singularLabel),\n pluralLabel: formatLabel(pluralLabel),\n },\n };\n\n const options = {\n onSuccess: () => {\n captureAnalyticsEvent(TAXONOMY_EVENTS.UPDATED, {\n taxonomy: payload.taxonomy,\n });\n window.location.reload();\n },\n onError: error => Toastr.error(error),\n onSettled: () => setSubmitting(false),\n };\n\n updateTaxonomy({ keyName, payload }, options);\n };\n\n return (\n <Pane\n {...{ initialFocusRef, isOpen, onClose }}\n data-testid=\"taxonomy-edit-pane\"\n >\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.taxonomy.editPane.title\", {\n entity: t(\n `taxonomyDefaultLabels.${initialValues.keyName}.singular`\n ),\n })}\n </Typography>\n </Pane.Header>\n <Form\n formikProps={{\n initialValues,\n validationSchema: VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n <Pane.Body>\n <div className=\"w-full space-y-6\">\n <Input\n required\n className=\"w-full\"\n data-cy=\"taxonomy-singular-input-field\"\n data-testid=\"taxonomy-singular-input-field\"\n label={t(\"neetoMolecules.taxonomy.singularLabel\")}\n name=\"singularLabel\"\n ref={initialFocusRef}\n rejectCharsRegex={LABEL_REJECT_CHARS_REGEX}\n />\n <Input\n required\n className=\"w-full\"\n data-cy=\"taxonomy-plural-input-field\"\n data-testid=\"taxonomy-plural-input-field\"\n label={t(\"neetoMolecules.taxonomy.pluralLabel\")}\n name=\"pluralLabel\"\n rejectCharsRegex={LABEL_REJECT_CHARS_REGEX}\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: onClose, disabled: false }}\n className=\"flex items-center space-x-2\"\n />\n </Pane.Footer>\n </Form>\n </Pane>\n );\n};\n\nexport default EditPane;\n","import React from \"react\";\n\nimport { t } from \"i18next\";\nimport { Dropdown, Typography } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nconst LeftActionBlock = ({\n selectedCount,\n totalCount,\n setIsResetModalOpen,\n setCurrentKeys,\n selectedRowIds,\n}) => {\n const { Menu, MenuItem } = Dropdown;\n\n return (\n !!totalCount && (\n <>\n {selectedCount > 0 ? (\n <>\n <Typography\n className=\"mr-4 font-semibold\"\n component=\"h4\"\n data-cy=\"item-count\"\n >\n <Trans\n i18nKey=\"neetoMolecules.taxonomy.actionBlock.selectedTaxonomy\"\n values={{ count: selectedCount, totalCount }}\n components={{\n span: <span className=\"neeto-ui-text-gray-600\" />,\n }}\n />\n </Typography>\n <Dropdown\n buttonStyle=\"secondary\"\n label={t(\"neetoMolecules.taxonomy.actionBlock.takeAction\")}\n >\n <Menu>\n <MenuItem.Button\n style=\"secondary\"\n onClick={() => {\n setCurrentKeys(selectedRowIds);\n setIsResetModalOpen(true);\n }}\n >\n {t(\"neetoMolecules.common.actions.resetToDefaults\")}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n </>\n ) : (\n <Typography\n className=\"mr-4 font-semibold\"\n component=\"h4\"\n data-cy=\"item-count\"\n >\n {t(\"neetoMolecules.taxonomy.actionBlock.taxonomyWithCount\", {\n count: totalCount,\n })}\n </Typography>\n )}\n </>\n )\n );\n};\n\nexport default LeftActionBlock;\n","import React, { useState, useEffect } from \"react\";\n\nimport { t } from \"i18next\";\nimport { isNotEmpty } from \"neetocist\";\nimport { taxonomies, globalProps } from \"neetocommons/initializers\";\nimport withTitle from \"neetocommons/react-utils/withTitle\";\nimport { Alert, NoData, Table, Toastr } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { prop, pick, keys } from \"ramda\";\nimport { Trans } 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 EditPane from \"./EditPane\";\nimport LeftActionBlock from \"./LeftActionBlock\";\nimport { useBulkDestroyTaxonomies } from \"./useTaxonomyApi\";\nimport {\n formatDataForTable,\n getColumnData,\n getFilteredTaxonomies,\n} from \"./utils\";\n\nconst Taxonomy = ({ breadcrumbs }) => {\n const [isResetModalOpen, setIsResetModalOpen] = useState(false);\n const [isEditTaxonomyPaneOpen, setIsEditTaxonomyPaneOpen] = useState(false);\n const [initialValues, setInitialValues] = useState({});\n const [selectedRowIds, setSelectedRowIds] = useState([]);\n const [searchString, setSearchString] = useState(\"\");\n const [currentKeys, setCurrentKeys] = useState([]);\n const [isMobileScreen, setIsMobileScreen] = useState(false);\n\n const isLargerScreen = () => window.innerWidth > 1024;\n\n const { mutate: bulkDestroyTaxonomies } = useBulkDestroyTaxonomies();\n\n const hostTaxonomyKeys = keys(globalProps.taxonomies);\n const hostTaxonomies = pick(hostTaxonomyKeys, taxonomies);\n\n const [filteredTaxonomies, setFilteredTaxonomies] = useState(hostTaxonomies);\n\n const handleRowSelect = ids => setSelectedRowIds(ids);\n\n const handleDelete = () => {\n const payload = { keyNames: currentKeys };\n\n const options = {\n onSuccess: () => window.location.reload(),\n onError: error => Toastr.error(error),\n };\n\n bulkDestroyTaxonomies(payload, options);\n };\n\n const handleEdit = values => {\n setInitialValues(values);\n setIsEditTaxonomyPaneOpen(true);\n };\n\n const handleSearch = event => {\n setSearchString(event.target.value);\n const newTaxonomies = getFilteredTaxonomies(\n event.target.value,\n hostTaxonomies\n );\n setFilteredTaxonomies(newTaxonomies);\n };\n\n useEffect(() => {\n const handleResize = () => {\n if (isLargerScreen()) setIsMobileScreen(false);\n else setIsMobileScreen(true);\n };\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n return (\n <Container>\n <Header\n {...{ breadcrumbs }}\n size={isMobileScreen ? \"small\" : \"large\"}\n title={t(\"neetoMolecules.taxonomy.title\")}\n searchProps={{\n onChange: handleSearch,\n value: searchString,\n placeholder: t(\"neetoMolecules.taxonomy.searchTaxonomy\"),\n }}\n />\n <SubHeader\n leftActionBlock={\n <LeftActionBlock\n {...{ selectedRowIds, setCurrentKeys, setIsResetModalOpen }}\n selectedCount={selectedRowIds.length}\n totalCount={Object.entries(filteredTaxonomies).length}\n />\n }\n />\n {isNotEmpty(filteredTaxonomies) ? (\n <TableWrapper>\n <Table\n fixedHeight\n rowSelection\n allowRowClick={false}\n rowData={formatDataForTable(filteredTaxonomies)}\n rowKey={prop(\"keyName\")}\n scroll={{ x: 0 }}\n selectedRowKeys={selectedRowIds}\n tableLayout=\"fixed\"\n columnData={getColumnData(\n handleEdit,\n setCurrentKeys,\n setIsResetModalOpen\n )}\n onRowSelect={handleRowSelect}\n />\n <EditPane\n {...{ initialValues }}\n isOpen={isEditTaxonomyPaneOpen}\n onClose={() => setIsEditTaxonomyPaneOpen(false)}\n />\n <Alert\n isOpen={isResetModalOpen}\n submitButtonLabel={t(\"neetoMolecules.common.actions.proceed\")}\n title={t(\"neetoMolecules.taxonomy.resetAlert.title\")}\n message={\n <Trans\n i18nKey=\"neetoMolecules.taxonomy.resetAlert.message\"\n values={{\n count: currentKeys.length,\n what: t(`taxonomyDefaultLabels.${currentKeys[0]}.singular`),\n }}\n />\n }\n onClose={() => setIsResetModalOpen(false)}\n onSubmit={handleDelete}\n />\n </TableWrapper>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData title={t(\"neetoMolecules.taxonomy.noData\")} />\n </div>\n )}\n </Container>\n );\n};\n\nTaxonomy.propTypes = {\n /**\n * To show breadcrumbs. `text` accepts a text string to be shown as the breadcrumb and `link` accepts relative URL path for the breadcrumb.\n */\n breadcrumbs: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n link: PropTypes.string,\n })\n ),\n};\n\nexport default withTitle(Taxonomy, t(\"neetoMolecules.taxonomy.browserTitle\"));\n"],"names":["LABEL_REJECT_CHARS_REGEX","VALIDATION_SCHEMA","yup","object","shape","singularLabel","string","trim","required","t","pluralLabel","TAXONOMY_EVENTS","UPDATED","update","_ref","keyName","payload","axios","patch","concat","BASE_API_V1_URL","bulkDestroy","data","taxonomiesApi","useUpdateTaxonomy","options","useMutation","_objectSpread","mutationFn","useBulkDestroyTaxonomies","formatLabel","label","capitalize","formatDataForTable","taxonomies","toPairs","map","_ref2","_slicedToArray","labels","getColumnData","handleEdit","setCurrentKeys","setIsResetModalOpen","title","dataIndex","key","width","render","_","values","menuItems","onClick","React","createElement","className","Typography","style","MoreDropdown","dropdownProps","strategy","dropdownButtonProps","getFilteredTaxonomies","matchString","filteredArray","filter","_ref3","_ref4","value","defaultLabel","valuesToSearch","_toConsumableArray","Object","some","str","toLowerCase","includes","fromPairs","EditPane","initialValues","isOpen","onClose","_useTranslation","useTranslation","initialFocusRef","useRef","_useUpdateTaxonomy","updateTaxonomy","mutate","handleSubmit","setSubmitting","taxonomy","onSuccess","captureAnalyticsEvent","window","location","reload","onError","error","Toastr","onSettled","Pane","Header","weight","entity","Form","formikProps","validationSchema","onSubmit","Body","Input","name","ref","rejectCharsRegex","Footer","ActionBlock","cancelButtonProps","disabled","LeftActionBlock","selectedCount","totalCount","selectedRowIds","Menu","Dropdown","MenuItem","Fragment","component","Trans","i18nKey","count","components","span","buttonStyle","Button","Taxonomy","breadcrumbs","_useState","useState","_useState2","isResetModalOpen","_useState3","_useState4","isEditTaxonomyPaneOpen","setIsEditTaxonomyPaneOpen","_useState5","_useState6","setInitialValues","_useState7","_useState8","setSelectedRowIds","_useState9","_useState10","searchString","setSearchString","_useState11","_useState12","currentKeys","_useState13","_useState14","isMobileScreen","setIsMobileScreen","isLargerScreen","innerWidth","_useBulkDestroyTaxono","bulkDestroyTaxonomies","hostTaxonomyKeys","keys","globalProps","hostTaxonomies","pick","_useState15","_useState16","filteredTaxonomies","setFilteredTaxonomies","handleRowSelect","ids","handleDelete","keyNames","handleSearch","event","target","newTaxonomies","useEffect","handleResize","addEventListener","removeEventListener","Container","size","searchProps","onChange","placeholder","SubHeader","leftActionBlock","length","entries","isNotEmpty","TableWrapper","Table","fixedHeight","rowSelection","allowRowClick","rowData","rowKey","prop","scroll","x","selectedRowKeys","tableLayout","columnData","onRowSelect","Alert","submitButtonLabel","message","what","NoData","withTitle"],"mappings":"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"}
1
+ {"version":3,"file":"Taxonomy.js","sources":["../src/components/Taxonomy/constants.js","../src/components/Taxonomy/api.js","../src/components/Taxonomy/useTaxonomyApi.js","../src/components/Taxonomy/utils.jsx","../src/components/Taxonomy/EditPane.jsx","../src/components/Taxonomy/LeftActionBlock.jsx","../src/components/Taxonomy/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const LABEL_REJECT_CHARS_REGEX = /[^a-zA-Z\\d\\s_-]+/;\n\nexport const VALIDATION_SCHEMA = yup.object().shape({\n singularLabel: yup\n .string()\n .trim()\n .required(\n t(\"neetoMolecules.taxonomy.editPane.validations.singularLabelRequired\")\n ),\n pluralLabel: yup\n .string()\n .trim()\n .required(\n t(\"neetoMolecules.taxonomy.editPane.validations.pluralLabelRequired\")\n ),\n});\n\nexport const TAXONOMY_EVENTS = { UPDATED: \"taxonomy_updated\" };\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/constants\";\n\nconst update = ({ keyName, payload }) =>\n axios.patch(`${BASE_API_V1_URL}/taxonomies/${keyName}`, payload);\n\nconst bulkDestroy = payload =>\n axios.delete(`${BASE_API_V1_URL}/taxonomies/bulk_destroy`, {\n data: payload,\n });\n\nconst taxonomiesApi = { update, bulkDestroy };\n\nexport default taxonomiesApi;\n","import { useMutation } from \"@tanstack/react-query\";\n\nimport taxonomiesApi from \"./api\";\n\nconst useUpdateTaxonomy = options =>\n useMutation({ mutationFn: taxonomiesApi.update, ...options });\n\nconst useBulkDestroyTaxonomies = options =>\n useMutation({ mutationFn: taxonomiesApi.bulkDestroy, ...options });\n\nexport { useUpdateTaxonomy, useBulkDestroyTaxonomies };\n","import React from \"react\";\n\nimport { t } from \"i18next\";\nimport { capitalize } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport { fromPairs, toPairs } from \"ramda\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nexport const formatLabel = label => capitalize(label.trim());\n\nexport const formatDataForTable = taxonomies =>\n toPairs(taxonomies).map(([keyName, labels]) => ({\n keyName,\n singularLabel: labels[\"singular\"],\n pluralLabel: labels[\"plural\"],\n }));\n\nexport const getColumnData = ({\n columnLabels,\n columnsToShow,\n handleEdit,\n setCurrentKeys,\n setIsResetModalOpen,\n}) => {\n const {\n singularColumn: showSingularColumn = true,\n pluralColumn: showPluralColumn = true,\n } = columnsToShow;\n\n const {\n singular: singularLabel = t(\"neetoMolecules.taxonomy.singularLabel\"),\n plural: pluralLabel = t(\"neetoMolecules.taxonomy.pluralLabel\"),\n } = columnLabels;\n\n return [\n {\n title: t(\"neetoMolecules.taxonomy.defaultLabel\"),\n dataIndex: \"default\",\n key: \"defaultLabel\",\n width: 400,\n render: (_, values) => {\n const menuItems = [\n {\n key: \"edit\",\n label: t(\"neetoMolecules.common.actions.edit\"),\n onClick: () => handleEdit(values),\n },\n {\n key: \"reset\",\n label: t(\"neetoMolecules.common.actions.resetToDefaults\"),\n onClick: () => {\n setCurrentKeys([values.keyName]);\n setIsResetModalOpen(true);\n },\n },\n ];\n\n return (\n <div className=\"flex items-center justify-between gap-x-3\">\n <Typography style=\"body2\">\n {t(`taxonomyDefaultLabels.${values.keyName}.singular`)}\n </Typography>\n <MoreDropdown\n {...{ menuItems }}\n dropdownProps={{ strategy: \"fixed\" }}\n dropdownButtonProps={{\n \"data-testid\": `nui-dropdown-icon-${values.keyName}`,\n }}\n />\n </div>\n );\n },\n },\n ...(showSingularColumn\n ? [\n {\n title: singularLabel,\n dataIndex: \"singularLabel\",\n key: \"singularLabel\",\n width: 300,\n },\n ]\n : []),\n ...(showPluralColumn\n ? [\n {\n title: pluralLabel,\n dataIndex: \"pluralLabel\",\n key: \"pluralLabel\",\n width: 300,\n },\n ]\n : []),\n ];\n};\n\nexport const getFilteredTaxonomies = (matchString, taxonomies) => {\n const filteredArray = toPairs(taxonomies).filter(([key, value]) => {\n const defaultLabel = t(`taxonomyDefaultLabels.${key}.singular`);\n const valuesToSearch = [defaultLabel, ...Object.values(value)];\n\n return valuesToSearch.some(str =>\n str.toLowerCase().includes(matchString.toLowerCase())\n );\n });\n\n return fromPairs(filteredArray);\n};\n","import React, { useRef } from \"react\";\n\nimport { SINGULAR, PLURAL } from \"neetocommons/constants\";\nimport { captureAnalyticsEvent } from \"neetocommons/utils\";\nimport { Pane, Toastr, Typography } from \"neetoui\";\nimport { ActionBlock, Form, Input } from \"neetoui/formik\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport {\n LABEL_REJECT_CHARS_REGEX,\n TAXONOMY_EVENTS,\n VALIDATION_SCHEMA,\n} from \"./constants\";\nimport { useUpdateTaxonomy } from \"./useTaxonomyApi\";\nimport { formatLabel } from \"./utils\";\n\nconst EditPane = ({\n columnLabels,\n columnsToShow,\n initialValues,\n isOpen,\n onClose,\n}) => {\n const { t } = useTranslation();\n const initialFocusRef = useRef(null);\n\n const { mutate: updateTaxonomy } = useUpdateTaxonomy();\n\n const {\n singularColumn: showSingularInputField = true,\n pluralColumn: showPluralInputField = true,\n } = columnsToShow;\n\n const {\n singular: singularLabel = t(\"neetoMolecules.taxonomy.singularLabel\"),\n plural: pluralLabel = t(\"neetoMolecules.taxonomy.pluralLabel\"),\n } = columnLabels;\n\n const handleSubmit = (values, { setSubmitting }) => {\n const { keyName, singularLabel, pluralLabel } = values;\n\n const payload = {\n taxonomy: {\n keyName,\n singularLabel: formatLabel(singularLabel),\n pluralLabel: formatLabel(pluralLabel),\n },\n };\n\n const options = {\n onSuccess: () => {\n captureAnalyticsEvent(TAXONOMY_EVENTS.UPDATED, {\n taxonomy: payload.taxonomy,\n });\n window.location.reload();\n },\n onError: error => Toastr.error(error),\n onSettled: () => setSubmitting(false),\n };\n\n updateTaxonomy({ keyName, payload }, options);\n };\n\n return (\n <Pane\n {...{ initialFocusRef, isOpen, onClose }}\n data-testid=\"taxonomy-edit-pane\"\n >\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n <Trans\n i18nKey=\"neetoMolecules.taxonomy.editPane.title\"\n values={{\n entity: t(\n `taxonomyDefaultLabels.${initialValues.keyName}.singular`\n ),\n ...(showSingularInputField && showPluralInputField\n ? PLURAL\n : SINGULAR),\n }}\n />\n </Typography>\n </Pane.Header>\n <Form\n formikProps={{\n initialValues,\n validationSchema: VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n <Pane.Body>\n <div className=\"w-full space-y-6\">\n {showSingularInputField && (\n <Input\n required\n className=\"w-full\"\n data-cy=\"taxonomy-singular-input-field\"\n data-testid=\"taxonomy-singular-input-field\"\n label={singularLabel}\n name=\"singularLabel\"\n ref={initialFocusRef}\n rejectCharsRegex={LABEL_REJECT_CHARS_REGEX}\n />\n )}\n {showPluralInputField && (\n <Input\n required\n className=\"w-full\"\n data-cy=\"taxonomy-plural-input-field\"\n data-testid=\"taxonomy-plural-input-field\"\n label={pluralLabel}\n name=\"pluralLabel\"\n rejectCharsRegex={LABEL_REJECT_CHARS_REGEX}\n />\n )}\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: onClose, disabled: false }}\n className=\"flex items-center space-x-2\"\n />\n </Pane.Footer>\n </Form>\n </Pane>\n );\n};\n\nexport default EditPane;\n","import React from \"react\";\n\nimport { t } from \"i18next\";\nimport { Dropdown, Typography } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nconst LeftActionBlock = ({\n selectedCount,\n totalCount,\n setIsResetModalOpen,\n setCurrentKeys,\n selectedRowIds,\n}) => {\n const { Menu, MenuItem } = Dropdown;\n\n return (\n !!totalCount && (\n <>\n {selectedCount > 0 ? (\n <>\n <Typography\n className=\"mr-4 font-semibold\"\n component=\"h4\"\n data-cy=\"item-count\"\n >\n <Trans\n i18nKey=\"neetoMolecules.taxonomy.actionBlock.selectedTaxonomy\"\n values={{ count: selectedCount, totalCount }}\n components={{\n span: <span className=\"neeto-ui-text-gray-600\" />,\n }}\n />\n </Typography>\n <Dropdown\n buttonStyle=\"secondary\"\n label={t(\"neetoMolecules.taxonomy.actionBlock.takeAction\")}\n >\n <Menu>\n <MenuItem.Button\n style=\"secondary\"\n onClick={() => {\n setCurrentKeys(selectedRowIds);\n setIsResetModalOpen(true);\n }}\n >\n {t(\"neetoMolecules.common.actions.resetToDefaults\")}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n </>\n ) : (\n <Typography\n className=\"mr-4 font-semibold\"\n component=\"h4\"\n data-cy=\"item-count\"\n >\n {t(\"neetoMolecules.taxonomy.actionBlock.taxonomyWithCount\", {\n count: totalCount,\n })}\n </Typography>\n )}\n </>\n )\n );\n};\n\nexport default LeftActionBlock;\n","import React, { useState, useEffect } from \"react\";\n\nimport { t } from \"i18next\";\nimport { isNotEmpty } from \"neetocist\";\nimport { taxonomies, globalProps } from \"neetocommons/initializers\";\nimport withTitle from \"neetocommons/react-utils/withTitle\";\nimport { Alert, NoData, Table, Toastr } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { prop, pick, keys } from \"ramda\";\nimport { Trans } 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 EditPane from \"./EditPane\";\nimport LeftActionBlock from \"./LeftActionBlock\";\nimport { useBulkDestroyTaxonomies } from \"./useTaxonomyApi\";\nimport {\n formatDataForTable,\n getColumnData,\n getFilteredTaxonomies,\n} from \"./utils\";\n\nconst Taxonomy = ({ breadcrumbs, columnLabels = {}, columnsToShow = {} }) => {\n const [isResetModalOpen, setIsResetModalOpen] = useState(false);\n const [isEditTaxonomyPaneOpen, setIsEditTaxonomyPaneOpen] = useState(false);\n const [initialValues, setInitialValues] = useState({});\n const [selectedRowIds, setSelectedRowIds] = useState([]);\n const [searchString, setSearchString] = useState(\"\");\n const [currentKeys, setCurrentKeys] = useState([]);\n const [isMobileScreen, setIsMobileScreen] = useState(false);\n\n const isLargerScreen = () => window.innerWidth > 1024;\n\n const { mutate: bulkDestroyTaxonomies } = useBulkDestroyTaxonomies();\n\n const hostTaxonomyKeys = keys(globalProps.taxonomies);\n const hostTaxonomies = pick(hostTaxonomyKeys, taxonomies);\n\n const [filteredTaxonomies, setFilteredTaxonomies] = useState(hostTaxonomies);\n\n const handleRowSelect = ids => setSelectedRowIds(ids);\n\n const handleDelete = () => {\n const payload = { keyNames: currentKeys };\n\n const options = {\n onSuccess: () => window.location.reload(),\n onError: error => Toastr.error(error),\n };\n\n bulkDestroyTaxonomies(payload, options);\n };\n\n const handleEdit = values => {\n setInitialValues(values);\n setIsEditTaxonomyPaneOpen(true);\n };\n\n const handleSearch = event => {\n setSearchString(event.target.value);\n const newTaxonomies = getFilteredTaxonomies(\n event.target.value,\n hostTaxonomies\n );\n setFilteredTaxonomies(newTaxonomies);\n };\n\n useEffect(() => {\n const handleResize = () => {\n if (isLargerScreen()) setIsMobileScreen(false);\n else setIsMobileScreen(true);\n };\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n return (\n <Container>\n <Header\n {...{ breadcrumbs }}\n size={isMobileScreen ? \"small\" : \"large\"}\n title={t(\"neetoMolecules.taxonomy.title\")}\n searchProps={{\n onChange: handleSearch,\n value: searchString,\n placeholder: t(\"neetoMolecules.taxonomy.searchTaxonomy\"),\n }}\n />\n <SubHeader\n leftActionBlock={\n <LeftActionBlock\n {...{ selectedRowIds, setCurrentKeys, setIsResetModalOpen }}\n selectedCount={selectedRowIds.length}\n totalCount={Object.entries(filteredTaxonomies).length}\n />\n }\n />\n {isNotEmpty(filteredTaxonomies) ? (\n <TableWrapper>\n <Table\n fixedHeight\n rowSelection\n allowRowClick={false}\n rowData={formatDataForTable(filteredTaxonomies)}\n rowKey={prop(\"keyName\")}\n scroll={{ x: 0 }}\n selectedRowKeys={selectedRowIds}\n tableLayout=\"fixed\"\n columnData={getColumnData({\n columnLabels,\n columnsToShow,\n handleEdit,\n setCurrentKeys,\n setIsResetModalOpen,\n })}\n onRowSelect={handleRowSelect}\n />\n <EditPane\n {...{ columnLabels, columnsToShow, initialValues }}\n isOpen={isEditTaxonomyPaneOpen}\n onClose={() => setIsEditTaxonomyPaneOpen(false)}\n />\n <Alert\n isOpen={isResetModalOpen}\n submitButtonLabel={t(\"neetoMolecules.common.actions.proceed\")}\n title={t(\"neetoMolecules.taxonomy.resetAlert.title\")}\n message={\n <Trans\n i18nKey=\"neetoMolecules.taxonomy.resetAlert.message\"\n values={{\n count: currentKeys.length,\n what: t(`taxonomyDefaultLabels.${currentKeys[0]}.singular`),\n }}\n />\n }\n onClose={() => setIsResetModalOpen(false)}\n onSubmit={handleDelete}\n />\n </TableWrapper>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData title={t(\"neetoMolecules.taxonomy.noData\")} />\n </div>\n )}\n </Container>\n );\n};\n\nTaxonomy.propTypes = {\n /**\n * To show breadcrumbs. `text` accepts a text string to be shown as the breadcrumb and `link` accepts relative URL path for the breadcrumb.\n */\n breadcrumbs: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n link: PropTypes.string,\n })\n ),\n};\n\nexport default withTitle(Taxonomy, t(\"neetoMolecules.taxonomy.browserTitle\"));\n"],"names":["LABEL_REJECT_CHARS_REGEX","VALIDATION_SCHEMA","yup","object","shape","singularLabel","string","trim","required","t","pluralLabel","TAXONOMY_EVENTS","UPDATED","update","_ref","keyName","payload","axios","patch","concat","BASE_API_V1_URL","bulkDestroy","data","taxonomiesApi","useUpdateTaxonomy","options","useMutation","_objectSpread","mutationFn","useBulkDestroyTaxonomies","formatLabel","label","capitalize","formatDataForTable","taxonomies","toPairs","map","_ref2","_slicedToArray","labels","getColumnData","_ref3","columnLabels","columnsToShow","handleEdit","setCurrentKeys","setIsResetModalOpen","_columnsToShow$singul","singularColumn","showSingularColumn","_columnsToShow$plural","pluralColumn","showPluralColumn","_columnLabels$singula","singular","_columnLabels$plural","plural","title","dataIndex","key","width","render","_","values","menuItems","onClick","React","createElement","className","Typography","style","MoreDropdown","dropdownProps","strategy","dropdownButtonProps","_toConsumableArray","getFilteredTaxonomies","matchString","filteredArray","filter","_ref4","_ref5","value","defaultLabel","valuesToSearch","Object","some","str","toLowerCase","includes","fromPairs","EditPane","initialValues","isOpen","onClose","_useTranslation","useTranslation","initialFocusRef","useRef","_useUpdateTaxonomy","updateTaxonomy","mutate","showSingularInputField","showPluralInputField","handleSubmit","setSubmitting","taxonomy","onSuccess","captureAnalyticsEvent","window","location","reload","onError","error","Toastr","onSettled","Pane","Header","weight","Trans","i18nKey","entity","PLURAL","SINGULAR","Form","formikProps","validationSchema","onSubmit","Body","Input","name","ref","rejectCharsRegex","Footer","ActionBlock","cancelButtonProps","disabled","LeftActionBlock","selectedCount","totalCount","selectedRowIds","Menu","Dropdown","MenuItem","Fragment","component","count","components","span","buttonStyle","Button","Taxonomy","breadcrumbs","_ref$columnLabels","_ref$columnsToShow","_useState","useState","_useState2","isResetModalOpen","_useState3","_useState4","isEditTaxonomyPaneOpen","setIsEditTaxonomyPaneOpen","_useState5","_useState6","setInitialValues","_useState7","_useState8","setSelectedRowIds","_useState9","_useState10","searchString","setSearchString","_useState11","_useState12","currentKeys","_useState13","_useState14","isMobileScreen","setIsMobileScreen","isLargerScreen","innerWidth","_useBulkDestroyTaxono","bulkDestroyTaxonomies","hostTaxonomyKeys","keys","globalProps","hostTaxonomies","pick","_useState15","_useState16","filteredTaxonomies","setFilteredTaxonomies","handleRowSelect","ids","handleDelete","keyNames","handleSearch","event","target","newTaxonomies","useEffect","handleResize","addEventListener","removeEventListener","Container","size","searchProps","onChange","placeholder","SubHeader","leftActionBlock","length","entries","isNotEmpty","TableWrapper","Table","fixedHeight","rowSelection","allowRowClick","rowData","rowKey","prop","scroll","x","selectedRowKeys","tableLayout","columnData","onRowSelect","Alert","submitButtonLabel","message","what","NoData","withTitle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,IAAMA,wBAAwB,GAAG,kBAAkB,CAAA;AAEnD,IAAMC,iBAAiB,GAAGC,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAC;AAClDC,EAAAA,aAAa,EAAEH,GAAG,CACfI,MAAM,EAAE,CACRC,IAAI,EAAE,CACNC,QAAQ,CACPC,CAAC,CAAC,oEAAoE,CACxE,CAAC;AACHC,EAAAA,WAAW,EAAER,GAAG,CACbI,MAAM,EAAE,CACRC,IAAI,EAAE,CACNC,QAAQ,CACPC,CAAC,CAAC,kEAAkE,CACtE,CAAA;AACJ,CAAC,CAAC,CAAA;AAEK,IAAME,eAAe,GAAG;AAAEC,EAAAA,OAAO,EAAE,kBAAA;AAAmB,CAAC;;ACjB9D,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO,CAAA;AAAA,EAAA,OAChCC,KAAK,CAACC,KAAK,CAAA,EAAA,CAAAC,MAAA,CAAIC,eAAe,EAAA,cAAA,CAAA,CAAAD,MAAA,CAAeJ,OAAO,CAAA,EAAIC,OAAO,CAAC,CAAA;AAAA,CAAA,CAAA;AAElE,IAAMK,WAAW,GAAG,SAAdA,WAAWA,CAAGL,OAAO,EAAA;AAAA,EAAA,OACzBC,KAAK,CAAO,QAAA,CAAA,CAAA,EAAA,CAAAE,MAAA,CAAIC,eAAe,EAA4B,0BAAA,CAAA,EAAA;AACzDE,IAAAA,IAAI,EAAEN,OAAAA;AACR,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEJ,IAAMO,aAAa,GAAG;AAAEV,EAAAA,MAAM,EAANA,MAAM;AAAEQ,EAAAA,WAAW,EAAXA,WAAAA;AAAY,CAAC;;;;ACP7C,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,OAAO,EAAA;EAAA,OAC/BC,WAAW,CAAAC,eAAA,CAAA;IAAGC,UAAU,EAAEL,aAAa,CAACV,MAAAA;GAAWY,EAAAA,OAAO,CAAE,CAAC,CAAA;AAAA,CAAA,CAAA;AAE/D,IAAMI,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAGJ,OAAO,EAAA;EAAA,OACtCC,WAAW,CAAAC,eAAA,CAAA;IAAGC,UAAU,EAAEL,aAAa,CAACF,WAAAA;GAAgBI,EAAAA,OAAO,CAAE,CAAC,CAAA;AAAA,CAAA;;ACC7D,IAAMK,WAAW,GAAG,SAAdA,WAAWA,CAAGC,KAAK,EAAA;AAAA,EAAA,OAAIC,UAAU,CAACD,KAAK,CAACxB,IAAI,EAAE,CAAC,CAAA;AAAA,CAAA,CAAA;AAErD,IAAM0B,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAGC,UAAU,EAAA;EAAA,OAC1CC,OAAO,CAACD,UAAU,CAAC,CAACE,GAAG,CAAC,UAAAtB,IAAA,EAAA;AAAA,IAAA,IAAAuB,KAAA,GAAAC,cAAA,CAAAxB,IAAA,EAAA,CAAA,CAAA;AAAEC,MAAAA,OAAO,GAAAsB,KAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,MAAM,GAAAF,KAAA,CAAA,CAAA,CAAA,CAAA;IAAA,OAAO;AAC9CtB,MAAAA,OAAO,EAAPA,OAAO;AACPV,MAAAA,aAAa,EAAEkC,MAAM,CAAC,UAAU,CAAC;MACjC7B,WAAW,EAAE6B,MAAM,CAAC,QAAQ,CAAA;KAC7B,CAAA;AAAA,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEE,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,KAAA,EAMpB;AAAA,EAAA,IALJC,YAAY,GAAAD,KAAA,CAAZC,YAAY;IACZC,aAAa,GAAAF,KAAA,CAAbE,aAAa;IACbC,UAAU,GAAAH,KAAA,CAAVG,UAAU;IACVC,cAAc,GAAAJ,KAAA,CAAdI,cAAc;IACdC,mBAAmB,GAAAL,KAAA,CAAnBK,mBAAmB,CAAA;AAEnB,EAAA,IAAAC,qBAAA,GAGIJ,aAAa,CAFfK,cAAc;AAAEC,IAAAA,kBAAkB,GAAAF,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;IAAAG,qBAAA,GAEvCP,aAAa,CADfQ,YAAY;AAAEC,IAAAA,gBAAgB,GAAAF,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA,CAAA;AAGvC,EAAA,IAAAG,qBAAA,GAGIX,YAAY,CAFdY,QAAQ;IAAEjD,aAAa,GAAAgD,qBAAA,KAAG5C,KAAAA,CAAAA,GAAAA,CAAC,CAAC,uCAAuC,CAAC,GAAA4C,qBAAA;IAAAE,oBAAA,GAElEb,YAAY,CADdc,MAAM;IAAE9C,WAAW,GAAA6C,oBAAA,KAAG9C,KAAAA,CAAAA,GAAAA,CAAC,CAAC,qCAAqC,CAAC,GAAA8C,oBAAA,CAAA;EAGhE,OACE,CAAA;AACEE,IAAAA,KAAK,EAAEhD,CAAC,CAAC,sCAAsC,CAAC;AAChDiD,IAAAA,SAAS,EAAE,SAAS;AACpBC,IAAAA,GAAG,EAAE,cAAc;AACnBC,IAAAA,KAAK,EAAE,GAAG;AACVC,IAAAA,MAAM,EAAE,SAAAA,MAAAA,CAACC,CAAC,EAAEC,MAAM,EAAK;MACrB,IAAMC,SAAS,GAAG,CAChB;AACEL,QAAAA,GAAG,EAAE,MAAM;AACX5B,QAAAA,KAAK,EAAEtB,CAAC,CAAC,oCAAoC,CAAC;QAC9CwD,OAAO,EAAE,SAAAA,OAAA,GAAA;UAAA,OAAMrB,UAAU,CAACmB,MAAM,CAAC,CAAA;AAAA,SAAA;AACnC,OAAC,EACD;AACEJ,QAAAA,GAAG,EAAE,OAAO;AACZ5B,QAAAA,KAAK,EAAEtB,CAAC,CAAC,+CAA+C,CAAC;QACzDwD,OAAO,EAAE,SAAAA,OAAAA,GAAM;AACbpB,UAAAA,cAAc,CAAC,CAACkB,MAAM,CAAChD,OAAO,CAAC,CAAC,CAAA;UAChC+B,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAC3B,SAAA;AACF,OAAC,CACF,CAAA;MAED,oBACEoB,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,SAAS,EAAC,2CAAA;AAA2C,OAAA,eACxDF,cAAA,CAAAC,aAAA,CAACE,UAAU,EAAA;AAACC,QAAAA,KAAK,EAAC,OAAA;AAAO,OAAA,EACtB7D,CAAC,CAAA,wBAAA,CAAAU,MAAA,CAA0B4C,MAAM,CAAChD,OAAO,EAAW,WAAA,CAAA,CAC3C,CAAC,eACbmD,cAAA,CAAAC,aAAA,CAACI,YAAY,EAAA;AACLP,QAAAA,SAAS,EAATA,SAAS;AACfQ,QAAAA,aAAa,EAAE;AAAEC,UAAAA,QAAQ,EAAE,OAAA;SAAU;AACrCC,QAAAA,mBAAmB,EAAE;AACnB,UAAA,aAAa,EAAAvD,oBAAAA,CAAAA,MAAA,CAAuB4C,MAAM,CAAChD,OAAO,CAAA;AACpD,SAAA;AAAE,OACH,CACE,CAAC,CAAA;AAEV,KAAA;AACF,GAAC,EAAAI,MAAA,CAAAwD,kBAAA,CACG1B,kBAAkB,GAClB,CACE;AACEQ,IAAAA,KAAK,EAAEpD,aAAa;AACpBqD,IAAAA,SAAS,EAAE,eAAe;AAC1BC,IAAAA,GAAG,EAAE,eAAe;AACpBC,IAAAA,KAAK,EAAE,GAAA;GACR,CACF,GACD,EAAE,CAAA,EAAAe,kBAAA,CACFvB,gBAAgB,GAChB,CACE;AACEK,IAAAA,KAAK,EAAE/C,WAAW;AAClBgD,IAAAA,SAAS,EAAE,aAAa;AACxBC,IAAAA,GAAG,EAAE,aAAa;AAClBC,IAAAA,KAAK,EAAE,GAAA;GACR,CACF,GACD,EAAE,CAAA,CAAA,CAAA;AAEV,CAAC,CAAA;AAEM,IAAMgB,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,WAAW,EAAE3C,UAAU,EAAK;EAChE,IAAM4C,aAAa,GAAG3C,OAAO,CAACD,UAAU,CAAC,CAAC6C,MAAM,CAAC,UAAAC,KAAA,EAAkB;AAAA,IAAA,IAAAC,KAAA,GAAA3C,cAAA,CAAA0C,KAAA,EAAA,CAAA,CAAA;AAAhBrB,MAAAA,GAAG,GAAAsB,KAAA,CAAA,CAAA,CAAA;AAAEC,MAAAA,KAAK,GAAAD,KAAA,CAAA,CAAA,CAAA,CAAA;IAC3D,IAAME,YAAY,GAAG1E,CAAC,CAAA,wBAAA,CAAAU,MAAA,CAA0BwC,GAAG,cAAW,CAAC,CAAA;AAC/D,IAAA,IAAMyB,cAAc,GAAA,CAAID,YAAY,CAAA,CAAAhE,MAAA,CAAAwD,kBAAA,CAAKU,MAAM,CAACtB,MAAM,CAACmB,KAAK,CAAC,CAAC,CAAA,CAAA;AAE9D,IAAA,OAAOE,cAAc,CAACE,IAAI,CAAC,UAAAC,GAAG,EAAA;AAAA,MAAA,OAC5BA,GAAG,CAACC,WAAW,EAAE,CAACC,QAAQ,CAACZ,WAAW,CAACW,WAAW,EAAE,CAAC,CAAA;AAAA,KACvD,CAAC,CAAA;AACH,GAAC,CAAC,CAAA;EAEF,OAAOE,SAAS,CAACZ,aAAa,CAAC,CAAA;AACjC,CAAC;;;;AC5FD,IAAMa,QAAQ,GAAG,SAAXA,QAAQA,CAAA7E,IAAA,EAMR;AAAA,EAAA,IALJ4B,YAAY,GAAA5B,IAAA,CAAZ4B,YAAY;IACZC,aAAa,GAAA7B,IAAA,CAAb6B,aAAa;IACbiD,aAAa,GAAA9E,IAAA,CAAb8E,aAAa;IACbC,MAAM,GAAA/E,IAAA,CAAN+E,MAAM;IACNC,OAAO,GAAAhF,IAAA,CAAPgF,OAAO,CAAA;AAEP,EAAA,IAAAC,eAAA,GAAcC,cAAc,EAAE;IAAtBvF,CAAC,GAAAsF,eAAA,CAADtF,CAAC,CAAA;AACT,EAAA,IAAMwF,eAAe,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AAEpC,EAAA,IAAAC,kBAAA,GAAmC3E,iBAAiB,EAAE;IAAtC4E,cAAc,GAAAD,kBAAA,CAAtBE,MAAM,CAAA;AAEd,EAAA,IAAAtD,qBAAA,GAGIJ,aAAa,CAFfK,cAAc;AAAEsD,IAAAA,sBAAsB,GAAAvD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;IAAAG,qBAAA,GAE3CP,aAAa,CADfQ,YAAY;AAAEoD,IAAAA,oBAAoB,GAAArD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA,CAAA;AAG3C,EAAA,IAAAG,qBAAA,GAGIX,YAAY,CAFdY,QAAQ;IAAEjD,aAAa,GAAAgD,qBAAA,KAAG5C,KAAAA,CAAAA,GAAAA,CAAC,CAAC,uCAAuC,CAAC,GAAA4C,qBAAA;IAAAE,oBAAA,GAElEb,YAAY,CADdc,MAAM;IAAE9C,WAAW,GAAA6C,oBAAA,KAAG9C,KAAAA,CAAAA,GAAAA,CAAC,CAAC,qCAAqC,CAAC,GAAA8C,oBAAA,CAAA;EAGhE,IAAMiD,YAAY,GAAG,SAAfA,YAAYA,CAAIzC,MAAM,EAAA1B,KAAA,EAAwB;AAAA,IAAA,IAApBoE,aAAa,GAAApE,KAAA,CAAboE,aAAa,CAAA;AAC3C,IAAA,IAAQ1F,OAAO,GAAiCgD,MAAM,CAA9ChD,OAAO;MAAEV,aAAa,GAAkB0D,MAAM,CAArC1D,aAAa;MAAEK,WAAW,GAAKqD,MAAM,CAAtBrD,WAAW,CAAA;AAE3C,IAAA,IAAMM,OAAO,GAAG;AACd0F,MAAAA,QAAQ,EAAE;AACR3F,QAAAA,OAAO,EAAPA,OAAO;AACPV,QAAAA,aAAa,EAAEyB,WAAW,CAACzB,aAAa,CAAC;QACzCK,WAAW,EAAEoB,WAAW,CAACpB,WAAW,CAAA;AACtC,OAAA;KACD,CAAA;AAED,IAAA,IAAMe,OAAO,GAAG;MACdkF,SAAS,EAAE,SAAAA,SAAAA,GAAM;AACfC,QAAAA,qBAAqB,CAACjG,eAAe,CAACC,OAAO,EAAE;UAC7C8F,QAAQ,EAAE1F,OAAO,CAAC0F,QAAAA;AACpB,SAAC,CAAC,CAAA;AACFG,QAAAA,MAAM,CAACC,QAAQ,CAACC,MAAM,EAAE,CAAA;OACzB;MACDC,OAAO,EAAE,SAAAA,OAAAA,CAAAC,KAAK,EAAA;AAAA,QAAA,OAAIC,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC,CAAA;AAAA,OAAA;MACrCE,SAAS,EAAE,SAAAA,SAAA,GAAA;QAAA,OAAMV,aAAa,CAAC,KAAK,CAAC,CAAA;AAAA,OAAA;KACtC,CAAA;AAEDL,IAAAA,cAAc,CAAC;AAAErF,MAAAA,OAAO,EAAPA,OAAO;AAAEC,MAAAA,OAAO,EAAPA,OAAAA;KAAS,EAAES,OAAO,CAAC,CAAA;GAC9C,CAAA;AAED,EAAA,oBACEyC,cAAA,CAAAC,aAAA,CAACiD,IAAI,EAAA;AACGnB,IAAAA,eAAe,EAAfA,eAAe;AAAEJ,IAAAA,MAAM,EAANA,MAAM;AAAEC,IAAAA,OAAO,EAAPA,OAAO;IACtC,aAAY,EAAA,oBAAA;AAAoB,GAAA,eAEhC5B,cAAA,CAAAC,aAAA,CAACiD,IAAI,CAACC,MAAM,EAAA,IAAA,eACVnD,cAAA,CAAAC,aAAA,CAACE,UAAU,EAAA;AAACC,IAAAA,KAAK,EAAC,IAAI;AAACgD,IAAAA,MAAM,EAAC,UAAA;AAAU,GAAA,eACtCpD,cAAA,CAAAC,aAAA,CAACoD,KAAK,EAAA;AACJC,IAAAA,OAAO,EAAC,wCAAwC;AAChDzD,IAAAA,MAAM,EAAApC,aAAA,CAAA;MACJ8F,MAAM,EAAEhH,CAAC,CAAAU,wBAAAA,CAAAA,MAAA,CACkByE,aAAa,CAAC7E,OAAO,EAChD,WAAA,CAAA,CAAA;AAAC,KAAA,EACGuF,sBAAsB,IAAIC,oBAAoB,GAC9CmB,MAAM,GACNC,QAAQ,CAAA;GAEf,CACS,CACD,CAAC,eACdzD,cAAA,CAAAC,aAAA,CAACyD,IAAI,EAAA;AACHC,IAAAA,WAAW,EAAE;AACXjC,MAAAA,aAAa,EAAbA,aAAa;AACbkC,MAAAA,gBAAgB,EAAE7H,iBAAiB;AACnC8H,MAAAA,QAAQ,EAAEvB,YAAAA;AACZ,KAAA;GAEAtC,eAAAA,cAAA,CAAAC,aAAA,CAACiD,IAAI,CAACY,IAAI,EAAA,IAAA,eACR9D,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,kBAAA;AAAkB,GAAA,EAC9BkC,sBAAsB,iBACrBpC,cAAA,CAAAC,aAAA,CAAC8D,KAAK,EAAA;IACJzH,QAAQ,EAAA,IAAA;AACR4D,IAAAA,SAAS,EAAC,QAAQ;AAClB,IAAA,SAAA,EAAQ,+BAA+B;AACvC,IAAA,aAAA,EAAY,+BAA+B;AAC3CrC,IAAAA,KAAK,EAAE1B,aAAc;AACrB6H,IAAAA,IAAI,EAAC,eAAe;AACpBC,IAAAA,GAAG,EAAElC,eAAgB;AACrBmC,IAAAA,gBAAgB,EAAEpI,wBAAAA;GACnB,CACF,EACAuG,oBAAoB,iBACnBrC,cAAA,CAAAC,aAAA,CAAC8D,KAAK,EAAA;IACJzH,QAAQ,EAAA,IAAA;AACR4D,IAAAA,SAAS,EAAC,QAAQ;AAClB,IAAA,SAAA,EAAQ,6BAA6B;AACrC,IAAA,aAAA,EAAY,6BAA6B;AACzCrC,IAAAA,KAAK,EAAErB,WAAY;AACnBwH,IAAAA,IAAI,EAAC,aAAa;AAClBE,IAAAA,gBAAgB,EAAEpI,wBAAAA;AAAyB,GAC5C,CAEA,CACI,CAAC,eACZkE,cAAA,CAAAC,aAAA,CAACiD,IAAI,CAACiB,MAAM,EACVnE,IAAAA,eAAAA,cAAA,CAAAC,aAAA,CAACmE,WAAW,EAAA;AACVC,IAAAA,iBAAiB,EAAE;AAAEtE,MAAAA,OAAO,EAAE6B,OAAO;AAAE0C,MAAAA,QAAQ,EAAE,KAAA;KAAQ;AACzDpE,IAAAA,SAAS,EAAC,6BAAA;GACX,CACU,CACT,CACF,CAAC,CAAA;AAEX,CAAC;;ACxHD,IAAMqE,eAAe,GAAG,SAAlBA,eAAeA,CAAA3H,IAAA,EAMf;AAAA,EAAA,IALJ4H,aAAa,GAAA5H,IAAA,CAAb4H,aAAa;IACbC,UAAU,GAAA7H,IAAA,CAAV6H,UAAU;IACV7F,mBAAmB,GAAAhC,IAAA,CAAnBgC,mBAAmB;IACnBD,cAAc,GAAA/B,IAAA,CAAd+B,cAAc;IACd+F,cAAc,GAAA9H,IAAA,CAAd8H,cAAc,CAAA;AAEd,EAAA,IAAQC,IAAI,GAAeC,QAAQ,CAA3BD,IAAI;IAAEE,QAAQ,GAAKD,QAAQ,CAArBC,QAAQ,CAAA;AAEtB,EAAA,OACE,CAAC,CAACJ,UAAU,iBACVzE,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAA8E,QAAA,EAAA,IAAA,EACGN,aAAa,GAAG,CAAC,gBAChBxE,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAA8E,QAAA,EAAA,IAAA,eACE9E,cAAA,CAAAC,aAAA,CAACE,UAAU,EAAA;AACTD,IAAAA,SAAS,EAAC,oBAAoB;AAC9B6E,IAAAA,SAAS,EAAC,IAAI;IACd,SAAQ,EAAA,YAAA;AAAY,GAAA,eAEpB/E,cAAA,CAAAC,aAAA,CAACoD,KAAK,EAAA;AACJC,IAAAA,OAAO,EAAC,sDAAsD;AAC9DzD,IAAAA,MAAM,EAAE;AAAEmF,MAAAA,KAAK,EAAER,aAAa;AAAEC,MAAAA,UAAU,EAAVA,UAAAA;KAAa;AAC7CQ,IAAAA,UAAU,EAAE;MACVC,IAAI,eAAElF,cAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,QAAAA,SAAS,EAAC,wBAAA;OAA0B,CAAA;AAClD,KAAA;AAAE,GACH,CACS,CAAC,eACbF,cAAA,CAAAC,aAAA,CAAC2E,QAAQ,EAAA;AACPO,IAAAA,WAAW,EAAC,WAAW;IACvBtH,KAAK,EAAEtB,CAAC,CAAC,gDAAgD,CAAA;AAAE,GAAA,eAE3DyD,cAAA,CAAAC,aAAA,CAAC0E,IAAI,EAAA,IAAA,eACH3E,cAAA,CAAAC,aAAA,CAAC4E,QAAQ,CAACO,MAAM,EAAA;AACdhF,IAAAA,KAAK,EAAC,WAAW;IACjBL,OAAO,EAAE,SAAAA,OAAAA,GAAM;MACbpB,cAAc,CAAC+F,cAAc,CAAC,CAAA;MAC9B9F,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAC3B,KAAA;AAAE,GAAA,EAEDrC,CAAC,CAAC,+CAA+C,CACnC,CACb,CACE,CACV,CAAC,gBAEHyD,cAAA,CAAAC,aAAA,CAACE,UAAU,EAAA;AACTD,IAAAA,SAAS,EAAC,oBAAoB;AAC9B6E,IAAAA,SAAS,EAAC,IAAI;IACd,SAAQ,EAAA,YAAA;GAEPxI,EAAAA,CAAC,CAAC,uDAAuD,EAAE;AAC1DyI,IAAAA,KAAK,EAAEP,UAAAA;GACR,CACS,CAEd,CACH,CAAA;AAEL,CAAC;;ACvCD,IAAMY,QAAQ,GAAG,SAAXA,QAAQA,CAAAzI,IAAA,EAA+D;AAAA,EAAA,IAAzD0I,WAAW,GAAA1I,IAAA,CAAX0I,WAAW;IAAAC,iBAAA,GAAA3I,IAAA,CAAE4B,YAAY;AAAZA,IAAAA,YAAY,GAAA+G,iBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,iBAAA;IAAAC,kBAAA,GAAA5I,IAAA,CAAE6B,aAAa;AAAbA,IAAAA,aAAa,GAAA+G,kBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,kBAAA,CAAA;AACpE,EAAA,IAAAC,SAAA,GAAgDC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAvH,cAAA,CAAAqH,SAAA,EAAA,CAAA,CAAA;AAAxDG,IAAAA,gBAAgB,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAE/G,IAAAA,mBAAmB,GAAA+G,UAAA,CAAA,CAAA,CAAA,CAAA;AAC5C,EAAA,IAAAE,UAAA,GAA4DH,QAAQ,CAAC,KAAK,CAAC;IAAAI,UAAA,GAAA1H,cAAA,CAAAyH,UAAA,EAAA,CAAA,CAAA;AAApEE,IAAAA,sBAAsB,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,yBAAyB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AACxD,EAAA,IAAAG,UAAA,GAA0CP,QAAQ,CAAC,EAAE,CAAC;IAAAQ,UAAA,GAAA9H,cAAA,CAAA6H,UAAA,EAAA,CAAA,CAAA;AAA/CvE,IAAAA,aAAa,GAAAwE,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,gBAAgB,GAAAD,UAAA,CAAA,CAAA,CAAA,CAAA;AACtC,EAAA,IAAAE,UAAA,GAA4CV,QAAQ,CAAC,EAAE,CAAC;IAAAW,UAAA,GAAAjI,cAAA,CAAAgI,UAAA,EAAA,CAAA,CAAA;AAAjD1B,IAAAA,cAAc,GAAA2B,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,iBAAiB,GAAAD,UAAA,CAAA,CAAA,CAAA,CAAA;AACxC,EAAA,IAAAE,UAAA,GAAwCb,QAAQ,CAAC,EAAE,CAAC;IAAAc,WAAA,GAAApI,cAAA,CAAAmI,UAAA,EAAA,CAAA,CAAA;AAA7CE,IAAAA,YAAY,GAAAD,WAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,eAAe,GAAAF,WAAA,CAAA,CAAA,CAAA,CAAA;AACpC,EAAA,IAAAG,WAAA,GAAsCjB,QAAQ,CAAC,EAAE,CAAC;IAAAkB,WAAA,GAAAxI,cAAA,CAAAuI,WAAA,EAAA,CAAA,CAAA;AAA3CE,IAAAA,WAAW,GAAAD,WAAA,CAAA,CAAA,CAAA;AAAEjI,IAAAA,cAAc,GAAAiI,WAAA,CAAA,CAAA,CAAA,CAAA;AAClC,EAAA,IAAAE,WAAA,GAA4CpB,QAAQ,CAAC,KAAK,CAAC;IAAAqB,WAAA,GAAA3I,cAAA,CAAA0I,WAAA,EAAA,CAAA,CAAA;AAApDE,IAAAA,cAAc,GAAAD,WAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,WAAA,CAAA,CAAA,CAAA,CAAA;AAExC,EAAA,IAAMG,cAAc,GAAG,SAAjBA,cAAcA,GAAA;AAAA,IAAA,OAASvE,MAAM,CAACwE,UAAU,GAAG,IAAI,CAAA;AAAA,GAAA,CAAA;AAErD,EAAA,IAAAC,qBAAA,GAA0CzJ,wBAAwB,EAAE;IAApD0J,qBAAqB,GAAAD,qBAAA,CAA7BjF,MAAM,CAAA;AAEd,EAAA,IAAMmF,gBAAgB,GAAGC,IAAI,CAACC,WAAW,CAACxJ,UAAU,CAAC,CAAA;AACrD,EAAA,IAAMyJ,cAAc,GAAGC,IAAI,CAACJ,gBAAgB,EAAEtJ,UAAU,CAAC,CAAA;AAEzD,EAAA,IAAA2J,WAAA,GAAoDjC,QAAQ,CAAC+B,cAAc,CAAC;IAAAG,WAAA,GAAAxJ,cAAA,CAAAuJ,WAAA,EAAA,CAAA,CAAA;AAArEE,IAAAA,kBAAkB,GAAAD,WAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,qBAAqB,GAAAF,WAAA,CAAA,CAAA,CAAA,CAAA;AAEhD,EAAA,IAAMG,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,GAAG,EAAA;IAAA,OAAI1B,iBAAiB,CAAC0B,GAAG,CAAC,CAAA;AAAA,GAAA,CAAA;AAErD,EAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAS;AACzB,IAAA,IAAMnL,OAAO,GAAG;AAAEoL,MAAAA,QAAQ,EAAErB,WAAAA;KAAa,CAAA;AAEzC,IAAA,IAAMtJ,OAAO,GAAG;MACdkF,SAAS,EAAE,SAAAA,SAAA,GAAA;AAAA,QAAA,OAAME,MAAM,CAACC,QAAQ,CAACC,MAAM,EAAE,CAAA;AAAA,OAAA;MACzCC,OAAO,EAAE,SAAAA,OAAAA,CAAAC,KAAK,EAAA;AAAA,QAAA,OAAIC,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC,CAAA;AAAA,OAAA;KACtC,CAAA;AAEDsE,IAAAA,qBAAqB,CAACvK,OAAO,EAAES,OAAO,CAAC,CAAA;GACxC,CAAA;AAED,EAAA,IAAMmB,UAAU,GAAG,SAAbA,UAAUA,CAAGmB,MAAM,EAAI;IAC3BsG,gBAAgB,CAACtG,MAAM,CAAC,CAAA;IACxBmG,yBAAyB,CAAC,IAAI,CAAC,CAAA;GAChC,CAAA;AAED,EAAA,IAAMmC,YAAY,GAAG,SAAfA,YAAYA,CAAGC,KAAK,EAAI;AAC5B1B,IAAAA,eAAe,CAAC0B,KAAK,CAACC,MAAM,CAACrH,KAAK,CAAC,CAAA;IACnC,IAAMsH,aAAa,GAAG5H,qBAAqB,CACzC0H,KAAK,CAACC,MAAM,CAACrH,KAAK,EAClByG,cACF,CAAC,CAAA;IACDK,qBAAqB,CAACQ,aAAa,CAAC,CAAA;GACrC,CAAA;AAEDC,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAS;AACzB,MAAA,IAAItB,cAAc,EAAE,EAAED,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAC1CA,iBAAiB,CAAC,IAAI,CAAC,CAAA;KAC7B,CAAA;AACDtE,IAAAA,MAAM,CAAC8F,gBAAgB,CAAC,QAAQ,EAAED,YAAY,CAAC,CAAA;IAE/C,OAAO,YAAA;AAAA,MAAA,OAAM7F,MAAM,CAAC+F,mBAAmB,CAAC,QAAQ,EAAEF,YAAY,CAAC,CAAA;AAAA,KAAA,CAAA;GAChE,EAAE,EAAE,CAAC,CAAA;EAEN,oBACExI,cAAA,CAAAC,aAAA,CAAC0I,SAAS,qBACR3I,cAAA,CAAAC,aAAA,CAACkD,MAAM,EAAA;AACCmC,IAAAA,WAAW,EAAXA,WAAW;AACjBsD,IAAAA,IAAI,EAAE5B,cAAc,GAAG,OAAO,GAAG,OAAQ;AACzCzH,IAAAA,KAAK,EAAEhD,CAAC,CAAC,+BAA+B,CAAE;AAC1CsM,IAAAA,WAAW,EAAE;AACXC,MAAAA,QAAQ,EAAEX,YAAY;AACtBnH,MAAAA,KAAK,EAAEyF,YAAY;MACnBsC,WAAW,EAAExM,CAAC,CAAC,wCAAwC,CAAA;AACzD,KAAA;AAAE,GACH,CAAC,eACFyD,cAAA,CAAAC,aAAA,CAAC+I,SAAS,EAAA;AACRC,IAAAA,eAAe,eACbjJ,cAAA,CAAAC,aAAA,CAACsE,eAAe,EAAA;AACRG,MAAAA,cAAc,EAAdA,cAAc;AAAE/F,MAAAA,cAAc,EAAdA,cAAc;AAAEC,MAAAA,mBAAmB,EAAnBA,mBAAmB;MACzD4F,aAAa,EAAEE,cAAc,CAACwE,MAAO;AACrCzE,MAAAA,UAAU,EAAEtD,MAAM,CAACgI,OAAO,CAACtB,kBAAkB,CAAC,CAACqB,MAAAA;KAChD,CAAA;AACF,GACF,CAAC,EACDE,UAAU,CAACvB,kBAAkB,CAAC,gBAC7B7H,cAAA,CAAAC,aAAA,CAACoJ,YAAY,EAAA,IAAA,eACXrJ,cAAA,CAAAC,aAAA,CAACqJ,KAAK,EAAA;IACJC,WAAW,EAAA,IAAA;IACXC,YAAY,EAAA,IAAA;AACZC,IAAAA,aAAa,EAAE,KAAM;AACrBC,IAAAA,OAAO,EAAE3L,kBAAkB,CAAC8J,kBAAkB,CAAE;AAChD8B,IAAAA,MAAM,EAAEC,IAAI,CAAC,SAAS,CAAE;AACxBC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,CAAC,EAAE,CAAA;KAAI;AACjBC,IAAAA,eAAe,EAAErF,cAAe;AAChCsF,IAAAA,WAAW,EAAC,OAAO;IACnBC,UAAU,EAAE3L,aAAa,CAAC;AACxBE,MAAAA,YAAY,EAAZA,YAAY;AACZC,MAAAA,aAAa,EAAbA,aAAa;AACbC,MAAAA,UAAU,EAAVA,UAAU;AACVC,MAAAA,cAAc,EAAdA,cAAc;AACdC,MAAAA,mBAAmB,EAAnBA,mBAAAA;AACF,KAAC,CAAE;AACHsL,IAAAA,WAAW,EAAEnC,eAAAA;AAAgB,GAC9B,CAAC,eACF/H,cAAA,CAAAC,aAAA,CAACwB,QAAQ,EAAA;AACDjD,IAAAA,YAAY,EAAZA,YAAY;AAAEC,IAAAA,aAAa,EAAbA,aAAa;AAAEiD,IAAAA,aAAa,EAAbA,aAAa;AAChDC,IAAAA,MAAM,EAAEoE,sBAAuB;IAC/BnE,OAAO,EAAE,SAAAA,OAAA,GAAA;MAAA,OAAMoE,yBAAyB,CAAC,KAAK,CAAC,CAAA;AAAA,KAAA;AAAC,GACjD,CAAC,eACFhG,cAAA,CAAAC,aAAA,CAACkK,KAAK,EAAA;AACJxI,IAAAA,MAAM,EAAEiE,gBAAiB;AACzBwE,IAAAA,iBAAiB,EAAE7N,CAAC,CAAC,uCAAuC,CAAE;AAC9DgD,IAAAA,KAAK,EAAEhD,CAAC,CAAC,0CAA0C,CAAE;AACrD8N,IAAAA,OAAO,eACLrK,cAAA,CAAAC,aAAA,CAACoD,KAAK,EAAA;AACJC,MAAAA,OAAO,EAAC,4CAA4C;AACpDzD,MAAAA,MAAM,EAAE;QACNmF,KAAK,EAAE6B,WAAW,CAACqC,MAAM;QACzBoB,IAAI,EAAE/N,CAAC,CAAAU,wBAAAA,CAAAA,MAAA,CAA0B4J,WAAW,CAAC,CAAC,CAAC,EAAW,WAAA,CAAA,CAAA;AAC5D,OAAA;AAAE,KACH,CACF;IACDjF,OAAO,EAAE,SAAAA,OAAA,GAAA;MAAA,OAAMhD,mBAAmB,CAAC,KAAK,CAAC,CAAA;KAAC;AAC1CiF,IAAAA,QAAQ,EAAEoE,YAAAA;AAAa,GACxB,CACW,CAAC,gBAEfjI,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,gDAAA;AAAgD,GAAA,eAC7DF,cAAA,CAAAC,aAAA,CAACsK,MAAM,EAAA;IAAChL,KAAK,EAAEhD,CAAC,CAAC,gCAAgC,CAAA;GAAI,CAClD,CAEE,CAAC,CAAA;AAEhB,CAAC,CAAA;AAcD,YAAeiO,SAAS,CAACnF,QAAQ,EAAE9I,CAAC,CAAC,sCAAsC,CAAC,CAAC;;;;"}
@@ -652,6 +652,9 @@ var Form = function Form(_ref) {
652
652
  "data-testid": general.joinHyphenCase(day, "copy-schedule-icon"),
653
653
  "data-cy": general.joinHyphenCase(day, "copy-schedule-icon")
654
654
  },
655
+ dropdownProps: {
656
+ className: "neeto-ui-dropdown__popup neeto-molecules-schedule__dropdown"
657
+ },
655
658
  onClose: function onClose() {
656
659
  return setWdaysToCopy([]);
657
660
  }
@@ -812,7 +815,7 @@ var Header = function Header(_ref) {
812
815
  })));
813
816
  };
814
817
 
815
- var css = ".neeto-molecules-schedule{margin:auto;max-width:40rem;width:100%}";
818
+ var css = ".neeto-molecules-schedule{margin:auto;max-width:40rem;width:100%}.neeto-molecules-schedule__dropdown{max-height:var(--neeto-ui-dropdown-popup-max-height)!important}";
816
819
  injectCss.n(css,{});
817
820
 
818
821
  var Schedule = /*#__PURE__*/React.forwardRef(function (_ref, scheduleRef) {
@@ -1 +1 @@
1
- {"version":3,"file":"Schedule.js","sources":["../../src/components/Schedule/constants.js","../../src/components/Schedule/dayjsExtended/constants.js","../../src/components/Schedule/Form/constants.js","../../src/components/Schedule/dayjsExtended/range.js","../../src/components/Schedule/dayjsExtended/index.js","../../src/components/Schedule/utils.js","../../src/components/Schedule/DisplayAvailability.jsx","../../src/components/Schedule/Form/utils.js","../../src/components/Schedule/ScheduleContext.js","../../src/components/Schedule/Form/ScheduleRow.jsx","../../src/components/Schedule/Form/index.jsx","../../src/components/Schedule/Fields.jsx","../../src/components/Schedule/Header.jsx","../../src/components/Schedule/index.jsx"],"sourcesContent":["export const DEFAULT_BOOKED_SLOTS = [\n { startTime: \"09:00 AM\", endTime: \"05:00 PM\" },\n];\n\nexport const MARK_DAY_AS_AVAILABLE_BY_DEFAULT = true;\n\nexport const DAYS = [\n \"monday\",\n \"tuesday\",\n \"wednesday\",\n \"thursday\",\n \"friday\",\n \"saturday\",\n \"sunday\",\n];\n\nexport const DEFAULT_SLOT_INTERVAL = 30;\n","export const INTERVALS = [\n \"year\",\n \"quarter\",\n \"month\",\n \"week\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n];\n","export const REMOVE_SELECT_DOWN_ARROW = {\n DropdownIndicator: () => null,\n IndicatorSeparator: () => null,\n};\n\nexport const BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN = {\n singleValue: (base, state) => ({\n ...base,\n color: state.selectProps.menuIsOpen ? \"#c2c8cc\" : base.color,\n }),\n};\n\nexport const SLOT_TIME_FORMAT = \"hh:mm A\";\n\nexport const END_OF_DAY = \"11:59 PM\";\n","import { INTERVALS } from \"./constants\";\n\nimport { SLOT_TIME_FORMAT } from \"../Form/constants\";\n\nexport class DayjsRange {\n constructor(startDate, endDate) {\n const { s, e } =\n startDate > endDate\n ? { s: endDate, e: startDate }\n : { s: startDate, e: endDate };\n\n this.startDate = s;\n this.endDate = e;\n }\n\n isValidRange() {\n return this.startDate.isValid() && this.endDate.isValid();\n }\n\n isOverlap(other) {\n if (!(other instanceof DayjsRange) || !other.isValidRange()) {\n return false;\n }\n\n return this.startDate < other.endDate && this.endDate > other.startDate;\n }\n\n toArrayOfTimeIntervals(interval = 15) {\n let startTime = this.startDate;\n const endTime = this.endDate.add(1, \"days\");\n const allTimes = [];\n\n while (startTime < endTime) {\n allTimes.push(startTime.format(SLOT_TIME_FORMAT));\n startTime = startTime.add(interval, \"minutes\");\n }\n\n return allTimes;\n }\n}\n\nexport default (_, __, d) => {\n d.range = (start, end) => new DayjsRange(d(start), d(end));\n};\n\nexport function extendDayjs(dayjs) {\n dayjs.range = function range(start, end) {\n const dayjsObject = this;\n\n if (typeof start === \"string\" && INTERVALS.includes(start)) {\n return new DayjsRange(\n dayjs(dayjsObject).startOf(start),\n dayjs(dayjsObject).endOf(start)\n );\n }\n\n return new DayjsRange(start, end);\n };\n\n dayjs.range.constructor = DayjsRange;\n\n // Returns timeIntervals in 12 hour clock format for the whole day with both AM or PM suffixed\n dayjs.timeIntervalsForDay = interval => {\n const [startOfDay, endOfDay] = [\n dayjs(\"00:00 AM\", SLOT_TIME_FORMAT),\n dayjs(\"00:00 AM\", SLOT_TIME_FORMAT),\n ];\n\n const allIntervalsForADay = dayjs\n .range(startOfDay, endOfDay)\n .toArrayOfTimeIntervals(interval);\n\n return allIntervalsForADay;\n };\n\n return dayjs;\n}\n","import Dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport timezone from \"dayjs/plugin/timezone\";\nimport utc from \"dayjs/plugin/utc\";\nimport weekday from \"dayjs/plugin/weekday\";\n\nimport { extendDayjs } from \"./range\";\n\nDayjs.extend(utc);\nDayjs.extend(timezone);\nDayjs.extend(customParseFormat);\nDayjs.extend(weekday);\n\n// Add range and overlap functions to dayjs\nconst dayjsExtended = extendDayjs(Dayjs);\n\nexport default dayjsExtended;\n","import { ianaTimezoneToHumanReadable } from \"@bigbinary/neeto-time-zones\";\nimport dayjs from \"dayjs\";\nimport i18next from \"i18next\";\nimport { findIndexBy } from \"neetocist\";\nimport { timeFormat } from \"neetocommons/utils/datetime\";\nimport * as yup from \"yup\";\n\nimport dayjsExtended from \"./dayjsExtended\";\nimport { SLOT_TIME_FORMAT } from \"./Form/constants\";\n\nyup.addMethod(yup.array, \"ensureSlotsCantOverlap\", function () {\n return this.test(\"ensureSlotsCantOverlap\", function (periods) {\n const {\n exists: isOverlapping,\n range1,\n range2,\n } = checkForOverlapBetweenPeriods(periods);\n\n if (!isOverlapping) return true;\n\n const { firstIndex, secondIndex } = findIndicesOfOverlappingRangesInPeriods(\n { range1, range2, periods }\n );\n\n const firstError = this.createError({\n path: `${this.path}[${firstIndex}]`,\n message: i18next.t(\"neetoMolecules.schedule.errors.period.overlap\", {\n start: timeFormat.time(range2.startDate),\n end: timeFormat.time(range2.endDate),\n }),\n });\n\n const secondError = this.createError({\n path: `${this.path}[${secondIndex}]`,\n message: i18next.t(\"neetoMolecules.schedule.errors.period.overlap\", {\n start: timeFormat.time(range1.startDate),\n end: timeFormat.time(range1.endDate),\n }),\n });\n\n return new yup.ValidationError([firstError, secondError]);\n });\n});\n\nconst isFromAndToSame = (startTime, endTime) => {\n if (!startTime || !endTime) return true;\n\n return dayjs(startTime, SLOT_TIME_FORMAT).isSame(\n dayjs(endTime, SLOT_TIME_FORMAT)\n );\n};\n\nexport const getScheduleValidationSchema = () =>\n yup.object().shape({\n wdays: yup.array().of(\n yup.object().shape({\n periods: yup\n .array()\n .of(\n yup\n .object()\n .shape({\n startTime: yup\n .string()\n .required(\n i18next.t(\"neetoMolecules.schedule.errors.period.startTime\")\n ),\n endTime: yup\n .string()\n .required(\n i18next.t(\"neetoMolecules.schedule.errors.period.endTime\")\n )\n .test(\n \"ensureToTimeNotBehindFromTime\",\n i18next.t(\"neetoMolecules.schedule.errors.period.isBehind\"),\n function (value) {\n const { startTime } = this.parent;\n if (isFromAndToSame(value, startTime)) return true;\n\n return isTimeBehind(startTime, value);\n }\n ),\n })\n .test(\n \"ensureTimeNotSame\",\n i18next.t(\"neetoMolecules.schedule.errors.period.sameTime\"),\n value => {\n const { startTime, endTime } = value;\n\n return !isFromAndToSame(startTime, endTime);\n }\n )\n )\n .ensureSlotsCantOverlap(),\n })\n ),\n });\n\nexport const getUserTimeZone = () => window.globalProps?.user.timeZone;\n\nexport const getTimeZoneAndTime = () => {\n const timeZone = getUserTimeZone();\n const humanReadableTimezone = ianaTimezoneToHumanReadable(timeZone);\n\n // Requires timezone initialization\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n return `${humanReadableTimezone}: ${dayjs()\n .tz(timeZone)\n .format(SLOT_TIME_FORMAT)}`;\n};\n\nexport const isTimeBehind = (timeA, timeB) =>\n dayjs(timeA, SLOT_TIME_FORMAT).isBefore(dayjs(timeB, SLOT_TIME_FORMAT));\n\nexport const sortPeriodsByKey = ({ periods, key, order = \"desc\" }) =>\n periods.slice().sort((periodA, periodB) => {\n const isPeriodBehind = isTimeBehind(periodA[key], periodB[key]);\n if (order === \"desc\") return isPeriodBehind ? 1 : -1;\n\n return isPeriodBehind ? -1 : 1;\n });\n\n/**\n * Check for overlapping between entered periods\n * @typedef {Object} Slots\n * @property {Array<{startTime:string, endTime: string}>} periods - startTime and endTime\n * @param {Slots} periods - changed time periods\n * @return {{exists: boolean, range1: DayjsRange | null, range2:DayjsRange | null }} - overlapped ranges if exists\n */\nexport const checkForOverlapBetweenPeriods = periods => {\n let response = { exists: false, range1: null, range2: null };\n\n if (!periods?.length) return response;\n\n const slotsSortedByStartTime = sortPeriodsByKey({\n periods,\n key: \"startTime\",\n });\n for (const [index, value] of slotsSortedByStartTime.slice(0, -1).entries()) {\n const seg1 = value;\n const seg2 = slotsSortedByStartTime[index + 1];\n const range1 = dayjsExtended.range(\n dayjsExtended(seg1.startTime, SLOT_TIME_FORMAT),\n dayjsExtended(seg1.endTime, SLOT_TIME_FORMAT)\n );\n\n const range2 = dayjsExtended.range(\n dayjsExtended(seg2.startTime, SLOT_TIME_FORMAT),\n dayjsExtended(seg2.endTime, SLOT_TIME_FORMAT)\n );\n if (range1.isOverlap(range2)) {\n response = { exists: true, range1, range2 };\n break;\n }\n }\n\n return response;\n};\n\nexport const findIndicesOfOverlappingRangesInPeriods = ({\n range1,\n range2,\n periods,\n}) => {\n const firstIndex = findIndexBy(\n { startTime: range1.startDate.format(SLOT_TIME_FORMAT) },\n periods\n );\n\n const secondIndex = periods.findIndex(\n (slot, index) =>\n index > firstIndex &&\n slot.startTime === range2.startDate.format(SLOT_TIME_FORMAT)\n );\n\n return { firstIndex, secondIndex };\n};\n\nexport const checkIfTwoTimeZonesAreSame = (timeZone1, timeZone2) =>\n // Requires timezone initialization\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n dayjs().tz(timeZone1).format(\"Z\") === dayjs().tz(timeZone2).format(\"Z\");\n","import React from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport withT from \"neetocommons/react-utils/withT\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\n\nimport { DAYS } from \"./constants\";\nimport { sortPeriodsByKey } from \"./utils\";\n\nconst DisplayAvailability = withT(({ t, periods }) => (\n <div className=\"w-full space-y-4\">\n {DAYS.map(day => (\n <div\n className=\"neeto-ui-rounded-md neeto-ui-shadow-xs neeto-ui-border-gray-200 neeto-ui-bg-white flex w-full flex-wrap items-center justify-center gap-2 border px-6 py-4 sm:items-start sm:justify-start\"\n key={day}\n >\n <Typography\n className=\"mt-0.5 w-24 text-center sm:w-1/4 sm:text-left\"\n data-cy={joinHyphenCase(day, \"day-text\")}\n style=\"h5\"\n weight=\"semibold\"\n >\n {t(`neetoMolecules.schedule.days.${day}`)}\n </Typography>\n <div className=\"flex flex-grow flex-col items-center space-y-4 sm:w-1/2\">\n {isPresent(periods[day]) ? (\n sortPeriodsByKey({\n periods: periods[day],\n key: \"startTime\",\n order: \"asc\",\n })?.map(period => (\n <div className=\"flex items-center space-x-4\" key={period.id}>\n <Typography\n className=\"w-20 text-right\"\n lineHeight=\"relaxed\"\n style=\"h5\"\n weight=\"semibold\"\n data-cy={joinHyphenCase(\n day,\n period.startTime,\n \"start-time-text\"\n )}\n >\n {period.startTime}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-600\" component=\"span\">\n -\n </Typography>\n <Typography\n className=\"w-20 text-left\"\n lineHeight=\"relaxed\"\n style=\"h5\"\n weight=\"semibold\"\n data-cy={joinHyphenCase(\n day,\n period.endTime,\n \"start-time-text\"\n )}\n >\n {period.endTime}\n </Typography>\n </div>\n ))\n ) : (\n <Typography\n className=\"mx-8 flex-grow text-center\"\n data-cy={joinHyphenCase(day, \"unavailable-time-text\")}\n lineHeight=\"relaxed\"\n style=\"h5\"\n >\n {t(\"neetoMolecules.schedule.unavailable\")}\n </Typography>\n )}\n </div>\n </div>\n ))}\n </div>\n));\n\nexport default DisplayAvailability;\n","import { toLabelAndValue, isNotPresent } from \"neetocist\";\nimport { uniq, pluck, difference } from \"ramda\";\n\nimport { SLOT_TIME_FORMAT, END_OF_DAY } from \"./constants\";\n\nimport dayjs from \"../dayjsExtended\";\nimport { isTimeBehind } from \"../utils\";\n\nconst buildSlotIntervals = ({\n interval,\n bookedSlots,\n slotType,\n selectedValue = null,\n}) => {\n const selectedOption = {\n label: selectedValue,\n value: selectedValue,\n };\n const allIntervalsForADay = dayjs.timeIntervalsForDay(interval);\n\n allIntervalsForADay.push(END_OF_DAY);\n const uniqBookedSlots = uniq(pluck(slotType, bookedSlots));\n const slotsAvailableForBooking = difference(\n allIntervalsForADay,\n uniqBookedSlots\n );\n const slots = slotsAvailableForBooking.map(toLabelAndValue);\n\n return selectedValue ? sortSlots([selectedOption, ...slots]) : slots;\n};\n\nconst sortSlots = slots =>\n slots.sort((a, b) => (isTimeBehind(a[\"value\"], b[\"value\"]) ? -1 : 1));\n\nconst slotsSelectComponentDefaultValue = slot =>\n slot ? toLabelAndValue(slot) : \"\";\n\nconst padZeroes = str => (str.length % 2 === 0 ? str : `0${str}`);\n\nconst customFilter = (option, searchTerm) => {\n if (isNotPresent(searchTerm)) return true;\n\n const doesNumberMatches = option.value\n .replace(\":\", \"\")\n .startsWith(padZeroes(searchTerm.replaceAll(/\\D+/gi, \"\")));\n\n const doesAmPmMatches = option.value.includes(\n searchTerm.toUpperCase().replaceAll(/[^a-z]/gi, \"\")\n );\n\n return doesNumberMatches && doesAmPmMatches;\n};\n\nconst roundToNearestHour = time => {\n const minutes = time.minute();\n\n if (minutes === 59) return time.startOf(\"hour\").add(1, \"hour\");\n\n return time.add(1, \"hour\");\n};\n\nconst generateNewPeriod = (periods, wday) => {\n const lastEndTime = periods[periods.length - 1].endTime;\n const newStartTime = roundToNearestHour(dayjs(lastEndTime, SLOT_TIME_FORMAT));\n const newEndTime = dayjs(newStartTime, SLOT_TIME_FORMAT).add(1, \"hour\");\n\n return {\n startTime: dayjs(newStartTime).format(SLOT_TIME_FORMAT),\n endTime: dayjs(newEndTime).format(SLOT_TIME_FORMAT),\n wday,\n };\n};\n\nconst addDefaultPeriod = wday => ({\n wday,\n startTime: \"09:00 AM\",\n endTime: \"05:00 PM\",\n});\n\nexport {\n buildSlotIntervals,\n slotsSelectComponentDefaultValue,\n customFilter,\n generateNewPeriod,\n addDefaultPeriod,\n};\n","import { createContext } from \"react\";\n\n// To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component\n// eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management\nconst ScheduleContext = createContext({ allowAddPeriod: true });\n\nexport default ScheduleContext;\n","import React, { useContext } from \"react\";\n\nimport { FieldArray, ErrorMessage } from \"formik\";\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { Plus, Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Select } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n REMOVE_SELECT_DOWN_ARROW,\n BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN,\n} from \"./constants\";\nimport {\n buildSlotIntervals,\n slotsSelectComponentDefaultValue,\n customFilter,\n generateNewPeriod,\n addDefaultPeriod,\n} from \"./utils\";\n\nimport { DEFAULT_SLOT_INTERVAL } from \"../constants\";\nimport ScheduleContext from \"../ScheduleContext\";\n\nconst ScheduleRow = ({ values, setFieldValue, wdayIndex, day }) => {\n const { t } = useTranslation();\n\n const handleAddRow = arrayHelpers => {\n if (isNotPresent(values.wdays[wdayIndex].periods)) {\n arrayHelpers.push(addDefaultPeriod(day));\n } else {\n arrayHelpers.push(\n generateNewPeriod(values.wdays[wdayIndex].periods, day)\n );\n }\n setFieldValue(`wdays[${wdayIndex}].available`, true);\n };\n\n const handleDeleteRow = (arrayHelpers, index) => {\n const isLastRowDeleted = values.wdays[wdayIndex].periods.length === 1;\n arrayHelpers.remove(index);\n setFieldValue(`wdays[${wdayIndex}].available`, !isLastRowDeleted);\n };\n\n const { allowAddPeriod } = useContext(ScheduleContext);\n\n return (\n <FieldArray\n name={`wdays[${wdayIndex}].periods`}\n render={arrayHelpers => (\n <>\n {isPresent(values.wdays[wdayIndex]?.periods) && (\n <div className=\"w-full space-y-2\">\n {values.wdays[wdayIndex].periods?.map((period, index) => (\n <div\n className=\"flex w-full flex-col sm:mx-auto sm:w-80\"\n key={`wdays[${wdayIndex}].periods[${index}]`}\n >\n <div\n className=\"flex items-start gap-2 sm:gap-3\"\n data-cy=\"schedule-row\"\n >\n <Select\n isClearable\n isSearchable\n className=\"w-full\"\n components={REMOVE_SELECT_DOWN_ARROW}\n filterOption={customFilter}\n name={`wdays[${wdayIndex}].periods[${index}].startTime`}\n placeholder={t(\"neetoMolecules.schedule.startTime\")}\n styles={BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN}\n options={buildSlotIntervals({\n interval: DEFAULT_SLOT_INTERVAL,\n bookedSlots: values.wdays[wdayIndex].periods,\n slotType: \"startTime\",\n selectedValue: period?.startTime,\n })}\n value={slotsSelectComponentDefaultValue(\n period?.startTime\n )}\n onChange={e =>\n setFieldValue(\n `wdays[${wdayIndex}].periods[${index}].startTime`,\n e?.value || \"\"\n )\n }\n />\n <Select\n isClearable\n isSearchable\n className=\"w-full\"\n components={REMOVE_SELECT_DOWN_ARROW}\n filterOption={customFilter}\n name={`wdays[${wdayIndex}].periods[${index}].endTime`}\n placeholder={t(\"neetoMolecules.schedule.endTime\")}\n styles={BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN}\n value={slotsSelectComponentDefaultValue(period?.endTime)}\n options={buildSlotIntervals({\n interval: DEFAULT_SLOT_INTERVAL,\n bookedSlots: values.wdays[wdayIndex].periods,\n slotType: \"endTime\",\n selectedValue: period?.endTime,\n })}\n onChange={e =>\n setFieldValue(\n `wdays[${wdayIndex}].periods[${index}].endTime`,\n e?.value || \"\"\n )\n }\n />\n <Button\n className=\"flex-shrink-0 self-start\"\n data-cy=\"delete-period-button\"\n data-testid=\"delete-period-button\"\n icon={Delete}\n style=\"text\"\n onClick={() => handleDeleteRow(arrayHelpers, index)}\n />\n </div>\n <ErrorMessage name={`wdays[${wdayIndex}].periods[${index}]`}>\n {message =>\n typeof message !== \"object\" && (\n <span className=\"neeto-ui-text-error-500 mt-1 w-11/12 px-2 text-xs\">\n {message}\n </span>\n )\n }\n </ErrorMessage>\n </div>\n ))}\n </div>\n )}\n {values.wdays[wdayIndex].available && allowAddPeriod && (\n <Button\n className=\"absolute right-14 top-3 ml-auto flex-shrink-0 sm:static\"\n data-cy=\"add-new-period-button\"\n data-testid=\"add-new-period-button\"\n icon={Plus}\n style=\"secondary\"\n tooltipProps={{\n content: t(\"neetoMolecules.schedule.addNewPeriod\"),\n position: \"top\",\n hideAfter: 5000,\n }}\n onClick={() => handleAddRow(arrayHelpers)}\n />\n )}\n </>\n )}\n />\n );\n};\n\nexport default ScheduleRow;\n","import React, { useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Copy } from \"neetoicons\";\nimport { Typography, Dropdown, Button, Label, Checkbox } from \"neetoui\";\nimport { Switch } from \"neetoui/formik\";\nimport { append, identity, without } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ScheduleRow from \"./ScheduleRow\";\nimport { addDefaultPeriod } from \"./utils\";\n\nimport { DAYS } from \"../constants\";\n\nconst Form = ({ day, handleCopy, values, setFieldValue, index }) => {\n const [deletedPeriods, setDeletedPeriods] = useState([]);\n const [wdaysToCopy, setWdaysToCopy] = useState([]);\n\n const { t } = useTranslation();\n\n const restoreDeletedPeriods = setFieldValue => {\n setFieldValue(`wdays[${index}].periods`, deletedPeriods);\n };\n\n const uncheckCheckbox = (setFieldValue, values) => {\n setFieldValue(`wdays[${index}].available`, false);\n setFieldValue(`wdays[${index}].periods`, []);\n if (values.wdays[index].periods[0]?.id) {\n setDeletedPeriods(\n values.wdays[index].periods\n .filter(item => item.startTime && item.endTime)\n .map(identity)\n );\n }\n };\n\n const checkCheckbox = setFieldValue => {\n setFieldValue(`wdays[${index}].available`, true);\n if (deletedPeriods[0]?.startTime) {\n restoreDeletedPeriods(setFieldValue);\n } else if (isNotPresent(values.wdays[index].periods)) {\n setFieldValue(`wdays[${index}].periods`, [addDefaultPeriod(day)]);\n } else {\n setFieldValue(`wdays[${index}].periods`, [\"\"]);\n }\n };\n\n const handleCheckbox = (setFieldValue, values) => {\n if (values.wdays[index].available) {\n uncheckCheckbox(setFieldValue, values);\n } else {\n checkCheckbox(setFieldValue);\n }\n };\n\n const handleCopyChange = (e, day) =>\n setWdaysToCopy(e.target.checked ? append(day) : without([day]));\n\n return (\n <div className=\"neeto-ui-rounded-md neeto-ui-shadow-xs neeto-ui-border-gray-200 neeto-ui-bg-white relative w-full border px-4 md:px-6\">\n <div\n className=\"sm:flex-no-wrap my-4 flex w-full flex-wrap items-start gap-2 sm:flex-nowrap sm:gap-4\" // Added `sm:flex-no-wrap` since neetoCal is using old version of tailwind\n data-cy=\"working-day-container\"\n >\n <div\n className={classnames(\n \"flex w-36 flex-shrink-0 items-center justify-start sm:mt-1\",\n { \"mb-3 sm:mb-0\": isPresent(values.wdays[index]?.periods) }\n )}\n >\n <Switch\n aria-label={`wdays[${index}].available`}\n checked={values.wdays[index].available}\n className=\"flex-grow-0\"\n data-cy={joinHyphenCase(day, \"weekly-hours-checkbox\")}\n id=\"day\"\n name={`wdays[${index}].available`}\n onChange={() => handleCheckbox(setFieldValue, values)}\n />\n <Typography\n component=\"span\"\n data-cy={joinHyphenCase(day, \"day-text\")}\n style=\"body2\"\n weight={values.wdays[index].available ? \"semibold\" : \"normal\"}\n className={classnames(\"ml-2 capitalize\", {\n \"neeto-ui-text-gray-600\": !values.wdays[index].available,\n })}\n >\n {t(`neetoMolecules.schedule.days.${day}`)}\n </Typography>\n </div>\n <ScheduleRow {...{ day, setFieldValue, values }} wdayIndex={index} />\n {values.wdays[index].available && (\n <Dropdown\n closeOnSelect\n buttonStyle=\"secondary\"\n icon={Copy}\n position=\"right-start\"\n buttonProps={{\n tooltipProps: {\n content: t(\"neetoMolecules.schedule.copyScheduleTooltip\"),\n position: \"top\",\n hideAfter: 5000,\n },\n className: \"absolute right-4 top-3 sm:static flex-shrink-0\",\n \"data-testid\": joinHyphenCase(day, \"copy-schedule-icon\"),\n \"data-cy\": joinHyphenCase(day, \"copy-schedule-icon\"),\n }}\n onClose={() => setWdaysToCopy([])}\n >\n <li>\n <Typography style=\"h5\">\n {t(\"neetoMolecules.schedule.copySchedule\")}\n </Typography>\n </li>\n {DAYS.filter(copyDay => copyDay !== day).map(day => (\n <li key={day} onClick={e => e.stopPropagation()}>\n <Label className=\"w-full cursor-pointer capitalize\">\n <Checkbox\n checked={wdaysToCopy.includes(day)}\n id={day}\n label={t(`neetoMolecules.schedule.days.${day}`)}\n onChange={e => handleCopyChange(e, day)}\n />\n </Label>\n </li>\n ))}\n <li>\n <Button\n data-cy=\"copy-schedule-submit-button\"\n disabled={isNotPresent(wdaysToCopy)}\n label={t(\"neetoMolecules.common.actions.submit\")}\n size=\"small\"\n onClick={() => {\n handleCopy({ values, index, setFieldValue, wdaysToCopy });\n setWdaysToCopy([]);\n }}\n />\n </li>\n </Dropdown>\n )}\n </div>\n </div>\n );\n};\n\nexport default Form;\n","import React, { useEffect, useImperativeHandle } from \"react\";\n\nimport { FieldArray, useFormikContext } from \"formik\";\n\nimport { DAYS } from \"./constants\";\nimport Form from \"./Form\";\n\nconst Fields = ({ handleCopy, handleValuesChanged, scheduleRef }) => {\n const { values, setFieldValue, resetForm, errors, dirty } =\n useFormikContext();\n\n useEffect(() => {\n handleValuesChanged(values, dirty);\n }, [values]);\n\n useImperativeHandle(scheduleRef, () => ({ resetForm, errors }));\n\n return (\n <FieldArray\n name=\"wdays\"\n render={() => (\n <div className=\"space-y-4\">\n {values.wdays.map((item, index) => (\n <Form\n {...{ handleCopy, index, setFieldValue, values }}\n day={DAYS.find(day => day === item.wday)}\n key={item.wday}\n />\n ))}\n </div>\n )}\n />\n );\n};\n\nexport default Fields;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Profile } from \"neetoteam\";\nimport { Button, Typography, Tooltip } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nimport { getTimeZoneAndTime } from \"./utils\";\n\nconst Header = ({ isCreating, isEditable, isEditing, setIsEditing }) => {\n const { dirty, resetForm, submitForm, isSubmitting } = useFormikContext();\n const { t } = useTranslation();\n const [timeZoneAndTime, setTimeZoneAndTime] = useState(getTimeZoneAndTime());\n const [_, setIsProfilePaneOpen] = Profile.usePaneState();\n\n const handleReset = () => {\n if (dirty) resetForm();\n else setIsEditing(false);\n };\n\n useEffect(() => {\n const time = setInterval(() => {\n setTimeZoneAndTime(getTimeZoneAndTime());\n }, 30000);\n\n return () => clearInterval(time);\n }, []);\n\n return (\n <div className=\"mb-6 flex flex-wrap justify-between gap-2\">\n <div className=\"flex items-center gap-3\">\n <Tooltip\n content={t(\"neetoMolecules.schedule.timezoneTooltip\")}\n position=\"bottom\"\n >\n <Typography\n component=\"h4\"\n data-cy=\"timezone-text\"\n style=\"h5\"\n weight=\"medium\"\n >\n {timeZoneAndTime}\n </Typography>\n </Tooltip>\n {isEditable && (\n <MoreDropdown\n dropdownButtonProps={{ \"data-testid\": \"nui-more-dropdown\" }}\n menuItems={[\n {\n onClick: () => setIsProfilePaneOpen(true),\n label: t(\"neetoMolecules.common.actions.changeTimezone\"),\n target: \"_blank\",\n key: \"change-timezone-option\",\n \"data-testid\": \"change-timezone-option\",\n },\n ]}\n />\n )}\n </div>\n {isEditing ? (\n <div className=\"flex items-center gap-2\">\n <Button\n data-cy=\"reset-button\"\n style=\"secondary\"\n label={\n !dirty\n ? t(\"neetoMolecules.common.actions.cancel\")\n : t(\"neetoMolecules.common.actions.reset\")\n }\n onClick={handleReset}\n />\n <Button\n data-cy=\"weekly-hours-save-changes-button\"\n disabled={(!dirty && !isCreating) || isSubmitting}\n label={t(\"neetoMolecules.common.actions.saveChanges\")}\n loading={isSubmitting}\n onClick={submitForm}\n />\n </div>\n ) : (\n <div>\n {isEditable && (\n <Button\n data-cy=\"weekly-schedule-header\"\n label={t(\"neetoMolecules.schedule.changeAvailability\")}\n style=\"primary\"\n weight=\"semibold\"\n onClick={() => setIsEditing(true)}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import React, { forwardRef } from \"react\";\n\nimport { Formik, Form as FormikForm } from \"formik\";\nimport { isPresent, noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { assoc, pick } from \"ramda\";\n\nimport { DAYS } from \"./constants\";\nimport DisplayAvailability from \"./DisplayAvailability\";\nimport Fields from \"./Fields\";\nimport Header from \"./Header\";\nimport \"./schedule.scss\";\nimport ScheduleContext from \"./ScheduleContext\";\nimport { sortPeriodsByKey, getScheduleValidationSchema } from \"./utils\";\n\nconst Schedule = forwardRef(\n (\n {\n periods,\n handleSubmit = noop,\n isEditing = false,\n setIsEditing,\n showHeader = true,\n handleValuesChanged = noop,\n allowAddPeriod = true,\n isEditable = true,\n isCreating = false,\n },\n scheduleRef\n ) => {\n const handleCopy = ({ values, index, setFieldValue, wdaysToCopy }) => {\n const newPeriods = values.wdays[index].periods?.map(\n pick([\"startTime\", \"endTime\"])\n );\n\n wdaysToCopy.forEach(wday => {\n const dayIndex = DAYS.indexOf(wday);\n setFieldValue(\n `wdays[${dayIndex}].available`,\n isPresent(values.wdays[index].periods)\n );\n\n setFieldValue(\n `wdays[${dayIndex}].periods`,\n newPeriods.map(period => assoc(\"wday\", wday, period))\n );\n });\n };\n\n const getInitialFormValues = () =>\n DAYS.map(wday => ({\n periods: sortPeriodsByKey({\n periods: periods[wday],\n key: \"startTime\",\n order: \"asc\",\n }),\n available: !!periods[wday]?.length,\n wday,\n }));\n\n return (\n <div className=\"neeto-molecules-schedule neeto-ui-border-gray-200 flex-shrink-0\">\n <Formik\n enableReinitialize\n initialValues={{ wdays: getInitialFormValues() }}\n validationSchema={getScheduleValidationSchema()}\n onSubmit={values => handleSubmit(values, getInitialFormValues())}\n >\n <>\n {showHeader && (\n <Header\n {...{ isCreating, isEditable, isEditing, setIsEditing }}\n />\n )}\n {isEditing || !showHeader ? (\n <FormikForm>\n <ScheduleContext.Provider value={{ allowAddPeriod }}>\n <Fields\n {...{\n handleCopy,\n handleValuesChanged,\n scheduleRef,\n }}\n />\n </ScheduleContext.Provider>\n </FormikForm>\n ) : (\n <DisplayAvailability {...{ periods }} />\n )}\n </>\n </Formik>\n </div>\n );\n }\n);\n\nSchedule.displayName = \"Schedule\";\n\nSchedule.propTypes = {\n /**\n * Periods data for days of the week.\n */\n periods: PropTypes.shape({\n sunday: PropTypes.array,\n monday: PropTypes.array,\n tuesday: PropTypes.array,\n wednesday: PropTypes.array,\n thursday: PropTypes.array,\n friday: PropTypes.array,\n saturday: PropTypes.array,\n }),\n /**\n * The function to be called on save changes action.\n */\n handleSubmit: PropTypes.func,\n /**\n * State value to show form for editing.\n */\n isEditing: PropTypes.bool,\n /**\n * Setter function to toggle `isEditing` state.\n */\n setIsEditing: PropTypes.func,\n /**\n * Flag to display or hide header. If set to false, component will open in editing state.\n */\n showHeader: PropTypes.bool,\n /**\n * Callback function called when values are changed within form.\n */\n handleValuesChanged: PropTypes.func,\n /**\n * Flag to allow adding new periods. If set to false, Add new period button will be hidden.\n */\n allowAddPeriod: PropTypes.bool,\n /**\n * Flag to control the ability to edit the schedule and timezone. When set to false, periods and timezone cannot be edited.\n */\n isEditable: PropTypes.bool,\n /**\n * Flag to control the ability to submit the schedule without changing initial values. When set to false, Schedule can only be submitted once the initial values are changed.\n */\n isCreating: PropTypes.bool,\n};\n\nexport default Schedule;\n"],"names":["DAYS","DEFAULT_SLOT_INTERVAL","INTERVALS","REMOVE_SELECT_DOWN_ARROW","DropdownIndicator","IndicatorSeparator","BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN","singleValue","base","state","_objectSpread","color","selectProps","menuIsOpen","SLOT_TIME_FORMAT","END_OF_DAY","DayjsRange","startDate","endDate","_classCallCheck","_ref","s","e","_createClass","key","value","isValidRange","isValid","isOverlap","other","toArrayOfTimeIntervals","interval","arguments","length","undefined","startTime","endTime","add","allTimes","push","format","extendDayjs","dayjs","range","start","end","dayjsObject","includes","startOf","endOf","constructor","timeIntervalsForDay","_ref2","startOfDay","endOfDay","allIntervalsForADay","Dayjs","extend","utc","timezone","customParseFormat","weekday","dayjsExtended","yup","addMethod","array","test","periods","_checkForOverlapBetwe","checkForOverlapBetweenPeriods","isOverlapping","exists","range1","range2","_findIndicesOfOverlap","findIndicesOfOverlappingRangesInPeriods","firstIndex","secondIndex","firstError","createError","path","concat","message","i18next","t","timeFormat","time","secondError","ValidationError","isFromAndToSame","isSame","getScheduleValidationSchema","object","shape","wdays","of","string","required","parent","isTimeBehind","ensureSlotsCantOverlap","getUserTimeZone","_window$globalProps","window","globalProps","user","timeZone","getTimeZoneAndTime","humanReadableTimezone","ianaTimezoneToHumanReadable","tz","timeA","timeB","isBefore","sortPeriodsByKey","_ref$order","order","slice","sort","periodA","periodB","isPeriodBehind","response","slotsSortedByStartTime","_iterator","_createForOfIteratorHelper","entries","_step","n","done","_step$value","_slicedToArray","index","seg1","seg2","err","f","findIndexBy","findIndex","slot","DisplayAvailability","withT","React","createElement","className","map","day","_sortPeriodsByKey","Typography","joinHyphenCase","style","weight","isPresent","period","id","lineHeight","component","buildSlotIntervals","bookedSlots","slotType","_ref$selectedValue","selectedValue","selectedOption","label","uniqBookedSlots","uniq","pluck","slotsAvailableForBooking","difference","slots","toLabelAndValue","sortSlots","_toConsumableArray","a","b","slotsSelectComponentDefaultValue","padZeroes","str","customFilter","option","searchTerm","isNotPresent","doesNumberMatches","replace","startsWith","replaceAll","doesAmPmMatches","toUpperCase","roundToNearestHour","minutes","minute","generateNewPeriod","wday","lastEndTime","newStartTime","newEndTime","addDefaultPeriod","ScheduleContext","createContext","allowAddPeriod","ScheduleRow","values","setFieldValue","wdayIndex","_useTranslation","useTranslation","handleAddRow","arrayHelpers","handleDeleteRow","isLastRowDeleted","remove","_useContext","useContext","FieldArray","name","render","_values$wdays$wdayInd","_values$wdays$wdayInd2","Fragment","Select","isClearable","isSearchable","components","filterOption","placeholder","styles","options","onChange","Button","icon","Delete","onClick","ErrorMessage","_typeof","available","Plus","tooltipProps","content","position","hideAfter","Form","_values$wdays$index","handleCopy","_useState","useState","_useState2","deletedPeriods","setDeletedPeriods","_useState3","_useState4","wdaysToCopy","setWdaysToCopy","restoreDeletedPeriods","uncheckCheckbox","_values$wdays$index$p","filter","item","identity","checkCheckbox","_deletedPeriods$","handleCheckbox","handleCopyChange","target","checked","append","without","classnames","Switch","Dropdown","closeOnSelect","buttonStyle","Copy","buttonProps","onClose","copyDay","stopPropagation","Label","Checkbox","disabled","size","Fields","handleValuesChanged","scheduleRef","_useFormikContext","useFormikContext","resetForm","errors","dirty","useEffect","useImperativeHandle","find","Header","isCreating","isEditable","isEditing","setIsEditing","submitForm","isSubmitting","timeZoneAndTime","setTimeZoneAndTime","_Profile$usePaneState","Profile","usePaneState","_Profile$usePaneState2","_","setIsProfilePaneOpen","handleReset","setInterval","clearInterval","Tooltip","MoreDropdown","dropdownButtonProps","menuItems","loading","Schedule","forwardRef","_ref$handleSubmit","handleSubmit","noop","_ref$isEditing","_ref$showHeader","showHeader","_ref$handleValuesChan","_ref$allowAddPeriod","_ref$isEditable","_ref$isCreating","newPeriods","pick","forEach","dayIndex","indexOf","assoc","getInitialFormValues","_periods$wday","Formik","enableReinitialize","initialValues","validationSchema","onSubmit","FormikForm","Provider","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"Schedule.js","sources":["../../src/components/Schedule/constants.js","../../src/components/Schedule/dayjsExtended/constants.js","../../src/components/Schedule/Form/constants.js","../../src/components/Schedule/dayjsExtended/range.js","../../src/components/Schedule/dayjsExtended/index.js","../../src/components/Schedule/utils.js","../../src/components/Schedule/DisplayAvailability.jsx","../../src/components/Schedule/Form/utils.js","../../src/components/Schedule/ScheduleContext.js","../../src/components/Schedule/Form/ScheduleRow.jsx","../../src/components/Schedule/Form/index.jsx","../../src/components/Schedule/Fields.jsx","../../src/components/Schedule/Header.jsx","../../src/components/Schedule/index.jsx"],"sourcesContent":["export const DEFAULT_BOOKED_SLOTS = [\n { startTime: \"09:00 AM\", endTime: \"05:00 PM\" },\n];\n\nexport const MARK_DAY_AS_AVAILABLE_BY_DEFAULT = true;\n\nexport const DAYS = [\n \"monday\",\n \"tuesday\",\n \"wednesday\",\n \"thursday\",\n \"friday\",\n \"saturday\",\n \"sunday\",\n];\n\nexport const DEFAULT_SLOT_INTERVAL = 30;\n","export const INTERVALS = [\n \"year\",\n \"quarter\",\n \"month\",\n \"week\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n];\n","export const REMOVE_SELECT_DOWN_ARROW = {\n DropdownIndicator: () => null,\n IndicatorSeparator: () => null,\n};\n\nexport const BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN = {\n singleValue: (base, state) => ({\n ...base,\n color: state.selectProps.menuIsOpen ? \"#c2c8cc\" : base.color,\n }),\n};\n\nexport const SLOT_TIME_FORMAT = \"hh:mm A\";\n\nexport const END_OF_DAY = \"11:59 PM\";\n","import { INTERVALS } from \"./constants\";\n\nimport { SLOT_TIME_FORMAT } from \"../Form/constants\";\n\nexport class DayjsRange {\n constructor(startDate, endDate) {\n const { s, e } =\n startDate > endDate\n ? { s: endDate, e: startDate }\n : { s: startDate, e: endDate };\n\n this.startDate = s;\n this.endDate = e;\n }\n\n isValidRange() {\n return this.startDate.isValid() && this.endDate.isValid();\n }\n\n isOverlap(other) {\n if (!(other instanceof DayjsRange) || !other.isValidRange()) {\n return false;\n }\n\n return this.startDate < other.endDate && this.endDate > other.startDate;\n }\n\n toArrayOfTimeIntervals(interval = 15) {\n let startTime = this.startDate;\n const endTime = this.endDate.add(1, \"days\");\n const allTimes = [];\n\n while (startTime < endTime) {\n allTimes.push(startTime.format(SLOT_TIME_FORMAT));\n startTime = startTime.add(interval, \"minutes\");\n }\n\n return allTimes;\n }\n}\n\nexport default (_, __, d) => {\n d.range = (start, end) => new DayjsRange(d(start), d(end));\n};\n\nexport function extendDayjs(dayjs) {\n dayjs.range = function range(start, end) {\n const dayjsObject = this;\n\n if (typeof start === \"string\" && INTERVALS.includes(start)) {\n return new DayjsRange(\n dayjs(dayjsObject).startOf(start),\n dayjs(dayjsObject).endOf(start)\n );\n }\n\n return new DayjsRange(start, end);\n };\n\n dayjs.range.constructor = DayjsRange;\n\n // Returns timeIntervals in 12 hour clock format for the whole day with both AM or PM suffixed\n dayjs.timeIntervalsForDay = interval => {\n const [startOfDay, endOfDay] = [\n dayjs(\"00:00 AM\", SLOT_TIME_FORMAT),\n dayjs(\"00:00 AM\", SLOT_TIME_FORMAT),\n ];\n\n const allIntervalsForADay = dayjs\n .range(startOfDay, endOfDay)\n .toArrayOfTimeIntervals(interval);\n\n return allIntervalsForADay;\n };\n\n return dayjs;\n}\n","import Dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport timezone from \"dayjs/plugin/timezone\";\nimport utc from \"dayjs/plugin/utc\";\nimport weekday from \"dayjs/plugin/weekday\";\n\nimport { extendDayjs } from \"./range\";\n\nDayjs.extend(utc);\nDayjs.extend(timezone);\nDayjs.extend(customParseFormat);\nDayjs.extend(weekday);\n\n// Add range and overlap functions to dayjs\nconst dayjsExtended = extendDayjs(Dayjs);\n\nexport default dayjsExtended;\n","import { ianaTimezoneToHumanReadable } from \"@bigbinary/neeto-time-zones\";\nimport dayjs from \"dayjs\";\nimport i18next from \"i18next\";\nimport { findIndexBy } from \"neetocist\";\nimport { timeFormat } from \"neetocommons/utils/datetime\";\nimport * as yup from \"yup\";\n\nimport dayjsExtended from \"./dayjsExtended\";\nimport { SLOT_TIME_FORMAT } from \"./Form/constants\";\n\nyup.addMethod(yup.array, \"ensureSlotsCantOverlap\", function () {\n return this.test(\"ensureSlotsCantOverlap\", function (periods) {\n const {\n exists: isOverlapping,\n range1,\n range2,\n } = checkForOverlapBetweenPeriods(periods);\n\n if (!isOverlapping) return true;\n\n const { firstIndex, secondIndex } = findIndicesOfOverlappingRangesInPeriods(\n { range1, range2, periods }\n );\n\n const firstError = this.createError({\n path: `${this.path}[${firstIndex}]`,\n message: i18next.t(\"neetoMolecules.schedule.errors.period.overlap\", {\n start: timeFormat.time(range2.startDate),\n end: timeFormat.time(range2.endDate),\n }),\n });\n\n const secondError = this.createError({\n path: `${this.path}[${secondIndex}]`,\n message: i18next.t(\"neetoMolecules.schedule.errors.period.overlap\", {\n start: timeFormat.time(range1.startDate),\n end: timeFormat.time(range1.endDate),\n }),\n });\n\n return new yup.ValidationError([firstError, secondError]);\n });\n});\n\nconst isFromAndToSame = (startTime, endTime) => {\n if (!startTime || !endTime) return true;\n\n return dayjs(startTime, SLOT_TIME_FORMAT).isSame(\n dayjs(endTime, SLOT_TIME_FORMAT)\n );\n};\n\nexport const getScheduleValidationSchema = () =>\n yup.object().shape({\n wdays: yup.array().of(\n yup.object().shape({\n periods: yup\n .array()\n .of(\n yup\n .object()\n .shape({\n startTime: yup\n .string()\n .required(\n i18next.t(\"neetoMolecules.schedule.errors.period.startTime\")\n ),\n endTime: yup\n .string()\n .required(\n i18next.t(\"neetoMolecules.schedule.errors.period.endTime\")\n )\n .test(\n \"ensureToTimeNotBehindFromTime\",\n i18next.t(\"neetoMolecules.schedule.errors.period.isBehind\"),\n function (value) {\n const { startTime } = this.parent;\n if (isFromAndToSame(value, startTime)) return true;\n\n return isTimeBehind(startTime, value);\n }\n ),\n })\n .test(\n \"ensureTimeNotSame\",\n i18next.t(\"neetoMolecules.schedule.errors.period.sameTime\"),\n value => {\n const { startTime, endTime } = value;\n\n return !isFromAndToSame(startTime, endTime);\n }\n )\n )\n .ensureSlotsCantOverlap(),\n })\n ),\n });\n\nexport const getUserTimeZone = () => window.globalProps?.user.timeZone;\n\nexport const getTimeZoneAndTime = () => {\n const timeZone = getUserTimeZone();\n const humanReadableTimezone = ianaTimezoneToHumanReadable(timeZone);\n\n // Requires timezone initialization\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n return `${humanReadableTimezone}: ${dayjs()\n .tz(timeZone)\n .format(SLOT_TIME_FORMAT)}`;\n};\n\nexport const isTimeBehind = (timeA, timeB) =>\n dayjs(timeA, SLOT_TIME_FORMAT).isBefore(dayjs(timeB, SLOT_TIME_FORMAT));\n\nexport const sortPeriodsByKey = ({ periods, key, order = \"desc\" }) =>\n periods.slice().sort((periodA, periodB) => {\n const isPeriodBehind = isTimeBehind(periodA[key], periodB[key]);\n if (order === \"desc\") return isPeriodBehind ? 1 : -1;\n\n return isPeriodBehind ? -1 : 1;\n });\n\n/**\n * Check for overlapping between entered periods\n * @typedef {Object} Slots\n * @property {Array<{startTime:string, endTime: string}>} periods - startTime and endTime\n * @param {Slots} periods - changed time periods\n * @return {{exists: boolean, range1: DayjsRange | null, range2:DayjsRange | null }} - overlapped ranges if exists\n */\nexport const checkForOverlapBetweenPeriods = periods => {\n let response = { exists: false, range1: null, range2: null };\n\n if (!periods?.length) return response;\n\n const slotsSortedByStartTime = sortPeriodsByKey({\n periods,\n key: \"startTime\",\n });\n for (const [index, value] of slotsSortedByStartTime.slice(0, -1).entries()) {\n const seg1 = value;\n const seg2 = slotsSortedByStartTime[index + 1];\n const range1 = dayjsExtended.range(\n dayjsExtended(seg1.startTime, SLOT_TIME_FORMAT),\n dayjsExtended(seg1.endTime, SLOT_TIME_FORMAT)\n );\n\n const range2 = dayjsExtended.range(\n dayjsExtended(seg2.startTime, SLOT_TIME_FORMAT),\n dayjsExtended(seg2.endTime, SLOT_TIME_FORMAT)\n );\n if (range1.isOverlap(range2)) {\n response = { exists: true, range1, range2 };\n break;\n }\n }\n\n return response;\n};\n\nexport const findIndicesOfOverlappingRangesInPeriods = ({\n range1,\n range2,\n periods,\n}) => {\n const firstIndex = findIndexBy(\n { startTime: range1.startDate.format(SLOT_TIME_FORMAT) },\n periods\n );\n\n const secondIndex = periods.findIndex(\n (slot, index) =>\n index > firstIndex &&\n slot.startTime === range2.startDate.format(SLOT_TIME_FORMAT)\n );\n\n return { firstIndex, secondIndex };\n};\n\nexport const checkIfTwoTimeZonesAreSame = (timeZone1, timeZone2) =>\n // Requires timezone initialization\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n dayjs().tz(timeZone1).format(\"Z\") === dayjs().tz(timeZone2).format(\"Z\");\n","import React from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport withT from \"neetocommons/react-utils/withT\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\n\nimport { DAYS } from \"./constants\";\nimport { sortPeriodsByKey } from \"./utils\";\n\nconst DisplayAvailability = withT(({ t, periods }) => (\n <div className=\"w-full space-y-4\">\n {DAYS.map(day => (\n <div\n className=\"neeto-ui-rounded-md neeto-ui-shadow-xs neeto-ui-border-gray-200 neeto-ui-bg-white flex w-full flex-wrap items-center justify-center gap-2 border px-6 py-4 sm:items-start sm:justify-start\"\n key={day}\n >\n <Typography\n className=\"mt-0.5 w-24 text-center sm:w-1/4 sm:text-left\"\n data-cy={joinHyphenCase(day, \"day-text\")}\n style=\"h5\"\n weight=\"semibold\"\n >\n {t(`neetoMolecules.schedule.days.${day}`)}\n </Typography>\n <div className=\"flex flex-grow flex-col items-center space-y-4 sm:w-1/2\">\n {isPresent(periods[day]) ? (\n sortPeriodsByKey({\n periods: periods[day],\n key: \"startTime\",\n order: \"asc\",\n })?.map(period => (\n <div className=\"flex items-center space-x-4\" key={period.id}>\n <Typography\n className=\"w-20 text-right\"\n lineHeight=\"relaxed\"\n style=\"h5\"\n weight=\"semibold\"\n data-cy={joinHyphenCase(\n day,\n period.startTime,\n \"start-time-text\"\n )}\n >\n {period.startTime}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-600\" component=\"span\">\n -\n </Typography>\n <Typography\n className=\"w-20 text-left\"\n lineHeight=\"relaxed\"\n style=\"h5\"\n weight=\"semibold\"\n data-cy={joinHyphenCase(\n day,\n period.endTime,\n \"start-time-text\"\n )}\n >\n {period.endTime}\n </Typography>\n </div>\n ))\n ) : (\n <Typography\n className=\"mx-8 flex-grow text-center\"\n data-cy={joinHyphenCase(day, \"unavailable-time-text\")}\n lineHeight=\"relaxed\"\n style=\"h5\"\n >\n {t(\"neetoMolecules.schedule.unavailable\")}\n </Typography>\n )}\n </div>\n </div>\n ))}\n </div>\n));\n\nexport default DisplayAvailability;\n","import { toLabelAndValue, isNotPresent } from \"neetocist\";\nimport { uniq, pluck, difference } from \"ramda\";\n\nimport { SLOT_TIME_FORMAT, END_OF_DAY } from \"./constants\";\n\nimport dayjs from \"../dayjsExtended\";\nimport { isTimeBehind } from \"../utils\";\n\nconst buildSlotIntervals = ({\n interval,\n bookedSlots,\n slotType,\n selectedValue = null,\n}) => {\n const selectedOption = {\n label: selectedValue,\n value: selectedValue,\n };\n const allIntervalsForADay = dayjs.timeIntervalsForDay(interval);\n\n allIntervalsForADay.push(END_OF_DAY);\n const uniqBookedSlots = uniq(pluck(slotType, bookedSlots));\n const slotsAvailableForBooking = difference(\n allIntervalsForADay,\n uniqBookedSlots\n );\n const slots = slotsAvailableForBooking.map(toLabelAndValue);\n\n return selectedValue ? sortSlots([selectedOption, ...slots]) : slots;\n};\n\nconst sortSlots = slots =>\n slots.sort((a, b) => (isTimeBehind(a[\"value\"], b[\"value\"]) ? -1 : 1));\n\nconst slotsSelectComponentDefaultValue = slot =>\n slot ? toLabelAndValue(slot) : \"\";\n\nconst padZeroes = str => (str.length % 2 === 0 ? str : `0${str}`);\n\nconst customFilter = (option, searchTerm) => {\n if (isNotPresent(searchTerm)) return true;\n\n const doesNumberMatches = option.value\n .replace(\":\", \"\")\n .startsWith(padZeroes(searchTerm.replaceAll(/\\D+/gi, \"\")));\n\n const doesAmPmMatches = option.value.includes(\n searchTerm.toUpperCase().replaceAll(/[^a-z]/gi, \"\")\n );\n\n return doesNumberMatches && doesAmPmMatches;\n};\n\nconst roundToNearestHour = time => {\n const minutes = time.minute();\n\n if (minutes === 59) return time.startOf(\"hour\").add(1, \"hour\");\n\n return time.add(1, \"hour\");\n};\n\nconst generateNewPeriod = (periods, wday) => {\n const lastEndTime = periods[periods.length - 1].endTime;\n const newStartTime = roundToNearestHour(dayjs(lastEndTime, SLOT_TIME_FORMAT));\n const newEndTime = dayjs(newStartTime, SLOT_TIME_FORMAT).add(1, \"hour\");\n\n return {\n startTime: dayjs(newStartTime).format(SLOT_TIME_FORMAT),\n endTime: dayjs(newEndTime).format(SLOT_TIME_FORMAT),\n wday,\n };\n};\n\nconst addDefaultPeriod = wday => ({\n wday,\n startTime: \"09:00 AM\",\n endTime: \"05:00 PM\",\n});\n\nexport {\n buildSlotIntervals,\n slotsSelectComponentDefaultValue,\n customFilter,\n generateNewPeriod,\n addDefaultPeriod,\n};\n","import { createContext } from \"react\";\n\n// To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component\n// eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management\nconst ScheduleContext = createContext({ allowAddPeriod: true });\n\nexport default ScheduleContext;\n","import React, { useContext } from \"react\";\n\nimport { FieldArray, ErrorMessage } from \"formik\";\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { Plus, Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Select } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n REMOVE_SELECT_DOWN_ARROW,\n BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN,\n} from \"./constants\";\nimport {\n buildSlotIntervals,\n slotsSelectComponentDefaultValue,\n customFilter,\n generateNewPeriod,\n addDefaultPeriod,\n} from \"./utils\";\n\nimport { DEFAULT_SLOT_INTERVAL } from \"../constants\";\nimport ScheduleContext from \"../ScheduleContext\";\n\nconst ScheduleRow = ({ values, setFieldValue, wdayIndex, day }) => {\n const { t } = useTranslation();\n\n const handleAddRow = arrayHelpers => {\n if (isNotPresent(values.wdays[wdayIndex].periods)) {\n arrayHelpers.push(addDefaultPeriod(day));\n } else {\n arrayHelpers.push(\n generateNewPeriod(values.wdays[wdayIndex].periods, day)\n );\n }\n setFieldValue(`wdays[${wdayIndex}].available`, true);\n };\n\n const handleDeleteRow = (arrayHelpers, index) => {\n const isLastRowDeleted = values.wdays[wdayIndex].periods.length === 1;\n arrayHelpers.remove(index);\n setFieldValue(`wdays[${wdayIndex}].available`, !isLastRowDeleted);\n };\n\n const { allowAddPeriod } = useContext(ScheduleContext);\n\n return (\n <FieldArray\n name={`wdays[${wdayIndex}].periods`}\n render={arrayHelpers => (\n <>\n {isPresent(values.wdays[wdayIndex]?.periods) && (\n <div className=\"w-full space-y-2\">\n {values.wdays[wdayIndex].periods?.map((period, index) => (\n <div\n className=\"flex w-full flex-col sm:mx-auto sm:w-80\"\n key={`wdays[${wdayIndex}].periods[${index}]`}\n >\n <div\n className=\"flex items-start gap-2 sm:gap-3\"\n data-cy=\"schedule-row\"\n >\n <Select\n isClearable\n isSearchable\n className=\"w-full\"\n components={REMOVE_SELECT_DOWN_ARROW}\n filterOption={customFilter}\n name={`wdays[${wdayIndex}].periods[${index}].startTime`}\n placeholder={t(\"neetoMolecules.schedule.startTime\")}\n styles={BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN}\n options={buildSlotIntervals({\n interval: DEFAULT_SLOT_INTERVAL,\n bookedSlots: values.wdays[wdayIndex].periods,\n slotType: \"startTime\",\n selectedValue: period?.startTime,\n })}\n value={slotsSelectComponentDefaultValue(\n period?.startTime\n )}\n onChange={e =>\n setFieldValue(\n `wdays[${wdayIndex}].periods[${index}].startTime`,\n e?.value || \"\"\n )\n }\n />\n <Select\n isClearable\n isSearchable\n className=\"w-full\"\n components={REMOVE_SELECT_DOWN_ARROW}\n filterOption={customFilter}\n name={`wdays[${wdayIndex}].periods[${index}].endTime`}\n placeholder={t(\"neetoMolecules.schedule.endTime\")}\n styles={BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN}\n value={slotsSelectComponentDefaultValue(period?.endTime)}\n options={buildSlotIntervals({\n interval: DEFAULT_SLOT_INTERVAL,\n bookedSlots: values.wdays[wdayIndex].periods,\n slotType: \"endTime\",\n selectedValue: period?.endTime,\n })}\n onChange={e =>\n setFieldValue(\n `wdays[${wdayIndex}].periods[${index}].endTime`,\n e?.value || \"\"\n )\n }\n />\n <Button\n className=\"flex-shrink-0 self-start\"\n data-cy=\"delete-period-button\"\n data-testid=\"delete-period-button\"\n icon={Delete}\n style=\"text\"\n onClick={() => handleDeleteRow(arrayHelpers, index)}\n />\n </div>\n <ErrorMessage name={`wdays[${wdayIndex}].periods[${index}]`}>\n {message =>\n typeof message !== \"object\" && (\n <span className=\"neeto-ui-text-error-500 mt-1 w-11/12 px-2 text-xs\">\n {message}\n </span>\n )\n }\n </ErrorMessage>\n </div>\n ))}\n </div>\n )}\n {values.wdays[wdayIndex].available && allowAddPeriod && (\n <Button\n className=\"absolute right-14 top-3 ml-auto flex-shrink-0 sm:static\"\n data-cy=\"add-new-period-button\"\n data-testid=\"add-new-period-button\"\n icon={Plus}\n style=\"secondary\"\n tooltipProps={{\n content: t(\"neetoMolecules.schedule.addNewPeriod\"),\n position: \"top\",\n hideAfter: 5000,\n }}\n onClick={() => handleAddRow(arrayHelpers)}\n />\n )}\n </>\n )}\n />\n );\n};\n\nexport default ScheduleRow;\n","import React, { useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotPresent, isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Copy } from \"neetoicons\";\nimport { Typography, Dropdown, Button, Label, Checkbox } from \"neetoui\";\nimport { Switch } from \"neetoui/formik\";\nimport { append, identity, without } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ScheduleRow from \"./ScheduleRow\";\nimport { addDefaultPeriod } from \"./utils\";\n\nimport { DAYS } from \"../constants\";\n\nconst Form = ({ day, handleCopy, values, setFieldValue, index }) => {\n const [deletedPeriods, setDeletedPeriods] = useState([]);\n const [wdaysToCopy, setWdaysToCopy] = useState([]);\n\n const { t } = useTranslation();\n\n const restoreDeletedPeriods = setFieldValue => {\n setFieldValue(`wdays[${index}].periods`, deletedPeriods);\n };\n\n const uncheckCheckbox = (setFieldValue, values) => {\n setFieldValue(`wdays[${index}].available`, false);\n setFieldValue(`wdays[${index}].periods`, []);\n if (values.wdays[index].periods[0]?.id) {\n setDeletedPeriods(\n values.wdays[index].periods\n .filter(item => item.startTime && item.endTime)\n .map(identity)\n );\n }\n };\n\n const checkCheckbox = setFieldValue => {\n setFieldValue(`wdays[${index}].available`, true);\n if (deletedPeriods[0]?.startTime) {\n restoreDeletedPeriods(setFieldValue);\n } else if (isNotPresent(values.wdays[index].periods)) {\n setFieldValue(`wdays[${index}].periods`, [addDefaultPeriod(day)]);\n } else {\n setFieldValue(`wdays[${index}].periods`, [\"\"]);\n }\n };\n\n const handleCheckbox = (setFieldValue, values) => {\n if (values.wdays[index].available) {\n uncheckCheckbox(setFieldValue, values);\n } else {\n checkCheckbox(setFieldValue);\n }\n };\n\n const handleCopyChange = (e, day) =>\n setWdaysToCopy(e.target.checked ? append(day) : without([day]));\n\n return (\n <div className=\"neeto-ui-rounded-md neeto-ui-shadow-xs neeto-ui-border-gray-200 neeto-ui-bg-white relative w-full border px-4 md:px-6\">\n <div\n className=\"sm:flex-no-wrap my-4 flex w-full flex-wrap items-start gap-2 sm:flex-nowrap sm:gap-4\" // Added `sm:flex-no-wrap` since neetoCal is using old version of tailwind\n data-cy=\"working-day-container\"\n >\n <div\n className={classnames(\n \"flex w-36 flex-shrink-0 items-center justify-start sm:mt-1\",\n { \"mb-3 sm:mb-0\": isPresent(values.wdays[index]?.periods) }\n )}\n >\n <Switch\n aria-label={`wdays[${index}].available`}\n checked={values.wdays[index].available}\n className=\"flex-grow-0\"\n data-cy={joinHyphenCase(day, \"weekly-hours-checkbox\")}\n id=\"day\"\n name={`wdays[${index}].available`}\n onChange={() => handleCheckbox(setFieldValue, values)}\n />\n <Typography\n component=\"span\"\n data-cy={joinHyphenCase(day, \"day-text\")}\n style=\"body2\"\n weight={values.wdays[index].available ? \"semibold\" : \"normal\"}\n className={classnames(\"ml-2 capitalize\", {\n \"neeto-ui-text-gray-600\": !values.wdays[index].available,\n })}\n >\n {t(`neetoMolecules.schedule.days.${day}`)}\n </Typography>\n </div>\n <ScheduleRow {...{ day, setFieldValue, values }} wdayIndex={index} />\n {values.wdays[index].available && (\n <Dropdown\n closeOnSelect\n buttonStyle=\"secondary\"\n icon={Copy}\n position=\"right-start\"\n buttonProps={{\n tooltipProps: {\n content: t(\"neetoMolecules.schedule.copyScheduleTooltip\"),\n position: \"top\",\n hideAfter: 5000,\n },\n className: \"absolute right-4 top-3 sm:static flex-shrink-0\",\n \"data-testid\": joinHyphenCase(day, \"copy-schedule-icon\"),\n \"data-cy\": joinHyphenCase(day, \"copy-schedule-icon\"),\n }}\n dropdownProps={{\n className:\n \"neeto-ui-dropdown__popup neeto-molecules-schedule__dropdown\",\n }}\n onClose={() => setWdaysToCopy([])}\n >\n <li>\n <Typography style=\"h5\">\n {t(\"neetoMolecules.schedule.copySchedule\")}\n </Typography>\n </li>\n {DAYS.filter(copyDay => copyDay !== day).map(day => (\n <li key={day} onClick={e => e.stopPropagation()}>\n <Label className=\"w-full cursor-pointer capitalize\">\n <Checkbox\n checked={wdaysToCopy.includes(day)}\n id={day}\n label={t(`neetoMolecules.schedule.days.${day}`)}\n onChange={e => handleCopyChange(e, day)}\n />\n </Label>\n </li>\n ))}\n <li>\n <Button\n data-cy=\"copy-schedule-submit-button\"\n disabled={isNotPresent(wdaysToCopy)}\n label={t(\"neetoMolecules.common.actions.submit\")}\n size=\"small\"\n onClick={() => {\n handleCopy({ values, index, setFieldValue, wdaysToCopy });\n setWdaysToCopy([]);\n }}\n />\n </li>\n </Dropdown>\n )}\n </div>\n </div>\n );\n};\n\nexport default Form;\n","import React, { useEffect, useImperativeHandle } from \"react\";\n\nimport { FieldArray, useFormikContext } from \"formik\";\n\nimport { DAYS } from \"./constants\";\nimport Form from \"./Form\";\n\nconst Fields = ({ handleCopy, handleValuesChanged, scheduleRef }) => {\n const { values, setFieldValue, resetForm, errors, dirty } =\n useFormikContext();\n\n useEffect(() => {\n handleValuesChanged(values, dirty);\n }, [values]);\n\n useImperativeHandle(scheduleRef, () => ({ resetForm, errors }));\n\n return (\n <FieldArray\n name=\"wdays\"\n render={() => (\n <div className=\"space-y-4\">\n {values.wdays.map((item, index) => (\n <Form\n {...{ handleCopy, index, setFieldValue, values }}\n day={DAYS.find(day => day === item.wday)}\n key={item.wday}\n />\n ))}\n </div>\n )}\n />\n );\n};\n\nexport default Fields;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Profile } from \"neetoteam\";\nimport { Button, Typography, Tooltip } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nimport { getTimeZoneAndTime } from \"./utils\";\n\nconst Header = ({ isCreating, isEditable, isEditing, setIsEditing }) => {\n const { dirty, resetForm, submitForm, isSubmitting } = useFormikContext();\n const { t } = useTranslation();\n const [timeZoneAndTime, setTimeZoneAndTime] = useState(getTimeZoneAndTime());\n const [_, setIsProfilePaneOpen] = Profile.usePaneState();\n\n const handleReset = () => {\n if (dirty) resetForm();\n else setIsEditing(false);\n };\n\n useEffect(() => {\n const time = setInterval(() => {\n setTimeZoneAndTime(getTimeZoneAndTime());\n }, 30000);\n\n return () => clearInterval(time);\n }, []);\n\n return (\n <div className=\"mb-6 flex flex-wrap justify-between gap-2\">\n <div className=\"flex items-center gap-3\">\n <Tooltip\n content={t(\"neetoMolecules.schedule.timezoneTooltip\")}\n position=\"bottom\"\n >\n <Typography\n component=\"h4\"\n data-cy=\"timezone-text\"\n style=\"h5\"\n weight=\"medium\"\n >\n {timeZoneAndTime}\n </Typography>\n </Tooltip>\n {isEditable && (\n <MoreDropdown\n dropdownButtonProps={{ \"data-testid\": \"nui-more-dropdown\" }}\n menuItems={[\n {\n onClick: () => setIsProfilePaneOpen(true),\n label: t(\"neetoMolecules.common.actions.changeTimezone\"),\n target: \"_blank\",\n key: \"change-timezone-option\",\n \"data-testid\": \"change-timezone-option\",\n },\n ]}\n />\n )}\n </div>\n {isEditing ? (\n <div className=\"flex items-center gap-2\">\n <Button\n data-cy=\"reset-button\"\n style=\"secondary\"\n label={\n !dirty\n ? t(\"neetoMolecules.common.actions.cancel\")\n : t(\"neetoMolecules.common.actions.reset\")\n }\n onClick={handleReset}\n />\n <Button\n data-cy=\"weekly-hours-save-changes-button\"\n disabled={(!dirty && !isCreating) || isSubmitting}\n label={t(\"neetoMolecules.common.actions.saveChanges\")}\n loading={isSubmitting}\n onClick={submitForm}\n />\n </div>\n ) : (\n <div>\n {isEditable && (\n <Button\n data-cy=\"weekly-schedule-header\"\n label={t(\"neetoMolecules.schedule.changeAvailability\")}\n style=\"primary\"\n weight=\"semibold\"\n onClick={() => setIsEditing(true)}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import React, { forwardRef } from \"react\";\n\nimport { Formik, Form as FormikForm } from \"formik\";\nimport { isPresent, noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { assoc, pick } from \"ramda\";\n\nimport { DAYS } from \"./constants\";\nimport DisplayAvailability from \"./DisplayAvailability\";\nimport Fields from \"./Fields\";\nimport Header from \"./Header\";\nimport \"./schedule.scss\";\nimport ScheduleContext from \"./ScheduleContext\";\nimport { sortPeriodsByKey, getScheduleValidationSchema } from \"./utils\";\n\nconst Schedule = forwardRef(\n (\n {\n periods,\n handleSubmit = noop,\n isEditing = false,\n setIsEditing,\n showHeader = true,\n handleValuesChanged = noop,\n allowAddPeriod = true,\n isEditable = true,\n isCreating = false,\n },\n scheduleRef\n ) => {\n const handleCopy = ({ values, index, setFieldValue, wdaysToCopy }) => {\n const newPeriods = values.wdays[index].periods?.map(\n pick([\"startTime\", \"endTime\"])\n );\n\n wdaysToCopy.forEach(wday => {\n const dayIndex = DAYS.indexOf(wday);\n setFieldValue(\n `wdays[${dayIndex}].available`,\n isPresent(values.wdays[index].periods)\n );\n\n setFieldValue(\n `wdays[${dayIndex}].periods`,\n newPeriods.map(period => assoc(\"wday\", wday, period))\n );\n });\n };\n\n const getInitialFormValues = () =>\n DAYS.map(wday => ({\n periods: sortPeriodsByKey({\n periods: periods[wday],\n key: \"startTime\",\n order: \"asc\",\n }),\n available: !!periods[wday]?.length,\n wday,\n }));\n\n return (\n <div className=\"neeto-molecules-schedule neeto-ui-border-gray-200 flex-shrink-0\">\n <Formik\n enableReinitialize\n initialValues={{ wdays: getInitialFormValues() }}\n validationSchema={getScheduleValidationSchema()}\n onSubmit={values => handleSubmit(values, getInitialFormValues())}\n >\n <>\n {showHeader && (\n <Header\n {...{ isCreating, isEditable, isEditing, setIsEditing }}\n />\n )}\n {isEditing || !showHeader ? (\n <FormikForm>\n <ScheduleContext.Provider value={{ allowAddPeriod }}>\n <Fields\n {...{\n handleCopy,\n handleValuesChanged,\n scheduleRef,\n }}\n />\n </ScheduleContext.Provider>\n </FormikForm>\n ) : (\n <DisplayAvailability {...{ periods }} />\n )}\n </>\n </Formik>\n </div>\n );\n }\n);\n\nSchedule.displayName = \"Schedule\";\n\nSchedule.propTypes = {\n /**\n * Periods data for days of the week.\n */\n periods: PropTypes.shape({\n sunday: PropTypes.array,\n monday: PropTypes.array,\n tuesday: PropTypes.array,\n wednesday: PropTypes.array,\n thursday: PropTypes.array,\n friday: PropTypes.array,\n saturday: PropTypes.array,\n }),\n /**\n * The function to be called on save changes action.\n */\n handleSubmit: PropTypes.func,\n /**\n * State value to show form for editing.\n */\n isEditing: PropTypes.bool,\n /**\n * Setter function to toggle `isEditing` state.\n */\n setIsEditing: PropTypes.func,\n /**\n * Flag to display or hide header. If set to false, component will open in editing state.\n */\n showHeader: PropTypes.bool,\n /**\n * Callback function called when values are changed within form.\n */\n handleValuesChanged: PropTypes.func,\n /**\n * Flag to allow adding new periods. If set to false, Add new period button will be hidden.\n */\n allowAddPeriod: PropTypes.bool,\n /**\n * Flag to control the ability to edit the schedule and timezone. When set to false, periods and timezone cannot be edited.\n */\n isEditable: PropTypes.bool,\n /**\n * Flag to control the ability to submit the schedule without changing initial values. When set to false, Schedule can only be submitted once the initial values are changed.\n */\n isCreating: PropTypes.bool,\n};\n\nexport default Schedule;\n"],"names":["DAYS","DEFAULT_SLOT_INTERVAL","INTERVALS","REMOVE_SELECT_DOWN_ARROW","DropdownIndicator","IndicatorSeparator","BLUR_TEXT_WHEN_SELECT_MENU_IS_OPEN","singleValue","base","state","_objectSpread","color","selectProps","menuIsOpen","SLOT_TIME_FORMAT","END_OF_DAY","DayjsRange","startDate","endDate","_classCallCheck","_ref","s","e","_createClass","key","value","isValidRange","isValid","isOverlap","other","toArrayOfTimeIntervals","interval","arguments","length","undefined","startTime","endTime","add","allTimes","push","format","extendDayjs","dayjs","range","start","end","dayjsObject","includes","startOf","endOf","constructor","timeIntervalsForDay","_ref2","startOfDay","endOfDay","allIntervalsForADay","Dayjs","extend","utc","timezone","customParseFormat","weekday","dayjsExtended","yup","addMethod","array","test","periods","_checkForOverlapBetwe","checkForOverlapBetweenPeriods","isOverlapping","exists","range1","range2","_findIndicesOfOverlap","findIndicesOfOverlappingRangesInPeriods","firstIndex","secondIndex","firstError","createError","path","concat","message","i18next","t","timeFormat","time","secondError","ValidationError","isFromAndToSame","isSame","getScheduleValidationSchema","object","shape","wdays","of","string","required","parent","isTimeBehind","ensureSlotsCantOverlap","getUserTimeZone","_window$globalProps","window","globalProps","user","timeZone","getTimeZoneAndTime","humanReadableTimezone","ianaTimezoneToHumanReadable","tz","timeA","timeB","isBefore","sortPeriodsByKey","_ref$order","order","slice","sort","periodA","periodB","isPeriodBehind","response","slotsSortedByStartTime","_iterator","_createForOfIteratorHelper","entries","_step","n","done","_step$value","_slicedToArray","index","seg1","seg2","err","f","findIndexBy","findIndex","slot","DisplayAvailability","withT","React","createElement","className","map","day","_sortPeriodsByKey","Typography","joinHyphenCase","style","weight","isPresent","period","id","lineHeight","component","buildSlotIntervals","bookedSlots","slotType","_ref$selectedValue","selectedValue","selectedOption","label","uniqBookedSlots","uniq","pluck","slotsAvailableForBooking","difference","slots","toLabelAndValue","sortSlots","_toConsumableArray","a","b","slotsSelectComponentDefaultValue","padZeroes","str","customFilter","option","searchTerm","isNotPresent","doesNumberMatches","replace","startsWith","replaceAll","doesAmPmMatches","toUpperCase","roundToNearestHour","minutes","minute","generateNewPeriod","wday","lastEndTime","newStartTime","newEndTime","addDefaultPeriod","ScheduleContext","createContext","allowAddPeriod","ScheduleRow","values","setFieldValue","wdayIndex","_useTranslation","useTranslation","handleAddRow","arrayHelpers","handleDeleteRow","isLastRowDeleted","remove","_useContext","useContext","FieldArray","name","render","_values$wdays$wdayInd","_values$wdays$wdayInd2","Fragment","Select","isClearable","isSearchable","components","filterOption","placeholder","styles","options","onChange","Button","icon","Delete","onClick","ErrorMessage","_typeof","available","Plus","tooltipProps","content","position","hideAfter","Form","_values$wdays$index","handleCopy","_useState","useState","_useState2","deletedPeriods","setDeletedPeriods","_useState3","_useState4","wdaysToCopy","setWdaysToCopy","restoreDeletedPeriods","uncheckCheckbox","_values$wdays$index$p","filter","item","identity","checkCheckbox","_deletedPeriods$","handleCheckbox","handleCopyChange","target","checked","append","without","classnames","Switch","Dropdown","closeOnSelect","buttonStyle","Copy","buttonProps","dropdownProps","onClose","copyDay","stopPropagation","Label","Checkbox","disabled","size","Fields","handleValuesChanged","scheduleRef","_useFormikContext","useFormikContext","resetForm","errors","dirty","useEffect","useImperativeHandle","find","Header","isCreating","isEditable","isEditing","setIsEditing","submitForm","isSubmitting","timeZoneAndTime","setTimeZoneAndTime","_Profile$usePaneState","Profile","usePaneState","_Profile$usePaneState2","_","setIsProfilePaneOpen","handleReset","setInterval","clearInterval","Tooltip","MoreDropdown","dropdownButtonProps","menuItems","loading","Schedule","forwardRef","_ref$handleSubmit","handleSubmit","noop","_ref$isEditing","_ref$showHeader","showHeader","_ref$handleValuesChan","_ref$allowAddPeriod","_ref$isEditable","_ref$isCreating","newPeriods","pick","forEach","dayIndex","indexOf","assoc","getInitialFormValues","_periods$wday","Formik","enableReinitialize","initialValues","validationSchema","onSubmit","FormikForm","Provider","displayName"],"mappings":"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"}