@bigbinary/neeto-rules-frontend 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/app/javascript/src/translations/en.json +2 -1
- package/dist/NeetoRules.js +9837 -0
- package/dist/NeetoRules.js.map +1 -0
- package/dist/NeetoRulesForm.js +5201 -0
- package/dist/NeetoRulesForm.js.map +1 -0
- package/dist/RulePreview.js +483 -0
- package/dist/RulePreview.js.map +1 -0
- package/dist/{index.cjs.js → cjs/NeetoRules.js} +126 -6019
- package/dist/cjs/NeetoRules.js.map +1 -0
- package/dist/cjs/NeetoRulesForm.js +5255 -0
- package/dist/cjs/NeetoRulesForm.js.map +1 -0
- package/dist/cjs/RulePreview.js +495 -0
- package/dist/cjs/RulePreview.js.map +1 -0
- package/dist/cjs/constants.js +10 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/hooks.js +12 -0
- package/dist/cjs/hooks.js.map +1 -0
- package/dist/cjs/index.js +85 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/constants-12c6ac46.js +5 -0
- package/dist/constants-12c6ac46.js.map +1 -0
- package/dist/constants-2f1113f8.js +8 -0
- package/dist/constants-2f1113f8.js.map +1 -0
- package/dist/constants-67118957.js +55 -0
- package/dist/constants-67118957.js.map +1 -0
- package/dist/constants-7347bfc4.js +48 -0
- package/dist/constants-7347bfc4.js.map +1 -0
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -0
- package/dist/hooks.js +4 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.js +72 -15694
- package/dist/index.js.map +1 -1
- package/dist/slicedToArray-2af6bc03.js +98 -0
- package/dist/slicedToArray-2af6bc03.js.map +1 -0
- package/dist/slicedToArray-cc928132.js +106 -0
- package/dist/slicedToArray-cc928132.js.map +1 -0
- package/dist/toConsumableArray-1215bc07.js +53 -0
- package/dist/toConsumableArray-1215bc07.js.map +1 -0
- package/dist/toConsumableArray-9f1f441a.js +58 -0
- package/dist/toConsumableArray-9f1f441a.js.map +1 -0
- package/dist/useCustomDataStore-51ceac06.js +13 -0
- package/dist/useCustomDataStore-51ceac06.js.map +1 -0
- package/dist/useCustomDataStore-c57f5581.js +15 -0
- package/dist/useCustomDataStore-c57f5581.js.map +1 -0
- package/dist/useUtilityStore-e4b36ba2.js +27 -0
- package/dist/useUtilityStore-e4b36ba2.js.map +1 -0
- package/dist/useUtilityStore-ee4f96f8.js +25 -0
- package/dist/useUtilityStore-ee4f96f8.js.map +1 -0
- package/package.json +23 -11
- package/dist/index.cjs.js.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../app/javascript/src/common/constants.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../app/javascript/src/apis/automation_rules.js","../app/javascript/src/hooks/reactQuery/useAutomationRulesApi.js","../app/javascript/src/components/NeetoRules/constants.js","../app/javascript/src/utils.js","../app/javascript/src/components/NeetoRules/Header.jsx","../node_modules/redux/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/redux/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/redux/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/redux/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/redux/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/react-redux/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/react-redux/node_modules/use-sync-external-store/shim/index.js","../node_modules/react-redux/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/utils/bindActionCreators.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/invalidArgFactory.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/components/connect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/index.js","../node_modules/use-memo-one/dist/use-memo-one.esm.js","../node_modules/css-box-model/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/css-box-model/dist/css-box-model.esm.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/raf-schd/dist/raf-schd.esm.js","../node_modules/@hello-pangea/dnd/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@hello-pangea/dnd/dist/dnd.esm.js","../app/javascript/src/components/NeetoRules/RulesReorder/utils.js","../app/javascript/src/components/NeetoRules/RulesReorder/DraggableItem.jsx","../app/javascript/src/components/NeetoRules/RulesReorder/index.jsx","../app/javascript/src/components/stores/useUtilityStore.js","../app/javascript/src/components/NeetoRules/RulesTable/constants.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../app/javascript/src/components/NeetoRules/RulesTable/DisableMessage.jsx","../app/javascript/src/components/NeetoRules/RulesTable/utils.jsx","../app/javascript/src/components/NeetoRules/RulesTable/index.jsx","../app/javascript/src/components/NeetoRules/index.jsx","../app/javascript/src/components/NeetoRulesForm/stores/useCustomDataStore.js","../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../app/javascript/src/components/Common/OptionsWrapper.jsx","../app/javascript/src/hooks/useOnButtonPressed.js","../app/javascript/src/components/Common/constants.js","../app/javascript/src/components/Common/PaneFooterBlock.jsx","../app/javascript/src/components/Common/Fields/LongTextField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/InputField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/KeyValuePairsField/constants.js","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/KeyValuePairsField/utils.js","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/utils.js","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/KeyValuePairsField/index.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/SelectTemplateField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/ApiFields.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/CustomAction.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/DateField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/constants.js","../app/javascript/src/components/NeetoRulesForm/Element/Actions/helper.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/DropdownField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/EditorAction.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/EmailIdFields.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/EmailFields.jsx","../app/javascript/src/hooks/useCloseInputField.js","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/Input.jsx","../app/javascript/src/hooks/useOnClickOutside.js","../app/javascript/src/constants/keyboardShortcuts.js","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/InlineInput.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/ListField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/MultiSelect.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/NoteField.jsx","../node_modules/@babel/runtime/helpers/esm/toArray.js","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/MultiPhoneNumberInput/utils.js","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/MultiPhoneNumberInput/constants.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/MultiPhoneNumberInput/index.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/PhoneNumberField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/Fields/SmsFields.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionSubItem/index.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Conditions/constants.js","../app/javascript/src/components/NeetoRulesForm/utils/validate.js","../app/javascript/src/components/NeetoRulesForm/constants.js","../app/javascript/src/components/NeetoRulesForm/Element/Actions/ActionItem.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Card.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Actions/index.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Conditions/helpers.js","../app/javascript/src/components/NeetoRulesForm/Element/Conditions/Fields/DropdownField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Conditions/Fields/Dropdown.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Conditions/Fields/InputField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Conditions/Fields/MultiSelect.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Conditions/Fields/MultiSelectCreate.jsx","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/regenerator/index.js","../app/javascript/src/components/NeetoRulesForm/Element/Conditions/Fields/DateField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Conditions/ValueField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Conditions/ConditionItem.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Conditions/LogicOperator.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Conditions/index.jsx","../app/javascript/src/components/NeetoRulesForm/Element/EventConditions/constants.js","../app/javascript/src/components/NeetoRulesForm/Element/EventConditions/helpers.js","../app/javascript/src/components/NeetoRulesForm/Element/EventConditions/Performer.jsx","../app/javascript/src/components/NeetoRulesForm/Element/EventConditions/Events.jsx","../app/javascript/src/components/NeetoRulesForm/Element/EventConditions/index.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Events/helpers.js","../app/javascript/src/components/NeetoRulesForm/Element/Events/EventItem.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Events/Performer.jsx","../app/javascript/src/components/NeetoRulesForm/Element/Events/index.jsx","../app/javascript/src/hooks/useDebouncedUpdate.js","../app/javascript/src/components/NeetoRulesForm/Element/InputField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/MultiSelectField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/RadioField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/SelectField.jsx","../app/javascript/src/components/NeetoRulesForm/Element/TextareaField.jsx","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../app/javascript/src/components/NeetoRulesForm/helpers.js","../app/javascript/src/components/NeetoRulesForm/Status.jsx","../app/javascript/src/components/Common/helpers.js","../app/javascript/src/components/Common/ScrollToErrorField.js","../app/javascript/src/components/NeetoRulesForm/Form.jsx","../app/javascript/src/components/NeetoRulesForm/index.jsx","../app/javascript/src/components/RulePreview/Card.jsx","../app/javascript/src/components/RulePreview/constants.js","../app/javascript/src/components/RulePreview/MultiSelectValues.jsx","../app/javascript/src/components/RulePreview/utils.js","../app/javascript/src/components/RulePreview/ActionsDetail.jsx","../app/javascript/src/components/RulePreview/ConditionsDetail.jsx","../app/javascript/src/components/RulePreview/EventsDetail.jsx","../app/javascript/src/components/RulePreview/index.jsx"],"sourcesContent":["export const AUTOMATION_RULES = \"automation-rules\";\n\nexport const STALE_TIME = 3_200_000;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","import axios from \"axios\";\n\nconst fetch = ({ url, ...params }) => axios.get(url, { params });\n\nconst update = ({ url, id, payload }) => axios.patch(`${url}/${id}`, payload);\n\nconst clone = ({ url, id }) => axios.post(`${url}/${id}/clone`);\n\nconst destroy = ({ url, id }) => axios.delete(`${url}/${id}`);\n\nconst reorder = ({ url, payload }) => axios.patch(`${url}/reorder`, payload);\n\nconst automationRulesApi = { fetch, update, clone, destroy, reorder };\n\nexport default automationRulesApi;\n","import { keepPreviousData, useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport automationRulesApi from \"apis/automation_rules\";\nimport { AUTOMATION_RULES, STALE_TIME } from \"common/constants\";\n\nconst useFetchAutomationRules = (params, options = {}) =>\n useQuery({\n queryKey: [AUTOMATION_RULES, params.url, params],\n queryFn: () => automationRulesApi.fetch(params),\n staleTime: STALE_TIME,\n select: response => response.data || response,\n placeholderData: keepPreviousData,\n ...options,\n });\n\nconst useUpdateAutomationRule = url =>\n useMutationWithInvalidation(automationRulesApi.update, {\n keysToInvalidate: [[AUTOMATION_RULES, url]],\n });\n\nconst useCloneAutomationRule = url =>\n useMutationWithInvalidation(automationRulesApi.clone, {\n keysToInvalidate: [[AUTOMATION_RULES, url]],\n });\n\nconst useDeleteAutomationRule = url =>\n useMutationWithInvalidation(automationRulesApi.destroy, {\n keysToInvalidate: [[AUTOMATION_RULES, url]],\n });\n\nconst useReorderAutomationRules = url =>\n useMutationWithInvalidation(automationRulesApi.reorder, {\n keysToInvalidate: [[AUTOMATION_RULES, url]],\n });\nexport {\n useFetchAutomationRules,\n useUpdateAutomationRule,\n useCloneAutomationRule,\n useDeleteAutomationRule,\n useReorderAutomationRules,\n};\n","export const STATUS_KEYS = { ENABLED: \"enabled\", DISABLED: \"disabled\" };\n\nexport const DEFAULT_INIT_PAGE = 1;\n\nexport const INITIAL_RULES_DATA = { rules: [], totalCount: 0 };\n","export const createRoutes = basePath => ({\n index: basePath,\n new: `${basePath}/new`,\n edit: `${basePath}/:ruleId/edit`,\n});\n","import { memo } from \"react\";\n\nimport { isNotEmpty } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport NeetoHeader from \"neetomolecules/Header\";\nimport HelpPopover from \"neetomolecules/HelpPopover\";\nimport { Button } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { createRoutes } from \"utils\";\n\nconst Header = ({\n breadcrumbs,\n automationRulesPath,\n helpPopoverProps = {},\n setIsReorderPaneOpen,\n hasUnfilteredRules,\n allowReordering,\n headerProps,\n}) => {\n const { searchTerm = \"\" } = useQueryParams();\n\n const { t } = useTranslation();\n\n return (\n <NeetoHeader\n {...{ breadcrumbs }}\n actionBlock={\n <>\n {hasUnfilteredRules && allowReordering && (\n <Button\n disabled={isNotEmpty(searchTerm)}\n label={t(\"neetoRules.common.reorder\")}\n style=\"secondary\"\n onClick={() => setIsReorderPaneOpen(true)}\n />\n )}\n <Button\n className=\"hover:neeto-ui-text-white hover:no-underline\"\n data-cy=\"settings-automation-new-rule-button\"\n data-test-id=\"settings-automation-new-rule-button\"\n iconPosition=\"right\"\n label={t(\"neetoRules.button.addNew\")}\n style=\"primary\"\n to={createRoutes(automationRulesPath).new}\n />\n </>\n }\n searchProps={\n hasUnfilteredRules && {\n placeholder: t(\"neetoRules.placeholders.searchRules\"),\n }\n }\n title={\n <span className=\"flex\">\n {t(\"neetoRules.common.title\")}\n <HelpPopover\n className=\"ml-2 self-center\"\n description={t(\"neetoRules.helpText.description\")}\n title={t(\"neetoRules.common.title\")}\n {...helpPopoverProps}\n />\n </span>\n }\n {...headerProps}\n />\n );\n};\nexport default memo(Header);\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nlet batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport const setBatch = newBatch => batch = newBatch; // Supply a getter just to skip dealing with ESM bindings\n\nexport const getBatch = () => batch;","import * as React from 'react';\nconst ContextKey = Symbol.for(`react-redux-context`);\nconst gT = typeof globalThis !== \"undefined\" ? globalThis :\n/* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n{};\n\nfunction getContext() {\n var _gT$ContextKey;\n\n if (!React.createContext) return {};\n const contextMap = (_gT$ContextKey = gT[ContextKey]) != null ? _gT$ContextKey : gT[ContextKey] = new Map();\n let realContext = contextMap.get(React.createContext);\n\n if (!realContext) {\n realContext = React.createContext(null);\n\n if (process.env.NODE_ENV !== 'production') {\n realContext.displayName = 'ReactRedux';\n }\n\n contextMap.set(React.createContext, realContext);\n }\n\n return realContext;\n}\n\nexport const ReactReduxContext = /*#__PURE__*/getContext();\nexport default ReactReduxContext;","export const notInitialized = () => {\n throw new Error('uSES not initialized!');\n};","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {\n areStatesEqual,\n areOwnPropsEqual,\n areStatePropsEqual\n}) {\n let hasRunAtLeastOnce = false;\n let state;\n let ownProps;\n let stateProps;\n let dispatchProps;\n let mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n const nextStateProps = mapStateToProps(state, ownProps);\n const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n const stateChanged = !areStatesEqual(nextState, state, nextOwnProps, ownProps);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n}\n// TODO: Add more comments\n// The selector returned by selectorFactory will memoize its results,\n// allowing connect's shouldComponentUpdate to return false if final\n// props have not changed.\nexport default function finalPropsSelectorFactory(dispatch, _ref) {\n let {\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps\n } = _ref,\n options = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const mapStateToProps = initMapStateToProps(dispatch, options);\n const mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n const mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps);\n }\n\n return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","export default function bindActionCreators(actionCreators, dispatch) {\n const boundActionCreators = {};\n\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = (...args) => dispatch(actionCreator(...args));\n }\n }\n\n return boundActionCreators;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant( // * Note:\n// It seems that the dispatch argument\n// could be a dispatch function in some cases (ex: whenMapDispatchToPropsIsMissing)\n// and a state object in some others (ex: whenMapStateToPropsIsMissing)\n// eslint-disable-next-line no-unused-vars\ngetConstant) {\n return function initConstantSelector(dispatch) {\n const constant = getConstant(dispatch);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n// TODO Can this get pulled out so that we can subscribe directly to the store if we don't need ownProps?\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, {\n displayName\n }) {\n const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch, undefined);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n let props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","export function createInvalidArgFactory(arg, name) {\n return (dispatch, options) => {\n throw new Error(`Invalid value of type ${typeof arg} for ${name} argument when connecting component ${options.wrappedComponentName}.`);\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nimport { createInvalidArgFactory } from './invalidArgFactory';\nexport function mapDispatchToPropsFactory(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(dispatch => // @ts-ignore\n bindActionCreators(mapDispatchToProps, dispatch)) : !mapDispatchToProps ? wrapMapToPropsConstant(dispatch => ({\n dispatch\n })) : typeof mapDispatchToProps === 'function' ? // @ts-ignore\n wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : createInvalidArgFactory(mapDispatchToProps, 'mapDispatchToProps');\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nimport { createInvalidArgFactory } from './invalidArgFactory';\nexport function mapStateToPropsFactory(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(() => ({})) : typeof mapStateToProps === 'function' ? // @ts-ignore\n wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : createInvalidArgFactory(mapStateToProps, 'mapStateToProps');\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nimport { createInvalidArgFactory } from './invalidArgFactory';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n // @ts-ignore\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, {\n displayName,\n areMergedPropsEqual\n }) {\n let hasRunOnce = false;\n let mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function mergePropsFactory(mergeProps) {\n return !mergeProps ? () => defaultMergeProps : typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : createInvalidArgFactory(mergeProps, 'mergeProps');\n}","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n const batch = getBatch();\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n\n notify() {\n batch(() => {\n let listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n\n get() {\n let listeners = [];\n let listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n\n subscribe(callback) {\n let isSubscribed = true;\n let listener = last = {\n callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n\n };\n}\n\nconst nullListeners = {\n notify() {},\n\n get: () => []\n};\nexport function createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners; // Reasons to keep the subscription active\n\n let subscriptionsAmount = 0; // Is this specific subscription subscribed (or only nested ones?)\n\n let selfSubscribed = false;\n\n function addNestedSub(listener) {\n trySubscribe();\n const cleanupListener = listeners.subscribe(listener); // cleanup nested sub\n\n let removed = false;\n return () => {\n if (!removed) {\n removed = true;\n cleanupListener();\n tryUnsubscribe();\n }\n };\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return selfSubscribed;\n }\n\n function trySubscribe() {\n subscriptionsAmount++;\n\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n subscriptionsAmount--;\n\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true;\n trySubscribe();\n }\n }\n\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false;\n tryUnsubscribe();\n }\n }\n\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners\n };\n return subscription;\n}","import * as React from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n// Matches logic in React's `shared/ExecutionEnvironment` file\n\nexport const canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexport const useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"reactReduxForwardedRef\"];\n\n/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport hoistStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport defaultSelectorFactory from '../connect/selectorFactory';\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps';\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps';\nimport { mergePropsFactory } from '../connect/mergeProps';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport shallowEqual from '../utils/shallowEqual';\nimport warning from '../utils/warning';\nimport { ReactReduxContext } from './Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStore = notInitialized;\nexport const initializeConnect = fn => {\n useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\nconst EMPTY_ARRAY = [null, 0];\nconst NO_SUBSCRIPTION_ARRAY = [null, null]; // Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\n\nconst stringifyComponent = Comp => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n// and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n} // Effect callback, extracted: assign the latest props values to refs for later usage\n\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, // actualChildProps: unknown,\nchildPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n} // Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\n\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, // forceComponentUpdateDispatch: React.Dispatch<any>,\nadditionalSubscribeListener) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return () => {}; // Capture values for checking if and when this component unmounts\n\n let didUnsubscribe = false;\n let lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n } // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n\n\n const latestStoreState = store.getState();\n let newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // TODO This is hacky and not how `uSES` is meant to be used\n // Trigger the React `useSyncExternalStore` subscriber\n\n additionalSubscribeListener();\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n} // Reducer initial state creation for our update reducer\n\n\nconst initStateUpdates = () => EMPTY_ARRAY;\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\r\n * Infers the type of props that a connector will inject into a component.\r\n */\n\n\nlet hasWarnedAboutDeprecatedPureOption = false;\n/**\r\n * Connects a React component to a Redux store.\r\n *\r\n * - Without arguments, just wraps the component, without changing the behavior / props\r\n *\r\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\r\n * is to override ownProps (as stated in the docs), so what remains is everything that's\r\n * not a state or dispatch prop\r\n *\r\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\r\n * should be valid component props, because it depends on mergeProps implementation.\r\n * As such, it is the user's responsibility to extend ownProps interface from state or\r\n * dispatch props or both when applicable\r\n *\r\n * @param mapStateToProps A function that extracts values from state\r\n * @param mapDispatchToProps Setup for dispatching actions\r\n * @param mergeProps Optional callback to merge state and dispatch props together\r\n * @param options Options for configuring the connection\r\n *\r\n */\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n }\n }\n\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n const wrapWithConnect = WrappedComponent => {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(`You must pass a component to the function returned by connect. Instead received ${stringifyComponent(WrappedComponent)}`);\n }\n\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n // @ts-ignore\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n const {\n reactReduxForwardedRef\n } = props,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]);\n const ContextToUse = React.useMemo(() => {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && // @ts-ignore\n isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n const contextValue = React.useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(`Could not find \"store\" in the context of ` + `\"${displayName}\". Either wrap the root component in a <Provider>, ` + `or pass a custom React context provider to <Provider> and the corresponding ` + `React context consumer to ${displayName} in connect options.`);\n } // Based on the previous check, one of these must be true\n\n\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = React.useMemo(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return defaultSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n const subscription = createSubscription(store, didStoreComeFromProps ? undefined : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n const notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]); // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n const overriddenContextValue = React.useMemo(() => {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // Set up refs to coordinate values between the subscription effect and the render logic\n\n const lastChildProps = React.useRef();\n const lastWrapperProps = React.useRef(wrapperProps);\n const childPropsFromStoreUpdate = React.useRef();\n const renderIsScheduled = React.useRef(false);\n const isProcessingDispatch = React.useRef(false);\n const isMounted = React.useRef(false);\n const latestSubscriptionCallbackError = React.useRef();\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n };\n\n return selector;\n }, [store, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n const subscribeForReact = React.useMemo(() => {\n const subscribe = reactListener => {\n if (!subscription) {\n return () => {};\n }\n\n return subscribeUpdates(shouldHandleStateChanges, store, subscription, // @ts-ignore\n childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener);\n };\n\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs]);\n let actualChildProps;\n\n try {\n actualChildProps = useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector);\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`;\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = undefined;\n childPropsFromStoreUpdate.current = undefined;\n lastChildProps.current = actualChildProps;\n }); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n const renderedWrappedComponent = React.useMemo(() => {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }))\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n const renderedChild = React.useMemo(() => {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n\n const _Connect = React.memo(ConnectFunction);\n\n // Add a hacky cast to get the right output type\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n // @ts-ignore\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n\n return wrapWithConnect;\n}\n\nexport default connect;","import * as React from 'react';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider({\n store,\n context,\n children,\n serverState,\n stabilityCheck = 'once',\n noopCheck = 'once'\n}) {\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined,\n stabilityCheck,\n noopCheck\n };\n }, [store, serverState, stabilityCheck, noopCheck]);\n const previousState = React.useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const {\n subscription\n } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = undefined;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext; // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\n\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nexport default Provider;","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","import { useState, useRef, useEffect } from 'react';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction useMemoOne(getResult, inputs) {\n var initial = useState(function () {\n return {\n inputs: inputs,\n result: getResult()\n };\n })[0];\n var isFirstRun = useRef(true);\n var committed = useRef(initial);\n var useCache = isFirstRun.current || Boolean(inputs && committed.current.inputs && areInputsEqual(inputs, committed.current.inputs));\n var cache = useCache ? committed.current : {\n inputs: inputs,\n result: getResult()\n };\n useEffect(function () {\n isFirstRun.current = false;\n committed.current = cache;\n }, [cache]);\n return cache.result;\n}\nfunction useCallbackOne(callback, inputs) {\n return useMemoOne(function () {\n return callback;\n }, inputs);\n}\nvar useMemo = useMemoOne;\nvar useCallback = useCallbackOne;\n\nexport { useCallback, useCallbackOne, useMemo, useMemoOne };\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };\n","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var cache = null;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n return cache.lastResult;\n }\n var lastResult = resultFn.apply(this, newArgs);\n cache = {\n lastResult: lastResult,\n lastArgs: newArgs,\n lastThis: this,\n };\n return lastResult;\n }\n memoized.clear = function clear() {\n cache = null;\n };\n return memoized;\n}\n\nexport { memoizeOne as default };\n","var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import React, { useLayoutEffect as useLayoutEffect$1, useEffect, useRef, useState, useContext } from 'react';\nimport ReactDOM, { flushSync } from 'react-dom';\nimport { createStore as createStore$1, applyMiddleware, compose, bindActionCreators } from 'redux';\nimport { Provider, connect } from 'react-redux';\nimport { useMemo, useCallback } from 'use-memo-one';\nimport { getRect, expand, offset, withScroll, calculateBox, getBox, createBox } from 'css-box-model';\nimport memoizeOne from 'memoize-one';\nimport rafSchd from 'raf-schd';\nimport _extends from '@babel/runtime/helpers/esm/extends';\n\nconst isProduction$1 = process.env.NODE_ENV === 'production';\nconst spacesAndTabs = /[ \\t]{2,}/g;\nconst lineStartWithSpaces = /^[ \\t]*/gm;\nconst clean$2 = value => value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();\nconst getDevMessage = message => clean$2(`\n %c@hello-pangea/dnd\n\n %c${clean$2(message)}\n\n %c👷 This is a development only message. It will be removed in production builds.\n`);\nconst getFormattedMessage = message => [getDevMessage(message), 'color: #00C584; font-size: 1.2em; font-weight: bold;', 'line-height: 1.5', 'color: #723874;'];\nconst isDisabledFlag = '__@hello-pangea/dnd-disable-dev-warnings';\nfunction log(type, message) {\n if (isProduction$1) {\n return;\n }\n if (typeof window !== 'undefined' && window[isDisabledFlag]) {\n return;\n }\n console[type](...getFormattedMessage(message));\n}\nconst warning = log.bind(null, 'warn');\nconst error = log.bind(null, 'error');\n\nfunction noop$2() {}\n\nfunction getOptions(shared, fromBinding) {\n return {\n ...shared,\n ...fromBinding\n };\n}\nfunction bindEvents(el, bindings, sharedOptions) {\n const unbindings = bindings.map(binding => {\n const options = getOptions(sharedOptions, binding.options);\n el.addEventListener(binding.eventName, binding.fn, options);\n return function unbind() {\n el.removeEventListener(binding.eventName, binding.fn, options);\n };\n });\n return function unbindAll() {\n unbindings.forEach(unbind => {\n unbind();\n });\n };\n}\n\nconst isProduction = process.env.NODE_ENV === 'production';\nconst prefix$1 = 'Invariant failed';\nclass RbdInvariant extends Error {}\nRbdInvariant.prototype.toString = function toString() {\n return this.message;\n};\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new RbdInvariant(prefix$1);\n } else {\n throw new RbdInvariant(`${prefix$1}: ${message || ''}`);\n }\n}\n\nclass ErrorBoundary extends React.Component {\n constructor() {\n super(...arguments);\n this.callbacks = null;\n this.unbind = noop$2;\n this.onWindowError = event => {\n const callbacks = this.getCallbacks();\n if (callbacks.isDragging()) {\n callbacks.tryAbort();\n process.env.NODE_ENV !== \"production\" ? warning(`\n An error was caught by our window 'error' event listener while a drag was occurring.\n The active drag has been aborted.\n `) : void 0;\n }\n const err = event.error;\n if (err instanceof RbdInvariant) {\n event.preventDefault();\n if (process.env.NODE_ENV !== 'production') {\n error(err.message);\n }\n }\n };\n this.getCallbacks = () => {\n if (!this.callbacks) {\n throw new Error('Unable to find AppCallbacks in <ErrorBoundary/>');\n }\n return this.callbacks;\n };\n this.setCallbacks = callbacks => {\n this.callbacks = callbacks;\n };\n }\n componentDidMount() {\n this.unbind = bindEvents(window, [{\n eventName: 'error',\n fn: this.onWindowError\n }]);\n }\n componentDidCatch(err) {\n if (err instanceof RbdInvariant) {\n if (process.env.NODE_ENV !== 'production') {\n error(err.message);\n }\n this.setState({});\n return;\n }\n throw err;\n }\n componentWillUnmount() {\n this.unbind();\n }\n render() {\n return this.props.children(this.setCallbacks);\n }\n}\n\nconst dragHandleUsageInstructions = `\n Press space bar to start a drag.\n When dragging you can use the arrow keys to move the item around and escape to cancel.\n Some screen readers may require you to be in focus mode or to use your pass through key\n`;\nconst position = index => index + 1;\nconst onDragStart = start => `\n You have lifted an item in position ${position(start.source.index)}\n`;\nconst withLocation = (source, destination) => {\n const isInHomeList = source.droppableId === destination.droppableId;\n const startPosition = position(source.index);\n const endPosition = position(destination.index);\n if (isInHomeList) {\n return `\n You have moved the item from position ${startPosition}\n to position ${endPosition}\n `;\n }\n return `\n You have moved the item from position ${startPosition}\n in list ${source.droppableId}\n to list ${destination.droppableId}\n in position ${endPosition}\n `;\n};\nconst withCombine = (id, source, combine) => {\n const inHomeList = source.droppableId === combine.droppableId;\n if (inHomeList) {\n return `\n The item ${id}\n has been combined with ${combine.draggableId}`;\n }\n return `\n The item ${id}\n in list ${source.droppableId}\n has been combined with ${combine.draggableId}\n in list ${combine.droppableId}\n `;\n};\nconst onDragUpdate = update => {\n const location = update.destination;\n if (location) {\n return withLocation(update.source, location);\n }\n const combine = update.combine;\n if (combine) {\n return withCombine(update.draggableId, update.source, combine);\n }\n return 'You are over an area that cannot be dropped on';\n};\nconst returnedToStart = source => `\n The item has returned to its starting position\n of ${position(source.index)}\n`;\nconst onDragEnd = result => {\n if (result.reason === 'CANCEL') {\n return `\n Movement cancelled.\n ${returnedToStart(result.source)}\n `;\n }\n const location = result.destination;\n const combine = result.combine;\n if (location) {\n return `\n You have dropped the item.\n ${withLocation(result.source, location)}\n `;\n }\n if (combine) {\n return `\n You have dropped the item.\n ${withCombine(result.draggableId, result.source, combine)}\n `;\n }\n return `\n The item has been dropped while not over a drop area.\n ${returnedToStart(result.source)}\n `;\n};\nconst preset = {\n dragHandleUsageInstructions,\n onDragStart,\n onDragUpdate,\n onDragEnd\n};\nvar preset$1 = preset;\n\nconst origin = {\n x: 0,\n y: 0\n};\nconst add = (point1, point2) => ({\n x: point1.x + point2.x,\n y: point1.y + point2.y\n});\nconst subtract = (point1, point2) => ({\n x: point1.x - point2.x,\n y: point1.y - point2.y\n});\nconst isEqual$1 = (point1, point2) => point1.x === point2.x && point1.y === point2.y;\nconst negate = point => ({\n x: point.x !== 0 ? -point.x : 0,\n y: point.y !== 0 ? -point.y : 0\n});\nconst patch = function (line, value, otherValue) {\n if (otherValue === void 0) {\n otherValue = 0;\n }\n if (line === 'x') {\n return {\n x: value,\n y: otherValue\n };\n }\n return {\n x: otherValue,\n y: value\n };\n};\nconst distance = (point1, point2) => Math.sqrt((point2.x - point1.x) ** 2 + (point2.y - point1.y) ** 2);\nconst closest$1 = (target, points) => Math.min(...points.map(point => distance(target, point)));\nconst apply = fn => point => ({\n x: fn(point.x),\n y: fn(point.y)\n});\n\nvar executeClip = ((frame, subject) => {\n const result = getRect({\n top: Math.max(subject.top, frame.top),\n right: Math.min(subject.right, frame.right),\n bottom: Math.min(subject.bottom, frame.bottom),\n left: Math.max(subject.left, frame.left)\n });\n if (result.width <= 0 || result.height <= 0) {\n return null;\n }\n return result;\n});\n\nconst offsetByPosition = (spacing, point) => ({\n top: spacing.top + point.y,\n left: spacing.left + point.x,\n bottom: spacing.bottom + point.y,\n right: spacing.right + point.x\n});\nconst getCorners = spacing => [{\n x: spacing.left,\n y: spacing.top\n}, {\n x: spacing.right,\n y: spacing.top\n}, {\n x: spacing.left,\n y: spacing.bottom\n}, {\n x: spacing.right,\n y: spacing.bottom\n}];\nconst noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n\nconst scroll$1 = (target, frame) => {\n if (!frame) {\n return target;\n }\n return offsetByPosition(target, frame.scroll.diff.displacement);\n};\nconst increase = (target, axis, withPlaceholder) => {\n if (withPlaceholder && withPlaceholder.increasedBy) {\n return {\n ...target,\n [axis.end]: target[axis.end] + withPlaceholder.increasedBy[axis.line]\n };\n }\n return target;\n};\nconst clip = (target, frame) => {\n if (frame && frame.shouldClipSubject) {\n return executeClip(frame.pageMarginBox, target);\n }\n return getRect(target);\n};\nvar getSubject = (_ref => {\n let {\n page,\n withPlaceholder,\n axis,\n frame\n } = _ref;\n const scrolled = scroll$1(page.marginBox, frame);\n const increased = increase(scrolled, axis, withPlaceholder);\n const clipped = clip(increased, frame);\n return {\n page,\n withPlaceholder,\n active: clipped\n };\n});\n\nvar scrollDroppable = ((droppable, newScroll) => {\n !droppable.frame ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n const scrollable = droppable.frame;\n const scrollDiff = subtract(newScroll, scrollable.scroll.initial);\n const scrollDisplacement = negate(scrollDiff);\n const frame = {\n ...scrollable,\n scroll: {\n initial: scrollable.scroll.initial,\n current: newScroll,\n diff: {\n value: scrollDiff,\n displacement: scrollDisplacement\n },\n max: scrollable.scroll.max\n }\n };\n const subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: droppable.subject.withPlaceholder,\n axis: droppable.axis,\n frame\n });\n const result = {\n ...droppable,\n frame,\n subject\n };\n return result;\n});\n\nconst toDroppableMap = memoizeOne(droppables => droppables.reduce((previous, current) => {\n previous[current.descriptor.id] = current;\n return previous;\n}, {}));\nconst toDraggableMap = memoizeOne(draggables => draggables.reduce((previous, current) => {\n previous[current.descriptor.id] = current;\n return previous;\n}, {}));\nconst toDroppableList = memoizeOne(droppables => Object.values(droppables));\nconst toDraggableList = memoizeOne(draggables => Object.values(draggables));\n\nvar getDraggablesInsideDroppable = memoizeOne((droppableId, draggables) => {\n const result = toDraggableList(draggables).filter(draggable => droppableId === draggable.descriptor.droppableId).sort((a, b) => a.descriptor.index - b.descriptor.index);\n return result;\n});\n\nfunction tryGetDestination(impact) {\n if (impact.at && impact.at.type === 'REORDER') {\n return impact.at.destination;\n }\n return null;\n}\nfunction tryGetCombine(impact) {\n if (impact.at && impact.at.type === 'COMBINE') {\n return impact.at.combine;\n }\n return null;\n}\n\nvar removeDraggableFromList = memoizeOne((remove, list) => list.filter(item => item.descriptor.id !== remove.descriptor.id));\n\nvar moveToNextCombine = (_ref => {\n let {\n isMovingForward,\n draggable,\n destination,\n insideDestination,\n previousImpact\n } = _ref;\n if (!destination.isCombineEnabled) {\n return null;\n }\n const location = tryGetDestination(previousImpact);\n if (!location) {\n return null;\n }\n function getImpact(target) {\n const at = {\n type: 'COMBINE',\n combine: {\n draggableId: target,\n droppableId: destination.descriptor.id\n }\n };\n return {\n ...previousImpact,\n at\n };\n }\n const all = previousImpact.displaced.all;\n const closestId = all.length ? all[0] : null;\n if (isMovingForward) {\n return closestId ? getImpact(closestId) : null;\n }\n const withoutDraggable = removeDraggableFromList(draggable, insideDestination);\n if (!closestId) {\n if (!withoutDraggable.length) {\n return null;\n }\n const last = withoutDraggable[withoutDraggable.length - 1];\n return getImpact(last.descriptor.id);\n }\n const indexOfClosest = withoutDraggable.findIndex(d => d.descriptor.id === closestId);\n !(indexOfClosest !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find displaced item in set') : invariant(false) : void 0;\n const proposedIndex = indexOfClosest - 1;\n if (proposedIndex < 0) {\n return null;\n }\n const before = withoutDraggable[proposedIndex];\n return getImpact(before.descriptor.id);\n});\n\nvar isHomeOf = ((draggable, destination) => draggable.descriptor.droppableId === destination.descriptor.id);\n\nconst noDisplacedBy = {\n point: origin,\n value: 0\n};\nconst emptyGroups = {\n invisible: {},\n visible: {},\n all: []\n};\nconst noImpact = {\n displaced: emptyGroups,\n displacedBy: noDisplacedBy,\n at: null\n};\nvar noImpact$1 = noImpact;\n\nvar isWithin = ((lowerBound, upperBound) => value => lowerBound <= value && value <= upperBound);\n\nvar isPartiallyVisibleThroughFrame = (frame => {\n const isWithinVertical = isWithin(frame.top, frame.bottom);\n const isWithinHorizontal = isWithin(frame.left, frame.right);\n return subject => {\n const isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n if (isContained) {\n return true;\n }\n const isPartiallyVisibleVertically = isWithinVertical(subject.top) || isWithinVertical(subject.bottom);\n const isPartiallyVisibleHorizontally = isWithinHorizontal(subject.left) || isWithinHorizontal(subject.right);\n const isPartiallyContained = isPartiallyVisibleVertically && isPartiallyVisibleHorizontally;\n if (isPartiallyContained) {\n return true;\n }\n const isBiggerVertically = subject.top < frame.top && subject.bottom > frame.bottom;\n const isBiggerHorizontally = subject.left < frame.left && subject.right > frame.right;\n const isTargetBiggerThanFrame = isBiggerVertically && isBiggerHorizontally;\n if (isTargetBiggerThanFrame) {\n return true;\n }\n const isTargetBiggerOnOneAxis = isBiggerVertically && isPartiallyVisibleHorizontally || isBiggerHorizontally && isPartiallyVisibleVertically;\n return isTargetBiggerOnOneAxis;\n };\n});\n\nvar isTotallyVisibleThroughFrame = (frame => {\n const isWithinVertical = isWithin(frame.top, frame.bottom);\n const isWithinHorizontal = isWithin(frame.left, frame.right);\n return subject => {\n const isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n return isContained;\n };\n});\n\nconst vertical = {\n direction: 'vertical',\n line: 'y',\n crossAxisLine: 'x',\n start: 'top',\n end: 'bottom',\n size: 'height',\n crossAxisStart: 'left',\n crossAxisEnd: 'right',\n crossAxisSize: 'width'\n};\nconst horizontal = {\n direction: 'horizontal',\n line: 'x',\n crossAxisLine: 'y',\n start: 'left',\n end: 'right',\n size: 'width',\n crossAxisStart: 'top',\n crossAxisEnd: 'bottom',\n crossAxisSize: 'height'\n};\n\nvar isTotallyVisibleThroughFrameOnAxis = (axis => frame => {\n const isWithinVertical = isWithin(frame.top, frame.bottom);\n const isWithinHorizontal = isWithin(frame.left, frame.right);\n return subject => {\n if (axis === vertical) {\n return isWithinVertical(subject.top) && isWithinVertical(subject.bottom);\n }\n return isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n };\n});\n\nconst getDroppableDisplaced = (target, destination) => {\n const displacement = destination.frame ? destination.frame.scroll.diff.displacement : origin;\n return offsetByPosition(target, displacement);\n};\nconst isVisibleInDroppable = (target, destination, isVisibleThroughFrameFn) => {\n if (!destination.subject.active) {\n return false;\n }\n return isVisibleThroughFrameFn(destination.subject.active)(target);\n};\nconst isVisibleInViewport = (target, viewport, isVisibleThroughFrameFn) => isVisibleThroughFrameFn(viewport)(target);\nconst isVisible$1 = _ref => {\n let {\n target: toBeDisplaced,\n destination,\n viewport,\n withDroppableDisplacement,\n isVisibleThroughFrameFn\n } = _ref;\n const displacedTarget = withDroppableDisplacement ? getDroppableDisplaced(toBeDisplaced, destination) : toBeDisplaced;\n return isVisibleInDroppable(displacedTarget, destination, isVisibleThroughFrameFn) && isVisibleInViewport(displacedTarget, viewport, isVisibleThroughFrameFn);\n};\nconst isPartiallyVisible = args => isVisible$1({\n ...args,\n isVisibleThroughFrameFn: isPartiallyVisibleThroughFrame\n});\nconst isTotallyVisible = args => isVisible$1({\n ...args,\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrame\n});\nconst isTotallyVisibleOnAxis = args => isVisible$1({\n ...args,\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrameOnAxis(args.destination.axis)\n});\n\nconst getShouldAnimate = (id, last, forceShouldAnimate) => {\n if (typeof forceShouldAnimate === 'boolean') {\n return forceShouldAnimate;\n }\n if (!last) {\n return true;\n }\n const {\n invisible,\n visible\n } = last;\n if (invisible[id]) {\n return false;\n }\n const previous = visible[id];\n return previous ? previous.shouldAnimate : true;\n};\nfunction getTarget(draggable, displacedBy) {\n const marginBox = draggable.page.marginBox;\n const expandBy = {\n top: displacedBy.point.y,\n right: 0,\n bottom: 0,\n left: displacedBy.point.x\n };\n return getRect(expand(marginBox, expandBy));\n}\nfunction getDisplacementGroups(_ref) {\n let {\n afterDragging,\n destination,\n displacedBy,\n viewport,\n forceShouldAnimate,\n last\n } = _ref;\n return afterDragging.reduce(function process(groups, draggable) {\n const target = getTarget(draggable, displacedBy);\n const id = draggable.descriptor.id;\n groups.all.push(id);\n const isVisible = isPartiallyVisible({\n target,\n destination,\n viewport,\n withDroppableDisplacement: true\n });\n if (!isVisible) {\n groups.invisible[draggable.descriptor.id] = true;\n return groups;\n }\n const shouldAnimate = getShouldAnimate(id, last, forceShouldAnimate);\n const displacement = {\n draggableId: id,\n shouldAnimate\n };\n groups.visible[id] = displacement;\n return groups;\n }, {\n all: [],\n visible: {},\n invisible: {}\n });\n}\n\nfunction getIndexOfLastItem(draggables, options) {\n if (!draggables.length) {\n return 0;\n }\n const indexOfLastItem = draggables[draggables.length - 1].descriptor.index;\n return options.inHomeList ? indexOfLastItem : indexOfLastItem + 1;\n}\nfunction goAtEnd(_ref) {\n let {\n insideDestination,\n inHomeList,\n displacedBy,\n destination\n } = _ref;\n const newIndex = getIndexOfLastItem(insideDestination, {\n inHomeList\n });\n return {\n displaced: emptyGroups,\n displacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: newIndex\n }\n }\n };\n}\nfunction calculateReorderImpact(_ref2) {\n let {\n draggable,\n insideDestination,\n destination,\n viewport,\n displacedBy,\n last,\n index,\n forceShouldAnimate\n } = _ref2;\n const inHomeList = isHomeOf(draggable, destination);\n if (index == null) {\n return goAtEnd({\n insideDestination,\n inHomeList,\n displacedBy,\n destination\n });\n }\n const match = insideDestination.find(item => item.descriptor.index === index);\n if (!match) {\n return goAtEnd({\n insideDestination,\n inHomeList,\n displacedBy,\n destination\n });\n }\n const withoutDragging = removeDraggableFromList(draggable, insideDestination);\n const sliceFrom = insideDestination.indexOf(match);\n const impacted = withoutDragging.slice(sliceFrom);\n const displaced = getDisplacementGroups({\n afterDragging: impacted,\n destination,\n displacedBy,\n last,\n viewport: viewport.frame,\n forceShouldAnimate\n });\n return {\n displaced,\n displacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index\n }\n }\n };\n}\n\nfunction didStartAfterCritical(draggableId, afterCritical) {\n return Boolean(afterCritical.effected[draggableId]);\n}\n\nvar fromCombine = (_ref => {\n let {\n isMovingForward,\n destination,\n draggables,\n combine,\n afterCritical\n } = _ref;\n if (!destination.isCombineEnabled) {\n return null;\n }\n const combineId = combine.draggableId;\n const combineWith = draggables[combineId];\n const combineWithIndex = combineWith.descriptor.index;\n const didCombineWithStartAfterCritical = didStartAfterCritical(combineId, afterCritical);\n if (didCombineWithStartAfterCritical) {\n if (isMovingForward) {\n return combineWithIndex;\n }\n return combineWithIndex - 1;\n }\n if (isMovingForward) {\n return combineWithIndex + 1;\n }\n return combineWithIndex;\n});\n\nvar fromReorder = (_ref => {\n let {\n isMovingForward,\n isInHomeList,\n insideDestination,\n location\n } = _ref;\n if (!insideDestination.length) {\n return null;\n }\n const currentIndex = location.index;\n const proposedIndex = isMovingForward ? currentIndex + 1 : currentIndex - 1;\n const firstIndex = insideDestination[0].descriptor.index;\n const lastIndex = insideDestination[insideDestination.length - 1].descriptor.index;\n const upperBound = isInHomeList ? lastIndex : lastIndex + 1;\n if (proposedIndex < firstIndex) {\n return null;\n }\n if (proposedIndex > upperBound) {\n return null;\n }\n return proposedIndex;\n});\n\nvar moveToNextIndex = (_ref => {\n let {\n isMovingForward,\n isInHomeList,\n draggable,\n draggables,\n destination,\n insideDestination,\n previousImpact,\n viewport,\n afterCritical\n } = _ref;\n const wasAt = previousImpact.at;\n !wasAt ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot move in direction without previous impact location') : invariant(false) : void 0;\n if (wasAt.type === 'REORDER') {\n const newIndex = fromReorder({\n isMovingForward,\n isInHomeList,\n location: wasAt.destination,\n insideDestination\n });\n if (newIndex == null) {\n return null;\n }\n return calculateReorderImpact({\n draggable,\n insideDestination,\n destination,\n viewport,\n last: previousImpact.displaced,\n displacedBy: previousImpact.displacedBy,\n index: newIndex\n });\n }\n const newIndex = fromCombine({\n isMovingForward,\n destination,\n displaced: previousImpact.displaced,\n draggables,\n combine: wasAt.combine,\n afterCritical\n });\n if (newIndex == null) {\n return null;\n }\n return calculateReorderImpact({\n draggable,\n insideDestination,\n destination,\n viewport,\n last: previousImpact.displaced,\n displacedBy: previousImpact.displacedBy,\n index: newIndex\n });\n});\n\nvar getCombinedItemDisplacement = (_ref => {\n let {\n displaced,\n afterCritical,\n combineWith,\n displacedBy\n } = _ref;\n const isDisplaced = Boolean(displaced.visible[combineWith] || displaced.invisible[combineWith]);\n if (didStartAfterCritical(combineWith, afterCritical)) {\n return isDisplaced ? origin : negate(displacedBy.point);\n }\n return isDisplaced ? displacedBy.point : origin;\n});\n\nvar whenCombining = (_ref => {\n let {\n afterCritical,\n impact,\n draggables\n } = _ref;\n const combine = tryGetCombine(impact);\n !combine ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n const combineWith = combine.draggableId;\n const center = draggables[combineWith].page.borderBox.center;\n const displaceBy = getCombinedItemDisplacement({\n displaced: impact.displaced,\n afterCritical,\n combineWith,\n displacedBy: impact.displacedBy\n });\n return add(center, displaceBy);\n});\n\nconst distanceFromStartToBorderBoxCenter = (axis, box) => box.margin[axis.start] + box.borderBox[axis.size] / 2;\nconst distanceFromEndToBorderBoxCenter = (axis, box) => box.margin[axis.end] + box.borderBox[axis.size] / 2;\nconst getCrossAxisBorderBoxCenter = (axis, target, isMoving) => target[axis.crossAxisStart] + isMoving.margin[axis.crossAxisStart] + isMoving.borderBox[axis.crossAxisSize] / 2;\nconst goAfter = _ref => {\n let {\n axis,\n moveRelativeTo,\n isMoving\n } = _ref;\n return patch(axis.line, moveRelativeTo.marginBox[axis.end] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving));\n};\nconst goBefore = _ref2 => {\n let {\n axis,\n moveRelativeTo,\n isMoving\n } = _ref2;\n return patch(axis.line, moveRelativeTo.marginBox[axis.start] - distanceFromEndToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving));\n};\nconst goIntoStart = _ref3 => {\n let {\n axis,\n moveInto,\n isMoving\n } = _ref3;\n return patch(axis.line, moveInto.contentBox[axis.start] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveInto.contentBox, isMoving));\n};\n\nvar whenReordering = (_ref => {\n let {\n impact,\n draggable,\n draggables,\n droppable,\n afterCritical\n } = _ref;\n const insideDestination = getDraggablesInsideDroppable(droppable.descriptor.id, draggables);\n const draggablePage = draggable.page;\n const axis = droppable.axis;\n if (!insideDestination.length) {\n return goIntoStart({\n axis,\n moveInto: droppable.page,\n isMoving: draggablePage\n });\n }\n const {\n displaced,\n displacedBy\n } = impact;\n const closestAfter = displaced.all[0];\n if (closestAfter) {\n const closest = draggables[closestAfter];\n if (didStartAfterCritical(closestAfter, afterCritical)) {\n return goBefore({\n axis,\n moveRelativeTo: closest.page,\n isMoving: draggablePage\n });\n }\n const withDisplacement = offset(closest.page, displacedBy.point);\n return goBefore({\n axis,\n moveRelativeTo: withDisplacement,\n isMoving: draggablePage\n });\n }\n const last = insideDestination[insideDestination.length - 1];\n if (last.descriptor.id === draggable.descriptor.id) {\n return draggablePage.borderBox.center;\n }\n if (didStartAfterCritical(last.descriptor.id, afterCritical)) {\n const page = offset(last.page, negate(afterCritical.displacedBy.point));\n return goAfter({\n axis,\n moveRelativeTo: page,\n isMoving: draggablePage\n });\n }\n return goAfter({\n axis,\n moveRelativeTo: last.page,\n isMoving: draggablePage\n });\n});\n\nvar withDroppableDisplacement = ((droppable, point) => {\n const frame = droppable.frame;\n if (!frame) {\n return point;\n }\n return add(point, frame.scroll.diff.displacement);\n});\n\nconst getResultWithoutDroppableDisplacement = _ref => {\n let {\n impact,\n draggable,\n droppable,\n draggables,\n afterCritical\n } = _ref;\n const original = draggable.page.borderBox.center;\n const at = impact.at;\n if (!droppable) {\n return original;\n }\n if (!at) {\n return original;\n }\n if (at.type === 'REORDER') {\n return whenReordering({\n impact,\n draggable,\n draggables,\n droppable,\n afterCritical\n });\n }\n return whenCombining({\n impact,\n draggables,\n afterCritical\n });\n};\nvar getPageBorderBoxCenterFromImpact = (args => {\n const withoutDisplacement = getResultWithoutDroppableDisplacement(args);\n const droppable = args.droppable;\n const withDisplacement = droppable ? withDroppableDisplacement(droppable, withoutDisplacement) : withoutDisplacement;\n return withDisplacement;\n});\n\nvar scrollViewport = ((viewport, newScroll) => {\n const diff = subtract(newScroll, viewport.scroll.initial);\n const displacement = negate(diff);\n const frame = getRect({\n top: newScroll.y,\n bottom: newScroll.y + viewport.frame.height,\n left: newScroll.x,\n right: newScroll.x + viewport.frame.width\n });\n const updated = {\n frame,\n scroll: {\n initial: viewport.scroll.initial,\n max: viewport.scroll.max,\n current: newScroll,\n diff: {\n value: diff,\n displacement\n }\n }\n };\n return updated;\n});\n\nfunction getDraggables$1(ids, draggables) {\n return ids.map(id => draggables[id]);\n}\nfunction tryGetVisible(id, groups) {\n for (let i = 0; i < groups.length; i++) {\n const displacement = groups[i].visible[id];\n if (displacement) {\n return displacement;\n }\n }\n return null;\n}\nvar speculativelyIncrease = (_ref => {\n let {\n impact,\n viewport,\n destination,\n draggables,\n maxScrollChange\n } = _ref;\n const scrolledViewport = scrollViewport(viewport, add(viewport.scroll.current, maxScrollChange));\n const scrolledDroppable = destination.frame ? scrollDroppable(destination, add(destination.frame.scroll.current, maxScrollChange)) : destination;\n const last = impact.displaced;\n const withViewportScroll = getDisplacementGroups({\n afterDragging: getDraggables$1(last.all, draggables),\n destination,\n displacedBy: impact.displacedBy,\n viewport: scrolledViewport.frame,\n last,\n forceShouldAnimate: false\n });\n const withDroppableScroll = getDisplacementGroups({\n afterDragging: getDraggables$1(last.all, draggables),\n destination: scrolledDroppable,\n displacedBy: impact.displacedBy,\n viewport: viewport.frame,\n last,\n forceShouldAnimate: false\n });\n const invisible = {};\n const visible = {};\n const groups = [last, withViewportScroll, withDroppableScroll];\n last.all.forEach(id => {\n const displacement = tryGetVisible(id, groups);\n if (displacement) {\n visible[id] = displacement;\n return;\n }\n invisible[id] = true;\n });\n const newImpact = {\n ...impact,\n displaced: {\n all: last.all,\n invisible,\n visible\n }\n };\n return newImpact;\n});\n\nvar withViewportDisplacement = ((viewport, point) => add(viewport.scroll.diff.displacement, point));\n\nvar getClientFromPageBorderBoxCenter = (_ref => {\n let {\n pageBorderBoxCenter,\n draggable,\n viewport\n } = _ref;\n const withoutPageScrollChange = withViewportDisplacement(viewport, pageBorderBoxCenter);\n const offset = subtract(withoutPageScrollChange, draggable.page.borderBox.center);\n return add(draggable.client.borderBox.center, offset);\n});\n\nvar isTotallyVisibleInNewLocation = (_ref => {\n let {\n draggable,\n destination,\n newPageBorderBoxCenter,\n viewport,\n withDroppableDisplacement,\n onlyOnMainAxis = false\n } = _ref;\n const changeNeeded = subtract(newPageBorderBoxCenter, draggable.page.borderBox.center);\n const shifted = offsetByPosition(draggable.page.borderBox, changeNeeded);\n const args = {\n target: shifted,\n destination,\n withDroppableDisplacement,\n viewport\n };\n return onlyOnMainAxis ? isTotallyVisibleOnAxis(args) : isTotallyVisible(args);\n});\n\nvar moveToNextPlace = (_ref => {\n let {\n isMovingForward,\n draggable,\n destination,\n draggables,\n previousImpact,\n viewport,\n previousPageBorderBoxCenter,\n previousClientSelection,\n afterCritical\n } = _ref;\n if (!destination.isEnabled) {\n return null;\n }\n const insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n const isInHomeList = isHomeOf(draggable, destination);\n const impact = moveToNextCombine({\n isMovingForward,\n draggable,\n destination,\n insideDestination,\n previousImpact\n }) || moveToNextIndex({\n isMovingForward,\n isInHomeList,\n draggable,\n draggables,\n destination,\n insideDestination,\n previousImpact,\n viewport,\n afterCritical\n });\n if (!impact) {\n return null;\n }\n const pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact,\n draggable,\n droppable: destination,\n draggables,\n afterCritical\n });\n const isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable,\n destination,\n newPageBorderBoxCenter: pageBorderBoxCenter,\n viewport: viewport.frame,\n withDroppableDisplacement: false,\n onlyOnMainAxis: true\n });\n if (isVisibleInNewLocation) {\n const clientSelection = getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter,\n draggable,\n viewport\n });\n return {\n clientSelection,\n impact,\n scrollJumpRequest: null\n };\n }\n const distance = subtract(pageBorderBoxCenter, previousPageBorderBoxCenter);\n const cautious = speculativelyIncrease({\n impact,\n viewport,\n destination,\n draggables,\n maxScrollChange: distance\n });\n return {\n clientSelection: previousClientSelection,\n impact: cautious,\n scrollJumpRequest: distance\n };\n});\n\nconst getKnownActive = droppable => {\n const rect = droppable.subject.active;\n !rect ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get clipped area from droppable') : invariant(false) : void 0;\n return rect;\n};\nvar getBestCrossAxisDroppable = (_ref => {\n let {\n isMovingForward,\n pageBorderBoxCenter,\n source,\n droppables,\n viewport\n } = _ref;\n const active = source.subject.active;\n if (!active) {\n return null;\n }\n const axis = source.axis;\n const isBetweenSourceClipped = isWithin(active[axis.start], active[axis.end]);\n const candidates = toDroppableList(droppables).filter(droppable => droppable !== source).filter(droppable => droppable.isEnabled).filter(droppable => Boolean(droppable.subject.active)).filter(droppable => isPartiallyVisibleThroughFrame(viewport.frame)(getKnownActive(droppable))).filter(droppable => {\n const activeOfTarget = getKnownActive(droppable);\n if (isMovingForward) {\n return active[axis.crossAxisEnd] < activeOfTarget[axis.crossAxisEnd];\n }\n return activeOfTarget[axis.crossAxisStart] < active[axis.crossAxisStart];\n }).filter(droppable => {\n const activeOfTarget = getKnownActive(droppable);\n const isBetweenDestinationClipped = isWithin(activeOfTarget[axis.start], activeOfTarget[axis.end]);\n return isBetweenSourceClipped(activeOfTarget[axis.start]) || isBetweenSourceClipped(activeOfTarget[axis.end]) || isBetweenDestinationClipped(active[axis.start]) || isBetweenDestinationClipped(active[axis.end]);\n }).sort((a, b) => {\n const first = getKnownActive(a)[axis.crossAxisStart];\n const second = getKnownActive(b)[axis.crossAxisStart];\n if (isMovingForward) {\n return first - second;\n }\n return second - first;\n }).filter((droppable, index, array) => getKnownActive(droppable)[axis.crossAxisStart] === getKnownActive(array[0])[axis.crossAxisStart]);\n if (!candidates.length) {\n return null;\n }\n if (candidates.length === 1) {\n return candidates[0];\n }\n const contains = candidates.filter(droppable => {\n const isWithinDroppable = isWithin(getKnownActive(droppable)[axis.start], getKnownActive(droppable)[axis.end]);\n return isWithinDroppable(pageBorderBoxCenter[axis.line]);\n });\n if (contains.length === 1) {\n return contains[0];\n }\n if (contains.length > 1) {\n return contains.sort((a, b) => getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start])[0];\n }\n return candidates.sort((a, b) => {\n const first = closest$1(pageBorderBoxCenter, getCorners(getKnownActive(a)));\n const second = closest$1(pageBorderBoxCenter, getCorners(getKnownActive(b)));\n if (first !== second) {\n return first - second;\n }\n return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start];\n })[0];\n});\n\nconst getCurrentPageBorderBoxCenter = (draggable, afterCritical) => {\n const original = draggable.page.borderBox.center;\n return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? subtract(original, afterCritical.displacedBy.point) : original;\n};\nconst getCurrentPageBorderBox = (draggable, afterCritical) => {\n const original = draggable.page.borderBox;\n return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? offsetByPosition(original, negate(afterCritical.displacedBy.point)) : original;\n};\n\nvar getClosestDraggable = (_ref => {\n let {\n pageBorderBoxCenter,\n viewport,\n destination,\n insideDestination,\n afterCritical\n } = _ref;\n const sorted = insideDestination.filter(draggable => isTotallyVisible({\n target: getCurrentPageBorderBox(draggable, afterCritical),\n destination,\n viewport: viewport.frame,\n withDroppableDisplacement: true\n })).sort((a, b) => {\n const distanceToA = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(a, afterCritical)));\n const distanceToB = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(b, afterCritical)));\n if (distanceToA < distanceToB) {\n return -1;\n }\n if (distanceToB < distanceToA) {\n return 1;\n }\n return a.descriptor.index - b.descriptor.index;\n });\n return sorted[0] || null;\n});\n\nvar getDisplacedBy = memoizeOne(function getDisplacedBy(axis, displaceBy) {\n const displacement = displaceBy[axis.line];\n return {\n value: displacement,\n point: patch(axis.line, displacement)\n };\n});\n\nconst getRequiredGrowthForPlaceholder = (droppable, placeholderSize, draggables) => {\n const axis = droppable.axis;\n if (droppable.descriptor.mode === 'virtual') {\n return patch(axis.line, placeholderSize[axis.line]);\n }\n const availableSpace = droppable.subject.page.contentBox[axis.size];\n const insideDroppable = getDraggablesInsideDroppable(droppable.descriptor.id, draggables);\n const spaceUsed = insideDroppable.reduce((sum, dimension) => sum + dimension.client.marginBox[axis.size], 0);\n const requiredSpace = spaceUsed + placeholderSize[axis.line];\n const needsToGrowBy = requiredSpace - availableSpace;\n if (needsToGrowBy <= 0) {\n return null;\n }\n return patch(axis.line, needsToGrowBy);\n};\nconst withMaxScroll = (frame, max) => ({\n ...frame,\n scroll: {\n ...frame.scroll,\n max\n }\n});\nconst addPlaceholder = (droppable, draggable, draggables) => {\n const frame = droppable.frame;\n !!isHomeOf(draggable, droppable) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not add placeholder space to home list') : invariant(false) : void 0;\n !!droppable.subject.withPlaceholder ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot add placeholder size to a subject when it already has one') : invariant(false) : void 0;\n const placeholderSize = getDisplacedBy(droppable.axis, draggable.displaceBy).point;\n const requiredGrowth = getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables);\n const added = {\n placeholderSize,\n increasedBy: requiredGrowth,\n oldFrameMaxScroll: droppable.frame ? droppable.frame.scroll.max : null\n };\n if (!frame) {\n const subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: added,\n axis: droppable.axis,\n frame: droppable.frame\n });\n return {\n ...droppable,\n subject\n };\n }\n const maxScroll = requiredGrowth ? add(frame.scroll.max, requiredGrowth) : frame.scroll.max;\n const newFrame = withMaxScroll(frame, maxScroll);\n const subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: added,\n axis: droppable.axis,\n frame: newFrame\n });\n return {\n ...droppable,\n subject,\n frame: newFrame\n };\n};\nconst removePlaceholder = droppable => {\n const added = droppable.subject.withPlaceholder;\n !added ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot remove placeholder form subject when there was none') : invariant(false) : void 0;\n const frame = droppable.frame;\n if (!frame) {\n const subject = getSubject({\n page: droppable.subject.page,\n axis: droppable.axis,\n frame: null,\n withPlaceholder: null\n });\n return {\n ...droppable,\n subject\n };\n }\n const oldMaxScroll = added.oldFrameMaxScroll;\n !oldMaxScroll ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected droppable with frame to have old max frame scroll when removing placeholder') : invariant(false) : void 0;\n const newFrame = withMaxScroll(frame, oldMaxScroll);\n const subject = getSubject({\n page: droppable.subject.page,\n axis: droppable.axis,\n frame: newFrame,\n withPlaceholder: null\n });\n return {\n ...droppable,\n subject,\n frame: newFrame\n };\n};\n\nvar moveToNewDroppable = (_ref => {\n let {\n previousPageBorderBoxCenter,\n moveRelativeTo,\n insideDestination,\n draggable,\n draggables,\n destination,\n viewport,\n afterCritical\n } = _ref;\n if (!moveRelativeTo) {\n if (insideDestination.length) {\n return null;\n }\n const proposed = {\n displaced: emptyGroups,\n displacedBy: noDisplacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: 0\n }\n }\n };\n const proposedPageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: proposed,\n draggable,\n droppable: destination,\n draggables,\n afterCritical\n });\n const withPlaceholder = isHomeOf(draggable, destination) ? destination : addPlaceholder(destination, draggable, draggables);\n const isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable,\n destination: withPlaceholder,\n newPageBorderBoxCenter: proposedPageBorderBoxCenter,\n viewport: viewport.frame,\n withDroppableDisplacement: false,\n onlyOnMainAxis: true\n });\n return isVisibleInNewLocation ? proposed : null;\n }\n const isGoingBeforeTarget = Boolean(previousPageBorderBoxCenter[destination.axis.line] <= moveRelativeTo.page.borderBox.center[destination.axis.line]);\n const proposedIndex = (() => {\n const relativeTo = moveRelativeTo.descriptor.index;\n if (moveRelativeTo.descriptor.id === draggable.descriptor.id) {\n return relativeTo;\n }\n if (isGoingBeforeTarget) {\n return relativeTo;\n }\n return relativeTo + 1;\n })();\n const displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n return calculateReorderImpact({\n draggable,\n insideDestination,\n destination,\n viewport,\n displacedBy,\n last: emptyGroups,\n index: proposedIndex\n });\n});\n\nvar moveCrossAxis = (_ref => {\n let {\n isMovingForward,\n previousPageBorderBoxCenter,\n draggable,\n isOver,\n draggables,\n droppables,\n viewport,\n afterCritical\n } = _ref;\n const destination = getBestCrossAxisDroppable({\n isMovingForward,\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n source: isOver,\n droppables,\n viewport\n });\n if (!destination) {\n return null;\n }\n const insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n const moveRelativeTo = getClosestDraggable({\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n viewport,\n destination,\n insideDestination,\n afterCritical\n });\n const impact = moveToNewDroppable({\n previousPageBorderBoxCenter,\n destination,\n draggable,\n draggables,\n moveRelativeTo,\n insideDestination,\n viewport,\n afterCritical\n });\n if (!impact) {\n return null;\n }\n const pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact,\n draggable,\n droppable: destination,\n draggables,\n afterCritical\n });\n const clientSelection = getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter,\n draggable,\n viewport\n });\n return {\n clientSelection,\n impact,\n scrollJumpRequest: null\n };\n});\n\nvar whatIsDraggedOver = (impact => {\n const at = impact.at;\n if (!at) {\n return null;\n }\n if (at.type === 'REORDER') {\n return at.destination.droppableId;\n }\n return at.combine.droppableId;\n});\n\nconst getDroppableOver$1 = (impact, droppables) => {\n const id = whatIsDraggedOver(impact);\n return id ? droppables[id] : null;\n};\nvar moveInDirection = (_ref => {\n let {\n state,\n type\n } = _ref;\n const isActuallyOver = getDroppableOver$1(state.impact, state.dimensions.droppables);\n const isMainAxisMovementAllowed = Boolean(isActuallyOver);\n const home = state.dimensions.droppables[state.critical.droppable.id];\n const isOver = isActuallyOver || home;\n const direction = isOver.axis.direction;\n const isMovingOnMainAxis = direction === 'vertical' && (type === 'MOVE_UP' || type === 'MOVE_DOWN') || direction === 'horizontal' && (type === 'MOVE_LEFT' || type === 'MOVE_RIGHT');\n if (isMovingOnMainAxis && !isMainAxisMovementAllowed) {\n return null;\n }\n const isMovingForward = type === 'MOVE_DOWN' || type === 'MOVE_RIGHT';\n const draggable = state.dimensions.draggables[state.critical.draggable.id];\n const previousPageBorderBoxCenter = state.current.page.borderBoxCenter;\n const {\n draggables,\n droppables\n } = state.dimensions;\n return isMovingOnMainAxis ? moveToNextPlace({\n isMovingForward,\n previousPageBorderBoxCenter,\n draggable,\n destination: isOver,\n draggables,\n viewport: state.viewport,\n previousClientSelection: state.current.client.selection,\n previousImpact: state.impact,\n afterCritical: state.afterCritical\n }) : moveCrossAxis({\n isMovingForward,\n previousPageBorderBoxCenter,\n draggable,\n isOver,\n draggables,\n droppables,\n viewport: state.viewport,\n afterCritical: state.afterCritical\n });\n});\n\nfunction isMovementAllowed(state) {\n return state.phase === 'DRAGGING' || state.phase === 'COLLECTING';\n}\n\nfunction isPositionInFrame(frame) {\n const isWithinVertical = isWithin(frame.top, frame.bottom);\n const isWithinHorizontal = isWithin(frame.left, frame.right);\n return function run(point) {\n return isWithinVertical(point.y) && isWithinHorizontal(point.x);\n };\n}\n\nfunction getHasOverlap(first, second) {\n return first.left < second.right && first.right > second.left && first.top < second.bottom && first.bottom > second.top;\n}\nfunction getFurthestAway(_ref) {\n let {\n pageBorderBox,\n draggable,\n candidates\n } = _ref;\n const startCenter = draggable.page.borderBox.center;\n const sorted = candidates.map(candidate => {\n const axis = candidate.axis;\n const target = patch(candidate.axis.line, pageBorderBox.center[axis.line], candidate.page.borderBox.center[axis.crossAxisLine]);\n return {\n id: candidate.descriptor.id,\n distance: distance(startCenter, target)\n };\n }).sort((a, b) => b.distance - a.distance);\n return sorted[0] ? sorted[0].id : null;\n}\nfunction getDroppableOver(_ref2) {\n let {\n pageBorderBox,\n draggable,\n droppables\n } = _ref2;\n const candidates = toDroppableList(droppables).filter(item => {\n if (!item.isEnabled) {\n return false;\n }\n const active = item.subject.active;\n if (!active) {\n return false;\n }\n if (!getHasOverlap(pageBorderBox, active)) {\n return false;\n }\n if (isPositionInFrame(active)(pageBorderBox.center)) {\n return true;\n }\n const axis = item.axis;\n const childCenter = active.center[axis.crossAxisLine];\n const crossAxisStart = pageBorderBox[axis.crossAxisStart];\n const crossAxisEnd = pageBorderBox[axis.crossAxisEnd];\n const isContained = isWithin(active[axis.crossAxisStart], active[axis.crossAxisEnd]);\n const isStartContained = isContained(crossAxisStart);\n const isEndContained = isContained(crossAxisEnd);\n if (!isStartContained && !isEndContained) {\n return true;\n }\n if (isStartContained) {\n return crossAxisStart < childCenter;\n }\n return crossAxisEnd > childCenter;\n });\n if (!candidates.length) {\n return null;\n }\n if (candidates.length === 1) {\n return candidates[0].descriptor.id;\n }\n return getFurthestAway({\n pageBorderBox,\n draggable,\n candidates\n });\n}\n\nconst offsetRectByPosition = (rect, point) => getRect(offsetByPosition(rect, point));\n\nvar withDroppableScroll = ((droppable, area) => {\n const frame = droppable.frame;\n if (!frame) {\n return area;\n }\n return offsetRectByPosition(area, frame.scroll.diff.value);\n});\n\nfunction getIsDisplaced(_ref) {\n let {\n displaced,\n id\n } = _ref;\n return Boolean(displaced.visible[id] || displaced.invisible[id]);\n}\n\nfunction atIndex(_ref) {\n let {\n draggable,\n closest,\n inHomeList\n } = _ref;\n if (!closest) {\n return null;\n }\n if (!inHomeList) {\n return closest.descriptor.index;\n }\n if (closest.descriptor.index > draggable.descriptor.index) {\n return closest.descriptor.index - 1;\n }\n return closest.descriptor.index;\n}\nvar getReorderImpact = (_ref2 => {\n let {\n pageBorderBoxWithDroppableScroll: targetRect,\n draggable,\n destination,\n insideDestination,\n last,\n viewport,\n afterCritical\n } = _ref2;\n const axis = destination.axis;\n const displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n const displacement = displacedBy.value;\n const targetStart = targetRect[axis.start];\n const targetEnd = targetRect[axis.end];\n const withoutDragging = removeDraggableFromList(draggable, insideDestination);\n const closest = withoutDragging.find(child => {\n const id = child.descriptor.id;\n const childCenter = child.page.borderBox.center[axis.line];\n const didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical);\n const isDisplaced = getIsDisplaced({\n displaced: last,\n id\n });\n if (didStartAfterCritical$1) {\n if (isDisplaced) {\n return targetEnd <= childCenter;\n }\n return targetStart < childCenter - displacement;\n }\n if (isDisplaced) {\n return targetEnd <= childCenter + displacement;\n }\n return targetStart < childCenter;\n }) || null;\n const newIndex = atIndex({\n draggable,\n closest,\n inHomeList: isHomeOf(draggable, destination)\n });\n return calculateReorderImpact({\n draggable,\n insideDestination,\n destination,\n viewport,\n last,\n displacedBy,\n index: newIndex\n });\n});\n\nconst combineThresholdDivisor = 4;\nvar getCombineImpact = (_ref => {\n let {\n draggable,\n pageBorderBoxWithDroppableScroll: targetRect,\n previousImpact,\n destination,\n insideDestination,\n afterCritical\n } = _ref;\n if (!destination.isCombineEnabled) {\n return null;\n }\n const axis = destination.axis;\n const displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n const displacement = displacedBy.value;\n const targetStart = targetRect[axis.start];\n const targetEnd = targetRect[axis.end];\n const withoutDragging = removeDraggableFromList(draggable, insideDestination);\n const combineWith = withoutDragging.find(child => {\n const id = child.descriptor.id;\n const childRect = child.page.borderBox;\n const childSize = childRect[axis.size];\n const threshold = childSize / combineThresholdDivisor;\n const didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical);\n const isDisplaced = getIsDisplaced({\n displaced: previousImpact.displaced,\n id\n });\n if (didStartAfterCritical$1) {\n if (isDisplaced) {\n return targetEnd > childRect[axis.start] + threshold && targetEnd < childRect[axis.end] - threshold;\n }\n return targetStart > childRect[axis.start] - displacement + threshold && targetStart < childRect[axis.end] - displacement - threshold;\n }\n if (isDisplaced) {\n return targetEnd > childRect[axis.start] + displacement + threshold && targetEnd < childRect[axis.end] + displacement - threshold;\n }\n return targetStart > childRect[axis.start] + threshold && targetStart < childRect[axis.end] - threshold;\n });\n if (!combineWith) {\n return null;\n }\n const impact = {\n displacedBy,\n displaced: previousImpact.displaced,\n at: {\n type: 'COMBINE',\n combine: {\n draggableId: combineWith.descriptor.id,\n droppableId: destination.descriptor.id\n }\n }\n };\n return impact;\n});\n\nvar getDragImpact = (_ref => {\n let {\n pageOffset,\n draggable,\n draggables,\n droppables,\n previousImpact,\n viewport,\n afterCritical\n } = _ref;\n const pageBorderBox = offsetRectByPosition(draggable.page.borderBox, pageOffset);\n const destinationId = getDroppableOver({\n pageBorderBox,\n draggable,\n droppables\n });\n if (!destinationId) {\n return noImpact$1;\n }\n const destination = droppables[destinationId];\n const insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n const pageBorderBoxWithDroppableScroll = withDroppableScroll(destination, pageBorderBox);\n return getCombineImpact({\n pageBorderBoxWithDroppableScroll,\n draggable,\n previousImpact,\n destination,\n insideDestination,\n afterCritical\n }) || getReorderImpact({\n pageBorderBoxWithDroppableScroll,\n draggable,\n destination,\n insideDestination,\n last: previousImpact.displaced,\n viewport,\n afterCritical\n });\n});\n\nvar patchDroppableMap = ((droppables, updated) => ({\n ...droppables,\n [updated.descriptor.id]: updated\n}));\n\nconst clearUnusedPlaceholder = _ref => {\n let {\n previousImpact,\n impact,\n droppables\n } = _ref;\n const last = whatIsDraggedOver(previousImpact);\n const now = whatIsDraggedOver(impact);\n if (!last) {\n return droppables;\n }\n if (last === now) {\n return droppables;\n }\n const lastDroppable = droppables[last];\n if (!lastDroppable.subject.withPlaceholder) {\n return droppables;\n }\n const updated = removePlaceholder(lastDroppable);\n return patchDroppableMap(droppables, updated);\n};\nvar recomputePlaceholders = (_ref2 => {\n let {\n draggable,\n draggables,\n droppables,\n previousImpact,\n impact\n } = _ref2;\n const cleaned = clearUnusedPlaceholder({\n previousImpact,\n impact,\n droppables\n });\n const isOver = whatIsDraggedOver(impact);\n if (!isOver) {\n return cleaned;\n }\n const droppable = droppables[isOver];\n if (isHomeOf(draggable, droppable)) {\n return cleaned;\n }\n if (droppable.subject.withPlaceholder) {\n return cleaned;\n }\n const patched = addPlaceholder(droppable, draggable, draggables);\n return patchDroppableMap(cleaned, patched);\n});\n\nvar update = (_ref => {\n let {\n state,\n clientSelection: forcedClientSelection,\n dimensions: forcedDimensions,\n viewport: forcedViewport,\n impact: forcedImpact,\n scrollJumpRequest\n } = _ref;\n const viewport = forcedViewport || state.viewport;\n const dimensions = forcedDimensions || state.dimensions;\n const clientSelection = forcedClientSelection || state.current.client.selection;\n const offset = subtract(clientSelection, state.initial.client.selection);\n const client = {\n offset,\n selection: clientSelection,\n borderBoxCenter: add(state.initial.client.borderBoxCenter, offset)\n };\n const page = {\n selection: add(client.selection, viewport.scroll.current),\n borderBoxCenter: add(client.borderBoxCenter, viewport.scroll.current),\n offset: add(client.offset, viewport.scroll.diff.value)\n };\n const current = {\n client,\n page\n };\n if (state.phase === 'COLLECTING') {\n return {\n ...state,\n dimensions,\n viewport,\n current\n };\n }\n const draggable = dimensions.draggables[state.critical.draggable.id];\n const newImpact = forcedImpact || getDragImpact({\n pageOffset: page.offset,\n draggable,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables,\n previousImpact: state.impact,\n viewport,\n afterCritical: state.afterCritical\n });\n const withUpdatedPlaceholders = recomputePlaceholders({\n draggable,\n impact: newImpact,\n previousImpact: state.impact,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables\n });\n const result = {\n ...state,\n current,\n dimensions: {\n draggables: dimensions.draggables,\n droppables: withUpdatedPlaceholders\n },\n impact: newImpact,\n viewport,\n scrollJumpRequest: scrollJumpRequest || null,\n forceShouldAnimate: scrollJumpRequest ? false : null\n };\n return result;\n});\n\nfunction getDraggables(ids, draggables) {\n return ids.map(id => draggables[id]);\n}\nvar recompute = (_ref => {\n let {\n impact,\n viewport,\n draggables,\n destination,\n forceShouldAnimate\n } = _ref;\n const last = impact.displaced;\n const afterDragging = getDraggables(last.all, draggables);\n const displaced = getDisplacementGroups({\n afterDragging,\n destination,\n displacedBy: impact.displacedBy,\n viewport: viewport.frame,\n forceShouldAnimate,\n last\n });\n return {\n ...impact,\n displaced\n };\n});\n\nvar getClientBorderBoxCenter = (_ref => {\n let {\n impact,\n draggable,\n droppable,\n draggables,\n viewport,\n afterCritical\n } = _ref;\n const pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact,\n draggable,\n draggables,\n droppable,\n afterCritical\n });\n return getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter,\n draggable,\n viewport\n });\n});\n\nvar refreshSnap = (_ref => {\n let {\n state,\n dimensions: forcedDimensions,\n viewport: forcedViewport\n } = _ref;\n !(state.movementMode === 'SNAP') ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n const needsVisibilityCheck = state.impact;\n const viewport = forcedViewport || state.viewport;\n const dimensions = forcedDimensions || state.dimensions;\n const {\n draggables,\n droppables\n } = dimensions;\n const draggable = draggables[state.critical.draggable.id];\n const isOver = whatIsDraggedOver(needsVisibilityCheck);\n !isOver ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Must be over a destination in SNAP movement mode') : invariant(false) : void 0;\n const destination = droppables[isOver];\n const impact = recompute({\n impact: needsVisibilityCheck,\n viewport,\n destination,\n draggables\n });\n const clientSelection = getClientBorderBoxCenter({\n impact,\n draggable,\n droppable: destination,\n draggables,\n viewport,\n afterCritical: state.afterCritical\n });\n return update({\n impact,\n clientSelection,\n state,\n dimensions,\n viewport\n });\n});\n\nvar getHomeLocation = (descriptor => ({\n index: descriptor.index,\n droppableId: descriptor.droppableId\n}));\n\nvar getLiftEffect = (_ref => {\n let {\n draggable,\n home,\n draggables,\n viewport\n } = _ref;\n const displacedBy = getDisplacedBy(home.axis, draggable.displaceBy);\n const insideHome = getDraggablesInsideDroppable(home.descriptor.id, draggables);\n const rawIndex = insideHome.indexOf(draggable);\n !(rawIndex !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected draggable to be inside home list') : invariant(false) : void 0;\n const afterDragging = insideHome.slice(rawIndex + 1);\n const effected = afterDragging.reduce((previous, item) => {\n previous[item.descriptor.id] = true;\n return previous;\n }, {});\n const afterCritical = {\n inVirtualList: home.descriptor.mode === 'virtual',\n displacedBy,\n effected\n };\n const displaced = getDisplacementGroups({\n afterDragging,\n destination: home,\n displacedBy,\n last: null,\n viewport: viewport.frame,\n forceShouldAnimate: false\n });\n const impact = {\n displaced,\n displacedBy,\n at: {\n type: 'REORDER',\n destination: getHomeLocation(draggable.descriptor)\n }\n };\n return {\n impact,\n afterCritical\n };\n});\n\nvar patchDimensionMap = ((dimensions, updated) => ({\n draggables: dimensions.draggables,\n droppables: patchDroppableMap(dimensions.droppables, updated)\n}));\n\nconst start = key => {\n if (process.env.NODE_ENV !== 'production') {\n {\n return;\n }\n }\n};\nconst finish = key => {\n if (process.env.NODE_ENV !== 'production') {\n {\n return;\n }\n }\n};\n\nvar offsetDraggable = (_ref => {\n let {\n draggable,\n offset: offset$1,\n initialWindowScroll\n } = _ref;\n const client = offset(draggable.client, offset$1);\n const page = withScroll(client, initialWindowScroll);\n const moved = {\n ...draggable,\n placeholder: {\n ...draggable.placeholder,\n client\n },\n client,\n page\n };\n return moved;\n});\n\nvar getFrame = (droppable => {\n const frame = droppable.frame;\n !frame ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected Droppable to have a frame') : invariant(false) : void 0;\n return frame;\n});\n\nvar adjustAdditionsForScrollChanges = (_ref => {\n let {\n additions,\n updatedDroppables,\n viewport\n } = _ref;\n const windowScrollChange = viewport.scroll.diff.value;\n return additions.map(draggable => {\n const droppableId = draggable.descriptor.droppableId;\n const modified = updatedDroppables[droppableId];\n const frame = getFrame(modified);\n const droppableScrollChange = frame.scroll.diff.value;\n const totalChange = add(windowScrollChange, droppableScrollChange);\n const moved = offsetDraggable({\n draggable,\n offset: totalChange,\n initialWindowScroll: viewport.scroll.initial\n });\n return moved;\n });\n});\n\nconst timingsKey = 'Processing dynamic changes';\nvar publishWhileDraggingInVirtual = (_ref => {\n let {\n state,\n published\n } = _ref;\n start(timingsKey);\n const withScrollChange = published.modified.map(update => {\n const existing = state.dimensions.droppables[update.droppableId];\n const scrolled = scrollDroppable(existing, update.scroll);\n return scrolled;\n });\n const droppables = {\n ...state.dimensions.droppables,\n ...toDroppableMap(withScrollChange)\n };\n const updatedAdditions = toDraggableMap(adjustAdditionsForScrollChanges({\n additions: published.additions,\n updatedDroppables: droppables,\n viewport: state.viewport\n }));\n const draggables = {\n ...state.dimensions.draggables,\n ...updatedAdditions\n };\n published.removals.forEach(id => {\n delete draggables[id];\n });\n const dimensions = {\n droppables,\n draggables\n };\n const wasOverId = whatIsDraggedOver(state.impact);\n const wasOver = wasOverId ? dimensions.droppables[wasOverId] : null;\n const draggable = dimensions.draggables[state.critical.draggable.id];\n const home = dimensions.droppables[state.critical.droppable.id];\n const {\n impact: onLiftImpact,\n afterCritical\n } = getLiftEffect({\n draggable,\n home,\n draggables,\n viewport: state.viewport\n });\n const previousImpact = wasOver && wasOver.isCombineEnabled ? state.impact : onLiftImpact;\n const impact = getDragImpact({\n pageOffset: state.current.page.offset,\n draggable: dimensions.draggables[state.critical.draggable.id],\n draggables: dimensions.draggables,\n droppables: dimensions.droppables,\n previousImpact,\n viewport: state.viewport,\n afterCritical\n });\n finish(timingsKey);\n const draggingState = {\n ...state,\n phase: 'DRAGGING',\n impact,\n onLiftImpact,\n dimensions,\n afterCritical,\n forceShouldAnimate: false\n };\n if (state.phase === 'COLLECTING') {\n return draggingState;\n }\n const dropPending = {\n ...draggingState,\n phase: 'DROP_PENDING',\n reason: state.reason,\n isWaiting: false\n };\n return dropPending;\n});\n\nconst isSnapping = state => state.movementMode === 'SNAP';\nconst postDroppableChange = (state, updated, isEnabledChanging) => {\n const dimensions = patchDimensionMap(state.dimensions, updated);\n if (!isSnapping(state) || isEnabledChanging) {\n return update({\n state,\n dimensions\n });\n }\n return refreshSnap({\n state,\n dimensions\n });\n};\nfunction removeScrollJumpRequest(state) {\n if (state.isDragging && state.movementMode === 'SNAP') {\n return {\n ...state,\n scrollJumpRequest: null\n };\n }\n return state;\n}\nconst idle$2 = {\n phase: 'IDLE',\n completed: null,\n shouldFlush: false\n};\nvar reducer = (function (state, action) {\n if (state === void 0) {\n state = idle$2;\n }\n if (action.type === 'FLUSH') {\n return {\n ...idle$2,\n shouldFlush: true\n };\n }\n if (action.type === 'INITIAL_PUBLISH') {\n !(state.phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'INITIAL_PUBLISH must come after a IDLE phase') : invariant(false) : void 0;\n const {\n critical,\n clientSelection,\n viewport,\n dimensions,\n movementMode\n } = action.payload;\n const draggable = dimensions.draggables[critical.draggable.id];\n const home = dimensions.droppables[critical.droppable.id];\n const client = {\n selection: clientSelection,\n borderBoxCenter: draggable.client.borderBox.center,\n offset: origin\n };\n const initial = {\n client,\n page: {\n selection: add(client.selection, viewport.scroll.initial),\n borderBoxCenter: add(client.selection, viewport.scroll.initial),\n offset: add(client.selection, viewport.scroll.diff.value)\n }\n };\n const isWindowScrollAllowed = toDroppableList(dimensions.droppables).every(item => !item.isFixedOnPage);\n const {\n impact,\n afterCritical\n } = getLiftEffect({\n draggable,\n home,\n draggables: dimensions.draggables,\n viewport\n });\n const result = {\n phase: 'DRAGGING',\n isDragging: true,\n critical,\n movementMode,\n dimensions,\n initial,\n current: initial,\n isWindowScrollAllowed,\n impact,\n afterCritical,\n onLiftImpact: impact,\n viewport,\n scrollJumpRequest: null,\n forceShouldAnimate: null\n };\n return result;\n }\n if (action.type === 'COLLECTION_STARTING') {\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Collection cannot start from phase ${state.phase}`) : invariant(false) : void 0;\n const result = {\n ...state,\n phase: 'COLLECTING'\n };\n return result;\n }\n if (action.type === 'PUBLISH_WHILE_DRAGGING') {\n !(state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Unexpected ${action.type} received in phase ${state.phase}`) : invariant(false) : void 0;\n return publishWhileDraggingInVirtual({\n state,\n published: action.payload\n });\n }\n if (action.type === 'MOVE') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `${action.type} not permitted in phase ${state.phase}`) : invariant(false) : void 0;\n const {\n client: clientSelection\n } = action.payload;\n if (isEqual$1(clientSelection, state.current.client.selection)) {\n return state;\n }\n return update({\n state,\n clientSelection,\n impact: isSnapping(state) ? state.impact : null\n });\n }\n if (action.type === 'UPDATE_DROPPABLE_SCROLL') {\n if (state.phase === 'DROP_PENDING') {\n return removeScrollJumpRequest(state);\n }\n if (state.phase === 'COLLECTING') {\n return removeScrollJumpRequest(state);\n }\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `${action.type} not permitted in phase ${state.phase}`) : invariant(false) : void 0;\n const {\n id,\n newScroll\n } = action.payload;\n const target = state.dimensions.droppables[id];\n if (!target) {\n return state;\n }\n const scrolled = scrollDroppable(target, newScroll);\n return postDroppableChange(state, scrolled, false);\n }\n if (action.type === 'UPDATE_DROPPABLE_IS_ENABLED') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Attempting to move in an unsupported phase ${state.phase}`) : invariant(false) : void 0;\n const {\n id,\n isEnabled\n } = action.payload;\n const target = state.dimensions.droppables[id];\n !target ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Cannot find Droppable[id: ${id}] to toggle its enabled state`) : invariant(false) : void 0;\n !(target.isEnabled !== isEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Trying to set droppable isEnabled to ${String(isEnabled)}\n but it is already ${String(target.isEnabled)}`) : invariant(false) : void 0;\n const updated = {\n ...target,\n isEnabled\n };\n return postDroppableChange(state, updated, true);\n }\n if (action.type === 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Attempting to move in an unsupported phase ${state.phase}`) : invariant(false) : void 0;\n const {\n id,\n isCombineEnabled\n } = action.payload;\n const target = state.dimensions.droppables[id];\n !target ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Cannot find Droppable[id: ${id}] to toggle its isCombineEnabled state`) : invariant(false) : void 0;\n !(target.isCombineEnabled !== isCombineEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Trying to set droppable isCombineEnabled to ${String(isCombineEnabled)}\n but it is already ${String(target.isCombineEnabled)}`) : invariant(false) : void 0;\n const updated = {\n ...target,\n isCombineEnabled\n };\n return postDroppableChange(state, updated, true);\n }\n if (action.type === 'MOVE_BY_WINDOW_SCROLL') {\n if (state.phase === 'DROP_PENDING' || state.phase === 'DROP_ANIMATING') {\n return state;\n }\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Cannot move by window in phase ${state.phase}`) : invariant(false) : void 0;\n !state.isWindowScrollAllowed ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Window scrolling is currently not supported for fixed lists') : invariant(false) : void 0;\n const newScroll = action.payload.newScroll;\n if (isEqual$1(state.viewport.scroll.current, newScroll)) {\n return removeScrollJumpRequest(state);\n }\n const viewport = scrollViewport(state.viewport, newScroll);\n if (isSnapping(state)) {\n return refreshSnap({\n state,\n viewport\n });\n }\n return update({\n state,\n viewport\n });\n }\n if (action.type === 'UPDATE_VIEWPORT_MAX_SCROLL') {\n if (!isMovementAllowed(state)) {\n return state;\n }\n const maxScroll = action.payload.maxScroll;\n if (isEqual$1(maxScroll, state.viewport.scroll.max)) {\n return state;\n }\n const withMaxScroll = {\n ...state.viewport,\n scroll: {\n ...state.viewport.scroll,\n max: maxScroll\n }\n };\n return {\n ...state,\n viewport: withMaxScroll\n };\n }\n if (action.type === 'MOVE_UP' || action.type === 'MOVE_DOWN' || action.type === 'MOVE_LEFT' || action.type === 'MOVE_RIGHT') {\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, `${action.type} received while not in DRAGGING phase`) : invariant(false) : void 0;\n const result = moveInDirection({\n state,\n type: action.type\n });\n if (!result) {\n return state;\n }\n return update({\n state,\n impact: result.impact,\n clientSelection: result.clientSelection,\n scrollJumpRequest: result.scrollJumpRequest\n });\n }\n if (action.type === 'DROP_PENDING') {\n const reason = action.payload.reason;\n !(state.phase === 'COLLECTING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only move into the DROP_PENDING phase from the COLLECTING phase') : invariant(false) : void 0;\n const newState = {\n ...state,\n phase: 'DROP_PENDING',\n isWaiting: true,\n reason\n };\n return newState;\n }\n if (action.type === 'DROP_ANIMATE') {\n const {\n completed,\n dropDuration,\n newHomeClientOffset\n } = action.payload;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Cannot animate drop from phase ${state.phase}`) : invariant(false) : void 0;\n const result = {\n phase: 'DROP_ANIMATING',\n completed,\n dropDuration,\n newHomeClientOffset,\n dimensions: state.dimensions\n };\n return result;\n }\n if (action.type === 'DROP_COMPLETE') {\n const {\n completed\n } = action.payload;\n return {\n phase: 'IDLE',\n completed,\n shouldFlush: false\n };\n }\n return state;\n});\n\nconst beforeInitialCapture = args => ({\n type: 'BEFORE_INITIAL_CAPTURE',\n payload: args\n});\nconst lift$1 = args => ({\n type: 'LIFT',\n payload: args\n});\nconst initialPublish = args => ({\n type: 'INITIAL_PUBLISH',\n payload: args\n});\nconst publishWhileDragging = args => ({\n type: 'PUBLISH_WHILE_DRAGGING',\n payload: args\n});\nconst collectionStarting = () => ({\n type: 'COLLECTION_STARTING',\n payload: null\n});\nconst updateDroppableScroll = args => ({\n type: 'UPDATE_DROPPABLE_SCROLL',\n payload: args\n});\nconst updateDroppableIsEnabled = args => ({\n type: 'UPDATE_DROPPABLE_IS_ENABLED',\n payload: args\n});\nconst updateDroppableIsCombineEnabled = args => ({\n type: 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED',\n payload: args\n});\nconst move = args => ({\n type: 'MOVE',\n payload: args\n});\nconst moveByWindowScroll = args => ({\n type: 'MOVE_BY_WINDOW_SCROLL',\n payload: args\n});\nconst updateViewportMaxScroll = args => ({\n type: 'UPDATE_VIEWPORT_MAX_SCROLL',\n payload: args\n});\nconst moveUp = () => ({\n type: 'MOVE_UP',\n payload: null\n});\nconst moveDown = () => ({\n type: 'MOVE_DOWN',\n payload: null\n});\nconst moveRight = () => ({\n type: 'MOVE_RIGHT',\n payload: null\n});\nconst moveLeft = () => ({\n type: 'MOVE_LEFT',\n payload: null\n});\nconst flush = () => ({\n type: 'FLUSH',\n payload: null\n});\nconst animateDrop = args => ({\n type: 'DROP_ANIMATE',\n payload: args\n});\nconst completeDrop = args => ({\n type: 'DROP_COMPLETE',\n payload: args\n});\nconst drop$1 = args => ({\n type: 'DROP',\n payload: args\n});\nconst dropPending = args => ({\n type: 'DROP_PENDING',\n payload: args\n});\nconst dropAnimationFinished = () => ({\n type: 'DROP_ANIMATION_FINISHED',\n payload: null\n});\n\nfunction checkIndexes(insideDestination) {\n if (insideDestination.length <= 1) {\n return;\n }\n const indexes = insideDestination.map(d => d.descriptor.index);\n const errors = {};\n for (let i = 1; i < indexes.length; i++) {\n const current = indexes[i];\n const previous = indexes[i - 1];\n if (current !== previous + 1) {\n errors[current] = true;\n }\n }\n if (!Object.keys(errors).length) {\n return;\n }\n const formatted = indexes.map(index => {\n const hasError = Boolean(errors[index]);\n return hasError ? `[🔥${index}]` : `${index}`;\n }).join(', ');\n process.env.NODE_ENV !== \"production\" ? warning(`\n Detected non-consecutive <Draggable /> indexes.\n\n (This can cause unexpected bugs)\n\n ${formatted}\n `) : void 0;\n}\nfunction validateDimensions(critical, dimensions) {\n if (process.env.NODE_ENV !== 'production') {\n const insideDestination = getDraggablesInsideDroppable(critical.droppable.id, dimensions.draggables);\n checkIndexes(insideDestination);\n }\n}\n\nvar lift = (marshal => _ref => {\n let {\n getState,\n dispatch\n } = _ref;\n return next => action => {\n if (action.type !== 'LIFT') {\n next(action);\n return;\n }\n const {\n id,\n clientSelection,\n movementMode\n } = action.payload;\n const initial = getState();\n if (initial.phase === 'DROP_ANIMATING') {\n dispatch(completeDrop({\n completed: initial.completed\n }));\n }\n !(getState().phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unexpected phase to start a drag') : invariant(false) : void 0;\n dispatch(flush());\n dispatch(beforeInitialCapture({\n draggableId: id,\n movementMode\n }));\n const scrollOptions = {\n shouldPublishImmediately: movementMode === 'SNAP'\n };\n const request = {\n draggableId: id,\n scrollOptions\n };\n const {\n critical,\n dimensions,\n viewport\n } = marshal.startPublishing(request);\n validateDimensions(critical, dimensions);\n dispatch(initialPublish({\n critical,\n dimensions,\n clientSelection,\n movementMode,\n viewport\n }));\n };\n});\n\nvar style = (marshal => () => next => action => {\n if (action.type === 'INITIAL_PUBLISH') {\n marshal.dragging();\n }\n if (action.type === 'DROP_ANIMATE') {\n marshal.dropping(action.payload.completed.result.reason);\n }\n if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE') {\n marshal.resting();\n }\n next(action);\n});\n\nconst curves = {\n outOfTheWay: 'cubic-bezier(0.2, 0, 0, 1)',\n drop: 'cubic-bezier(.2,1,.1,1)'\n};\nconst combine = {\n opacity: {\n drop: 0,\n combining: 0.7\n },\n scale: {\n drop: 0.75\n }\n};\nconst timings = {\n outOfTheWay: 0.2,\n minDropTime: 0.33,\n maxDropTime: 0.55\n};\nconst outOfTheWayTiming = `${timings.outOfTheWay}s ${curves.outOfTheWay}`;\nconst transitions = {\n fluid: `opacity ${outOfTheWayTiming}`,\n snap: `transform ${outOfTheWayTiming}, opacity ${outOfTheWayTiming}`,\n drop: duration => {\n const timing = `${duration}s ${curves.drop}`;\n return `transform ${timing}, opacity ${timing}`;\n },\n outOfTheWay: `transform ${outOfTheWayTiming}`,\n placeholder: `height ${outOfTheWayTiming}, width ${outOfTheWayTiming}, margin ${outOfTheWayTiming}`\n};\nconst moveTo = offset => isEqual$1(offset, origin) ? undefined : `translate(${offset.x}px, ${offset.y}px)`;\nconst transforms = {\n moveTo,\n drop: (offset, isCombining) => {\n const translate = moveTo(offset);\n if (!translate) {\n return undefined;\n }\n if (!isCombining) {\n return translate;\n }\n return `${translate} scale(${combine.scale.drop})`;\n }\n};\n\nconst {\n minDropTime,\n maxDropTime\n} = timings;\nconst dropTimeRange = maxDropTime - minDropTime;\nconst maxDropTimeAtDistance = 1500;\nconst cancelDropModifier = 0.6;\nvar getDropDuration = (_ref => {\n let {\n current,\n destination,\n reason\n } = _ref;\n const distance$1 = distance(current, destination);\n if (distance$1 <= 0) {\n return minDropTime;\n }\n if (distance$1 >= maxDropTimeAtDistance) {\n return maxDropTime;\n }\n const percentage = distance$1 / maxDropTimeAtDistance;\n const duration = minDropTime + dropTimeRange * percentage;\n const withDuration = reason === 'CANCEL' ? duration * cancelDropModifier : duration;\n return Number(withDuration.toFixed(2));\n});\n\nvar getNewHomeClientOffset = (_ref => {\n let {\n impact,\n draggable,\n dimensions,\n viewport,\n afterCritical\n } = _ref;\n const {\n draggables,\n droppables\n } = dimensions;\n const droppableId = whatIsDraggedOver(impact);\n const destination = droppableId ? droppables[droppableId] : null;\n const home = droppables[draggable.descriptor.droppableId];\n const newClientCenter = getClientBorderBoxCenter({\n impact,\n draggable,\n draggables,\n afterCritical,\n droppable: destination || home,\n viewport\n });\n const offset = subtract(newClientCenter, draggable.client.borderBox.center);\n return offset;\n});\n\nvar getDropImpact = (_ref => {\n let {\n draggables,\n reason,\n lastImpact,\n home,\n viewport,\n onLiftImpact\n } = _ref;\n if (!lastImpact.at || reason !== 'DROP') {\n const recomputedHomeImpact = recompute({\n draggables,\n impact: onLiftImpact,\n destination: home,\n viewport,\n forceShouldAnimate: true\n });\n return {\n impact: recomputedHomeImpact,\n didDropInsideDroppable: false\n };\n }\n if (lastImpact.at.type === 'REORDER') {\n return {\n impact: lastImpact,\n didDropInsideDroppable: true\n };\n }\n const withoutMovement = {\n ...lastImpact,\n displaced: emptyGroups\n };\n return {\n impact: withoutMovement,\n didDropInsideDroppable: true\n };\n});\n\nconst dropMiddleware = _ref => {\n let {\n getState,\n dispatch\n } = _ref;\n return next => action => {\n if (action.type !== 'DROP') {\n next(action);\n return;\n }\n const state = getState();\n const reason = action.payload.reason;\n if (state.phase === 'COLLECTING') {\n dispatch(dropPending({\n reason\n }));\n return;\n }\n if (state.phase === 'IDLE') {\n return;\n }\n const isWaitingForDrop = state.phase === 'DROP_PENDING' && state.isWaiting;\n !!isWaitingForDrop ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A DROP action occurred while DROP_PENDING and still waiting') : invariant(false) : void 0;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Cannot drop in phase: ${state.phase}`) : invariant(false) : void 0;\n const critical = state.critical;\n const dimensions = state.dimensions;\n const draggable = dimensions.draggables[state.critical.draggable.id];\n const {\n impact,\n didDropInsideDroppable\n } = getDropImpact({\n reason,\n lastImpact: state.impact,\n afterCritical: state.afterCritical,\n onLiftImpact: state.onLiftImpact,\n home: state.dimensions.droppables[state.critical.droppable.id],\n viewport: state.viewport,\n draggables: state.dimensions.draggables\n });\n const destination = didDropInsideDroppable ? tryGetDestination(impact) : null;\n const combine = didDropInsideDroppable ? tryGetCombine(impact) : null;\n const source = {\n index: critical.draggable.index,\n droppableId: critical.droppable.id\n };\n const result = {\n draggableId: draggable.descriptor.id,\n type: draggable.descriptor.type,\n source,\n reason,\n mode: state.movementMode,\n destination,\n combine\n };\n const newHomeClientOffset = getNewHomeClientOffset({\n impact,\n draggable,\n dimensions,\n viewport: state.viewport,\n afterCritical: state.afterCritical\n });\n const completed = {\n critical: state.critical,\n afterCritical: state.afterCritical,\n result,\n impact\n };\n const isAnimationRequired = !isEqual$1(state.current.client.offset, newHomeClientOffset) || Boolean(result.combine);\n if (!isAnimationRequired) {\n dispatch(completeDrop({\n completed\n }));\n return;\n }\n const dropDuration = getDropDuration({\n current: state.current.client.offset,\n destination: newHomeClientOffset,\n reason\n });\n const args = {\n newHomeClientOffset,\n dropDuration,\n completed\n };\n dispatch(animateDrop(args));\n };\n};\nvar drop = dropMiddleware;\n\nvar getWindowScroll = (() => ({\n x: window.pageXOffset,\n y: window.pageYOffset\n}));\n\nfunction getWindowScrollBinding(update) {\n return {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: event => {\n if (event.target !== window && event.target !== window.document) {\n return;\n }\n update();\n }\n };\n}\nfunction getScrollListener(_ref) {\n let {\n onWindowScroll\n } = _ref;\n function updateScroll() {\n onWindowScroll(getWindowScroll());\n }\n const scheduled = rafSchd(updateScroll);\n const binding = getWindowScrollBinding(scheduled);\n let unbind = noop$2;\n function isActive() {\n return unbind !== noop$2;\n }\n function start() {\n !!isActive() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start scroll listener when already active') : invariant(false) : void 0;\n unbind = bindEvents(window, [binding]);\n }\n function stop() {\n !isActive() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop scroll listener when not active') : invariant(false) : void 0;\n scheduled.cancel();\n unbind();\n unbind = noop$2;\n }\n return {\n start,\n stop,\n isActive\n };\n}\n\nconst shouldEnd = action => action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH';\nconst scrollListener = store => {\n const listener = getScrollListener({\n onWindowScroll: newScroll => {\n store.dispatch(moveByWindowScroll({\n newScroll\n }));\n }\n });\n return next => action => {\n if (!listener.isActive() && action.type === 'INITIAL_PUBLISH') {\n listener.start();\n }\n if (listener.isActive() && shouldEnd(action)) {\n listener.stop();\n }\n next(action);\n };\n};\nvar scrollListener$1 = scrollListener;\n\nvar getExpiringAnnounce = (announce => {\n let wasCalled = false;\n let isExpired = false;\n const timeoutId = setTimeout(() => {\n isExpired = true;\n });\n const result = message => {\n if (wasCalled) {\n process.env.NODE_ENV !== \"production\" ? warning('Announcement already made. Not making a second announcement') : void 0;\n return;\n }\n if (isExpired) {\n process.env.NODE_ENV !== \"production\" ? warning(`\n Announcements cannot be made asynchronously.\n Default message has already been announced.\n `) : void 0;\n return;\n }\n wasCalled = true;\n announce(message);\n clearTimeout(timeoutId);\n };\n result.wasCalled = () => wasCalled;\n return result;\n});\n\nvar getAsyncMarshal = (() => {\n const entries = [];\n const execute = timerId => {\n const index = entries.findIndex(item => item.timerId === timerId);\n !(index !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find timer') : invariant(false) : void 0;\n const [entry] = entries.splice(index, 1);\n entry.callback();\n };\n const add = fn => {\n const timerId = setTimeout(() => execute(timerId));\n const entry = {\n timerId,\n callback: fn\n };\n entries.push(entry);\n };\n const flush = () => {\n if (!entries.length) {\n return;\n }\n const shallow = [...entries];\n entries.length = 0;\n shallow.forEach(entry => {\n clearTimeout(entry.timerId);\n entry.callback();\n });\n };\n return {\n add,\n flush\n };\n});\n\nconst areLocationsEqual = (first, second) => {\n if (first == null && second == null) {\n return true;\n }\n if (first == null || second == null) {\n return false;\n }\n return first.droppableId === second.droppableId && first.index === second.index;\n};\nconst isCombineEqual = (first, second) => {\n if (first == null && second == null) {\n return true;\n }\n if (first == null || second == null) {\n return false;\n }\n return first.draggableId === second.draggableId && first.droppableId === second.droppableId;\n};\nconst isCriticalEqual = (first, second) => {\n if (first === second) {\n return true;\n }\n const isDraggableEqual = first.draggable.id === second.draggable.id && first.draggable.droppableId === second.draggable.droppableId && first.draggable.type === second.draggable.type && first.draggable.index === second.draggable.index;\n const isDroppableEqual = first.droppable.id === second.droppable.id && first.droppable.type === second.droppable.type;\n return isDraggableEqual && isDroppableEqual;\n};\n\nconst withTimings = (key, fn) => {\n start();\n fn();\n finish();\n};\nconst getDragStart = (critical, mode) => ({\n draggableId: critical.draggable.id,\n type: critical.droppable.type,\n source: {\n droppableId: critical.droppable.id,\n index: critical.draggable.index\n },\n mode\n});\nfunction execute(responder, data, announce, getDefaultMessage) {\n if (!responder) {\n announce(getDefaultMessage(data));\n return;\n }\n const willExpire = getExpiringAnnounce(announce);\n const provided = {\n announce: willExpire\n };\n responder(data, provided);\n if (!willExpire.wasCalled()) {\n announce(getDefaultMessage(data));\n }\n}\nvar getPublisher = ((getResponders, announce) => {\n const asyncMarshal = getAsyncMarshal();\n let dragging = null;\n const beforeCapture = (draggableId, mode) => {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeCapture as a drag start has already been published') : invariant(false) : void 0;\n withTimings('onBeforeCapture', () => {\n const fn = getResponders().onBeforeCapture;\n if (fn) {\n const before = {\n draggableId,\n mode\n };\n fn(before);\n }\n });\n };\n const beforeStart = (critical, mode) => {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n withTimings('onBeforeDragStart', () => {\n const fn = getResponders().onBeforeDragStart;\n if (fn) {\n fn(getDragStart(critical, mode));\n }\n });\n };\n const start = (critical, mode) => {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n const data = getDragStart(critical, mode);\n dragging = {\n mode,\n lastCritical: critical,\n lastLocation: data.source,\n lastCombine: null\n };\n asyncMarshal.add(() => {\n withTimings('onDragStart', () => execute(getResponders().onDragStart, data, announce, preset$1.onDragStart));\n });\n };\n const update = (critical, impact) => {\n const location = tryGetDestination(impact);\n const combine = tryGetCombine(impact);\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragMove when onDragStart has not been called') : invariant(false) : void 0;\n const hasCriticalChanged = !isCriticalEqual(critical, dragging.lastCritical);\n if (hasCriticalChanged) {\n dragging.lastCritical = critical;\n }\n const hasLocationChanged = !areLocationsEqual(dragging.lastLocation, location);\n if (hasLocationChanged) {\n dragging.lastLocation = location;\n }\n const hasGroupingChanged = !isCombineEqual(dragging.lastCombine, combine);\n if (hasGroupingChanged) {\n dragging.lastCombine = combine;\n }\n if (!hasCriticalChanged && !hasLocationChanged && !hasGroupingChanged) {\n return;\n }\n const data = {\n ...getDragStart(critical, dragging.mode),\n combine,\n destination: location\n };\n asyncMarshal.add(() => {\n withTimings('onDragUpdate', () => execute(getResponders().onDragUpdate, data, announce, preset$1.onDragUpdate));\n });\n };\n const flush = () => {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only flush responders while dragging') : invariant(false) : void 0;\n asyncMarshal.flush();\n };\n const drop = result => {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragEnd when there is no matching onDragStart') : invariant(false) : void 0;\n dragging = null;\n withTimings('onDragEnd', () => execute(getResponders().onDragEnd, result, announce, preset$1.onDragEnd));\n };\n const abort = () => {\n if (!dragging) {\n return;\n }\n const result = {\n ...getDragStart(dragging.lastCritical, dragging.mode),\n combine: null,\n destination: null,\n reason: 'CANCEL'\n };\n drop(result);\n };\n return {\n beforeCapture,\n beforeStart,\n start,\n update,\n flush,\n drop,\n abort\n };\n});\n\nvar responders = ((getResponders, announce) => {\n const publisher = getPublisher(getResponders, announce);\n return store => next => action => {\n if (action.type === 'BEFORE_INITIAL_CAPTURE') {\n publisher.beforeCapture(action.payload.draggableId, action.payload.movementMode);\n return;\n }\n if (action.type === 'INITIAL_PUBLISH') {\n const critical = action.payload.critical;\n publisher.beforeStart(critical, action.payload.movementMode);\n next(action);\n publisher.start(critical, action.payload.movementMode);\n return;\n }\n if (action.type === 'DROP_COMPLETE') {\n const result = action.payload.completed.result;\n publisher.flush();\n next(action);\n publisher.drop(result);\n return;\n }\n next(action);\n if (action.type === 'FLUSH') {\n publisher.abort();\n return;\n }\n const state = store.getState();\n if (state.phase === 'DRAGGING') {\n publisher.update(state.critical, state.impact);\n }\n };\n});\n\nconst dropAnimationFinishMiddleware = store => next => action => {\n if (action.type !== 'DROP_ANIMATION_FINISHED') {\n next(action);\n return;\n }\n const state = store.getState();\n !(state.phase === 'DROP_ANIMATING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot finish a drop animating when no drop is occurring') : invariant(false) : void 0;\n store.dispatch(completeDrop({\n completed: state.completed\n }));\n};\nvar dropAnimationFinish = dropAnimationFinishMiddleware;\n\nconst dropAnimationFlushOnScrollMiddleware = store => {\n let unbind = null;\n let frameId = null;\n function clear() {\n if (frameId) {\n cancelAnimationFrame(frameId);\n frameId = null;\n }\n if (unbind) {\n unbind();\n unbind = null;\n }\n }\n return next => action => {\n if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATION_FINISHED') {\n clear();\n }\n next(action);\n if (action.type !== 'DROP_ANIMATE') {\n return;\n }\n const binding = {\n eventName: 'scroll',\n options: {\n capture: true,\n passive: false,\n once: true\n },\n fn: function flushDropAnimation() {\n const state = store.getState();\n if (state.phase === 'DROP_ANIMATING') {\n store.dispatch(dropAnimationFinished());\n }\n }\n };\n frameId = requestAnimationFrame(() => {\n frameId = null;\n unbind = bindEvents(window, [binding]);\n });\n };\n};\nvar dropAnimationFlushOnScroll = dropAnimationFlushOnScrollMiddleware;\n\nvar dimensionMarshalStopper = (marshal => () => next => action => {\n if (action.type === 'DROP_COMPLETE' || action.type === 'FLUSH' || action.type === 'DROP_ANIMATE') {\n marshal.stopPublishing();\n }\n next(action);\n});\n\nvar focus = (marshal => {\n let isWatching = false;\n return () => next => action => {\n if (action.type === 'INITIAL_PUBLISH') {\n isWatching = true;\n marshal.tryRecordFocus(action.payload.critical.draggable.id);\n next(action);\n marshal.tryRestoreFocusRecorded();\n return;\n }\n next(action);\n if (!isWatching) {\n return;\n }\n if (action.type === 'FLUSH') {\n isWatching = false;\n marshal.tryRestoreFocusRecorded();\n return;\n }\n if (action.type === 'DROP_COMPLETE') {\n isWatching = false;\n const result = action.payload.completed.result;\n if (result.combine) {\n marshal.tryShiftRecord(result.draggableId, result.combine.draggableId);\n }\n marshal.tryRestoreFocusRecorded();\n }\n };\n});\n\nconst shouldStop = action => action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH';\nvar autoScroll = (autoScroller => store => next => action => {\n if (shouldStop(action)) {\n autoScroller.stop();\n next(action);\n return;\n }\n if (action.type === 'INITIAL_PUBLISH') {\n next(action);\n const state = store.getState();\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected phase to be DRAGGING after INITIAL_PUBLISH') : invariant(false) : void 0;\n autoScroller.start(state);\n return;\n }\n next(action);\n autoScroller.scroll(store.getState());\n});\n\nconst pendingDrop = store => next => action => {\n next(action);\n if (action.type !== 'PUBLISH_WHILE_DRAGGING') {\n return;\n }\n const postActionState = store.getState();\n if (postActionState.phase !== 'DROP_PENDING') {\n return;\n }\n if (postActionState.isWaiting) {\n return;\n }\n store.dispatch(drop$1({\n reason: postActionState.reason\n }));\n};\nvar pendingDrop$1 = pendingDrop;\n\nconst composeEnhancers = process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\n name: '@hello-pangea/dnd'\n}) : compose;\nvar createStore = (_ref => {\n let {\n dimensionMarshal,\n focusMarshal,\n styleMarshal,\n getResponders,\n announce,\n autoScroller\n } = _ref;\n return createStore$1(reducer, composeEnhancers(applyMiddleware(style(styleMarshal), dimensionMarshalStopper(dimensionMarshal), lift(dimensionMarshal), drop, dropAnimationFinish, dropAnimationFlushOnScroll, pendingDrop$1, autoScroll(autoScroller), scrollListener$1, focus(focusMarshal), responders(getResponders, announce))));\n});\n\nconst clean$1 = () => ({\n additions: {},\n removals: {},\n modified: {}\n});\nfunction createPublisher(_ref) {\n let {\n registry,\n callbacks\n } = _ref;\n let staging = clean$1();\n let frameId = null;\n const collect = () => {\n if (frameId) {\n return;\n }\n callbacks.collectionStarting();\n frameId = requestAnimationFrame(() => {\n frameId = null;\n start();\n const {\n additions,\n removals,\n modified\n } = staging;\n const added = Object.keys(additions).map(id => registry.draggable.getById(id).getDimension(origin)).sort((a, b) => a.descriptor.index - b.descriptor.index);\n const updated = Object.keys(modified).map(id => {\n const entry = registry.droppable.getById(id);\n const scroll = entry.callbacks.getScrollWhileDragging();\n return {\n droppableId: id,\n scroll\n };\n });\n const result = {\n additions: added,\n removals: Object.keys(removals),\n modified: updated\n };\n staging = clean$1();\n finish();\n callbacks.publish(result);\n });\n };\n const add = entry => {\n const id = entry.descriptor.id;\n staging.additions[id] = entry;\n staging.modified[entry.descriptor.droppableId] = true;\n if (staging.removals[id]) {\n delete staging.removals[id];\n }\n collect();\n };\n const remove = entry => {\n const descriptor = entry.descriptor;\n staging.removals[descriptor.id] = true;\n staging.modified[descriptor.droppableId] = true;\n if (staging.additions[descriptor.id]) {\n delete staging.additions[descriptor.id];\n }\n collect();\n };\n const stop = () => {\n if (!frameId) {\n return;\n }\n cancelAnimationFrame(frameId);\n frameId = null;\n staging = clean$1();\n };\n return {\n add,\n remove,\n stop\n };\n}\n\nvar getMaxScroll = (_ref => {\n let {\n scrollHeight,\n scrollWidth,\n height,\n width\n } = _ref;\n const maxScroll = subtract({\n x: scrollWidth,\n y: scrollHeight\n }, {\n x: width,\n y: height\n });\n const adjustedMaxScroll = {\n x: Math.max(0, maxScroll.x),\n y: Math.max(0, maxScroll.y)\n };\n return adjustedMaxScroll;\n});\n\nvar getDocumentElement = (() => {\n const doc = document.documentElement;\n !doc ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find document.documentElement') : invariant(false) : void 0;\n return doc;\n});\n\nvar getMaxWindowScroll = (() => {\n const doc = getDocumentElement();\n const maxScroll = getMaxScroll({\n scrollHeight: doc.scrollHeight,\n scrollWidth: doc.scrollWidth,\n width: doc.clientWidth,\n height: doc.clientHeight\n });\n return maxScroll;\n});\n\nvar getViewport = (() => {\n const scroll = getWindowScroll();\n const maxScroll = getMaxWindowScroll();\n const top = scroll.y;\n const left = scroll.x;\n const doc = getDocumentElement();\n const width = doc.clientWidth;\n const height = doc.clientHeight;\n const right = left + width;\n const bottom = top + height;\n const frame = getRect({\n top,\n left,\n right,\n bottom\n });\n const viewport = {\n frame,\n scroll: {\n initial: scroll,\n current: scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n return viewport;\n});\n\nvar getInitialPublish = (_ref => {\n let {\n critical,\n scrollOptions,\n registry\n } = _ref;\n start();\n const viewport = getViewport();\n const windowScroll = viewport.scroll.current;\n const home = critical.droppable;\n const droppables = registry.droppable.getAllByType(home.type).map(entry => entry.callbacks.getDimensionAndWatchScroll(windowScroll, scrollOptions));\n const draggables = registry.draggable.getAllByType(critical.draggable.type).map(entry => entry.getDimension(windowScroll));\n const dimensions = {\n draggables: toDraggableMap(draggables),\n droppables: toDroppableMap(droppables)\n };\n finish();\n const result = {\n dimensions,\n critical,\n viewport\n };\n return result;\n});\n\nfunction shouldPublishUpdate(registry, dragging, entry) {\n if (entry.descriptor.id === dragging.id) {\n return false;\n }\n if (entry.descriptor.type !== dragging.type) {\n return false;\n }\n const home = registry.droppable.getById(entry.descriptor.droppableId);\n if (home.descriptor.mode !== 'virtual') {\n process.env.NODE_ENV !== \"production\" ? warning(`\n You are attempting to add or remove a Draggable [id: ${entry.descriptor.id}]\n while a drag is occurring. This is only supported for virtual lists.\n\n See https://github.com/hello-pangea/dnd/blob/main/docs/patterns/virtual-lists.md\n `) : void 0;\n return false;\n }\n return true;\n}\nvar createDimensionMarshal = ((registry, callbacks) => {\n let collection = null;\n const publisher = createPublisher({\n callbacks: {\n publish: callbacks.publishWhileDragging,\n collectionStarting: callbacks.collectionStarting\n },\n registry\n });\n const updateDroppableIsEnabled = (id, isEnabled) => {\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Cannot update is enabled flag of Droppable ${id} as it is not registered`) : invariant(false) : void 0;\n if (!collection) {\n return;\n }\n callbacks.updateDroppableIsEnabled({\n id,\n isEnabled\n });\n };\n const updateDroppableIsCombineEnabled = (id, isCombineEnabled) => {\n if (!collection) {\n return;\n }\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Cannot update isCombineEnabled flag of Droppable ${id} as it is not registered`) : invariant(false) : void 0;\n callbacks.updateDroppableIsCombineEnabled({\n id,\n isCombineEnabled\n });\n };\n const updateDroppableScroll = (id, newScroll) => {\n if (!collection) {\n return;\n }\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Cannot update the scroll on Droppable ${id} as it is not registered`) : invariant(false) : void 0;\n callbacks.updateDroppableScroll({\n id,\n newScroll\n });\n };\n const scrollDroppable = (id, change) => {\n if (!collection) {\n return;\n }\n registry.droppable.getById(id).callbacks.scroll(change);\n };\n const stopPublishing = () => {\n if (!collection) {\n return;\n }\n publisher.stop();\n const home = collection.critical.droppable;\n registry.droppable.getAllByType(home.type).forEach(entry => entry.callbacks.dragStopped());\n collection.unsubscribe();\n collection = null;\n };\n const subscriber = event => {\n !collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should only be subscribed when a collection is occurring') : invariant(false) : void 0;\n const dragging = collection.critical.draggable;\n if (event.type === 'ADDITION') {\n if (shouldPublishUpdate(registry, dragging, event.value)) {\n publisher.add(event.value);\n }\n }\n if (event.type === 'REMOVAL') {\n if (shouldPublishUpdate(registry, dragging, event.value)) {\n publisher.remove(event.value);\n }\n }\n };\n const startPublishing = request => {\n !!collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start capturing critical dimensions as there is already a collection') : invariant(false) : void 0;\n const entry = registry.draggable.getById(request.draggableId);\n const home = registry.droppable.getById(entry.descriptor.droppableId);\n const critical = {\n draggable: entry.descriptor,\n droppable: home.descriptor\n };\n const unsubscribe = registry.subscribe(subscriber);\n collection = {\n critical,\n unsubscribe\n };\n return getInitialPublish({\n critical,\n registry,\n scrollOptions: request.scrollOptions\n });\n };\n const marshal = {\n updateDroppableIsEnabled,\n updateDroppableIsCombineEnabled,\n scrollDroppable,\n updateDroppableScroll,\n startPublishing,\n stopPublishing\n };\n return marshal;\n});\n\nvar canStartDrag = ((state, id) => {\n if (state.phase === 'IDLE') {\n return true;\n }\n if (state.phase !== 'DROP_ANIMATING') {\n return false;\n }\n if (state.completed.result.draggableId === id) {\n return false;\n }\n return state.completed.result.reason === 'DROP';\n});\n\nvar scrollWindow = (change => {\n window.scrollBy(change.x, change.y);\n});\n\nconst getScrollableDroppables = memoizeOne(droppables => toDroppableList(droppables).filter(droppable => {\n if (!droppable.isEnabled) {\n return false;\n }\n if (!droppable.frame) {\n return false;\n }\n return true;\n}));\nconst getScrollableDroppableOver = (target, droppables) => {\n const maybe = getScrollableDroppables(droppables).find(droppable => {\n !droppable.frame ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid result') : invariant(false) : void 0;\n return isPositionInFrame(droppable.frame.pageMarginBox)(target);\n }) || null;\n return maybe;\n};\nvar getBestScrollableDroppable = (_ref => {\n let {\n center,\n destination,\n droppables\n } = _ref;\n if (destination) {\n const dimension = droppables[destination];\n if (!dimension.frame) {\n return null;\n }\n return dimension;\n }\n const dimension = getScrollableDroppableOver(center, droppables);\n return dimension;\n});\n\nconst defaultAutoScrollerOptions = {\n startFromPercentage: 0.25,\n maxScrollAtPercentage: 0.05,\n maxPixelScroll: 28,\n ease: percentage => percentage ** 2,\n durationDampening: {\n stopDampeningAt: 1200,\n accelerateAt: 360\n },\n disabled: false\n};\n\nvar getDistanceThresholds = (function (container, axis, getAutoScrollerOptions) {\n if (getAutoScrollerOptions === void 0) {\n getAutoScrollerOptions = () => defaultAutoScrollerOptions;\n }\n const autoScrollerOptions = getAutoScrollerOptions();\n const startScrollingFrom = container[axis.size] * autoScrollerOptions.startFromPercentage;\n const maxScrollValueAt = container[axis.size] * autoScrollerOptions.maxScrollAtPercentage;\n const thresholds = {\n startScrollingFrom,\n maxScrollValueAt\n };\n return thresholds;\n});\n\nvar getPercentage = (_ref => {\n let {\n startOfRange,\n endOfRange,\n current\n } = _ref;\n const range = endOfRange - startOfRange;\n if (range === 0) {\n process.env.NODE_ENV !== \"production\" ? warning(`\n Detected distance range of 0 in the fluid auto scroller\n This is unexpected and would cause a divide by 0 issue.\n Not allowing an auto scroll\n `) : void 0;\n return 0;\n }\n const currentInRange = current - startOfRange;\n const percentage = currentInRange / range;\n return percentage;\n});\n\nvar minScroll = 1;\n\nvar getValueFromDistance = (function (distanceToEdge, thresholds, getAutoScrollerOptions) {\n if (getAutoScrollerOptions === void 0) {\n getAutoScrollerOptions = () => defaultAutoScrollerOptions;\n }\n const autoScrollerOptions = getAutoScrollerOptions();\n if (distanceToEdge > thresholds.startScrollingFrom) {\n return 0;\n }\n if (distanceToEdge <= thresholds.maxScrollValueAt) {\n return autoScrollerOptions.maxPixelScroll;\n }\n if (distanceToEdge === thresholds.startScrollingFrom) {\n return minScroll;\n }\n const percentageFromMaxScrollValueAt = getPercentage({\n startOfRange: thresholds.maxScrollValueAt,\n endOfRange: thresholds.startScrollingFrom,\n current: distanceToEdge\n });\n const percentageFromStartScrollingFrom = 1 - percentageFromMaxScrollValueAt;\n const scroll = autoScrollerOptions.maxPixelScroll * autoScrollerOptions.ease(percentageFromStartScrollingFrom);\n return Math.ceil(scroll);\n});\n\nvar dampenValueByTime = ((proposedScroll, dragStartTime, getAutoScrollerOptions) => {\n const autoScrollerOptions = getAutoScrollerOptions();\n const accelerateAt = autoScrollerOptions.durationDampening.accelerateAt;\n const stopAt = autoScrollerOptions.durationDampening.stopDampeningAt;\n const startOfRange = dragStartTime;\n const endOfRange = stopAt;\n const now = Date.now();\n const runTime = now - startOfRange;\n if (runTime >= stopAt) {\n return proposedScroll;\n }\n if (runTime < accelerateAt) {\n return minScroll;\n }\n const betweenAccelerateAtAndStopAtPercentage = getPercentage({\n startOfRange: accelerateAt,\n endOfRange,\n current: runTime\n });\n const scroll = proposedScroll * autoScrollerOptions.ease(betweenAccelerateAtAndStopAtPercentage);\n return Math.ceil(scroll);\n});\n\nvar getValue = (_ref => {\n let {\n distanceToEdge,\n thresholds,\n dragStartTime,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n } = _ref;\n const scroll = getValueFromDistance(distanceToEdge, thresholds, getAutoScrollerOptions);\n if (scroll === 0) {\n return 0;\n }\n if (!shouldUseTimeDampening) {\n return scroll;\n }\n return Math.max(dampenValueByTime(scroll, dragStartTime, getAutoScrollerOptions), minScroll);\n});\n\nvar getScrollOnAxis = (_ref => {\n let {\n container,\n distanceToEdges,\n dragStartTime,\n axis,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n } = _ref;\n const thresholds = getDistanceThresholds(container, axis, getAutoScrollerOptions);\n const isCloserToEnd = distanceToEdges[axis.end] < distanceToEdges[axis.start];\n if (isCloserToEnd) {\n return getValue({\n distanceToEdge: distanceToEdges[axis.end],\n thresholds,\n dragStartTime,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n });\n }\n return -1 * getValue({\n distanceToEdge: distanceToEdges[axis.start],\n thresholds,\n dragStartTime,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n });\n});\n\nvar adjustForSizeLimits = (_ref => {\n let {\n container,\n subject,\n proposedScroll\n } = _ref;\n const isTooBigVertically = subject.height > container.height;\n const isTooBigHorizontally = subject.width > container.width;\n if (!isTooBigHorizontally && !isTooBigVertically) {\n return proposedScroll;\n }\n if (isTooBigHorizontally && isTooBigVertically) {\n return null;\n }\n return {\n x: isTooBigHorizontally ? 0 : proposedScroll.x,\n y: isTooBigVertically ? 0 : proposedScroll.y\n };\n});\n\nconst clean = apply(value => value === 0 ? 0 : value);\nvar getScroll$1 = (_ref => {\n let {\n dragStartTime,\n container,\n subject,\n center,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n } = _ref;\n const distanceToEdges = {\n top: center.y - container.top,\n right: container.right - center.x,\n bottom: container.bottom - center.y,\n left: center.x - container.left\n };\n const y = getScrollOnAxis({\n container,\n distanceToEdges,\n dragStartTime,\n axis: vertical,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n });\n const x = getScrollOnAxis({\n container,\n distanceToEdges,\n dragStartTime,\n axis: horizontal,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n });\n const required = clean({\n x,\n y\n });\n if (isEqual$1(required, origin)) {\n return null;\n }\n const limited = adjustForSizeLimits({\n container,\n subject,\n proposedScroll: required\n });\n if (!limited) {\n return null;\n }\n return isEqual$1(limited, origin) ? null : limited;\n});\n\nconst smallestSigned = apply(value => {\n if (value === 0) {\n return 0;\n }\n return value > 0 ? 1 : -1;\n});\nconst getOverlap = (() => {\n const getRemainder = (target, max) => {\n if (target < 0) {\n return target;\n }\n if (target > max) {\n return target - max;\n }\n return 0;\n };\n return _ref => {\n let {\n current,\n max,\n change\n } = _ref;\n const targetScroll = add(current, change);\n const overlap = {\n x: getRemainder(targetScroll.x, max.x),\n y: getRemainder(targetScroll.y, max.y)\n };\n if (isEqual$1(overlap, origin)) {\n return null;\n }\n return overlap;\n };\n})();\nconst canPartiallyScroll = _ref2 => {\n let {\n max: rawMax,\n current,\n change\n } = _ref2;\n const max = {\n x: Math.max(current.x, rawMax.x),\n y: Math.max(current.y, rawMax.y)\n };\n const smallestChange = smallestSigned(change);\n const overlap = getOverlap({\n max,\n current,\n change: smallestChange\n });\n if (!overlap) {\n return true;\n }\n if (smallestChange.x !== 0 && overlap.x === 0) {\n return true;\n }\n if (smallestChange.y !== 0 && overlap.y === 0) {\n return true;\n }\n return false;\n};\nconst canScrollWindow = (viewport, change) => canPartiallyScroll({\n current: viewport.scroll.current,\n max: viewport.scroll.max,\n change\n});\nconst getWindowOverlap = (viewport, change) => {\n if (!canScrollWindow(viewport, change)) {\n return null;\n }\n const max = viewport.scroll.max;\n const current = viewport.scroll.current;\n return getOverlap({\n current,\n max,\n change\n });\n};\nconst canScrollDroppable = (droppable, change) => {\n const frame = droppable.frame;\n if (!frame) {\n return false;\n }\n return canPartiallyScroll({\n current: frame.scroll.current,\n max: frame.scroll.max,\n change\n });\n};\nconst getDroppableOverlap = (droppable, change) => {\n const frame = droppable.frame;\n if (!frame) {\n return null;\n }\n if (!canScrollDroppable(droppable, change)) {\n return null;\n }\n return getOverlap({\n current: frame.scroll.current,\n max: frame.scroll.max,\n change\n });\n};\n\nvar getWindowScrollChange = (_ref => {\n let {\n viewport,\n subject,\n center,\n dragStartTime,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n } = _ref;\n const scroll = getScroll$1({\n dragStartTime,\n container: viewport.frame,\n subject,\n center,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n });\n return scroll && canScrollWindow(viewport, scroll) ? scroll : null;\n});\n\nvar getDroppableScrollChange = (_ref => {\n let {\n droppable,\n subject,\n center,\n dragStartTime,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n } = _ref;\n const frame = droppable.frame;\n if (!frame) {\n return null;\n }\n const scroll = getScroll$1({\n dragStartTime,\n container: frame.pageMarginBox,\n subject,\n center,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n });\n return scroll && canScrollDroppable(droppable, scroll) ? scroll : null;\n});\n\nvar scroll = (_ref => {\n let {\n state,\n dragStartTime,\n shouldUseTimeDampening,\n scrollWindow,\n scrollDroppable,\n getAutoScrollerOptions\n } = _ref;\n const center = state.current.page.borderBoxCenter;\n const draggable = state.dimensions.draggables[state.critical.draggable.id];\n const subject = draggable.page.marginBox;\n if (state.isWindowScrollAllowed) {\n const viewport = state.viewport;\n const change = getWindowScrollChange({\n dragStartTime,\n viewport,\n subject,\n center,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n });\n if (change) {\n scrollWindow(change);\n return;\n }\n }\n const droppable = getBestScrollableDroppable({\n center,\n destination: whatIsDraggedOver(state.impact),\n droppables: state.dimensions.droppables\n });\n if (!droppable) {\n return;\n }\n const change = getDroppableScrollChange({\n dragStartTime,\n droppable,\n subject,\n center,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n });\n if (change) {\n scrollDroppable(droppable.descriptor.id, change);\n }\n});\n\nvar createFluidScroller = (_ref => {\n let {\n scrollWindow,\n scrollDroppable,\n getAutoScrollerOptions = () => defaultAutoScrollerOptions\n } = _ref;\n const scheduleWindowScroll = rafSchd(scrollWindow);\n const scheduleDroppableScroll = rafSchd(scrollDroppable);\n let dragging = null;\n const tryScroll = state => {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fluid scroll if not dragging') : invariant(false) : void 0;\n const {\n shouldUseTimeDampening,\n dragStartTime\n } = dragging;\n scroll({\n state,\n scrollWindow: scheduleWindowScroll,\n scrollDroppable: scheduleDroppableScroll,\n dragStartTime,\n shouldUseTimeDampening,\n getAutoScrollerOptions\n });\n };\n const start$1 = state => {\n start();\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start auto scrolling when already started') : invariant(false) : void 0;\n const dragStartTime = Date.now();\n let wasScrollNeeded = false;\n const fakeScrollCallback = () => {\n wasScrollNeeded = true;\n };\n scroll({\n state,\n dragStartTime: 0,\n shouldUseTimeDampening: false,\n scrollWindow: fakeScrollCallback,\n scrollDroppable: fakeScrollCallback,\n getAutoScrollerOptions\n });\n dragging = {\n dragStartTime,\n shouldUseTimeDampening: wasScrollNeeded\n };\n finish();\n if (wasScrollNeeded) {\n tryScroll(state);\n }\n };\n const stop = () => {\n if (!dragging) {\n return;\n }\n scheduleWindowScroll.cancel();\n scheduleDroppableScroll.cancel();\n dragging = null;\n };\n return {\n start: start$1,\n stop,\n scroll: tryScroll\n };\n});\n\nvar createJumpScroller = (_ref => {\n let {\n move,\n scrollDroppable,\n scrollWindow\n } = _ref;\n const moveByOffset = (state, offset) => {\n const client = add(state.current.client.selection, offset);\n move({\n client\n });\n };\n const scrollDroppableAsMuchAsItCan = (droppable, change) => {\n if (!canScrollDroppable(droppable, change)) {\n return change;\n }\n const overlap = getDroppableOverlap(droppable, change);\n if (!overlap) {\n scrollDroppable(droppable.descriptor.id, change);\n return null;\n }\n const whatTheDroppableCanScroll = subtract(change, overlap);\n scrollDroppable(droppable.descriptor.id, whatTheDroppableCanScroll);\n const remainder = subtract(change, whatTheDroppableCanScroll);\n return remainder;\n };\n const scrollWindowAsMuchAsItCan = (isWindowScrollAllowed, viewport, change) => {\n if (!isWindowScrollAllowed) {\n return change;\n }\n if (!canScrollWindow(viewport, change)) {\n return change;\n }\n const overlap = getWindowOverlap(viewport, change);\n if (!overlap) {\n scrollWindow(change);\n return null;\n }\n const whatTheWindowCanScroll = subtract(change, overlap);\n scrollWindow(whatTheWindowCanScroll);\n const remainder = subtract(change, whatTheWindowCanScroll);\n return remainder;\n };\n const jumpScroller = state => {\n const request = state.scrollJumpRequest;\n if (!request) {\n return;\n }\n const destination = whatIsDraggedOver(state.impact);\n !destination ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot perform a jump scroll when there is no destination') : invariant(false) : void 0;\n const droppableRemainder = scrollDroppableAsMuchAsItCan(state.dimensions.droppables[destination], request);\n if (!droppableRemainder) {\n return;\n }\n const viewport = state.viewport;\n const windowRemainder = scrollWindowAsMuchAsItCan(state.isWindowScrollAllowed, viewport, droppableRemainder);\n if (!windowRemainder) {\n return;\n }\n moveByOffset(state, windowRemainder);\n };\n return jumpScroller;\n});\n\nvar createAutoScroller = (_ref => {\n let {\n scrollDroppable,\n scrollWindow,\n move,\n getAutoScrollerOptions\n } = _ref;\n const fluidScroller = createFluidScroller({\n scrollWindow,\n scrollDroppable,\n getAutoScrollerOptions\n });\n const jumpScroll = createJumpScroller({\n move,\n scrollWindow,\n scrollDroppable\n });\n const scroll = state => {\n const autoScrollerOptions = getAutoScrollerOptions();\n if (autoScrollerOptions.disabled || state.phase !== 'DRAGGING') {\n return;\n }\n if (state.movementMode === 'FLUID') {\n fluidScroller.scroll(state);\n return;\n }\n if (!state.scrollJumpRequest) {\n return;\n }\n jumpScroll(state);\n };\n const scroller = {\n scroll,\n start: fluidScroller.start,\n stop: fluidScroller.stop\n };\n return scroller;\n});\n\nconst prefix = 'data-rfd';\nconst dragHandle = (() => {\n const base = `${prefix}-drag-handle`;\n return {\n base,\n draggableId: `${base}-draggable-id`,\n contextId: `${base}-context-id`\n };\n})();\nconst draggable = (() => {\n const base = `${prefix}-draggable`;\n return {\n base,\n contextId: `${base}-context-id`,\n id: `${base}-id`\n };\n})();\nconst droppable = (() => {\n const base = `${prefix}-droppable`;\n return {\n base,\n contextId: `${base}-context-id`,\n id: `${base}-id`\n };\n})();\nconst scrollContainer = {\n contextId: `${prefix}-scroll-container-context-id`\n};\n\nconst makeGetSelector = context => attribute => `[${attribute}=\"${context}\"]`;\nconst getStyles = (rules, property) => rules.map(rule => {\n const value = rule.styles[property];\n if (!value) {\n return '';\n }\n return `${rule.selector} { ${value} }`;\n}).join(' ');\nconst noPointerEvents = 'pointer-events: none;';\nvar getStyles$1 = (contextId => {\n const getSelector = makeGetSelector(contextId);\n const dragHandle$1 = (() => {\n const grabCursor = `\n cursor: -webkit-grab;\n cursor: grab;\n `;\n return {\n selector: getSelector(dragHandle.contextId),\n styles: {\n always: `\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n touch-action: manipulation;\n `,\n resting: grabCursor,\n dragging: noPointerEvents,\n dropAnimating: grabCursor\n }\n };\n })();\n const draggable$1 = (() => {\n const transition = `\n transition: ${transitions.outOfTheWay};\n `;\n return {\n selector: getSelector(draggable.contextId),\n styles: {\n dragging: transition,\n dropAnimating: transition,\n userCancel: transition\n }\n };\n })();\n const droppable$1 = {\n selector: getSelector(droppable.contextId),\n styles: {\n always: `overflow-anchor: none;`\n }\n };\n const body = {\n selector: 'body',\n styles: {\n dragging: `\n cursor: grabbing;\n cursor: -webkit-grabbing;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n overflow-anchor: none;\n `\n }\n };\n const rules = [draggable$1, dragHandle$1, droppable$1, body];\n return {\n always: getStyles(rules, 'always'),\n resting: getStyles(rules, 'resting'),\n dragging: getStyles(rules, 'dragging'),\n dropAnimating: getStyles(rules, 'dropAnimating'),\n userCancel: getStyles(rules, 'userCancel')\n };\n});\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect$1 : useEffect;\nvar useLayoutEffect = useIsomorphicLayoutEffect;\n\nconst getHead = () => {\n const head = document.querySelector('head');\n !head ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find the head to append a style to') : invariant(false) : void 0;\n return head;\n};\nconst createStyleEl = nonce => {\n const el = document.createElement('style');\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n el.type = 'text/css';\n return el;\n};\nfunction useStyleMarshal(contextId, nonce) {\n const styles = useMemo(() => getStyles$1(contextId), [contextId]);\n const alwaysRef = useRef(null);\n const dynamicRef = useRef(null);\n const setDynamicStyle = useCallback(memoizeOne(proposed => {\n const el = dynamicRef.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0;\n el.textContent = proposed;\n }), []);\n const setAlwaysStyle = useCallback(proposed => {\n const el = alwaysRef.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0;\n el.textContent = proposed;\n }, []);\n useLayoutEffect(() => {\n !(!alwaysRef.current && !dynamicRef.current) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'style elements already mounted') : invariant(false) : void 0;\n const always = createStyleEl(nonce);\n const dynamic = createStyleEl(nonce);\n alwaysRef.current = always;\n dynamicRef.current = dynamic;\n always.setAttribute(`${prefix}-always`, contextId);\n dynamic.setAttribute(`${prefix}-dynamic`, contextId);\n getHead().appendChild(always);\n getHead().appendChild(dynamic);\n setAlwaysStyle(styles.always);\n setDynamicStyle(styles.resting);\n return () => {\n const remove = ref => {\n const current = ref.current;\n !current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot unmount ref as it is not set') : invariant(false) : void 0;\n getHead().removeChild(current);\n ref.current = null;\n };\n remove(alwaysRef);\n remove(dynamicRef);\n };\n }, [nonce, setAlwaysStyle, setDynamicStyle, styles.always, styles.resting, contextId]);\n const dragging = useCallback(() => setDynamicStyle(styles.dragging), [setDynamicStyle, styles.dragging]);\n const dropping = useCallback(reason => {\n if (reason === 'DROP') {\n setDynamicStyle(styles.dropAnimating);\n return;\n }\n setDynamicStyle(styles.userCancel);\n }, [setDynamicStyle, styles.dropAnimating, styles.userCancel]);\n const resting = useCallback(() => {\n if (!dynamicRef.current) {\n return;\n }\n setDynamicStyle(styles.resting);\n }, [setDynamicStyle, styles.resting]);\n const marshal = useMemo(() => ({\n dragging,\n dropping,\n resting\n }), [dragging, dropping, resting]);\n return marshal;\n}\n\nfunction querySelectorAll(parentNode, selector) {\n return Array.from(parentNode.querySelectorAll(selector));\n}\n\nvar getWindowFromEl = (el => el?.ownerDocument?.defaultView || window);\n\nfunction isHtmlElement(el) {\n return el instanceof getWindowFromEl(el).HTMLElement;\n}\n\nfunction findDragHandle(contextId, draggableId) {\n const selector = `[${dragHandle.contextId}=\"${contextId}\"]`;\n const possible = querySelectorAll(document, selector);\n if (!possible.length) {\n process.env.NODE_ENV !== \"production\" ? warning(`Unable to find any drag handles in the context \"${contextId}\"`) : void 0;\n return null;\n }\n const handle = possible.find(el => {\n return el.getAttribute(dragHandle.draggableId) === draggableId;\n });\n if (!handle) {\n process.env.NODE_ENV !== \"production\" ? warning(`Unable to find drag handle with id \"${draggableId}\" as no handle with a matching id was found`) : void 0;\n return null;\n }\n if (!isHtmlElement(handle)) {\n process.env.NODE_ENV !== \"production\" ? warning('drag handle needs to be a HTMLElement') : void 0;\n return null;\n }\n return handle;\n}\n\nfunction useFocusMarshal(contextId) {\n const entriesRef = useRef({});\n const recordRef = useRef(null);\n const restoreFocusFrameRef = useRef(null);\n const isMountedRef = useRef(false);\n const register = useCallback(function register(id, focus) {\n const entry = {\n id,\n focus\n };\n entriesRef.current[id] = entry;\n return function unregister() {\n const entries = entriesRef.current;\n const current = entries[id];\n if (current !== entry) {\n delete entries[id];\n }\n };\n }, []);\n const tryGiveFocus = useCallback(function tryGiveFocus(tryGiveFocusTo) {\n const handle = findDragHandle(contextId, tryGiveFocusTo);\n if (handle && handle !== document.activeElement) {\n handle.focus();\n }\n }, [contextId]);\n const tryShiftRecord = useCallback(function tryShiftRecord(previous, redirectTo) {\n if (recordRef.current === previous) {\n recordRef.current = redirectTo;\n }\n }, []);\n const tryRestoreFocusRecorded = useCallback(function tryRestoreFocusRecorded() {\n if (restoreFocusFrameRef.current) {\n return;\n }\n if (!isMountedRef.current) {\n return;\n }\n restoreFocusFrameRef.current = requestAnimationFrame(() => {\n restoreFocusFrameRef.current = null;\n const record = recordRef.current;\n if (record) {\n tryGiveFocus(record);\n }\n });\n }, [tryGiveFocus]);\n const tryRecordFocus = useCallback(function tryRecordFocus(id) {\n recordRef.current = null;\n const focused = document.activeElement;\n if (!focused) {\n return;\n }\n if (focused.getAttribute(dragHandle.draggableId) !== id) {\n return;\n }\n recordRef.current = id;\n }, []);\n useLayoutEffect(() => {\n isMountedRef.current = true;\n return function clearFrameOnUnmount() {\n isMountedRef.current = false;\n const frameId = restoreFocusFrameRef.current;\n if (frameId) {\n cancelAnimationFrame(frameId);\n }\n };\n }, []);\n const marshal = useMemo(() => ({\n register,\n tryRecordFocus,\n tryRestoreFocusRecorded,\n tryShiftRecord\n }), [register, tryRecordFocus, tryRestoreFocusRecorded, tryShiftRecord]);\n return marshal;\n}\n\nfunction createRegistry() {\n const entries = {\n draggables: {},\n droppables: {}\n };\n const subscribers = [];\n function subscribe(cb) {\n subscribers.push(cb);\n return function unsubscribe() {\n const index = subscribers.indexOf(cb);\n if (index === -1) {\n return;\n }\n subscribers.splice(index, 1);\n };\n }\n function notify(event) {\n if (subscribers.length) {\n subscribers.forEach(cb => cb(event));\n }\n }\n function findDraggableById(id) {\n return entries.draggables[id] || null;\n }\n function getDraggableById(id) {\n const entry = findDraggableById(id);\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Cannot find draggable entry with id [${id}]`) : invariant(false) : void 0;\n return entry;\n }\n const draggableAPI = {\n register: entry => {\n entries.draggables[entry.descriptor.id] = entry;\n notify({\n type: 'ADDITION',\n value: entry\n });\n },\n update: (entry, last) => {\n const current = entries.draggables[last.descriptor.id];\n if (!current) {\n return;\n }\n if (current.uniqueId !== entry.uniqueId) {\n return;\n }\n delete entries.draggables[last.descriptor.id];\n entries.draggables[entry.descriptor.id] = entry;\n },\n unregister: entry => {\n const draggableId = entry.descriptor.id;\n const current = findDraggableById(draggableId);\n if (!current) {\n return;\n }\n if (entry.uniqueId !== current.uniqueId) {\n return;\n }\n delete entries.draggables[draggableId];\n if (entries.droppables[entry.descriptor.droppableId]) {\n notify({\n type: 'REMOVAL',\n value: entry\n });\n }\n },\n getById: getDraggableById,\n findById: findDraggableById,\n exists: id => Boolean(findDraggableById(id)),\n getAllByType: type => Object.values(entries.draggables).filter(entry => entry.descriptor.type === type)\n };\n function findDroppableById(id) {\n return entries.droppables[id] || null;\n }\n function getDroppableById(id) {\n const entry = findDroppableById(id);\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Cannot find droppable entry with id [${id}]`) : invariant(false) : void 0;\n return entry;\n }\n const droppableAPI = {\n register: entry => {\n entries.droppables[entry.descriptor.id] = entry;\n },\n unregister: entry => {\n const current = findDroppableById(entry.descriptor.id);\n if (!current) {\n return;\n }\n if (entry.uniqueId !== current.uniqueId) {\n return;\n }\n delete entries.droppables[entry.descriptor.id];\n },\n getById: getDroppableById,\n findById: findDroppableById,\n exists: id => Boolean(findDroppableById(id)),\n getAllByType: type => Object.values(entries.droppables).filter(entry => entry.descriptor.type === type)\n };\n function clean() {\n entries.draggables = {};\n entries.droppables = {};\n subscribers.length = 0;\n }\n return {\n draggable: draggableAPI,\n droppable: droppableAPI,\n subscribe,\n clean\n };\n}\n\nfunction useRegistry() {\n const registry = useMemo(createRegistry, []);\n useEffect(() => {\n return function unmount() {\n if (React.version.startsWith('16') || React.version.startsWith('17')) {\n requestAnimationFrame(registry.clean);\n } else {\n registry.clean();\n }\n };\n }, [registry]);\n return registry;\n}\n\nvar StoreContext = React.createContext(null);\n\nvar getBodyElement = (() => {\n const body = document.body;\n !body ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find document.body') : invariant(false) : void 0;\n return body;\n});\n\nconst visuallyHidden = {\n position: 'absolute',\n width: '1px',\n height: '1px',\n margin: '-1px',\n border: '0',\n padding: '0',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n 'clip-path': 'inset(100%)'\n};\nvar visuallyHidden$1 = visuallyHidden;\n\nconst getId = contextId => `rfd-announcement-${contextId}`;\nfunction useAnnouncer(contextId) {\n const id = useMemo(() => getId(contextId), [contextId]);\n const ref = useRef(null);\n useEffect(function setup() {\n const el = document.createElement('div');\n ref.current = el;\n el.id = id;\n el.setAttribute('aria-live', 'assertive');\n el.setAttribute('aria-atomic', 'true');\n _extends(el.style, visuallyHidden$1);\n getBodyElement().appendChild(el);\n return function cleanup() {\n setTimeout(function remove() {\n const body = getBodyElement();\n if (body.contains(el)) {\n body.removeChild(el);\n }\n if (el === ref.current) {\n ref.current = null;\n }\n });\n };\n }, [id]);\n const announce = useCallback(message => {\n const el = ref.current;\n if (el) {\n el.textContent = message;\n return;\n }\n process.env.NODE_ENV !== \"production\" ? warning(`\n A screen reader message was trying to be announced but it was unable to do so.\n This can occur if you unmount your <DragDropContext /> in your onDragEnd.\n Consider calling provided.announce() before the unmount so that the instruction will\n not be lost for users relying on a screen reader.\n\n Message not passed to screen reader:\n\n \"${message}\"\n `) : void 0;\n }, []);\n return announce;\n}\n\nlet count$1 = 0;\nconst defaults = {\n separator: '::'\n};\nfunction resetDeprecatedUniqueId() {\n count$1 = 0;\n}\nfunction useDeprecatedUniqueId(prefix, options) {\n if (options === void 0) {\n options = defaults;\n }\n return useMemo(() => `${prefix}${options.separator}${count$1++}`, [options.separator, prefix]);\n}\nfunction useUniqueId(prefix, options) {\n if (options === void 0) {\n options = defaults;\n }\n const id = React.useId();\n return useMemo(() => `${prefix}${options.separator}${id}`, [options.separator, prefix, id]);\n}\nvar useUniqueId$1 = 'useId' in React ? useUniqueId : useDeprecatedUniqueId;\n\nfunction getElementId(_ref) {\n let {\n contextId,\n uniqueId\n } = _ref;\n return `rfd-hidden-text-${contextId}-${uniqueId}`;\n}\nfunction useHiddenTextElement(_ref2) {\n let {\n contextId,\n text\n } = _ref2;\n const uniqueId = useUniqueId$1('hidden-text', {\n separator: '-'\n });\n const id = useMemo(() => getElementId({\n contextId,\n uniqueId\n }), [uniqueId, contextId]);\n useEffect(function mount() {\n const el = document.createElement('div');\n el.id = id;\n el.textContent = text;\n el.style.display = 'none';\n getBodyElement().appendChild(el);\n return function unmount() {\n const body = getBodyElement();\n if (body.contains(el)) {\n body.removeChild(el);\n }\n };\n }, [id, text]);\n return id;\n}\n\nvar AppContext = React.createContext(null);\n\nvar peerDependencies = {\n\treact: \"^16.8.5 || ^17.0.0 || ^18.0.0\",\n\t\"react-dom\": \"^16.8.5 || ^17.0.0 || ^18.0.0\"\n};\n\nconst semver = /(\\d+)\\.(\\d+)\\.(\\d+)/;\nconst getVersion = value => {\n const result = semver.exec(value);\n !(result != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Unable to parse React version ${value}`) : invariant(false) : void 0;\n const major = Number(result[1]);\n const minor = Number(result[2]);\n const patch = Number(result[3]);\n return {\n major,\n minor,\n patch,\n raw: value\n };\n};\nconst isSatisfied = (expected, actual) => {\n if (actual.major > expected.major) {\n return true;\n }\n if (actual.major < expected.major) {\n return false;\n }\n if (actual.minor > expected.minor) {\n return true;\n }\n if (actual.minor < expected.minor) {\n return false;\n }\n return actual.patch >= expected.patch;\n};\nvar checkReactVersion = ((peerDepValue, actualValue) => {\n const peerDep = getVersion(peerDepValue);\n const actual = getVersion(actualValue);\n if (isSatisfied(peerDep, actual)) {\n return;\n }\n process.env.NODE_ENV !== \"production\" ? warning(`\n React version: [${actual.raw}]\n does not satisfy expected peer dependency version: [${peerDep.raw}]\n\n This can result in run time bugs, and even fatal crashes\n `) : void 0;\n});\n\nconst suffix = `\n We expect a html5 doctype: <!doctype html>\n This is to ensure consistent browser layout and measurement\n\n More information: https://github.com/hello-pangea/dnd/blob/main/docs/guides/doctype.md\n`;\nvar checkDoctype = (doc => {\n const doctype = doc.doctype;\n if (!doctype) {\n process.env.NODE_ENV !== \"production\" ? warning(`\n No <!doctype html> found.\n\n ${suffix}\n `) : void 0;\n return;\n }\n if (doctype.name.toLowerCase() !== 'html') {\n process.env.NODE_ENV !== \"production\" ? warning(`\n Unexpected <!doctype> found: (${doctype.name})\n\n ${suffix}\n `) : void 0;\n }\n if (doctype.publicId !== '') {\n process.env.NODE_ENV !== \"production\" ? warning(`\n Unexpected <!doctype> publicId found: (${doctype.publicId})\n A html5 doctype does not have a publicId\n\n ${suffix}\n `) : void 0;\n }\n});\n\nfunction useDev(useHook) {\n if (process.env.NODE_ENV !== 'production') {\n useHook();\n }\n}\n\nfunction useDevSetupWarning(fn, inputs) {\n useDev(() => {\n useEffect(() => {\n try {\n fn();\n } catch (e) {\n error(`\n A setup problem was encountered.\n\n > ${e.message}\n `);\n }\n }, inputs);\n });\n}\n\nfunction useStartupValidation() {\n useDevSetupWarning(() => {\n checkReactVersion(peerDependencies.react, React.version);\n checkDoctype(document);\n }, []);\n}\n\nfunction usePrevious(current) {\n const ref = useRef(current);\n useEffect(() => {\n ref.current = current;\n });\n return ref;\n}\n\nfunction create() {\n let lock = null;\n function isClaimed() {\n return Boolean(lock);\n }\n function isActive(value) {\n return value === lock;\n }\n function claim(abandon) {\n !!lock ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot claim lock as it is already claimed') : invariant(false) : void 0;\n const newLock = {\n abandon\n };\n lock = newLock;\n return newLock;\n }\n function release() {\n !lock ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot release lock when there is no lock') : invariant(false) : void 0;\n lock = null;\n }\n function tryAbandon() {\n if (lock) {\n lock.abandon();\n release();\n }\n }\n return {\n isClaimed,\n isActive,\n claim,\n release,\n tryAbandon\n };\n}\n\nfunction isDragging(state) {\n if (state.phase === 'IDLE' || state.phase === 'DROP_ANIMATING') {\n return false;\n }\n return state.isDragging;\n}\n\nconst tab = 9;\nconst enter = 13;\nconst escape = 27;\nconst space = 32;\nconst pageUp = 33;\nconst pageDown = 34;\nconst end = 35;\nconst home = 36;\nconst arrowLeft = 37;\nconst arrowUp = 38;\nconst arrowRight = 39;\nconst arrowDown = 40;\n\nconst preventedKeys = {\n [enter]: true,\n [tab]: true\n};\nvar preventStandardKeyEvents = (event => {\n if (preventedKeys[event.keyCode]) {\n event.preventDefault();\n }\n});\n\nconst supportedEventName = (() => {\n const base = 'visibilitychange';\n if (typeof document === 'undefined') {\n return base;\n }\n const candidates = [base, `ms${base}`, `webkit${base}`, `moz${base}`, `o${base}`];\n const supported = candidates.find(eventName => `on${eventName}` in document);\n return supported || base;\n})();\nvar supportedPageVisibilityEventName = supportedEventName;\n\nconst primaryButton = 0;\nconst sloppyClickThreshold = 5;\nfunction isSloppyClickThresholdExceeded(original, current) {\n return Math.abs(current.x - original.x) >= sloppyClickThreshold || Math.abs(current.y - original.y) >= sloppyClickThreshold;\n}\nconst idle$1 = {\n type: 'IDLE'\n};\nfunction getCaptureBindings(_ref) {\n let {\n cancel,\n completed,\n getPhase,\n setPhase\n } = _ref;\n return [{\n eventName: 'mousemove',\n fn: event => {\n const {\n button,\n clientX,\n clientY\n } = event;\n if (button !== primaryButton) {\n return;\n }\n const point = {\n x: clientX,\n y: clientY\n };\n const phase = getPhase();\n if (phase.type === 'DRAGGING') {\n event.preventDefault();\n phase.actions.move(point);\n return;\n }\n !(phase.type === 'PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot be IDLE') : invariant(false) : void 0;\n const pending = phase.point;\n if (!isSloppyClickThresholdExceeded(pending, point)) {\n return;\n }\n event.preventDefault();\n const actions = phase.actions.fluidLift(point);\n setPhase({\n type: 'DRAGGING',\n actions\n });\n }\n }, {\n eventName: 'mouseup',\n fn: event => {\n const phase = getPhase();\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n event.preventDefault();\n phase.actions.drop({\n shouldBlockNextClick: true\n });\n completed();\n }\n }, {\n eventName: 'mousedown',\n fn: event => {\n if (getPhase().type === 'DRAGGING') {\n event.preventDefault();\n }\n cancel();\n }\n }, {\n eventName: 'keydown',\n fn: event => {\n const phase = getPhase();\n if (phase.type === 'PENDING') {\n cancel();\n return;\n }\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n preventStandardKeyEvents(event);\n }\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: () => {\n if (getPhase().type === 'PENDING') {\n cancel();\n }\n }\n }, {\n eventName: 'webkitmouseforcedown',\n fn: event => {\n const phase = getPhase();\n !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unexpected phase') : invariant(false) : void 0;\n if (phase.actions.shouldRespectForcePress()) {\n cancel();\n return;\n }\n event.preventDefault();\n }\n }, {\n eventName: supportedPageVisibilityEventName,\n fn: cancel\n }];\n}\nfunction useMouseSensor(api) {\n const phaseRef = useRef(idle$1);\n const unbindEventsRef = useRef(noop$2);\n const startCaptureBinding = useMemo(() => ({\n eventName: 'mousedown',\n fn: function onMouseDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n if (event.button !== primaryButton) {\n return;\n }\n if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) {\n return;\n }\n const draggableId = api.findClosestDraggableId(event);\n if (!draggableId) {\n return;\n }\n const actions = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n if (!actions) {\n return;\n }\n event.preventDefault();\n const point = {\n x: event.clientX,\n y: event.clientY\n };\n unbindEventsRef.current();\n startPendingDrag(actions, point);\n }\n }), [api]);\n const preventForcePressBinding = useMemo(() => ({\n eventName: 'webkitmouseforcewillbegin',\n fn: event => {\n if (event.defaultPrevented) {\n return;\n }\n const id = api.findClosestDraggableId(event);\n if (!id) {\n return;\n }\n const options = api.findOptionsForDraggable(id);\n if (!options) {\n return;\n }\n if (options.shouldRespectForcePress) {\n return;\n }\n if (!api.canGetLock(id)) {\n return;\n }\n event.preventDefault();\n }\n }), [api]);\n const listenForCapture = useCallback(function listenForCapture() {\n const options = {\n passive: false,\n capture: true\n };\n unbindEventsRef.current = bindEvents(window, [preventForcePressBinding, startCaptureBinding], options);\n }, [preventForcePressBinding, startCaptureBinding]);\n const stop = useCallback(() => {\n const current = phaseRef.current;\n if (current.type === 'IDLE') {\n return;\n }\n phaseRef.current = idle$1;\n unbindEventsRef.current();\n listenForCapture();\n }, [listenForCapture]);\n const cancel = useCallback(() => {\n const phase = phaseRef.current;\n stop();\n if (phase.type === 'DRAGGING') {\n phase.actions.cancel({\n shouldBlockNextClick: true\n });\n }\n if (phase.type === 'PENDING') {\n phase.actions.abort();\n }\n }, [stop]);\n const bindCapturingEvents = useCallback(function bindCapturingEvents() {\n const options = {\n capture: true,\n passive: false\n };\n const bindings = getCaptureBindings({\n cancel,\n completed: stop,\n getPhase: () => phaseRef.current,\n setPhase: phase => {\n phaseRef.current = phase;\n }\n });\n unbindEventsRef.current = bindEvents(window, bindings, options);\n }, [cancel, stop]);\n const startPendingDrag = useCallback(function startPendingDrag(actions, point) {\n !(phaseRef.current.type === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0;\n phaseRef.current = {\n type: 'PENDING',\n point,\n actions\n };\n bindCapturingEvents();\n }, [bindCapturingEvents]);\n useLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n };\n }, [listenForCapture]);\n}\n\nfunction noop$1() {}\nconst scrollJumpKeys = {\n [pageDown]: true,\n [pageUp]: true,\n [home]: true,\n [end]: true\n};\nfunction getDraggingBindings(actions, stop) {\n function cancel() {\n stop();\n actions.cancel();\n }\n function drop() {\n stop();\n actions.drop();\n }\n return [{\n eventName: 'keydown',\n fn: event => {\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n if (event.keyCode === space) {\n event.preventDefault();\n drop();\n return;\n }\n if (event.keyCode === arrowDown) {\n event.preventDefault();\n actions.moveDown();\n return;\n }\n if (event.keyCode === arrowUp) {\n event.preventDefault();\n actions.moveUp();\n return;\n }\n if (event.keyCode === arrowRight) {\n event.preventDefault();\n actions.moveRight();\n return;\n }\n if (event.keyCode === arrowLeft) {\n event.preventDefault();\n actions.moveLeft();\n return;\n }\n if (scrollJumpKeys[event.keyCode]) {\n event.preventDefault();\n return;\n }\n preventStandardKeyEvents(event);\n }\n }, {\n eventName: 'mousedown',\n fn: cancel\n }, {\n eventName: 'mouseup',\n fn: cancel\n }, {\n eventName: 'click',\n fn: cancel\n }, {\n eventName: 'touchstart',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'wheel',\n fn: cancel,\n options: {\n passive: true\n }\n }, {\n eventName: supportedPageVisibilityEventName,\n fn: cancel\n }];\n}\nfunction useKeyboardSensor(api) {\n const unbindEventsRef = useRef(noop$1);\n const startCaptureBinding = useMemo(() => ({\n eventName: 'keydown',\n fn: function onKeyDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n if (event.keyCode !== space) {\n return;\n }\n const draggableId = api.findClosestDraggableId(event);\n if (!draggableId) {\n return;\n }\n const preDrag = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n if (!preDrag) {\n return;\n }\n event.preventDefault();\n let isCapturing = true;\n const actions = preDrag.snapLift();\n unbindEventsRef.current();\n function stop() {\n !isCapturing ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop capturing a keyboard drag when not capturing') : invariant(false) : void 0;\n isCapturing = false;\n unbindEventsRef.current();\n listenForCapture();\n }\n unbindEventsRef.current = bindEvents(window, getDraggingBindings(actions, stop), {\n capture: true,\n passive: false\n });\n }\n }), [api]);\n const listenForCapture = useCallback(function tryStartCapture() {\n const options = {\n passive: false,\n capture: true\n };\n unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options);\n }, [startCaptureBinding]);\n useLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n };\n }, [listenForCapture]);\n}\n\nconst idle = {\n type: 'IDLE'\n};\nconst timeForLongPress = 120;\nconst forcePressThreshold = 0.15;\nfunction getWindowBindings(_ref) {\n let {\n cancel,\n getPhase\n } = _ref;\n return [{\n eventName: 'orientationchange',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'contextmenu',\n fn: event => {\n event.preventDefault();\n }\n }, {\n eventName: 'keydown',\n fn: event => {\n if (getPhase().type !== 'DRAGGING') {\n cancel();\n return;\n }\n if (event.keyCode === escape) {\n event.preventDefault();\n }\n cancel();\n }\n }, {\n eventName: supportedPageVisibilityEventName,\n fn: cancel\n }];\n}\nfunction getHandleBindings(_ref2) {\n let {\n cancel,\n completed,\n getPhase\n } = _ref2;\n return [{\n eventName: 'touchmove',\n options: {\n capture: false\n },\n fn: event => {\n const phase = getPhase();\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n phase.hasMoved = true;\n const {\n clientX,\n clientY\n } = event.touches[0];\n const point = {\n x: clientX,\n y: clientY\n };\n event.preventDefault();\n phase.actions.move(point);\n }\n }, {\n eventName: 'touchend',\n fn: event => {\n const phase = getPhase();\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n event.preventDefault();\n phase.actions.drop({\n shouldBlockNextClick: true\n });\n completed();\n }\n }, {\n eventName: 'touchcancel',\n fn: event => {\n if (getPhase().type !== 'DRAGGING') {\n cancel();\n return;\n }\n event.preventDefault();\n cancel();\n }\n }, {\n eventName: 'touchforcechange',\n fn: event => {\n const phase = getPhase();\n !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n const touch = event.touches[0];\n if (!touch) {\n return;\n }\n const isForcePress = touch.force >= forcePressThreshold;\n if (!isForcePress) {\n return;\n }\n const shouldRespect = phase.actions.shouldRespectForcePress();\n if (phase.type === 'PENDING') {\n if (shouldRespect) {\n cancel();\n }\n return;\n }\n if (shouldRespect) {\n if (phase.hasMoved) {\n event.preventDefault();\n return;\n }\n cancel();\n return;\n }\n event.preventDefault();\n }\n }, {\n eventName: supportedPageVisibilityEventName,\n fn: cancel\n }];\n}\nfunction useTouchSensor(api) {\n const phaseRef = useRef(idle);\n const unbindEventsRef = useRef(noop$2);\n const getPhase = useCallback(function getPhase() {\n return phaseRef.current;\n }, []);\n const setPhase = useCallback(function setPhase(phase) {\n phaseRef.current = phase;\n }, []);\n const startCaptureBinding = useMemo(() => ({\n eventName: 'touchstart',\n fn: function onTouchStart(event) {\n if (event.defaultPrevented) {\n return;\n }\n const draggableId = api.findClosestDraggableId(event);\n if (!draggableId) {\n return;\n }\n const actions = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n if (!actions) {\n return;\n }\n const touch = event.touches[0];\n const {\n clientX,\n clientY\n } = touch;\n const point = {\n x: clientX,\n y: clientY\n };\n unbindEventsRef.current();\n startPendingDrag(actions, point);\n }\n }), [api]);\n const listenForCapture = useCallback(function listenForCapture() {\n const options = {\n capture: true,\n passive: false\n };\n unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options);\n }, [startCaptureBinding]);\n const stop = useCallback(() => {\n const current = phaseRef.current;\n if (current.type === 'IDLE') {\n return;\n }\n if (current.type === 'PENDING') {\n clearTimeout(current.longPressTimerId);\n }\n setPhase(idle);\n unbindEventsRef.current();\n listenForCapture();\n }, [listenForCapture, setPhase]);\n const cancel = useCallback(() => {\n const phase = phaseRef.current;\n stop();\n if (phase.type === 'DRAGGING') {\n phase.actions.cancel({\n shouldBlockNextClick: true\n });\n }\n if (phase.type === 'PENDING') {\n phase.actions.abort();\n }\n }, [stop]);\n const bindCapturingEvents = useCallback(function bindCapturingEvents() {\n const options = {\n capture: true,\n passive: false\n };\n const args = {\n cancel,\n completed: stop,\n getPhase\n };\n const unbindTarget = bindEvents(window, getHandleBindings(args), options);\n const unbindWindow = bindEvents(window, getWindowBindings(args), options);\n unbindEventsRef.current = function unbindAll() {\n unbindTarget();\n unbindWindow();\n };\n }, [cancel, getPhase, stop]);\n const startDragging = useCallback(function startDragging() {\n const phase = getPhase();\n !(phase.type === 'PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Cannot start dragging from phase ${phase.type}`) : invariant(false) : void 0;\n const actions = phase.actions.fluidLift(phase.point);\n setPhase({\n type: 'DRAGGING',\n actions,\n hasMoved: false\n });\n }, [getPhase, setPhase]);\n const startPendingDrag = useCallback(function startPendingDrag(actions, point) {\n !(getPhase().type === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0;\n const longPressTimerId = setTimeout(startDragging, timeForLongPress);\n setPhase({\n type: 'PENDING',\n point,\n actions,\n longPressTimerId\n });\n bindCapturingEvents();\n }, [bindCapturingEvents, getPhase, setPhase, startDragging]);\n useLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n const phase = getPhase();\n if (phase.type === 'PENDING') {\n clearTimeout(phase.longPressTimerId);\n setPhase(idle);\n }\n };\n }, [getPhase, listenForCapture, setPhase]);\n useLayoutEffect(function webkitHack() {\n const unbind = bindEvents(window, [{\n eventName: 'touchmove',\n fn: () => {},\n options: {\n capture: false,\n passive: false\n }\n }]);\n return unbind;\n }, []);\n}\n\nfunction useValidateSensorHooks(sensorHooks) {\n useDev(() => {\n const previousRef = usePrevious(sensorHooks);\n useDevSetupWarning(() => {\n !(previousRef.current.length === sensorHooks.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot change the amount of sensor hooks after mounting') : invariant(false) : void 0;\n });\n });\n}\n\nconst interactiveTagNames = ['input', 'button', 'textarea', 'select', 'option', 'optgroup', 'video', 'audio'];\nfunction isAnInteractiveElement(parent, current) {\n if (current == null) {\n return false;\n }\n const hasAnInteractiveTag = interactiveTagNames.includes(current.tagName.toLowerCase());\n if (hasAnInteractiveTag) {\n return true;\n }\n const attribute = current.getAttribute('contenteditable');\n if (attribute === 'true' || attribute === '') {\n return true;\n }\n if (current === parent) {\n return false;\n }\n return isAnInteractiveElement(parent, current.parentElement);\n}\nfunction isEventInInteractiveElement(draggable, event) {\n const target = event.target;\n if (!isHtmlElement(target)) {\n return false;\n }\n return isAnInteractiveElement(draggable, target);\n}\n\nvar getBorderBoxCenterPosition = (el => getRect(el.getBoundingClientRect()).center);\n\nfunction isElement(el) {\n return el instanceof getWindowFromEl(el).Element;\n}\n\nconst supportedMatchesName = (() => {\n const base = 'matches';\n if (typeof document === 'undefined') {\n return base;\n }\n const candidates = [base, 'msMatchesSelector', 'webkitMatchesSelector'];\n const value = candidates.find(name => name in Element.prototype);\n return value || base;\n})();\nfunction closestPonyfill(el, selector) {\n if (el == null) {\n return null;\n }\n if (el[supportedMatchesName](selector)) {\n return el;\n }\n return closestPonyfill(el.parentElement, selector);\n}\nfunction closest(el, selector) {\n if (el.closest) {\n return el.closest(selector);\n }\n return closestPonyfill(el, selector);\n}\n\nfunction getSelector(contextId) {\n return `[${dragHandle.contextId}=\"${contextId}\"]`;\n}\nfunction findClosestDragHandleFromEvent(contextId, event) {\n const target = event.target;\n if (!isElement(target)) {\n process.env.NODE_ENV !== \"production\" ? warning('event.target must be a Element') : void 0;\n return null;\n }\n const selector = getSelector(contextId);\n const handle = closest(target, selector);\n if (!handle) {\n return null;\n }\n if (!isHtmlElement(handle)) {\n process.env.NODE_ENV !== \"production\" ? warning('drag handle must be a HTMLElement') : void 0;\n return null;\n }\n return handle;\n}\nfunction tryGetClosestDraggableIdFromEvent(contextId, event) {\n const handle = findClosestDragHandleFromEvent(contextId, event);\n if (!handle) {\n return null;\n }\n return handle.getAttribute(dragHandle.draggableId);\n}\n\nfunction findDraggable(contextId, draggableId) {\n const selector = `[${draggable.contextId}=\"${contextId}\"]`;\n const possible = querySelectorAll(document, selector);\n const draggable$1 = possible.find(el => {\n return el.getAttribute(draggable.id) === draggableId;\n });\n if (!draggable$1) {\n return null;\n }\n if (!isHtmlElement(draggable$1)) {\n process.env.NODE_ENV !== \"production\" ? warning('Draggable element is not a HTMLElement') : void 0;\n return null;\n }\n return draggable$1;\n}\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\nfunction isActive(_ref) {\n let {\n expected,\n phase,\n isLockActive,\n shouldWarn\n } = _ref;\n if (!isLockActive()) {\n if (shouldWarn) {\n process.env.NODE_ENV !== \"production\" ? warning(`\n Cannot perform action.\n The sensor no longer has an action lock.\n\n Tips:\n\n - Throw away your action handlers when forceStop() is called\n - Check actions.isActive() if you really need to\n `) : void 0;\n }\n return false;\n }\n if (expected !== phase) {\n if (shouldWarn) {\n process.env.NODE_ENV !== \"production\" ? warning(`\n Cannot perform action.\n The actions you used belong to an outdated phase\n\n Current phase: ${expected}\n You called an action from outdated phase: ${phase}\n\n Tips:\n\n - Do not use preDragActions actions after calling preDragActions.lift()\n `) : void 0;\n }\n return false;\n }\n return true;\n}\nfunction canStart(_ref2) {\n let {\n lockAPI,\n store,\n registry,\n draggableId\n } = _ref2;\n if (lockAPI.isClaimed()) {\n return false;\n }\n const entry = registry.draggable.findById(draggableId);\n if (!entry) {\n process.env.NODE_ENV !== \"production\" ? warning(`Unable to find draggable with id: ${draggableId}`) : void 0;\n return false;\n }\n if (!entry.options.isEnabled) {\n return false;\n }\n if (!canStartDrag(store.getState(), draggableId)) {\n return false;\n }\n return true;\n}\nfunction tryStart(_ref3) {\n let {\n lockAPI,\n contextId,\n store,\n registry,\n draggableId,\n forceSensorStop,\n sourceEvent\n } = _ref3;\n const shouldStart = canStart({\n lockAPI,\n store,\n registry,\n draggableId\n });\n if (!shouldStart) {\n return null;\n }\n const entry = registry.draggable.getById(draggableId);\n const el = findDraggable(contextId, entry.descriptor.id);\n if (!el) {\n process.env.NODE_ENV !== \"production\" ? warning(`Unable to find draggable element with id: ${draggableId}`) : void 0;\n return null;\n }\n if (sourceEvent && !entry.options.canDragInteractiveElements && isEventInInteractiveElement(el, sourceEvent)) {\n return null;\n }\n const lock = lockAPI.claim(forceSensorStop || noop$2);\n let phase = 'PRE_DRAG';\n function getShouldRespectForcePress() {\n return entry.options.shouldRespectForcePress;\n }\n function isLockActive() {\n return lockAPI.isActive(lock);\n }\n function tryDispatch(expected, getAction) {\n if (isActive({\n expected,\n phase,\n isLockActive,\n shouldWarn: true\n })) {\n store.dispatch(getAction());\n }\n }\n const tryDispatchWhenDragging = tryDispatch.bind(null, 'DRAGGING');\n function lift(args) {\n function completed() {\n lockAPI.release();\n phase = 'COMPLETED';\n }\n if (phase !== 'PRE_DRAG') {\n completed();\n process.env.NODE_ENV !== \"production\" ? invariant(false, `Cannot lift in phase ${phase}`) : invariant(false) ;\n }\n store.dispatch(lift$1(args.liftActionArgs));\n phase = 'DRAGGING';\n function finish(reason, options) {\n if (options === void 0) {\n options = {\n shouldBlockNextClick: false\n };\n }\n args.cleanup();\n if (options.shouldBlockNextClick) {\n const unbind = bindEvents(window, [{\n eventName: 'click',\n fn: preventDefault,\n options: {\n once: true,\n passive: false,\n capture: true\n }\n }]);\n setTimeout(unbind);\n }\n completed();\n store.dispatch(drop$1({\n reason\n }));\n }\n return {\n isActive: () => isActive({\n expected: 'DRAGGING',\n phase,\n isLockActive,\n shouldWarn: false\n }),\n shouldRespectForcePress: getShouldRespectForcePress,\n drop: options => finish('DROP', options),\n cancel: options => finish('CANCEL', options),\n ...args.actions\n };\n }\n function fluidLift(clientSelection) {\n const move$1 = rafSchd(client => {\n tryDispatchWhenDragging(() => move({\n client\n }));\n });\n const api = lift({\n liftActionArgs: {\n id: draggableId,\n clientSelection,\n movementMode: 'FLUID'\n },\n cleanup: () => move$1.cancel(),\n actions: {\n move: move$1\n }\n });\n return {\n ...api,\n move: move$1\n };\n }\n function snapLift() {\n const actions = {\n moveUp: () => tryDispatchWhenDragging(moveUp),\n moveRight: () => tryDispatchWhenDragging(moveRight),\n moveDown: () => tryDispatchWhenDragging(moveDown),\n moveLeft: () => tryDispatchWhenDragging(moveLeft)\n };\n return lift({\n liftActionArgs: {\n id: draggableId,\n clientSelection: getBorderBoxCenterPosition(el),\n movementMode: 'SNAP'\n },\n cleanup: noop$2,\n actions\n });\n }\n function abortPreDrag() {\n const shouldRelease = isActive({\n expected: 'PRE_DRAG',\n phase,\n isLockActive,\n shouldWarn: true\n });\n if (shouldRelease) {\n lockAPI.release();\n }\n }\n const preDrag = {\n isActive: () => isActive({\n expected: 'PRE_DRAG',\n phase,\n isLockActive,\n shouldWarn: false\n }),\n shouldRespectForcePress: getShouldRespectForcePress,\n fluidLift,\n snapLift,\n abort: abortPreDrag\n };\n return preDrag;\n}\nconst defaultSensors = [useMouseSensor, useKeyboardSensor, useTouchSensor];\nfunction useSensorMarshal(_ref4) {\n let {\n contextId,\n store,\n registry,\n customSensors,\n enableDefaultSensors\n } = _ref4;\n const useSensors = [...(enableDefaultSensors ? defaultSensors : []), ...(customSensors || [])];\n const lockAPI = useState(() => create())[0];\n const tryAbandonLock = useCallback(function tryAbandonLock(previous, current) {\n if (isDragging(previous) && !isDragging(current)) {\n lockAPI.tryAbandon();\n }\n }, [lockAPI]);\n useLayoutEffect(function listenToStore() {\n let previous = store.getState();\n const unsubscribe = store.subscribe(() => {\n const current = store.getState();\n tryAbandonLock(previous, current);\n previous = current;\n });\n return unsubscribe;\n }, [lockAPI, store, tryAbandonLock]);\n useLayoutEffect(() => {\n return lockAPI.tryAbandon;\n }, [lockAPI.tryAbandon]);\n const canGetLock = useCallback(draggableId => {\n return canStart({\n lockAPI,\n registry,\n store,\n draggableId\n });\n }, [lockAPI, registry, store]);\n const tryGetLock = useCallback((draggableId, forceStop, options) => tryStart({\n lockAPI,\n registry,\n contextId,\n store,\n draggableId,\n forceSensorStop: forceStop || null,\n sourceEvent: options && options.sourceEvent ? options.sourceEvent : null\n }), [contextId, lockAPI, registry, store]);\n const findClosestDraggableId = useCallback(event => tryGetClosestDraggableIdFromEvent(contextId, event), [contextId]);\n const findOptionsForDraggable = useCallback(id => {\n const entry = registry.draggable.findById(id);\n return entry ? entry.options : null;\n }, [registry.draggable]);\n const tryReleaseLock = useCallback(function tryReleaseLock() {\n if (!lockAPI.isClaimed()) {\n return;\n }\n lockAPI.tryAbandon();\n if (store.getState().phase !== 'IDLE') {\n store.dispatch(flush());\n }\n }, [lockAPI, store]);\n const isLockClaimed = useCallback(() => lockAPI.isClaimed(), [lockAPI]);\n const api = useMemo(() => ({\n canGetLock,\n tryGetLock,\n findClosestDraggableId,\n findOptionsForDraggable,\n tryReleaseLock,\n isLockClaimed\n }), [canGetLock, tryGetLock, findClosestDraggableId, findOptionsForDraggable, tryReleaseLock, isLockClaimed]);\n useValidateSensorHooks(useSensors);\n for (let i = 0; i < useSensors.length; i++) {\n useSensors[i](api);\n }\n}\n\nconst createResponders = props => ({\n onBeforeCapture: t => {\n const onBeforeCapureCallback = () => {\n if (props.onBeforeCapture) {\n props.onBeforeCapture(t);\n }\n };\n if (React.version.startsWith('16') || React.version.startsWith('17')) {\n onBeforeCapureCallback();\n } else {\n flushSync(onBeforeCapureCallback);\n }\n },\n onBeforeDragStart: props.onBeforeDragStart,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragUpdate: props.onDragUpdate\n});\nconst createAutoScrollerOptions = props => ({\n ...defaultAutoScrollerOptions,\n ...props.autoScrollerOptions,\n durationDampening: {\n ...defaultAutoScrollerOptions.durationDampening,\n ...props.autoScrollerOptions\n }\n});\nfunction getStore(lazyRef) {\n !lazyRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find store from lazy ref') : invariant(false) : void 0;\n return lazyRef.current;\n}\nfunction App(props) {\n const {\n contextId,\n setCallbacks,\n sensors,\n nonce,\n dragHandleUsageInstructions\n } = props;\n const lazyStoreRef = useRef(null);\n useStartupValidation();\n const lastPropsRef = usePrevious(props);\n const getResponders = useCallback(() => {\n return createResponders(lastPropsRef.current);\n }, [lastPropsRef]);\n const getAutoScrollerOptions = useCallback(() => {\n return createAutoScrollerOptions(lastPropsRef.current);\n }, [lastPropsRef]);\n const announce = useAnnouncer(contextId);\n const dragHandleUsageInstructionsId = useHiddenTextElement({\n contextId,\n text: dragHandleUsageInstructions\n });\n const styleMarshal = useStyleMarshal(contextId, nonce);\n const lazyDispatch = useCallback(action => {\n getStore(lazyStoreRef).dispatch(action);\n }, []);\n const marshalCallbacks = useMemo(() => bindActionCreators({\n publishWhileDragging,\n updateDroppableScroll,\n updateDroppableIsEnabled,\n updateDroppableIsCombineEnabled,\n collectionStarting\n }, lazyDispatch), [lazyDispatch]);\n const registry = useRegistry();\n const dimensionMarshal = useMemo(() => {\n return createDimensionMarshal(registry, marshalCallbacks);\n }, [registry, marshalCallbacks]);\n const autoScroller = useMemo(() => createAutoScroller({\n scrollWindow,\n scrollDroppable: dimensionMarshal.scrollDroppable,\n getAutoScrollerOptions,\n ...bindActionCreators({\n move\n }, lazyDispatch)\n }), [dimensionMarshal.scrollDroppable, lazyDispatch, getAutoScrollerOptions]);\n const focusMarshal = useFocusMarshal(contextId);\n const store = useMemo(() => createStore({\n announce,\n autoScroller,\n dimensionMarshal,\n focusMarshal,\n getResponders,\n styleMarshal\n }), [announce, autoScroller, dimensionMarshal, focusMarshal, getResponders, styleMarshal]);\n if (process.env.NODE_ENV !== 'production') {\n if (lazyStoreRef.current && lazyStoreRef.current !== store) {\n process.env.NODE_ENV !== \"production\" ? warning('unexpected store change') : void 0;\n }\n }\n lazyStoreRef.current = store;\n const tryResetStore = useCallback(() => {\n const current = getStore(lazyStoreRef);\n const state = current.getState();\n if (state.phase !== 'IDLE') {\n current.dispatch(flush());\n }\n }, []);\n const isDragging = useCallback(() => {\n const state = getStore(lazyStoreRef).getState();\n if (state.phase === 'DROP_ANIMATING') {\n return true;\n }\n if (state.phase === 'IDLE') {\n return false;\n }\n return state.isDragging;\n }, []);\n const appCallbacks = useMemo(() => ({\n isDragging,\n tryAbort: tryResetStore\n }), [isDragging, tryResetStore]);\n setCallbacks(appCallbacks);\n const getCanLift = useCallback(id => canStartDrag(getStore(lazyStoreRef).getState(), id), []);\n const getIsMovementAllowed = useCallback(() => isMovementAllowed(getStore(lazyStoreRef).getState()), []);\n const appContext = useMemo(() => ({\n marshal: dimensionMarshal,\n focus: focusMarshal,\n contextId,\n canLift: getCanLift,\n isMovementAllowed: getIsMovementAllowed,\n dragHandleUsageInstructionsId,\n registry\n }), [contextId, dimensionMarshal, dragHandleUsageInstructionsId, focusMarshal, getCanLift, getIsMovementAllowed, registry]);\n useSensorMarshal({\n contextId,\n store,\n registry,\n customSensors: sensors || null,\n enableDefaultSensors: props.enableDefaultSensors !== false\n });\n useEffect(() => {\n return tryResetStore;\n }, [tryResetStore]);\n return React.createElement(AppContext.Provider, {\n value: appContext\n }, React.createElement(Provider, {\n context: StoreContext,\n store: store\n }, props.children));\n}\n\nlet count = 0;\nfunction resetDeprecatedUniqueContextId() {\n count = 0;\n}\nfunction useDeprecatedUniqueContextId() {\n return useMemo(() => `${count++}`, []);\n}\nfunction useUniqueContextId() {\n return React.useId();\n}\nvar useUniqueContextId$1 = 'useId' in React ? useUniqueContextId : useDeprecatedUniqueContextId;\n\nfunction resetServerContext() {\n if ('useId' in React) {\n process.env.NODE_ENV !== \"production\" ? warning(`It is not necessary to call resetServerContext when using React 18+`) : void 0;\n return;\n }\n resetDeprecatedUniqueContextId();\n resetDeprecatedUniqueId();\n}\nfunction DragDropContext(props) {\n const contextId = useUniqueContextId$1();\n const dragHandleUsageInstructions = props.dragHandleUsageInstructions || preset$1.dragHandleUsageInstructions;\n return React.createElement(ErrorBoundary, null, setCallbacks => React.createElement(App, {\n nonce: props.nonce,\n contextId: contextId,\n setCallbacks: setCallbacks,\n dragHandleUsageInstructions: dragHandleUsageInstructions,\n enableDefaultSensors: props.enableDefaultSensors,\n sensors: props.sensors,\n onBeforeCapture: props.onBeforeCapture,\n onBeforeDragStart: props.onBeforeDragStart,\n onDragStart: props.onDragStart,\n onDragUpdate: props.onDragUpdate,\n onDragEnd: props.onDragEnd,\n autoScrollerOptions: props.autoScrollerOptions\n }, props.children));\n}\n\nconst zIndexOptions = {\n dragging: 5000,\n dropAnimating: 4500\n};\nconst getDraggingTransition = (shouldAnimateDragMovement, dropping) => {\n if (dropping) {\n return transitions.drop(dropping.duration);\n }\n if (shouldAnimateDragMovement) {\n return transitions.snap;\n }\n return transitions.fluid;\n};\nconst getDraggingOpacity = (isCombining, isDropAnimating) => {\n if (!isCombining) {\n return undefined;\n }\n return isDropAnimating ? combine.opacity.drop : combine.opacity.combining;\n};\nconst getShouldDraggingAnimate = dragging => {\n if (dragging.forceShouldAnimate != null) {\n return dragging.forceShouldAnimate;\n }\n return dragging.mode === 'SNAP';\n};\nfunction getDraggingStyle(dragging) {\n const dimension = dragging.dimension;\n const box = dimension.client;\n const {\n offset,\n combineWith,\n dropping\n } = dragging;\n const isCombining = Boolean(combineWith);\n const shouldAnimate = getShouldDraggingAnimate(dragging);\n const isDropAnimating = Boolean(dropping);\n const transform = isDropAnimating ? transforms.drop(offset, isCombining) : transforms.moveTo(offset);\n const style = {\n position: 'fixed',\n top: box.marginBox.top,\n left: box.marginBox.left,\n boxSizing: 'border-box',\n width: box.borderBox.width,\n height: box.borderBox.height,\n transition: getDraggingTransition(shouldAnimate, dropping),\n transform,\n opacity: getDraggingOpacity(isCombining, isDropAnimating),\n zIndex: isDropAnimating ? zIndexOptions.dropAnimating : zIndexOptions.dragging,\n pointerEvents: 'none'\n };\n return style;\n}\nfunction getSecondaryStyle(secondary) {\n return {\n transform: transforms.moveTo(secondary.offset),\n transition: secondary.shouldAnimateDisplacement ? undefined : 'none'\n };\n}\nfunction getStyle$1(mapped) {\n return mapped.type === 'DRAGGING' ? getDraggingStyle(mapped) : getSecondaryStyle(mapped);\n}\n\nfunction getDimension$1(descriptor, el, windowScroll) {\n if (windowScroll === void 0) {\n windowScroll = origin;\n }\n const computedStyles = window.getComputedStyle(el);\n const borderBox = el.getBoundingClientRect();\n const client = calculateBox(borderBox, computedStyles);\n const page = withScroll(client, windowScroll);\n const placeholder = {\n client,\n tagName: el.tagName.toLowerCase(),\n display: computedStyles.display\n };\n const displaceBy = {\n x: client.marginBox.width,\n y: client.marginBox.height\n };\n const dimension = {\n descriptor,\n placeholder,\n displaceBy,\n client,\n page\n };\n return dimension;\n}\n\nfunction useDraggablePublisher(args) {\n const uniqueId = useUniqueId$1('draggable');\n const {\n descriptor,\n registry,\n getDraggableRef,\n canDragInteractiveElements,\n shouldRespectForcePress,\n isEnabled\n } = args;\n const options = useMemo(() => ({\n canDragInteractiveElements,\n shouldRespectForcePress,\n isEnabled\n }), [canDragInteractiveElements, isEnabled, shouldRespectForcePress]);\n const getDimension = useCallback(windowScroll => {\n const el = getDraggableRef();\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get dimension when no ref is set') : invariant(false) : void 0;\n return getDimension$1(descriptor, el, windowScroll);\n }, [descriptor, getDraggableRef]);\n const entry = useMemo(() => ({\n uniqueId,\n descriptor,\n options,\n getDimension\n }), [descriptor, getDimension, options, uniqueId]);\n const publishedRef = useRef(entry);\n const isFirstPublishRef = useRef(true);\n useLayoutEffect(() => {\n registry.draggable.register(publishedRef.current);\n return () => registry.draggable.unregister(publishedRef.current);\n }, [registry.draggable]);\n useLayoutEffect(() => {\n if (isFirstPublishRef.current) {\n isFirstPublishRef.current = false;\n return;\n }\n const last = publishedRef.current;\n publishedRef.current = entry;\n registry.draggable.update(entry, last);\n }, [entry, registry.draggable]);\n}\n\nvar DroppableContext = React.createContext(null);\n\nfunction checkIsValidInnerRef(el) {\n !(el && isHtmlElement(el)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `\n provided.innerRef has not been provided with a HTMLElement.\n\n You can find a guide on using the innerRef callback functions at:\n https://github.com/hello-pangea/dnd/blob/main/docs/guides/using-inner-ref.md\n `) : invariant(false) : void 0;\n}\n\nfunction useValidation$1(props, contextId, getRef) {\n useDevSetupWarning(() => {\n function prefix(id) {\n return `Draggable[id: ${id}]: `;\n }\n const id = props.draggableId;\n !id ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable requires a draggableId') : invariant(false) : void 0;\n !(typeof id === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Draggable requires a [string] draggableId.\n Provided: [type: ${typeof id}] (value: ${id})`) : invariant(false) : void 0;\n !Number.isInteger(props.index) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `${prefix(id)} requires an integer index prop`) : invariant(false) : void 0;\n if (props.mapped.type === 'DRAGGING') {\n return;\n }\n checkIsValidInnerRef(getRef());\n if (props.isEnabled) {\n !findDragHandle(contextId, id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `${prefix(id)} Unable to find drag handle`) : invariant(false) : void 0;\n }\n });\n}\nfunction useClonePropValidation(isClone) {\n useDev(() => {\n const initialRef = useRef(isClone);\n useDevSetupWarning(() => {\n !(isClone === initialRef.current) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable isClone prop value changed during component life') : invariant(false) : void 0;\n }, [isClone]);\n });\n}\n\nfunction useRequiredContext(Context) {\n const result = useContext(Context);\n !result ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find required context') : invariant(false) : void 0;\n return result;\n}\n\nfunction preventHtml5Dnd(event) {\n event.preventDefault();\n}\nconst Draggable = props => {\n const ref = useRef(null);\n const setRef = useCallback(function (el) {\n if (el === void 0) {\n el = null;\n }\n ref.current = el;\n }, []);\n const getRef = useCallback(() => ref.current, []);\n const {\n contextId,\n dragHandleUsageInstructionsId,\n registry\n } = useRequiredContext(AppContext);\n const {\n type,\n droppableId\n } = useRequiredContext(DroppableContext);\n const descriptor = useMemo(() => ({\n id: props.draggableId,\n index: props.index,\n type,\n droppableId\n }), [props.draggableId, props.index, type, droppableId]);\n const {\n children,\n draggableId,\n isEnabled,\n shouldRespectForcePress,\n canDragInteractiveElements,\n isClone,\n mapped,\n dropAnimationFinished: dropAnimationFinishedAction\n } = props;\n useValidation$1(props, contextId, getRef);\n useClonePropValidation(isClone);\n if (!isClone) {\n const forPublisher = useMemo(() => ({\n descriptor,\n registry,\n getDraggableRef: getRef,\n canDragInteractiveElements,\n shouldRespectForcePress,\n isEnabled\n }), [descriptor, registry, getRef, canDragInteractiveElements, shouldRespectForcePress, isEnabled]);\n useDraggablePublisher(forPublisher);\n }\n const dragHandleProps = useMemo(() => isEnabled ? {\n tabIndex: 0,\n role: 'button',\n 'aria-describedby': dragHandleUsageInstructionsId,\n 'data-rfd-drag-handle-draggable-id': draggableId,\n 'data-rfd-drag-handle-context-id': contextId,\n draggable: false,\n onDragStart: preventHtml5Dnd\n } : null, [contextId, dragHandleUsageInstructionsId, draggableId, isEnabled]);\n const onMoveEnd = useCallback(event => {\n if (mapped.type !== 'DRAGGING') {\n return;\n }\n if (!mapped.dropping) {\n return;\n }\n if (event.propertyName !== 'transform') {\n return;\n }\n if (React.version.startsWith('16') || React.version.startsWith('17')) {\n dropAnimationFinishedAction();\n } else {\n flushSync(dropAnimationFinishedAction);\n }\n }, [dropAnimationFinishedAction, mapped]);\n const provided = useMemo(() => {\n const style = getStyle$1(mapped);\n const onTransitionEnd = mapped.type === 'DRAGGING' && mapped.dropping ? onMoveEnd : undefined;\n const result = {\n innerRef: setRef,\n draggableProps: {\n 'data-rfd-draggable-context-id': contextId,\n 'data-rfd-draggable-id': draggableId,\n style,\n onTransitionEnd\n },\n dragHandleProps\n };\n return result;\n }, [contextId, dragHandleProps, draggableId, mapped, onMoveEnd, setRef]);\n const rubric = useMemo(() => ({\n draggableId: descriptor.id,\n type: descriptor.type,\n source: {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n }\n }), [descriptor.droppableId, descriptor.id, descriptor.index, descriptor.type]);\n return React.createElement(React.Fragment, null, children(provided, mapped.snapshot, rubric));\n};\nvar Draggable$1 = Draggable;\n\nvar isStrictEqual = ((a, b) => a === b);\n\nvar whatIsDraggedOverFromResult = (result => {\n const {\n combine,\n destination\n } = result;\n if (destination) {\n return destination.droppableId;\n }\n if (combine) {\n return combine.droppableId;\n }\n return null;\n});\n\nconst getCombineWithFromResult = result => {\n return result.combine ? result.combine.draggableId : null;\n};\nconst getCombineWithFromImpact = impact => {\n return impact.at && impact.at.type === 'COMBINE' ? impact.at.combine.draggableId : null;\n};\nfunction getDraggableSelector() {\n const memoizedOffset = memoizeOne((x, y) => ({\n x,\n y\n }));\n const getMemoizedSnapshot = memoizeOne(function (mode, isClone, draggingOver, combineWith, dropping) {\n if (draggingOver === void 0) {\n draggingOver = null;\n }\n if (combineWith === void 0) {\n combineWith = null;\n }\n if (dropping === void 0) {\n dropping = null;\n }\n return {\n isDragging: true,\n isClone,\n isDropAnimating: Boolean(dropping),\n dropAnimation: dropping,\n mode,\n draggingOver,\n combineWith,\n combineTargetFor: null\n };\n });\n const getMemoizedProps = memoizeOne(function (offset, mode, dimension, isClone, draggingOver, combineWith, forceShouldAnimate) {\n if (draggingOver === void 0) {\n draggingOver = null;\n }\n if (combineWith === void 0) {\n combineWith = null;\n }\n if (forceShouldAnimate === void 0) {\n forceShouldAnimate = null;\n }\n return {\n mapped: {\n type: 'DRAGGING',\n dropping: null,\n draggingOver,\n combineWith,\n mode,\n offset,\n dimension,\n forceShouldAnimate,\n snapshot: getMemoizedSnapshot(mode, isClone, draggingOver, combineWith, null)\n }\n };\n });\n const selector = (state, ownProps) => {\n if (isDragging(state)) {\n if (state.critical.draggable.id !== ownProps.draggableId) {\n return null;\n }\n const offset = state.current.client.offset;\n const dimension = state.dimensions.draggables[ownProps.draggableId];\n const draggingOver = whatIsDraggedOver(state.impact);\n const combineWith = getCombineWithFromImpact(state.impact);\n const forceShouldAnimate = state.forceShouldAnimate;\n return getMemoizedProps(memoizedOffset(offset.x, offset.y), state.movementMode, dimension, ownProps.isClone, draggingOver, combineWith, forceShouldAnimate);\n }\n if (state.phase === 'DROP_ANIMATING') {\n const completed = state.completed;\n if (completed.result.draggableId !== ownProps.draggableId) {\n return null;\n }\n const isClone = ownProps.isClone;\n const dimension = state.dimensions.draggables[ownProps.draggableId];\n const result = completed.result;\n const mode = result.mode;\n const draggingOver = whatIsDraggedOverFromResult(result);\n const combineWith = getCombineWithFromResult(result);\n const duration = state.dropDuration;\n const dropping = {\n duration,\n curve: curves.drop,\n moveTo: state.newHomeClientOffset,\n opacity: combineWith ? combine.opacity.drop : null,\n scale: combineWith ? combine.scale.drop : null\n };\n return {\n mapped: {\n type: 'DRAGGING',\n offset: state.newHomeClientOffset,\n dimension,\n dropping,\n draggingOver,\n combineWith,\n mode,\n forceShouldAnimate: null,\n snapshot: getMemoizedSnapshot(mode, isClone, draggingOver, combineWith, dropping)\n }\n };\n }\n return null;\n };\n return selector;\n}\nfunction getSecondarySnapshot(combineTargetFor) {\n if (combineTargetFor === void 0) {\n combineTargetFor = null;\n }\n return {\n isDragging: false,\n isDropAnimating: false,\n isClone: false,\n dropAnimation: null,\n mode: null,\n draggingOver: null,\n combineTargetFor,\n combineWith: null\n };\n}\nconst atRest = {\n mapped: {\n type: 'SECONDARY',\n offset: origin,\n combineTargetFor: null,\n shouldAnimateDisplacement: true,\n snapshot: getSecondarySnapshot(null)\n }\n};\nfunction getSecondarySelector() {\n const memoizedOffset = memoizeOne((x, y) => ({\n x,\n y\n }));\n const getMemoizedSnapshot = memoizeOne(getSecondarySnapshot);\n const getMemoizedProps = memoizeOne(function (offset, combineTargetFor, shouldAnimateDisplacement) {\n if (combineTargetFor === void 0) {\n combineTargetFor = null;\n }\n return {\n mapped: {\n type: 'SECONDARY',\n offset,\n combineTargetFor,\n shouldAnimateDisplacement,\n snapshot: getMemoizedSnapshot(combineTargetFor)\n }\n };\n });\n const getFallback = combineTargetFor => {\n return combineTargetFor ? getMemoizedProps(origin, combineTargetFor, true) : null;\n };\n const getProps = (ownId, draggingId, impact, afterCritical) => {\n const visualDisplacement = impact.displaced.visible[ownId];\n const isAfterCriticalInVirtualList = Boolean(afterCritical.inVirtualList && afterCritical.effected[ownId]);\n const combine = tryGetCombine(impact);\n const combineTargetFor = combine && combine.draggableId === ownId ? draggingId : null;\n if (!visualDisplacement) {\n if (!isAfterCriticalInVirtualList) {\n return getFallback(combineTargetFor);\n }\n if (impact.displaced.invisible[ownId]) {\n return null;\n }\n const change = negate(afterCritical.displacedBy.point);\n const offset = memoizedOffset(change.x, change.y);\n return getMemoizedProps(offset, combineTargetFor, true);\n }\n if (isAfterCriticalInVirtualList) {\n return getFallback(combineTargetFor);\n }\n const displaceBy = impact.displacedBy.point;\n const offset = memoizedOffset(displaceBy.x, displaceBy.y);\n return getMemoizedProps(offset, combineTargetFor, visualDisplacement.shouldAnimate);\n };\n const selector = (state, ownProps) => {\n if (isDragging(state)) {\n if (state.critical.draggable.id === ownProps.draggableId) {\n return null;\n }\n return getProps(ownProps.draggableId, state.critical.draggable.id, state.impact, state.afterCritical);\n }\n if (state.phase === 'DROP_ANIMATING') {\n const completed = state.completed;\n if (completed.result.draggableId === ownProps.draggableId) {\n return null;\n }\n return getProps(ownProps.draggableId, completed.result.draggableId, completed.impact, completed.afterCritical);\n }\n return null;\n };\n return selector;\n}\nconst makeMapStateToProps$1 = () => {\n const draggingSelector = getDraggableSelector();\n const secondarySelector = getSecondarySelector();\n const selector = (state, ownProps) => draggingSelector(state, ownProps) || secondarySelector(state, ownProps) || atRest;\n return selector;\n};\nconst mapDispatchToProps$1 = {\n dropAnimationFinished: dropAnimationFinished\n};\nconst ConnectedDraggable = connect(makeMapStateToProps$1, mapDispatchToProps$1, null, {\n context: StoreContext,\n areStatePropsEqual: isStrictEqual\n})(Draggable$1);\nvar ConnectedDraggable$1 = ConnectedDraggable;\n\nfunction PrivateDraggable(props) {\n const droppableContext = useRequiredContext(DroppableContext);\n const isUsingCloneFor = droppableContext.isUsingCloneFor;\n if (isUsingCloneFor === props.draggableId && !props.isClone) {\n return null;\n }\n return React.createElement(ConnectedDraggable$1, props);\n}\nfunction PublicDraggable(props) {\n const isEnabled = typeof props.isDragDisabled === 'boolean' ? !props.isDragDisabled : true;\n const canDragInteractiveElements = Boolean(props.disableInteractiveElementBlocking);\n const shouldRespectForcePress = Boolean(props.shouldRespectForcePress);\n return React.createElement(PrivateDraggable, _extends({}, props, {\n isClone: false,\n isEnabled: isEnabled,\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress\n }));\n}\n\nconst isEqual = base => value => base === value;\nconst isScroll = isEqual('scroll');\nconst isAuto = isEqual('auto');\nconst isVisible = isEqual('visible');\nconst isEither = (overflow, fn) => fn(overflow.overflowX) || fn(overflow.overflowY);\nconst isBoth = (overflow, fn) => fn(overflow.overflowX) && fn(overflow.overflowY);\nconst isElementScrollable = el => {\n const style = window.getComputedStyle(el);\n const overflow = {\n overflowX: style.overflowX,\n overflowY: style.overflowY\n };\n return isEither(overflow, isScroll) || isEither(overflow, isAuto);\n};\nconst isBodyScrollable = () => {\n if (process.env.NODE_ENV === 'production') {\n return false;\n }\n const body = getBodyElement();\n const html = document.documentElement;\n !html ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n if (!isElementScrollable(body)) {\n return false;\n }\n const htmlStyle = window.getComputedStyle(html);\n const htmlOverflow = {\n overflowX: htmlStyle.overflowX,\n overflowY: htmlStyle.overflowY\n };\n if (isBoth(htmlOverflow, isVisible)) {\n return false;\n }\n process.env.NODE_ENV !== \"production\" ? warning(`\n We have detected that your <body> element might be a scroll container.\n We have found no reliable way of detecting whether the <body> element is a scroll container.\n Under most circumstances a <body> scroll bar will be on the <html> element (document.documentElement)\n\n Because we cannot determine if the <body> is a scroll container, and generally it is not one,\n we will be treating the <body> as *not* a scroll container\n\n More information: https://github.com/hello-pangea/dnd/blob/main/docs/guides/how-we-detect-scroll-containers.md\n `) : void 0;\n return false;\n};\nconst getClosestScrollable = el => {\n if (el == null) {\n return null;\n }\n if (el === document.body) {\n return isBodyScrollable() ? el : null;\n }\n if (el === document.documentElement) {\n return null;\n }\n if (!isElementScrollable(el)) {\n return getClosestScrollable(el.parentElement);\n }\n return el;\n};\nvar getClosestScrollable$1 = getClosestScrollable;\n\nvar checkForNestedScrollContainers = (scrollable => {\n if (!scrollable) {\n return;\n }\n const anotherScrollParent = getClosestScrollable$1(scrollable.parentElement);\n if (!anotherScrollParent) {\n return;\n }\n process.env.NODE_ENV !== \"production\" ? warning(`\n Droppable: unsupported nested scroll container detected.\n A Droppable can only have one scroll parent (which can be itself)\n Nested scroll containers are currently not supported.\n\n We hope to support nested scroll containers soon: https://github.com/atlassian/react-beautiful-dnd/issues/131\n `) : void 0;\n});\n\nvar getScroll = (el => ({\n x: el.scrollLeft,\n y: el.scrollTop\n}));\n\nconst getIsFixed = el => {\n if (!el) {\n return false;\n }\n const style = window.getComputedStyle(el);\n if (style.position === 'fixed') {\n return true;\n }\n return getIsFixed(el.parentElement);\n};\nvar getEnv = (start => {\n const closestScrollable = getClosestScrollable$1(start);\n const isFixedOnPage = getIsFixed(start);\n return {\n closestScrollable,\n isFixedOnPage\n };\n});\n\nvar getDroppableDimension = (_ref => {\n let {\n descriptor,\n isEnabled,\n isCombineEnabled,\n isFixedOnPage,\n direction,\n client,\n page,\n closest\n } = _ref;\n const frame = (() => {\n if (!closest) {\n return null;\n }\n const {\n scrollSize,\n client: frameClient\n } = closest;\n const maxScroll = getMaxScroll({\n scrollHeight: scrollSize.scrollHeight,\n scrollWidth: scrollSize.scrollWidth,\n height: frameClient.paddingBox.height,\n width: frameClient.paddingBox.width\n });\n return {\n pageMarginBox: closest.page.marginBox,\n frameClient,\n scrollSize,\n shouldClipSubject: closest.shouldClipSubject,\n scroll: {\n initial: closest.scroll,\n current: closest.scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n })();\n const axis = direction === 'vertical' ? vertical : horizontal;\n const subject = getSubject({\n page,\n withPlaceholder: null,\n axis,\n frame\n });\n const dimension = {\n descriptor,\n isCombineEnabled,\n isFixedOnPage,\n axis,\n isEnabled,\n client,\n page,\n frame,\n subject\n };\n return dimension;\n});\n\nconst getClient = (targetRef, closestScrollable) => {\n const base = getBox(targetRef);\n if (!closestScrollable) {\n return base;\n }\n if (targetRef !== closestScrollable) {\n return base;\n }\n const top = base.paddingBox.top - closestScrollable.scrollTop;\n const left = base.paddingBox.left - closestScrollable.scrollLeft;\n const bottom = top + closestScrollable.scrollHeight;\n const right = left + closestScrollable.scrollWidth;\n const paddingBox = {\n top,\n right,\n bottom,\n left\n };\n const borderBox = expand(paddingBox, base.border);\n const client = createBox({\n borderBox,\n margin: base.margin,\n border: base.border,\n padding: base.padding\n });\n return client;\n};\nvar getDimension = (_ref => {\n let {\n ref,\n descriptor,\n env,\n windowScroll,\n direction,\n isDropDisabled,\n isCombineEnabled,\n shouldClipSubject\n } = _ref;\n const closestScrollable = env.closestScrollable;\n const client = getClient(ref, closestScrollable);\n const page = withScroll(client, windowScroll);\n const closest = (() => {\n if (!closestScrollable) {\n return null;\n }\n const frameClient = getBox(closestScrollable);\n const scrollSize = {\n scrollHeight: closestScrollable.scrollHeight,\n scrollWidth: closestScrollable.scrollWidth\n };\n return {\n client: frameClient,\n page: withScroll(frameClient, windowScroll),\n scroll: getScroll(closestScrollable),\n scrollSize,\n shouldClipSubject\n };\n })();\n const dimension = getDroppableDimension({\n descriptor,\n isEnabled: !isDropDisabled,\n isCombineEnabled,\n isFixedOnPage: env.isFixedOnPage,\n direction,\n client,\n page,\n closest\n });\n return dimension;\n});\n\nconst immediate = {\n passive: false\n};\nconst delayed = {\n passive: true\n};\nvar getListenerOptions = (options => options.shouldPublishImmediately ? immediate : delayed);\n\nconst getClosestScrollableFromDrag = dragging => dragging && dragging.env.closestScrollable || null;\nfunction useDroppablePublisher(args) {\n const whileDraggingRef = useRef(null);\n const appContext = useRequiredContext(AppContext);\n const uniqueId = useUniqueId$1('droppable');\n const {\n registry,\n marshal\n } = appContext;\n const previousRef = usePrevious(args);\n const descriptor = useMemo(() => ({\n id: args.droppableId,\n type: args.type,\n mode: args.mode\n }), [args.droppableId, args.mode, args.type]);\n const publishedDescriptorRef = useRef(descriptor);\n const memoizedUpdateScroll = useMemo(() => memoizeOne((x, y) => {\n !whileDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only update scroll when dragging') : invariant(false) : void 0;\n const scroll = {\n x,\n y\n };\n marshal.updateDroppableScroll(descriptor.id, scroll);\n }), [descriptor.id, marshal]);\n const getClosestScroll = useCallback(() => {\n const dragging = whileDraggingRef.current;\n if (!dragging || !dragging.env.closestScrollable) {\n return origin;\n }\n return getScroll(dragging.env.closestScrollable);\n }, []);\n const updateScroll = useCallback(() => {\n const scroll = getClosestScroll();\n memoizedUpdateScroll(scroll.x, scroll.y);\n }, [getClosestScroll, memoizedUpdateScroll]);\n const scheduleScrollUpdate = useMemo(() => rafSchd(updateScroll), [updateScroll]);\n const onClosestScroll = useCallback(() => {\n const dragging = whileDraggingRef.current;\n const closest = getClosestScrollableFromDrag(dragging);\n !(dragging && closest) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find scroll options while scrolling') : invariant(false) : void 0;\n const options = dragging.scrollOptions;\n if (options.shouldPublishImmediately) {\n updateScroll();\n return;\n }\n scheduleScrollUpdate();\n }, [scheduleScrollUpdate, updateScroll]);\n const getDimensionAndWatchScroll = useCallback((windowScroll, options) => {\n !!whileDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot collect a droppable while a drag is occurring') : invariant(false) : void 0;\n const previous = previousRef.current;\n const ref = previous.getDroppableRef();\n !ref ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot collect without a droppable ref') : invariant(false) : void 0;\n const env = getEnv(ref);\n const dragging = {\n ref,\n descriptor,\n env,\n scrollOptions: options\n };\n whileDraggingRef.current = dragging;\n const dimension = getDimension({\n ref,\n descriptor,\n env,\n windowScroll,\n direction: previous.direction,\n isDropDisabled: previous.isDropDisabled,\n isCombineEnabled: previous.isCombineEnabled,\n shouldClipSubject: !previous.ignoreContainerClipping\n });\n const scrollable = env.closestScrollable;\n if (scrollable) {\n scrollable.setAttribute(scrollContainer.contextId, appContext.contextId);\n scrollable.addEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions));\n if (process.env.NODE_ENV !== 'production') {\n checkForNestedScrollContainers(scrollable);\n }\n }\n return dimension;\n }, [appContext.contextId, descriptor, onClosestScroll, previousRef]);\n const getScrollWhileDragging = useCallback(() => {\n const dragging = whileDraggingRef.current;\n const closest = getClosestScrollableFromDrag(dragging);\n !(dragging && closest) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only recollect Droppable client for Droppables that have a scroll container') : invariant(false) : void 0;\n return getScroll(closest);\n }, []);\n const dragStopped = useCallback(() => {\n const dragging = whileDraggingRef.current;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop drag when no active drag') : invariant(false) : void 0;\n const closest = getClosestScrollableFromDrag(dragging);\n whileDraggingRef.current = null;\n if (!closest) {\n return;\n }\n scheduleScrollUpdate.cancel();\n closest.removeAttribute(scrollContainer.contextId);\n closest.removeEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions));\n }, [onClosestScroll, scheduleScrollUpdate]);\n const scroll = useCallback(change => {\n const dragging = whileDraggingRef.current;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll when there is no drag') : invariant(false) : void 0;\n const closest = getClosestScrollableFromDrag(dragging);\n !closest ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll a droppable with no closest scrollable') : invariant(false) : void 0;\n closest.scrollTop += change.y;\n closest.scrollLeft += change.x;\n }, []);\n const callbacks = useMemo(() => {\n return {\n getDimensionAndWatchScroll,\n getScrollWhileDragging,\n dragStopped,\n scroll\n };\n }, [dragStopped, getDimensionAndWatchScroll, getScrollWhileDragging, scroll]);\n const entry = useMemo(() => ({\n uniqueId,\n descriptor,\n callbacks\n }), [callbacks, descriptor, uniqueId]);\n useLayoutEffect(() => {\n publishedDescriptorRef.current = entry.descriptor;\n registry.droppable.register(entry);\n return () => {\n if (whileDraggingRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning('Unsupported: changing the droppableId or type of a Droppable during a drag') : void 0;\n dragStopped();\n }\n registry.droppable.unregister(entry);\n };\n }, [callbacks, descriptor, dragStopped, entry, marshal, registry.droppable]);\n useLayoutEffect(() => {\n if (!whileDraggingRef.current) {\n return;\n }\n marshal.updateDroppableIsEnabled(publishedDescriptorRef.current.id, !args.isDropDisabled);\n }, [args.isDropDisabled, marshal]);\n useLayoutEffect(() => {\n if (!whileDraggingRef.current) {\n return;\n }\n marshal.updateDroppableIsCombineEnabled(publishedDescriptorRef.current.id, args.isCombineEnabled);\n }, [args.isCombineEnabled, marshal]);\n}\n\nfunction noop() {}\nconst empty = {\n width: 0,\n height: 0,\n margin: noSpacing\n};\nconst getSize = _ref => {\n let {\n isAnimatingOpenOnMount,\n placeholder,\n animate\n } = _ref;\n if (isAnimatingOpenOnMount) {\n return empty;\n }\n if (animate === 'close') {\n return empty;\n }\n return {\n height: placeholder.client.borderBox.height,\n width: placeholder.client.borderBox.width,\n margin: placeholder.client.margin\n };\n};\nconst getStyle = _ref2 => {\n let {\n isAnimatingOpenOnMount,\n placeholder,\n animate\n } = _ref2;\n const size = getSize({\n isAnimatingOpenOnMount,\n placeholder,\n animate\n });\n return {\n display: placeholder.display,\n boxSizing: 'border-box',\n width: size.width,\n height: size.height,\n marginTop: size.margin.top,\n marginRight: size.margin.right,\n marginBottom: size.margin.bottom,\n marginLeft: size.margin.left,\n flexShrink: '0',\n flexGrow: '0',\n pointerEvents: 'none',\n transition: animate !== 'none' ? transitions.placeholder : null\n };\n};\nconst Placeholder = props => {\n const animateOpenTimerRef = useRef(null);\n const tryClearAnimateOpenTimer = useCallback(() => {\n if (!animateOpenTimerRef.current) {\n return;\n }\n clearTimeout(animateOpenTimerRef.current);\n animateOpenTimerRef.current = null;\n }, []);\n const {\n animate,\n onTransitionEnd,\n onClose,\n contextId\n } = props;\n const [isAnimatingOpenOnMount, setIsAnimatingOpenOnMount] = useState(props.animate === 'open');\n useEffect(() => {\n if (!isAnimatingOpenOnMount) {\n return noop;\n }\n if (animate !== 'open') {\n tryClearAnimateOpenTimer();\n setIsAnimatingOpenOnMount(false);\n return noop;\n }\n if (animateOpenTimerRef.current) {\n return noop;\n }\n animateOpenTimerRef.current = setTimeout(() => {\n animateOpenTimerRef.current = null;\n setIsAnimatingOpenOnMount(false);\n });\n return tryClearAnimateOpenTimer;\n }, [animate, isAnimatingOpenOnMount, tryClearAnimateOpenTimer]);\n const onSizeChangeEnd = useCallback(event => {\n if (event.propertyName !== 'height') {\n return;\n }\n onTransitionEnd();\n if (animate === 'close') {\n onClose();\n }\n }, [animate, onClose, onTransitionEnd]);\n const style = getStyle({\n isAnimatingOpenOnMount,\n animate: props.animate,\n placeholder: props.placeholder\n });\n return React.createElement(props.placeholder.tagName, {\n style,\n 'data-rfd-placeholder-context-id': contextId,\n onTransitionEnd: onSizeChangeEnd,\n ref: props.innerRef\n });\n};\nvar Placeholder$1 = React.memo(Placeholder);\n\nfunction isBoolean(value) {\n return typeof value === 'boolean';\n}\nfunction runChecks(args, checks) {\n checks.forEach(check => check(args));\n}\nconst shared = [function required(_ref) {\n let {\n props\n } = _ref;\n !props.droppableId ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A Droppable requires a droppableId prop') : invariant(false) : void 0;\n !(typeof props.droppableId === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, `A Droppable requires a [string] droppableId. Provided: [${typeof props.droppableId}]`) : invariant(false) : void 0;\n}, function boolean(_ref2) {\n let {\n props\n } = _ref2;\n !isBoolean(props.isDropDisabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isDropDisabled must be a boolean') : invariant(false) : void 0;\n !isBoolean(props.isCombineEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isCombineEnabled must be a boolean') : invariant(false) : void 0;\n !isBoolean(props.ignoreContainerClipping) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ignoreContainerClipping must be a boolean') : invariant(false) : void 0;\n}, function ref(_ref3) {\n let {\n getDroppableRef\n } = _ref3;\n checkIsValidInnerRef(getDroppableRef());\n}];\nconst standard = [function placeholder(_ref4) {\n let {\n props,\n getPlaceholderRef\n } = _ref4;\n if (!props.placeholder) {\n return;\n }\n const ref = getPlaceholderRef();\n if (ref) {\n return;\n }\n process.env.NODE_ENV !== \"production\" ? warning(`\n Droppable setup issue [droppableId: \"${props.droppableId}\"]:\n DroppableProvided > placeholder could not be found.\n\n Please be sure to add the {provided.placeholder} React Node as a child of your Droppable.\n More information: https://github.com/hello-pangea/dnd/blob/main/docs/api/droppable.md\n `) : void 0;\n}];\nconst virtual = [function hasClone(_ref5) {\n let {\n props\n } = _ref5;\n !props.renderClone ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Must provide a clone render function (renderClone) for virtual lists') : invariant(false) : void 0;\n}, function hasNoPlaceholder(_ref6) {\n let {\n getPlaceholderRef\n } = _ref6;\n !!getPlaceholderRef() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected virtual list to not have a placeholder') : invariant(false) : void 0;\n}];\nfunction useValidation(args) {\n useDevSetupWarning(() => {\n runChecks(args, shared);\n if (args.props.mode === 'standard') {\n runChecks(args, standard);\n }\n if (args.props.mode === 'virtual') {\n runChecks(args, virtual);\n }\n });\n}\n\nclass AnimateInOut extends React.PureComponent {\n constructor() {\n super(...arguments);\n this.state = {\n isVisible: Boolean(this.props.on),\n data: this.props.on,\n animate: this.props.shouldAnimate && this.props.on ? 'open' : 'none'\n };\n this.onClose = () => {\n if (this.state.animate !== 'close') {\n return;\n }\n this.setState({\n isVisible: false\n });\n };\n }\n static getDerivedStateFromProps(props, state) {\n if (!props.shouldAnimate) {\n return {\n isVisible: Boolean(props.on),\n data: props.on,\n animate: 'none'\n };\n }\n if (props.on) {\n return {\n isVisible: true,\n data: props.on,\n animate: 'open'\n };\n }\n if (state.isVisible) {\n return {\n isVisible: true,\n data: state.data,\n animate: 'close'\n };\n }\n return {\n isVisible: false,\n animate: 'close',\n data: null\n };\n }\n render() {\n if (!this.state.isVisible) {\n return null;\n }\n const provided = {\n onClose: this.onClose,\n data: this.state.data,\n animate: this.state.animate\n };\n return this.props.children(provided);\n }\n}\n\nconst Droppable = props => {\n const appContext = useContext(AppContext);\n !appContext ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find app context') : invariant(false) : void 0;\n const {\n contextId,\n isMovementAllowed\n } = appContext;\n const droppableRef = useRef(null);\n const placeholderRef = useRef(null);\n const {\n children,\n droppableId,\n type,\n mode,\n direction,\n ignoreContainerClipping,\n isDropDisabled,\n isCombineEnabled,\n snapshot,\n useClone,\n updateViewportMaxScroll,\n getContainerForClone\n } = props;\n const getDroppableRef = useCallback(() => droppableRef.current, []);\n const setDroppableRef = useCallback(function (value) {\n if (value === void 0) {\n value = null;\n }\n droppableRef.current = value;\n }, []);\n const getPlaceholderRef = useCallback(() => placeholderRef.current, []);\n const setPlaceholderRef = useCallback(function (value) {\n if (value === void 0) {\n value = null;\n }\n placeholderRef.current = value;\n }, []);\n useValidation({\n props,\n getDroppableRef,\n getPlaceholderRef\n });\n const onPlaceholderTransitionEnd = useCallback(() => {\n if (isMovementAllowed()) {\n updateViewportMaxScroll({\n maxScroll: getMaxWindowScroll()\n });\n }\n }, [isMovementAllowed, updateViewportMaxScroll]);\n useDroppablePublisher({\n droppableId,\n type,\n mode,\n direction,\n isDropDisabled,\n isCombineEnabled,\n ignoreContainerClipping,\n getDroppableRef\n });\n const placeholder = useMemo(() => React.createElement(AnimateInOut, {\n on: props.placeholder,\n shouldAnimate: props.shouldAnimatePlaceholder\n }, _ref => {\n let {\n onClose,\n data,\n animate\n } = _ref;\n return React.createElement(Placeholder$1, {\n placeholder: data,\n onClose: onClose,\n innerRef: setPlaceholderRef,\n animate: animate,\n contextId: contextId,\n onTransitionEnd: onPlaceholderTransitionEnd\n });\n }), [contextId, onPlaceholderTransitionEnd, props.placeholder, props.shouldAnimatePlaceholder, setPlaceholderRef]);\n const provided = useMemo(() => ({\n innerRef: setDroppableRef,\n placeholder,\n droppableProps: {\n 'data-rfd-droppable-id': droppableId,\n 'data-rfd-droppable-context-id': contextId\n }\n }), [contextId, droppableId, placeholder, setDroppableRef]);\n const isUsingCloneFor = useClone ? useClone.dragging.draggableId : null;\n const droppableContext = useMemo(() => ({\n droppableId,\n type,\n isUsingCloneFor\n }), [droppableId, isUsingCloneFor, type]);\n function getClone() {\n if (!useClone) {\n return null;\n }\n const {\n dragging,\n render\n } = useClone;\n const node = React.createElement(PrivateDraggable, {\n draggableId: dragging.draggableId,\n index: dragging.source.index,\n isClone: true,\n isEnabled: true,\n shouldRespectForcePress: false,\n canDragInteractiveElements: true\n }, (draggableProvided, draggableSnapshot) => render(draggableProvided, draggableSnapshot, dragging));\n return ReactDOM.createPortal(node, getContainerForClone());\n }\n return React.createElement(DroppableContext.Provider, {\n value: droppableContext\n }, children(provided, snapshot), getClone());\n};\nvar Droppable$1 = Droppable;\n\nfunction getBody() {\n !document.body ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'document.body is not ready') : invariant(false) : void 0;\n return document.body;\n}\nconst defaultProps = {\n mode: 'standard',\n type: 'DEFAULT',\n direction: 'vertical',\n isDropDisabled: false,\n isCombineEnabled: false,\n ignoreContainerClipping: false,\n renderClone: null,\n getContainerForClone: getBody\n};\nconst attachDefaultPropsToOwnProps = ownProps => {\n let mergedProps = {\n ...ownProps\n };\n let defaultPropKey;\n for (defaultPropKey in defaultProps) {\n if (ownProps[defaultPropKey] === undefined) {\n mergedProps = {\n ...mergedProps,\n [defaultPropKey]: defaultProps[defaultPropKey]\n };\n }\n }\n return mergedProps;\n};\nconst isMatchingType = (type, critical) => type === critical.droppable.type;\nconst getDraggable = (critical, dimensions) => dimensions.draggables[critical.draggable.id];\nconst makeMapStateToProps = () => {\n const idleWithAnimation = {\n placeholder: null,\n shouldAnimatePlaceholder: true,\n snapshot: {\n isDraggingOver: false,\n draggingOverWith: null,\n draggingFromThisWith: null,\n isUsingPlaceholder: false\n },\n useClone: null\n };\n const idleWithoutAnimation = {\n ...idleWithAnimation,\n shouldAnimatePlaceholder: false\n };\n const getDraggableRubric = memoizeOne(descriptor => ({\n draggableId: descriptor.id,\n type: descriptor.type,\n source: {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n }\n }));\n const getMapProps = memoizeOne((id, isEnabled, isDraggingOverForConsumer, isDraggingOverForImpact, dragging, renderClone) => {\n const draggableId = dragging.descriptor.id;\n const isHome = dragging.descriptor.droppableId === id;\n if (isHome) {\n const useClone = renderClone ? {\n render: renderClone,\n dragging: getDraggableRubric(dragging.descriptor)\n } : null;\n const snapshot = {\n isDraggingOver: isDraggingOverForConsumer,\n draggingOverWith: isDraggingOverForConsumer ? draggableId : null,\n draggingFromThisWith: draggableId,\n isUsingPlaceholder: true\n };\n return {\n placeholder: dragging.placeholder,\n shouldAnimatePlaceholder: false,\n snapshot,\n useClone\n };\n }\n if (!isEnabled) {\n return idleWithoutAnimation;\n }\n if (!isDraggingOverForImpact) {\n return idleWithAnimation;\n }\n const snapshot = {\n isDraggingOver: isDraggingOverForConsumer,\n draggingOverWith: draggableId,\n draggingFromThisWith: null,\n isUsingPlaceholder: true\n };\n return {\n placeholder: dragging.placeholder,\n shouldAnimatePlaceholder: true,\n snapshot,\n useClone: null\n };\n });\n const selector = (state, ownProps) => {\n const ownPropsWithDefaultProps = attachDefaultPropsToOwnProps(ownProps);\n const id = ownPropsWithDefaultProps.droppableId;\n const type = ownPropsWithDefaultProps.type;\n const isEnabled = !ownPropsWithDefaultProps.isDropDisabled;\n const renderClone = ownPropsWithDefaultProps.renderClone;\n if (isDragging(state)) {\n const critical = state.critical;\n if (!isMatchingType(type, critical)) {\n return idleWithoutAnimation;\n }\n const dragging = getDraggable(critical, state.dimensions);\n const isDraggingOver = whatIsDraggedOver(state.impact) === id;\n return getMapProps(id, isEnabled, isDraggingOver, isDraggingOver, dragging, renderClone);\n }\n if (state.phase === 'DROP_ANIMATING') {\n const completed = state.completed;\n if (!isMatchingType(type, completed.critical)) {\n return idleWithoutAnimation;\n }\n const dragging = getDraggable(completed.critical, state.dimensions);\n return getMapProps(id, isEnabled, whatIsDraggedOverFromResult(completed.result) === id, whatIsDraggedOver(completed.impact) === id, dragging, renderClone);\n }\n if (state.phase === 'IDLE' && state.completed && !state.shouldFlush) {\n const completed = state.completed;\n if (!isMatchingType(type, completed.critical)) {\n return idleWithoutAnimation;\n }\n const wasOver = whatIsDraggedOver(completed.impact) === id;\n const wasCombining = Boolean(completed.impact.at && completed.impact.at.type === 'COMBINE');\n const isHome = completed.critical.droppable.id === id;\n if (wasOver) {\n return wasCombining ? idleWithAnimation : idleWithoutAnimation;\n }\n if (isHome) {\n return idleWithAnimation;\n }\n return idleWithoutAnimation;\n }\n return idleWithoutAnimation;\n };\n return selector;\n};\nconst mapDispatchToProps = {\n updateViewportMaxScroll: updateViewportMaxScroll\n};\nconst ConnectedDroppable = connect(makeMapStateToProps, mapDispatchToProps, (stateProps, dispatchProps, ownProps) => {\n return {\n ...attachDefaultPropsToOwnProps(ownProps),\n ...stateProps,\n ...dispatchProps\n };\n}, {\n context: StoreContext,\n areStatePropsEqual: isStrictEqual\n})(Droppable$1);\nvar ConnectedDroppable$1 = ConnectedDroppable;\n\nexport { DragDropContext, PublicDraggable as Draggable, ConnectedDroppable$1 as Droppable, resetServerContext, useKeyboardSensor, useMouseSensor, useTouchSensor };\n","export const reorderList = ({\n endIndex,\n firstDisplayOrder,\n list,\n startIndex,\n}) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result.map((item, index) => ({\n ...item,\n displayOrder: firstDisplayOrder + index,\n }));\n};\n\nexport const getDragItemStyle = (isDragging, draggableStyle) => ({\n // styles we need to apply on draggables\n ...draggableStyle,\n\n ...(isDragging && { zIndex: 99999 }),\n});\n","import { Draggable } from \"@hello-pangea/dnd\";\nimport { Reorder } from \"neetoicons\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { getDragItemStyle } from \"./utils\";\n\nconst DraggableItem = props => {\n const { rule, ruleIndex } = props;\n\n return (\n <Draggable draggableId={`item_${rule.id}`} index={ruleIndex}>\n {(provided, snapshot) => (\n <div\n className=\"neeto-ui-text-gray-800 mb-3 flex items-center space-x-4 font-medium\"\n key={`list_${rule.id}`}\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n style={getDragItemStyle(\n snapshot.isDragging,\n provided.draggableProps.style\n )}\n >\n <div className=\"neeto-kb-draggable-item__index neeto-ui-bg-gray-100 neeto-ui-text-gray-700 neeto-ui-rounded-sm flex h-6 w-6 flex-shrink-0 items-center justify-center p-1\">\n {ruleIndex + 1}\n </div>\n <div\n className=\"neeto-ui-bg-white neeto-ui-border-gray-400 neeto-ui-rounded neeto-ui-shadow-xs flex w-96 items-center space-x-4 border border-solid p-3\"\n data-cy=\"automation-rule-reorder-container\"\n >\n <Reorder />\n {rule.name}\n </div>\n </div>\n )}\n </Draggable>\n );\n};\n\nexport default withRouter(DraggableItem);\n","import { useEffect, useState } from \"react\";\n\nimport { DragDropContext, Droppable } from \"@hello-pangea/dnd\";\nimport { Reorder as NeetoUIReorderIcon } from \"neetoicons\";\nimport Container from \"neetomolecules/Container\";\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport { Pane, Typography, Button } from \"neetoui\";\nimport { clone, equals } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchAutomationRules,\n useReorderAutomationRules,\n} from \"hooks/reactQuery/useAutomationRulesApi\";\n\nimport DraggableItem from \"./DraggableItem\";\nimport { getDragItemStyle, reorderList } from \"./utils\";\n\nimport { INITIAL_RULES_DATA } from \"../constants\";\n\nconst RulesReorder = ({\n isOpen,\n totalCount,\n url,\n onClose,\n onReorderSuccess,\n}) => {\n const [reorderedRules, setReorderedRules] = useState([]);\n\n const { t } = useTranslation();\n\n const { data: { rules } = INITIAL_RULES_DATA, isLoading } =\n useFetchAutomationRules({ pageSize: totalCount, url }, { enabled: isOpen });\n\n const { mutate: reOrder, isPending } = useReorderAutomationRules(url);\n\n const firstDisplayOrder = rules[0]?.displayOrder ?? 1;\n\n const handleReorderSave = () =>\n reOrder(\n { url, payload: { reorder: { rules: reorderedRules } } },\n {\n onSuccess: () => {\n onReorderSuccess?.();\n onClose();\n },\n }\n );\n\n const onDragEnd = ({ destination, source }) => {\n if (!destination || source.index === destination.index) return;\n\n const items = reorderList({\n endIndex: destination.index,\n firstDisplayOrder,\n list: clone(reorderedRules),\n startIndex: source.index,\n });\n setReorderedRules(items);\n };\n\n useEffect(() => {\n setReorderedRules(rules);\n }, [rules]);\n\n if (isLoading) {\n return (\n <Pane {...{ isOpen, onClose }}>\n <Container>\n <PageLoader />\n </Container>\n </Pane>\n );\n }\n\n return (\n <Pane {...{ isOpen, onClose }}>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoRules.common.reorder\")}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <Typography className=\"mb-3\" style=\"body2\">\n {t(\"neetoRules.description.reorder\")}\n </Typography>\n <div className=\"flex flex-col items-center\">\n <DragDropContext {...{ onDragEnd }}>\n <Droppable\n droppableId=\"droppable\"\n renderClone={(provided, snapshot, rubric) => (\n <div\n className=\"neeto-ui-text-gray-800 mb-3 flex items-center space-x-4 font-medium\"\n key={`list_${reorderedRules[rubric.source.index].id}`}\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n style={getDragItemStyle(\n snapshot.isDragging,\n provided.draggableProps.style\n )}\n >\n <div className=\"neeto-kb-draggable-item__index neeto-ui-bg-gray-100 neeto-ui-text-gray-700 neeto-ui-rounded-sm flex h-6 w-6 flex-shrink-0 items-center justify-center p-1\">\n {rubric.source.index + 1}\n </div>\n <div className=\"neeto-ui-bg-white neeto-ui-border-gray-400 neeto-ui-rounded neeto-ui-shadow-xs flex w-96 items-center space-x-4 border border-solid p-3\">\n <NeetoUIReorderIcon />\n <div>{reorderedRules[rubric.source.index].name}</div>\n </div>\n </div>\n )}\n >\n {provided => (\n <div {...provided.droppableProps} ref={provided.innerRef}>\n {reorderedRules.map((rule, index) => (\n <DraggableItem\n {...{ rule }}\n key={rule.id}\n ruleIndex={index}\n />\n ))}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n </div>\n </Pane.Body>\n <Pane.Footer className=\"flex items-center gap-x-2\">\n <Button\n disabled={isPending || equals(rules, reorderedRules)}\n label={t(\"neetoRules.common.saveChange\")}\n loading={isPending}\n style=\"primary\"\n onClick={handleReorderSave}\n />\n <Button\n label={t(\"neetoRules.buttons.cancel\")}\n style=\"text\"\n onClick={onClose}\n />\n </Pane.Footer>\n </Pane>\n );\n};\nexport default RulesReorder;\n","import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useUtilityStore = create(\n withImmutableActions(set => ({\n moreActionDropdownItems: [],\n showPreviewPane: false,\n setMoreActionDropdownItems: items =>\n set({ moreActionDropdownItems: items, showPreviewPane: true }),\n hidePreviewPane: () =>\n set({ moreActionDropdownItems: [], showPreviewPane: false }),\n }))\n);\n\nexport default useUtilityStore;\n","export const STATUS_KEYS = { ENABLED: \"enabled\", DISABLED: \"disabled\" };\n\nexport const DEFAULT_INIT_PAGE = 1;\n","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import { withT } from \"neetocommons/react-utils\";\nimport { Typography } from \"neetoui\";\nimport { isNotNil } from \"ramda\";\n\nconst DisableMessage = withT(\n ({ t, disabledReason }) =>\n isNotNil(disabledReason) && (\n <div>\n <Typography class=\"text-red-600\" component=\"span\" style=\"body2\">\n {t(disabledReason)}\n </Typography>\n </div>\n )\n);\n\nexport default DisableMessage;\n","import { t } from \"i18next\";\nimport { isPresent, removeBy } from \"neetocist\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport { Switch, Button, Typography, Tooltip } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nimport useUtilityStore from \"components/stores/useUtilityStore\";\nimport { createRoutes } from \"utils\";\n\nimport { STATUS_KEYS } from \"./constants\";\nimport DisableMessage from \"./DisableMessage\";\n\nconst buildActionDropdownMenuItems = ({\n rule,\n onClone,\n onDelete,\n moreDropdownItems = [],\n automationRulesPath,\n allowCloning,\n}) => {\n const defaultOptions = [\n ...moreDropdownItems.map(({ onClick, ...others }) => ({\n ...others,\n onClick: () => onClick(rule),\n })),\n {\n key: \"edit\",\n className: \"neeto-ui-btn\",\n \"data-test-id\": \"automation-rules-edit-link\",\n \"data-cy\": \"automation-rules-edit-link\",\n label: t(\"neetoRules.button.edit\"),\n to: buildUrl(createRoutes(automationRulesPath).edit, { ruleId: rule.id }),\n },\n {\n key: \"clone\",\n \"data-test-id\": \"automation-rules-clone-link\",\n \"data-cy\": \"automation-rules-clone-link\",\n label: t(\"neetoRules.button.clone\"),\n onClick: () => onClone(rule.id),\n },\n { key: \"divider\", type: \"divider\" },\n {\n key: \"delete\",\n \"data-test-id\": \"automation-rules-delete-link\",\n \"data-cy\": \"automation-rules-delete-link\",\n label: t(\"neetoRules.button.delete\"),\n onClick: () => onDelete(rule),\n },\n ];\n\n if (!allowCloning) {\n return removeBy({ key: \"clone\" }, defaultOptions);\n }\n\n return defaultOptions;\n};\n\nexport const getColumnData = ({\n handleChangeStatus,\n additionalColumns = [],\n onPreview,\n ...otherProps\n}) => {\n const { setMoreActionDropdownItems } = useUtilityStore.pick();\n\n return [\n {\n title: t(\"neetoRules.labels.name\"),\n dataIndex: \"name\",\n key: \"name\",\n ellipsis: true,\n width: 440,\n render: (name, rule) => (\n <div>\n <div className=\"flex items-center justify-between gap-x-3\">\n <Button\n className=\"whitespace-pre-line break-words text-left\"\n style=\"link\"\n onClick={() => {\n setMoreActionDropdownItems(\n buildActionDropdownMenuItems({ rule, ...otherProps })\n );\n onPreview(rule.id);\n }}\n >\n {name}\n </Button>\n <MoreDropdown\n dropdownProps={{ strategy: \"fixed\" }}\n menuItems={buildActionDropdownMenuItems({\n rule,\n ...otherProps,\n })}\n />\n </div>\n <DisableMessage disabledReason={rule.disabledReason} />\n </div>\n ),\n },\n {\n title: t(\"neetoRules.labels.description\"),\n dataIndex: \"description\",\n key: \"description\",\n width: 390,\n render: description =>\n isPresent(description) ? (\n <Tooltip content={description} position=\"bottom\">\n <Typography\n className=\"line-clamp-2 whitespace-pre-line\"\n style=\"body2\"\n >\n {description}\n </Typography>\n </Tooltip>\n ) : (\n <Typography style=\"body2\">-</Typography>\n ),\n },\n {\n title: t(\"neetoRules.labels.active\"),\n key: \"active\",\n width: 100,\n align: \"center\",\n render: (_, rule) => (\n <div className=\"flex justify-center\">\n <Switch\n checked={rule.status === STATUS_KEYS.ENABLED}\n data-test-id=\"automation-rules-state-switch-row\"\n disabled={!!rule.disabledReason}\n onChange={e => {\n handleChangeStatus(e, rule.id);\n }}\n />\n </div>\n ),\n },\n ...additionalColumns,\n ];\n};\n\nexport const renderNoDataHelpText = helpDocUrl => (\n <Trans\n i18nKey=\"neetoRules.noData.helpText\"\n components={{\n a: <Button style=\"link\" target=\"_blank\" to={{ pathname: helpDocUrl }} />,\n }}\n />\n);\n","import { useState } from \"react\";\n\nimport { isNotEmpty } from \"neetocist\";\nimport { DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport SubHeader from \"neetomolecules/SubHeader\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Alert, Table, Typography, NoData } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport useUtilityStore from \"components/stores/useUtilityStore\";\nimport {\n useCloneAutomationRule,\n useDeleteAutomationRule,\n useUpdateAutomationRule,\n} from \"hooks/reactQuery/useAutomationRulesApi\";\nimport { createRoutes } from \"utils\";\n\nimport { STATUS_KEYS } from \"./constants\";\nimport { getColumnData, renderNoDataHelpText } from \"./utils\";\n\nconst RulesTable = ({\n url,\n additionalColumns,\n automationRulesPath = \"/\",\n onPreview,\n moreDropdownItems = [],\n rules = [],\n totalCount,\n helpDocUrl,\n isLoading,\n onDeleteSuccess,\n onCloneSuccess,\n onUpdateSuccess,\n page,\n setPage,\n allowCloning = true,\n hasUnfilteredRules = true,\n}) => {\n const { searchTerm = \"\" } = useQueryParams();\n\n const [selectedRule, setSelectedRule] = useState(null);\n\n const { hidePreviewPane } = useUtilityStore.pick();\n\n const { t } = useTranslation();\n\n const { mutate: updateRule, isPending: isUpdating } =\n useUpdateAutomationRule(url);\n\n const { mutate: cloneRule, isPending: isCloning } =\n useCloneAutomationRule(url);\n\n const { mutate: deleteRule, isPending: isDeleting } =\n useDeleteAutomationRule(url);\n\n const handleChangeStatus = (event, id) => {\n const status = event.target.checked\n ? STATUS_KEYS.ENABLED\n : STATUS_KEYS.DISABLED;\n const payload = { rule: { status } };\n updateRule({ id, url, payload }, { onSuccess: () => onUpdateSuccess?.() });\n };\n\n const handleCloneSuccess = () => {\n onCloneSuccess?.();\n hidePreviewPane();\n };\n\n const handleDeleteSuccess = () => {\n onDeleteSuccess?.();\n hidePreviewPane();\n setSelectedRule(null);\n };\n\n const columnData = getColumnData({\n handleChangeStatus,\n additionalColumns,\n onClone: id => cloneRule({ id, url }, { onSuccess: handleCloneSuccess }),\n onDelete: setSelectedRule,\n onPreview,\n automationRulesPath,\n moreDropdownItems,\n allowCloning,\n });\n\n if (isLoading && isEmpty(rules)) {\n return <PageLoader />;\n }\n\n return (\n <>\n {hasUnfilteredRules && (\n <SubHeader\n leftActionBlock={\n <Typography className=\"mr-4 font-semibold\" style=\"h4\">\n {t(\"neetoRules.common.automationRuleWithCount\", {\n count: totalCount,\n })}\n </Typography>\n }\n />\n )}\n {isNotEmpty(rules) ? (\n <>\n <TableWrapper hasPagination={totalCount > DEFAULT_PAGE_SIZE}>\n <Table\n {...{ columnData, totalCount }}\n fixedHeight\n allowClick={false}\n currentPageNumber={page}\n defaultPageSize={DEFAULT_PAGE_SIZE}\n handlePageChange={setPage}\n loading={isUpdating || isCloning || isDeleting || isLoading}\n rowData={rules.map(item => ({ key: item.id, ...item }))}\n rowSelection={false}\n scroll={{ x: 0 }}\n tableLayout=\"fixed\"\n />\n </TableWrapper>\n <Alert\n isOpen={!!selectedRule}\n isSubmitting={isDeleting}\n submitButtonLabel={t(\"neetoRules.button.delete\")}\n title={t(\"neetoRules.deleteAlert.title\")}\n message={\n <Trans\n i18nKey=\"neetoRules.deleteAlert.message\"\n values={{ name: selectedRule?.name }}\n />\n }\n onClose={() => setSelectedRule(null)}\n onSubmit={() =>\n deleteRule(\n { id: selectedRule?.id, url },\n { onSuccess: handleDeleteSuccess }\n )\n }\n />\n </>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n title={t(\"neetoRules.noData.title\")}\n {...(isEmpty(searchTerm) && {\n helpText: helpDocUrl ? renderNoDataHelpText(helpDocUrl) : null,\n primaryButtonProps: {\n label: t(\"neetoRules.button.addNew\"),\n to: createRoutes(automationRulesPath).new,\n },\n })}\n />\n </div>\n )}\n </>\n );\n};\n\nexport default RulesTable;\n","import { useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport Container from \"neetomolecules/Container\";\n\nimport { useFetchAutomationRules } from \"hooks/reactQuery/useAutomationRulesApi\";\n\nimport { INITIAL_RULES_DATA } from \"./constants\";\nimport Header from \"./Header\";\nimport RulesReorder from \"./RulesReorder\";\nimport RulesTable from \"./RulesTable\";\nimport { DEFAULT_INIT_PAGE } from \"./RulesTable/constants\";\n\nconst NeetoRules = ({\n breadcrumbs,\n automationRulesPath,\n automationRulesEndpoint: url,\n allowReordering = false,\n rulesTableProps = {},\n helpPopoverProps = {},\n deleteRule,\n cloneRule,\n updateRule,\n reorderRules,\n headerProps = {},\n}) => {\n const [isReorderPaneOpen, setIsReorderPaneOpen] = useState(false);\n const helpDocUrl = helpPopoverProps?.helpLinkProps?.href;\n\n const [page, setPage] = useState(DEFAULT_INIT_PAGE);\n\n const { searchTerm = \"\" } = useQueryParams();\n\n const {\n data: { rules, totalCount } = INITIAL_RULES_DATA,\n isLoading,\n isFetching,\n } = useFetchAutomationRules({\n url,\n page,\n pageSize: DEFAULT_PAGE_SIZE,\n searchTerm,\n });\n\n const hasUnfilteredRules = isPresent(searchTerm) || totalCount > 0;\n\n return (\n <Container>\n <Header\n {...{\n allowReordering,\n automationRulesPath,\n breadcrumbs,\n hasUnfilteredRules,\n headerProps,\n helpPopoverProps,\n setIsReorderPaneOpen,\n }}\n />\n <RulesTable\n {...{\n automationRulesPath,\n hasUnfilteredRules,\n helpDocUrl,\n page,\n rules,\n setPage,\n totalCount,\n url,\n ...rulesTableProps,\n }}\n allowCloning={cloneRule?.allowed ?? true}\n isLoading={isLoading || isFetching}\n onCloneSuccess={cloneRule?.onSuccess?.callback}\n onDeleteSuccess={deleteRule?.onSuccess?.callback}\n onUpdateSuccess={updateRule?.onSuccess?.callback}\n />\n {allowReordering && !isLoading && (\n <RulesReorder\n {...{ totalCount, url }}\n isOpen={isReorderPaneOpen}\n onClose={() => setIsReorderPaneOpen(false)}\n onReorderSuccess={reorderRules?.onSuccess?.callback}\n />\n )}\n </Container>\n );\n};\n\nexport default NeetoRules;\n","import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useCustomDataStore = create(\n withImmutableActions(set => ({ customData: {}, setCustomDataState: set }))\n);\n\nexport default useCustomDataStore;\n","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","import classNames from \"classnames\";\n\nconst OptionsWrapper = ({ hasScroll, maxHeight = \"max-h-44\", children }) => (\n <div\n className={classNames({\n [`${maxHeight} overflow-y-auto`]: hasScroll,\n })}\n >\n {children}\n </div>\n);\n\nexport default OptionsWrapper;\n","import { useEffect } from \"react\";\n\nimport { isNil } from \"ramda\";\n\nconst useOnButtonPressed = (ref, handler) => {\n const buttonPressed = () => {\n const keysPressed = {};\n\n const listener = event => {\n if (isNil(event.key)) return;\n\n keysPressed[event.key] = true;\n if (\n (keysPressed[\"Meta\"] || keysPressed[\"Control\"]) &&\n event.key === \"Enter\"\n ) {\n handler();\n keysPressed[\"Meta\"] = false;\n keysPressed[\"Control\"] = false;\n } else if (\n (keysPressed[\"Meta\"] || keysPressed[\"Control\"]) &&\n event.key !== \"Enter\" &&\n event.key !== \"Meta\" &&\n event.key !== \"Control\"\n ) {\n keysPressed[\"Meta\"] = false;\n keysPressed[\"Control\"] = false;\n }\n };\n document.addEventListener(\"keydown\", listener);\n\n return () => document.removeEventListener(\"keydown\", listener);\n };\n\n useEffect(() => {\n buttonPressed();\n }, [ref]);\n};\n\nexport default useOnButtonPressed;\n","export const DEFAULT_LONG_TEXT_ROWS = 8;\n","import { ActionBlock } from \"neetoui/formik\";\n\nconst PaneFooterBlock = ({\n setShowPane,\n submitButtonProps = {},\n cancelButtonProps = {},\n}) => (\n <ActionBlock\n cancelButtonProps={{\n \"data-cy\": \"cancel-button\",\n onClick: () => setShowPane(false),\n ...cancelButtonProps,\n }}\n submitButtonProps={{\n \"data-cy\": \"save-changes-button\",\n onClick: () => setShowPane(false),\n ...submitButtonProps,\n }}\n />\n);\n\nexport default PaneFooterBlock;\n","import { useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Typography, Pane, Button } from \"neetoui\";\nimport { Textarea } from \"neetoui/formik\";\nimport { isNotNil } from \"ramda\";\n\nimport useOnButtonPressed from \"hooks/useOnButtonPressed\";\n\nimport { DEFAULT_LONG_TEXT_ROWS } from \"../constants\";\nimport PaneFooterBlock from \"../PaneFooterBlock\";\n\nconst LongTextField = ({\n name,\n value = \"\",\n index,\n selectedField = {},\n defaultLabel,\n defaultSeparator,\n}) => {\n const { errors, touched } = useFormikContext();\n\n const [showPane, setShowPane] = useState(false);\n\n const initialFocusRef = useRef(null);\n\n useOnButtonPressed(initialFocusRef, () => setShowPane(false));\n\n const isValid =\n errors.actions &&\n isNotNil(errors.actions?.value?.[index]) &&\n isNotNil(touched.actions?.value?.[index]);\n const separator = selectedField?.separator?.toLowerCase() || defaultSeparator;\n const label = selectedField?.placeholder || defaultLabel;\n const rows = selectedField?.rows || DEFAULT_LONG_TEXT_ROWS;\n\n return (\n <>\n {separator && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"long-text-action-separator-text\"\n style=\"h5\"\n weight=\"normal\"\n >\n {separator}\n </Typography>\n )}\n <Button\n data-cy=\"long-text-action-button\"\n label={label.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": showPane,\n \"neeto-ui-text-error-500\": isValid,\n }\n )}\n onClick={() => setShowPane(prevState => !prevState)}\n />\n <Pane\n {...{ initialFocusRef }}\n isOpen={showPane}\n size=\"large\"\n onClose={() => setShowPane(false)}\n >\n <Pane.Header>\n <Typography\n className=\"neeto-ui-text-gray-800\"\n data-cy=\"long-text-action-pane-header-title\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <Textarea {...{ name, rows, value }} required className=\"w-full\" />\n </Pane.Body>\n <Pane.Footer>\n <PaneFooterBlock {...{ setShowPane }} />\n </Pane.Footer>\n </Pane>\n </>\n );\n};\n\nexport default LongTextField;\n","import { useField } from \"formik\";\nimport { Input } from \"neetoui\";\n\nconst InputField = ({ initialFocusRef, name, label, ...otherProps }) => {\n const [field, meta] = useField(name);\n\n return (\n <Input\n {...{ label }}\n type=\"text\"\n {...field}\n error={meta.touched ? meta.error : \"\"}\n ref={initialFocusRef}\n {...otherProps}\n />\n );\n};\n\nexport default InputField;\n","export const ADDITIONAL_DATA_INITIAL_VALUE = { key: \"\", value: \"\" };\n\nexport const SAMPLE_ENDPOINT = \"https://example.com\";\n","import { isNotEmpty } from \"neetocist\";\nimport { whereAny } from \"ramda\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE } from \"./constants\";\n\nexport const addOption = arrayHelpers =>\n arrayHelpers.push(ADDITIONAL_DATA_INITIAL_VALUE);\n\nexport const removeOption = ({ arrayHelpers, index, data }) => {\n arrayHelpers.remove(index);\n\n if (data.length === 1) {\n addOption(arrayHelpers);\n }\n};\n\nexport const hasKeyOrValue = whereAny({\n key: isNotEmpty,\n value: isNotEmpty,\n});\n","import { isPresent } from \"neetocist\";\nimport { path, split, useWith } from \"ramda\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE } from \"./KeyValuePairsField/constants\";\n\nexport const setEditorContent = (ref, content) => {\n if (!ref.current) return;\n\n ref.current.editor.commands.setContent(content);\n};\n\n// eslint-disable-next-line react-hooks/rules-of-hooks\nexport const dotPath = useWith(path, [split(\".\")]);\n\nexport const formatAdditionalData = additionalData =>\n isPresent(additionalData) ? additionalData : [ADDITIONAL_DATA_INITIAL_VALUE];\n","import { FieldArray } from \"formik\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Delete } from \"neetoicons\";\nimport { Button, Label } from \"neetoui\";\n\nimport { hasKeyOrValue, removeOption, addOption } from \"./utils\";\n\nimport InputField from \"../InputField\";\nimport { dotPath } from \"../utils\";\n\nconst KeyValuePairsField = withT(({ t, name, label = \"\" }) => (\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const data = dotPath(name, arrayHelpers.form.values);\n const showDeleteButton = data.length > 1 || hasKeyOrValue(data[0]);\n\n return (\n <div className=\"space-y-3\">\n <Label>{label}</Label>\n {data.map((_, index) => (\n <div className=\"flex h-8 space-x-3\" key={index}>\n <InputField\n className=\"w-2/5\"\n name={`${name}.${index}.key`}\n placeholder={t(\"neetoRules.labels.key\")}\n />\n <InputField\n className=\"w-3/5\"\n name={`${name}.${index}.value`}\n placeholder={t(\"neetoRules.labels.value\")}\n suffix={\n showDeleteButton && (\n <Button\n icon={Delete}\n size=\"small\"\n style=\"text\"\n onClick={() =>\n removeOption({ arrayHelpers, index, data })\n }\n />\n )\n }\n />\n </div>\n ))}\n <Button\n label={t(\"neetoRules.labels.addKeyValuePair\")}\n style=\"secondary\"\n onClick={() => addOption(arrayHelpers)}\n />\n </div>\n );\n }}\n </FieldArray>\n));\n\nexport default KeyValuePairsField;\n","import { findBy, renameKeys } from \"neetocist\";\nimport { useStateWithDependency } from \"neetocommons/react-utils\";\nimport { Select } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nconst SelectTemplateField = ({\n selectedField,\n templates,\n onChange,\n initialFocusRef,\n}) => {\n const [selectedTemplate, setSelectedTemplate] = useStateWithDependency(null, [\n selectedField,\n ]);\n\n const { t } = useTranslation();\n\n const handleTemplateChange = option => {\n setSelectedTemplate(option);\n if (!option) return;\n\n const template = findBy({ id: option.value }, templates);\n onChange?.(template);\n };\n\n return (\n <Select\n isClearable\n isSearchable\n className=\"mb-4\"\n innerRef={initialFocusRef}\n label={t(\"neetoRules.labels.template\")}\n options={renameKeys({ name: \"label\", id: \"value\" }, templates)}\n placeholder={t(\"neetoRules.placeholders.selectTemplate\")}\n value={selectedTemplate}\n onChange={handleTemplateChange}\n />\n );\n};\n\nSelectTemplateField.propTypes = {\n selectedField: PropTypes.object,\n templates: PropTypes.array,\n onChange: PropTypes.func,\n};\n\nexport default SelectTemplateField;\n","import { useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport { Pane, Typography, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PaneFooterBlock from \"components/Common/PaneFooterBlock\";\nimport useOnButtonPressed from \"hooks/useOnButtonPressed\";\n\nimport InputField from \"./InputField\";\nimport KeyValuePairsField from \"./KeyValuePairsField\";\nimport { SAMPLE_ENDPOINT } from \"./KeyValuePairsField/constants\";\nimport SelectTemplateField from \"./SelectTemplateField\";\nimport { formatAdditionalData } from \"./utils\";\n\nconst ApiFields = ({ name, selectedField, index }) => {\n const { errors, touched, setFieldValue } = useFormikContext();\n\n const [showPane, setShowPane] = useState(false);\n\n const initialFocusRef = useRef(null);\n\n const { t } = useTranslation();\n\n useOnButtonPressed(initialFocusRef, () => setShowPane(false));\n\n const isValid =\n errors.actions &&\n isNotNil(errors.actions?.value?.[index]) &&\n isNotNil(touched.actions?.value?.[index]);\n\n const separator =\n selectedField?.separator?.toLowerCase() || t(\"neetoRules.common.as\");\n\n const defaultLabel =\n selectedField?.dataPlaceholder || t(\"neetoRules.common.data\");\n\n const templates = selectedField?.templates;\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n const handleTemplateChange = template => {\n setFieldValue(`${name}.endpoint`, template.endpoint);\n setFieldValue(\n `${name}.additionalData`,\n formatAdditionalData(template.additionalData)\n );\n };\n\n return (\n <>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"api-action-separator-text\"\n style=\"h5\"\n weight=\"normal\"\n >\n {separator}\n </Typography>\n <Button\n data-cy=\"api-action-button\"\n label={defaultLabel.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": showPane,\n \"neeto-ui-text-error-500\": isValid,\n }\n )}\n onClick={() => setShowPane(prevState => !prevState)}\n />\n <Pane\n {...{ initialFocusRef }}\n isOpen={showPane}\n size=\"large\"\n onClose={() => setShowPane(false)}\n >\n <Pane.Header>\n <Typography\n className=\"neeto-ui-text-gray-800 cursor-pointer\"\n data-cy=\"api-action-pane-header-title\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {defaultLabel}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <div className=\"w-full\">\n {isTemplateSelectionEnabled && (\n <SelectTemplateField\n {...{ initialFocusRef, selectedField, templates }}\n onChange={handleTemplateChange}\n />\n )}\n <InputField\n required\n className=\"mb-4\"\n data-cy=\"api-action-endpoint-text-field\"\n label={t(\"neetoRules.labels.endpoint\")}\n name={`${name}.endpoint`}\n placeholder={SAMPLE_ENDPOINT}\n initialFocusRef={\n isTemplateSelectionEnabled ? null : initialFocusRef\n }\n />\n <KeyValuePairsField\n label={t(\"neetoRules.labels.additionalData\")}\n name={`${name}.additionalData`}\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <PaneFooterBlock {...{ setShowPane }} />\n </Pane.Footer>\n </Pane>\n </>\n );\n};\n\nApiFields.propTypes = {\n name: PropTypes.string,\n selectedField: PropTypes.object,\n};\n\nexport default ApiFields;\n","import { useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Pane, Typography, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PaneFooterBlock from \"components/Common/PaneFooterBlock\";\nimport useOnButtonPressed from \"hooks/useOnButtonPressed\";\n\nconst CustomAction = ({\n ActionComponent,\n name,\n action,\n selectedField,\n index,\n}) => {\n const { errors, touched } = useFormikContext();\n const { t } = useTranslation();\n const [showPane, setShowPane] = useState(false);\n\n const initialFocusRef = useRef(null);\n\n useOnButtonPressed(initialFocusRef, () => setShowPane(false));\n\n const isValid =\n errors.actions &&\n isNotNil(errors.actions?.value?.[index]) &&\n isNotNil(touched.actions?.value?.[index]);\n\n const separator =\n selectedField?.separator?.toLowerCase() || t(\"neetoRules.common.as\");\n const defaultLabel = selectedField?.placeholder;\n\n return (\n <>\n <Typography className=\"neeto-ui-text-gray-700\" style=\"h5\" weight=\"normal\">\n {separator}\n </Typography>\n <Button\n label={defaultLabel.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": showPane,\n \"neeto-ui-text-error-500\": isValid,\n }\n )}\n onClick={() => setShowPane(prevState => !prevState)}\n />\n <Pane\n {...{ initialFocusRef }}\n isOpen={showPane}\n size=\"large\"\n onClose={() => setShowPane(false)}\n >\n <Pane.Header>\n <Typography\n className=\"neeto-ui-text-gray-800 cursor-pointer\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {defaultLabel}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <ActionComponent {...{ action, name }} />\n </Pane.Body>\n <Pane.Footer>\n <PaneFooterBlock {...{ setShowPane }} />\n </Pane.Footer>\n </Pane>\n </>\n );\n};\n\nCustomAction.propTypes = {\n name: PropTypes.string,\n action: PropTypes.object,\n selectedField: PropTypes.object,\n};\n\nexport default CustomAction;\n","import { useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport dayjs from \"dayjs\";\nimport { useFormikContext } from \"formik\";\nimport { Check } from \"neetoicons\";\nimport { Typography, DatePicker, Button } from \"neetoui\";\nimport { assocPath, isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst DateField = ({ name, index, selectedField }) => {\n const {\n values: { actions },\n errors,\n setFieldValue,\n touched,\n setTouched,\n } = useFormikContext();\n\n const [showInput, setShowInput] = useState(false);\n\n const { t } = useTranslation();\n\n const valueTerm = actions.value[index].metadata?.value;\n const label = valueTerm || t(\"neetoRules.form.selectDate\");\n const separator =\n selectedField?.separator?.toLowerCase() || t(\"neetoRules.common.to\");\n\n const isValid =\n errors.actions &&\n isNotNil(errors.actions?.value?.[index]) &&\n isNotNil(touched.actions?.value?.[index]);\n\n return (\n <>\n {!selectedField.hideSeparator && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"action-dropdown-seperator-text\"\n style=\"h5\"\n weight=\"normal\"\n >\n {separator}\n </Typography>\n )}\n {showInput ? (\n <>\n <DatePicker\n autoFocus\n defaultValue={valueTerm}\n name={`${name}.value`}\n type=\"date\"\n onChange={date =>\n setFieldValue(\n `${name}.value`,\n // This is the format being stored in database as of now, standard doesn't include this format\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n date ? dayjs(date).format(\"YYYY-MM-DD\") : \"\"\n )\n }\n />\n <Check\n className=\"cursor-pointer\"\n onClick={() => setShowInput(prevState => !prevState)}\n />\n </>\n ) : (\n <Button\n {...{ label }}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n { \"neeto-ui-text-error-500\": isValid }\n )}\n onClick={() => {\n setTouched(assocPath([\"actions\", \"value\", index], true, touched));\n setShowInput(prevState => !prevState);\n }}\n />\n )}\n </>\n );\n};\n\nexport default DateField;\n","import { t } from \"i18next\";\n\nconst ACTION_TYPES = {\n emailToIds: \"emailToIds\",\n email: \"email\",\n emailTo: \"emailTo\",\n dropdown: \"dropdown\",\n list: \"list\",\n multiSelect: \"multiSelect\",\n note: \"note\",\n text: \"text\",\n number: \"number\",\n decimal: \"decimal\",\n regex: \"regex\",\n textarea: \"textarea\",\n date: \"date\",\n longText: \"longText\",\n sms: \"sms\",\n smsToNumbers: \"smsToNumbers\",\n smsTo: \"smsTo\",\n sendToApi: \"sendToApi\",\n};\n\nconst LIST_FIELD_TOOLTIP_PROPS = {\n save: {\n content: t(\"neetoRules.buttons.save\"),\n position: \"top\",\n delay: 300,\n },\n cancel: {\n content: t(\"neetoRules.buttons.cancel\"),\n position: \"top\",\n delay: 300,\n },\n};\n\nconst ACTIONS = { REMOVE: \"remove\", ADD: \"add\" };\n\nconst DEFAULT_RULE_ACTION = { name: \"\", metadata: {} };\n\nconst EDITOR_ADDONS = [\"code-block\", \"block-quote\", \"image-upload\"];\n\nconst EMAIL_REGEX = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nconst MAXIMUM_OPTION_LENGTH = 7;\n\nconst ACTION_INPUT_TYPES = [\"text\", \"number\", \"decimal\", \"regex\"];\n\nexport {\n ACTIONS,\n ACTION_TYPES,\n LIST_FIELD_TOOLTIP_PROPS,\n DEFAULT_RULE_ACTION,\n EDITOR_ADDONS,\n EMAIL_REGEX,\n MAXIMUM_OPTION_LENGTH,\n ACTION_INPUT_TYPES,\n};\n","import { t } from \"i18next\";\nimport { Button } from \"neetoui\";\nimport { toLower } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport { EMAIL_REGEX } from \"./constants\";\n\nconst getFieldDetails = /*#__PURE__*/ (fieldValue, actionOptions = []) =>\n actionOptions.find(option => option.value === fieldValue);\n\nconst getActionOptions = (\n currentAction,\n selectedActions,\n actionOptions = []\n) => {\n const selectedActionOptions = selectedActions.map(\n condition => condition.name\n );\n\n return actionOptions.filter(\n option =>\n option.value === currentAction.name ||\n !selectedActionOptions.includes(option.value)\n );\n};\n\nconst buildEmailValues = emails => {\n const emailRegex = EMAIL_REGEX;\n\n return emails.map(email =>\n typeof email === \"string\"\n ? { label: email, value: email, valid: emailRegex.test(email) }\n : email\n );\n};\n\nconst getDetailsByValue = /*#__PURE__*/ (value, options) =>\n options.find(option => option.value === value);\n\nconst getSearchedOptions = /*#__PURE__*/ (dropDownOptions, searchTerm) =>\n dropDownOptions.filter(({ label }) =>\n toLower(label).includes(toLower(searchTerm.trim()))\n );\n\nconst getSelectedOptions = /*#__PURE__*/ options =>\n options.filter(option => option).length ? options : [];\n\nconst getSlackChannelErrors = ({\n slackChannels,\n action,\n routeToSlackIntegration,\n}) => {\n const opts = slackChannels;\n if (!slackChannels || slackChannels.length === 0) {\n return {\n error: true,\n message: (\n <Trans\n i18nKey=\"neetoRules.validations.slack.errorInIntegration\"\n components={{\n button: (\n <Button\n href={routeToSlackIntegration}\n size=\"small\"\n style=\"link\"\n />\n ),\n }}\n />\n ),\n };\n }\n\n if (action?.metadata?.value) {\n const selectedOption = opts.find(\n op => op?.value === action?.metadata?.value\n );\n\n if (!selectedOption) {\n return {\n error: true,\n message: t(\"neetoRules.validations.slack.invalidChannel\"),\n };\n }\n }\n\n return { error: false };\n};\n\nexport {\n getFieldDetails,\n getActionOptions,\n buildEmailValues,\n getDetailsByValue,\n getSearchedOptions,\n getSelectedOptions,\n getSlackChannelErrors,\n};\n","import { useState, useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { findBy } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\nimport { Check, Search } from \"neetoicons\";\nimport { Typography, Dropdown, Input, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { assocPath, isEmpty, isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport OptionsWrapper from \"components/Common/OptionsWrapper\";\n\nimport { MAXIMUM_OPTION_LENGTH } from \"../../constants\";\nimport { getSearchedOptions } from \"../../helper\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst DropdownField = ({ dropdownOptions, name, index, selectedField }) => {\n const { t } = useTranslation();\n const {\n values: { actions },\n setFieldValue,\n errors,\n touched,\n setTouched,\n } = useFormikContext();\n\n const defaultLabel =\n selectedField?.placeholder || t(\"neetoRules.placeholders.selectOption\");\n\n const [defaultSelectedOption, setDefaultSelectedOption] = useState({\n label: defaultLabel,\n });\n const [isActive, setIsActive] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const defaultValue =\n actions.value[index].metadata?.value || actions.value[index]?.value;\n const searchedOptions = getSearchedOptions(dropdownOptions, searchTerm);\n const isValueSelected =\n defaultSelectedOption.label === defaultLabel &&\n errors.actions &&\n isNotNil(errors.actions?.value?.[index]) &&\n isNotNil(touched.actions?.value?.[index]);\n\n const separator =\n selectedField?.separator?.toLowerCase() || t(\"neetoRules.common.to\");\n\n const handleClose = () => {\n setIsActive(false);\n setSearchTerm(\"\");\n };\n\n const handleSelectOption = option => {\n setFieldValue(name, option.value);\n setDefaultSelectedOption(option);\n };\n\n const findDefaultSelectedOption = () => {\n if (defaultValue) {\n const option = findBy({ value: defaultValue }, dropdownOptions);\n if (option) {\n setDefaultSelectedOption(option);\n } else {\n setDefaultSelectedOption({ label: defaultLabel });\n setFieldValue(name, null);\n }\n } else {\n setDefaultSelectedOption({ label: defaultLabel });\n }\n };\n\n useEffect(() => {\n findDefaultSelectedOption();\n }, [defaultValue, dropdownOptions]);\n\n return (\n <>\n {!selectedField.hideSeparator && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"action-dropdown-seperator-text\"\n style=\"h5\"\n weight=\"normal\"\n >\n {separator}\n </Typography>\n )}\n <Dropdown\n buttonStyle=\"secondary\"\n className=\"neeto-ui-bg-gray-100\"\n customTarget={\n <Button\n data-cy=\"action-dropdown-button\"\n label={defaultSelectedOption?.label?.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": isActive,\n \"neeto-ui-text-error-500\": isValueSelected,\n }\n )}\n onClick={() => {\n setTouched(assocPath([\"actions\", \"value\", index], true, touched));\n setIsActive(prevState => !prevState);\n }}\n />\n }\n onClose={handleClose}\n >\n <Menu className=\"max-h-60 max-w-2xl p-3\">\n {dropdownOptions.length > MAXIMUM_OPTION_LENGTH && (\n <Input\n autoFocus\n className=\"mb-1\"\n data-cy=\"search-text-field\"\n placeholder={t(\"neetoRules.common.search\")}\n prefix={<Search />}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n onClick={e => e.stopPropagation()}\n />\n )}\n <OptionsWrapper\n hasScroll={dropdownOptions.length > MAXIMUM_OPTION_LENGTH}\n >\n {searchedOptions.map((option, idx) => (\n <MenuItem.Button\n data-cy={`${joinHyphenCase(option.label)}-menu-item`}\n key={idx}\n className={classNames({\n \"neeto-ui-bg-gray-100\":\n defaultSelectedOption.value === option.value,\n })}\n suffix={\n defaultSelectedOption.value === option.value && (\n <Check className=\"neeto-ui-text-primary-800\" />\n )\n }\n onClick={() => handleSelectOption(option)}\n >\n {option.label}\n </MenuItem.Button>\n ))}\n </OptionsWrapper>\n {isEmpty(dropdownOptions) && (\n <MenuItem.Button data-cy=\"no-options-menu-item\">\n {t(\"neetoRules.common.noOptions\")}\n </MenuItem.Button>\n )}\n </Menu>\n </Dropdown>\n </>\n );\n};\n\nDropdownField.propTypes = {\n dropdownOptions: PropTypes.array,\n name: PropTypes.string,\n index: PropTypes.number,\n};\n\nexport default DropdownField;\n","import { useState, useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { useDebounce } from \"neetocommons/react-utils\";\nimport PropTypes from \"prop-types\";\n\nimport { FormikEditor } from \"neetoeditor\";\n\nimport { EDITOR_ADDONS } from \"../../constants\";\n\nconst EditorAction = ({\n autoFocus,\n name,\n value = \"\",\n label,\n variables = [],\n addons = EDITOR_ADDONS,\n editorRef = null,\n defaults,\n ...otherProps\n}) => {\n const { setFieldValue } = useFormikContext();\n const [editorData, setEditorData] = useState(value);\n\n const debouncedValue = useDebounce(editorData, 200);\n\n useEffect(() => {\n setFieldValue(name, editorData);\n }, [debouncedValue]);\n\n return (\n <FormikEditor\n {...{ addons, autoFocus, defaults, label, name, variables }}\n hideSlashCommands\n className=\"w-full\"\n data-cy=\"neeto-editor\"\n ref={editorRef}\n onChange={setEditorData}\n {...otherProps}\n />\n );\n};\n\nEditorAction.propTypes = {\n name: PropTypes.string,\n value: PropTypes.string,\n label: PropTypes.string,\n variables: PropTypes.array,\n};\n\nexport default EditorAction;\n","import { useFormikContext } from \"formik\";\nimport { MultiEmailInput } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { buildEmailValues } from \"../../helper\";\n\nconst EmailIdFields = ({ initialFocusRef, name, emails = [] }) => {\n const { setFieldValue } = useFormikContext();\n\n const { t } = useTranslation();\n\n const formattedEmails = buildEmailValues(emails);\n\n return (\n <div className=\"mb-4\">\n <MultiEmailInput\n {...{ name }}\n label={t(\"neetoRules.common.emailIds\")}\n placeholder={t(\"neetoRules.placeholders.emailField\")}\n ref={initialFocusRef}\n value={formattedEmails}\n onChange={value =>\n setFieldValue(\n name,\n value?.map(({ value }) => value)\n )\n }\n />\n </div>\n );\n};\n\nEmailIdFields.propTypes = {\n name: PropTypes.string,\n emails: PropTypes.array,\n};\n\nexport default EmailIdFields;\n","import { useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport { Pane, Typography, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PaneFooterBlock from \"components/Common/PaneFooterBlock\";\nimport useOnButtonPressed from \"hooks/useOnButtonPressed\";\n\nimport EditorAction from \"./EditorAction\";\nimport EmailIdFields from \"./EmailIdFields\";\nimport InputField from \"./InputField\";\nimport SelectTemplateField from \"./SelectTemplateField\";\nimport { setEditorContent } from \"./utils\";\n\nconst EmailFields = ({\n isEmailIdField = false,\n name,\n action,\n selectedField,\n emails = [],\n index,\n}) => {\n const { errors, touched, setFieldValue } = useFormikContext();\n\n const [showPane, setShowPane] = useState(false);\n\n const initialFocusRef = useRef(null);\n const editorRef = useRef(null);\n\n const { t } = useTranslation();\n\n useOnButtonPressed(initialFocusRef, () => setShowPane(false));\n\n const isValid =\n errors.actions &&\n isNotNil(errors.actions?.value?.[index]) &&\n isNotNil(touched.actions?.value?.[index]);\n\n const separator =\n selectedField?.separator?.toLowerCase() || t(\"neetoRules.common.as\");\n\n const defaultLabel =\n selectedField?.emailPlaceholder || t(\"neetoRules.common.email\");\n\n const templates = selectedField?.templates;\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n const handleTemplateChange = template => {\n setFieldValue(`${name}.body`, template.body);\n setEditorContent(editorRef, template.body);\n if (selectedField.hideSubject) return;\n\n setFieldValue(`${name}.subject`, template.subject);\n };\n\n const isFirstFieldInForm = field => {\n if (isTemplateSelectionEnabled) {\n return false;\n }\n\n switch (field) {\n case \"emails\":\n return true;\n case \"subject\":\n return !isEmailIdField;\n default:\n return !isEmailIdField && selectedField.hideSubject;\n }\n };\n\n return (\n <>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"action-email-seperator-text\"\n style=\"h5\"\n weight=\"normal\"\n >\n {separator}\n </Typography>\n <Button\n data-cy=\"email-action-button\"\n label={defaultLabel.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": showPane,\n \"neeto-ui-text-error-500\": isValid,\n }\n )}\n onClick={() => setShowPane(prevState => !prevState)}\n />\n <Pane\n {...{ initialFocusRef }}\n isOpen={showPane}\n size=\"large\"\n onClose={() => setShowPane(false)}\n >\n <Pane.Header>\n <Typography\n className=\"neeto-ui-text-gray-800 cursor-pointer\"\n data-cy=\"email-action-pane-header-title\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {defaultLabel}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <div className=\"w-full\">\n {isTemplateSelectionEnabled && (\n <SelectTemplateField\n {...{ initialFocusRef, selectedField, templates }}\n onChange={handleTemplateChange}\n />\n )}\n {isEmailIdField && (\n <EmailIdFields\n {...{ emails }}\n name={`${name}.emails`}\n initialFocusRef={\n isFirstFieldInForm(\"emails\") ? initialFocusRef : null\n }\n />\n )}\n {!selectedField.hideSubject && (\n <InputField\n className=\"mb-4\"\n data-cy=\"email-action-subject-text-field\"\n label={t(\"neetoRules.labels.subject\")}\n name={`${name}.subject`}\n initialFocusRef={\n isFirstFieldInForm(\"subject\") ? initialFocusRef : null\n }\n />\n )}\n <EditorAction\n {...{ editorRef }}\n autoFocus={isFirstFieldInForm(\"body\")}\n label={t(\"neetoRules.labels.body\")}\n name={`${name}.body`}\n value={action.metadata?.body}\n variables={selectedField?.variables}\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <PaneFooterBlock\n {...{ setShowPane }}\n submitButtonProps={{\n \"data-cy\": \"email-action-save-changes-button\",\n }}\n />\n </Pane.Footer>\n </Pane>\n </>\n );\n};\n\nEmailFields.propTypes = {\n name: PropTypes.string,\n action: PropTypes.object,\n selectedField: PropTypes.object,\n};\n\nexport default EmailFields;\n","import { useEffect } from \"react\";\n\nconst useCloseInputField = (ref, showInput, handler) => {\n const buttonPressed = () => {\n const listener = event => {\n if (!ref.current) return;\n\n if (event.key === \"Enter\") {\n handler();\n }\n };\n ref.current?.addEventListener(\"keydown\", listener);\n\n return () => ref.current?.removeEventListener(\"keydown\", listener);\n };\n\n useEffect(() => {\n if (!showInput) return;\n ref.current.focus();\n buttonPressed();\n }, [showInput]);\n};\n\nexport default useCloseInputField;\n","import { useState, useEffect, useRef } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Check } from \"neetoicons\";\nimport { Typography, Button } from \"neetoui\";\nimport { Input as NeetoUIInput } from \"neetoui/formik\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useCloseInputField from \"hooks/useCloseInputField\";\n\nconst Input = ({ name, index, selectedField }) => {\n const {\n values: { actions },\n errors,\n touched,\n } = useFormikContext();\n\n const [showInput, setShowInput] = useState(false);\n const inputRef = useRef(null);\n\n const { t } = useTranslation();\n\n useCloseInputField(inputRef, showInput, () => setShowInput(false));\n\n const action = actions.value[index];\n const valueTerm = action.metadata?.value;\n const label =\n valueTerm && isNotEmpty(valueTerm?.trim())\n ? valueTerm\n : t(\"neetoRules.form.addValue\");\n\n const separator =\n selectedField?.separator?.toLowerCase() || t(\"neetoRules.common.to\");\n\n const isValid =\n errors.actions &&\n isNotNil(errors.actions?.value?.[index]) &&\n isNotNil(touched.actions?.value?.[index]);\n\n useEffect(() => {\n setShowInput(false);\n }, [action.name]);\n\n return (\n <>\n {!selectedField.hideSeparator && (\n <Typography\n className=\"neeto-ui-text-gray-700 mt-1\"\n data-cy=\"action-dropdown-seperator-text\"\n style=\"h5\"\n weight=\"normal\"\n >\n {separator}\n </Typography>\n )}\n {showInput ? (\n <NeetoUIInput\n className=\"my-auto\"\n name={`${name}.value`}\n placeholder={t(\"neetoRules.placeholders.value\")}\n ref={inputRef}\n size=\"small\"\n suffix={\n <Check onClick={() => setShowInput(prevState => !prevState)} />\n }\n />\n ) : (\n <Button\n {...{ label }}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n { \"neeto-ui-text-accent-500\": isValid }\n )}\n onClick={() => setShowInput(prevState => !prevState)}\n />\n )}\n </>\n );\n};\n\nexport default Input;\n","import { useEffect } from \"react\";\n\nconst useOnClickOutside = (ref, handler) => {\n useEffect(() => {\n const listener = event => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n handler(event);\n };\n document.addEventListener(\"mousedown\", listener);\n document.addEventListener(\"touchstart\", listener);\n\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n document.removeEventListener(\"touchstart\", listener);\n };\n }, [handler]);\n};\n\nexport default useOnClickOutside;\n","import { t } from \"i18next\";\n\nexport const SHORTCUTS = {\n cancel: {\n sequence: \"escape\",\n description: t(\"neetoRules.shortcuts.cancel\"),\n },\n submit: {\n sequence: \"enter\",\n description: t(\"neetoRules.shortcuts.submit\"),\n },\n};\n","import { forwardRef, useEffect, useState, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Check, Close } from \"neetoicons\";\nimport { Button, Input } from \"neetoui\";\nimport { isEmpty, isNil } from \"ramda\";\n\nimport useOnClickOutside from \"hooks/useOnClickOutside\";\nimport { SHORTCUTS } from \"src/constants/keyboardShortcuts\";\n\nimport { LIST_FIELD_TOOLTIP_PROPS } from \"../../constants\";\n\nconst InlineInput = forwardRef((props, ref) => {\n const {\n value = \"\",\n nullable = false,\n className,\n handleSubmit,\n handleCancel,\n ...otherProps\n } = props;\n\n const [inputValue, setInputValue] = useState(\"\");\n const inputWrapperRef = useRef(null);\n const trimmedValue = inputValue?.trim();\n const isValidValue =\n nullable || (!isEmpty(trimmedValue) && !isNil(trimmedValue));\n\n const onSubmit = event => {\n event.preventDefault();\n if (!isValidValue) return;\n handleSubmit(inputValue);\n setInputValue(\"\");\n };\n\n useOnClickOutside(inputWrapperRef, () => handleCancel(inputValue));\n const inputFieldEscapeHotkeyRef = useHotkeys(\n SHORTCUTS.cancel.sequence,\n handleCancel,\n { mode: \"scoped\" }\n );\n\n const inputFieldEnterHotkeyRef = useHotkeys(\n SHORTCUTS.submit.sequence,\n onSubmit,\n { mode: \"scoped\" }\n );\n\n useEffect(() => {\n setInputValue(value);\n }, [value]);\n\n return (\n <div\n className={classnames(\"flex flex-grow\", { [className]: className })}\n ref={inputWrapperRef}\n >\n <Input\n autoFocus\n className=\"neeto-planner-inline-input\"\n data-cy=\"inline-input-field\"\n value={inputValue}\n ref={node => {\n inputFieldEscapeHotkeyRef.current = node;\n inputFieldEnterHotkeyRef.current = node;\n }}\n onChange={e => setInputValue(e.target.value)}\n {...otherProps}\n suffix={\n <>\n <Button\n data-cy=\"inline-input-submit-button\"\n disabled={!isValidValue}\n icon={Check}\n style=\"text\"\n tooltipProps={LIST_FIELD_TOOLTIP_PROPS.save}\n onClick={onSubmit}\n />\n <Button\n {...{ ref }}\n data-cy=\"inline-input-cancel-button\"\n icon={Close}\n style=\"text\"\n tooltipProps={LIST_FIELD_TOOLTIP_PROPS.cancel}\n onClick={handleCancel}\n />\n </>\n }\n />\n </div>\n );\n});\n\nInlineInput.displayName = \"InlineInput\";\n\nexport default InlineInput;\n","import { useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { ErrorMessage, FieldArray, useFormikContext } from \"formik\";\nimport { Delete, Plus } from \"neetoicons\";\nimport { Button, Typography, Pane } from \"neetoui\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PaneFooterBlock from \"components/Common/PaneFooterBlock\";\nimport useOnButtonPressed from \"hooks/useOnButtonPressed\";\n\nimport InlineInput from \"./InlineInput\";\n\nconst ListField = ({ name, values = [], index, selectedField }) => {\n const { t } = useTranslation();\n const { errors, touched } = useFormikContext();\n\n const [isInputCardOpen, setIsInputCardOpen] = useState(false);\n const [showPane, setShowPane] = useState(false);\n\n const initialFocusRef = useRef(null);\n\n useOnButtonPressed(initialFocusRef, () => setShowPane(false));\n\n const isValid =\n errors.actions &&\n isNotNil(errors.actions?.value?.[index]) &&\n isNotNil(touched.actions?.value?.[index]);\n\n const separator =\n selectedField?.separator?.toLowerCase() || t(\"neetoRules.common.to\");\n\n return (\n <>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"list-action-separator-text\"\n style=\"h5\"\n weight=\"normal\"\n >\n {separator}\n </Typography>\n <Button\n data-cy=\"list-action-button\"\n label={t(\"neetoRules.form.list\")}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": showPane,\n \"neeto-ui-text-error-500\": isValid,\n }\n )}\n onClick={() => setShowPane(prevState => !prevState)}\n />\n <Pane\n {...{ initialFocusRef }}\n isOpen={showPane}\n size=\"large\"\n onClose={() => setShowPane(false)}\n >\n <Pane.Header>\n <Typography\n className=\"neeto-ui-text-gray-800\"\n data-cy=\"list-action-pane-header-title\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {t(\"neetoRules.form.list\")}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <div className=\"mt-2 w-full space-y-2\">\n <FieldArray {...{ name }}>\n {arrayHelper => (\n <>\n {values.map((item, index) => (\n <div\n className=\"neeto-ui-bg-white flex flex-wrap justify-between border border-dashed px-2 py-1\"\n key={`${item}.${index}`}\n >\n <Typography\n className=\"w-4/5 overflow-x-auto\"\n data-cy=\"list-action-item-label\"\n style=\"body2\"\n >\n {item}\n </Typography>\n <Button\n className=\"flex-shrink-0\"\n data-cy=\"list-action-delete-item-button\"\n icon={Delete}\n size=\"small\"\n style=\"text\"\n onClick={() => arrayHelper.remove(index)}\n />\n </div>\n ))}\n <ErrorMessage {...{ name }} className=\"w-full\">\n {message => (\n <Typography\n className=\"neeto-ui-text-error-500 neeto-ui-text-gray-700\"\n data-cy=\"list-action-error-message\"\n style=\"h5\"\n >\n {message}\n </Typography>\n )}\n </ErrorMessage>\n {isInputCardOpen ? (\n <InlineInput\n handleCancel={() => setIsInputCardOpen(false)}\n handleSubmit={title => arrayHelper.push(title)}\n ref={initialFocusRef}\n />\n ) : (\n <Button\n data-cy=\"list-action-add-item-button\"\n icon={Plus}\n label={t(\"neetoRules.common.addItem\")}\n ref={initialFocusRef}\n style=\"text\"\n onClick={() => setIsInputCardOpen(true)}\n />\n )}\n </>\n )}\n </FieldArray>\n </div>\n </Pane.Body>\n <Pane.Footer>\n <PaneFooterBlock {...{ setShowPane }} />\n </Pane.Footer>\n </Pane>\n </>\n );\n};\n\nexport default ListField;\n","import { useMemo, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\nimport { Search } from \"neetoicons\";\nimport { Typography, Dropdown, Checkbox, Input, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { without, append, isNotNil, assocPath, isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport OptionsWrapper from \"components/Common/OptionsWrapper\";\n\nimport { MAXIMUM_OPTION_LENGTH } from \"../../constants\";\nimport {\n getDetailsByValue,\n getSearchedOptions,\n getSelectedOptions,\n} from \"../../helper\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst MultiSelect = ({\n values = [],\n dropDownOptions = [],\n name,\n selectedField,\n index,\n}) => {\n const { setFieldValue, errors, setTouched, touched } = useFormikContext();\n\n const [activeOption, setActiveOption] = useState(null);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const { t } = useTranslation();\n\n const allOptions = useMemo(\n () => values.map(value => getDetailsByValue(value, dropDownOptions)),\n [values, dropDownOptions]\n );\n\n const selectedOptions = getSelectedOptions(allOptions);\n const defaultLabel =\n selectedField?.placeholder?.toLowerCase() ||\n t(\"neetoRules.form.selectValues\");\n const searchedOptions = getSearchedOptions(dropDownOptions, searchTerm);\n const separator =\n selectedField?.separator?.toLowerCase() || t(\"neetoRules.common.to\");\n\n const isValid =\n errors.actions &&\n isNotNil(errors.actions?.value?.[index]) &&\n isNotNil(touched.actions?.value?.[index]);\n\n const handleSelectOption = option => {\n const options = values.includes(option.value)\n ? without([option.value], values)\n : append(option.value, values);\n\n setFieldValue(name, options);\n };\n\n const handleClose = () => {\n setActiveOption(null);\n setSearchTerm(\"\");\n };\n\n return (\n <>\n {!selectedField.hideSeparator && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"multi-select-action-separator-text\"\n style=\"h5\"\n weight=\"normal\"\n >\n {separator}\n </Typography>\n )}\n <Dropdown\n buttonStyle=\"secondary\"\n className=\"neeto-ui-bg-gray-10\"\n closeOnSelect={false}\n position=\"top-start\"\n customTarget={\n isNotEmpty(selectedOptions) ? (\n <span className=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n {selectedOptions.map((option, idx) => (\n <span\n className=\"flex flex-wrap items-center gap-x-2 gap-y-1\"\n key={idx}\n >\n {!!idx && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n weight=\"normal\"\n onClick={e => e.stopPropagation()}\n >\n {t(\"neetoRules.common.and\", { what: \"\" })}\n </Typography>\n )}\n <Button\n data-cy=\"multi-select-action-button\"\n label={option?.label.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\":\n activeOption === option?.value,\n }\n )}\n onClick={() => {\n setTouched(\n assocPath([\"actions\", \"value\", index], true, touched)\n );\n setActiveOption(activeOption ? null : option?.value);\n }}\n />\n </span>\n ))}\n </span>\n ) : (\n <Button\n label={defaultLabel}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": activeOption === defaultLabel,\n \"neeto-ui-text-error-500\": isValid,\n }\n )}\n onClick={() => {\n setTouched(\n assocPath([\"actions\", \"value\", index], true, touched)\n );\n setActiveOption(activeOption ? null : defaultLabel);\n }}\n />\n )\n }\n onClose={handleClose}\n >\n <Menu className=\"max-h-60 max-w-2xl p-3\">\n {dropDownOptions.length > MAXIMUM_OPTION_LENGTH && (\n <Input\n autoFocus\n className=\"mb-1\"\n data-cy=\"search-text-field\"\n placeholder={t(\"neetoRules.common.search\")}\n prefix={<Search />}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n />\n )}\n <OptionsWrapper\n hasScroll={dropDownOptions.length > MAXIMUM_OPTION_LENGTH}\n >\n {searchedOptions.map((option, idx) => (\n <MenuItem.Button\n data-cy={`${joinHyphenCase(option.label)}-menu-item`}\n key={idx}\n prefix={\n <Checkbox\n checked={values.includes(option?.value)}\n data-cy=\"check-icon\"\n id={option?.value}\n />\n }\n onClick={() => handleSelectOption(option)}\n >\n {option?.label}\n </MenuItem.Button>\n ))}\n </OptionsWrapper>\n {isEmpty(dropDownOptions) && (\n <MenuItem.Button data-cy=\"no-options-menu-item\">\n {t(\"neetoRules.common.noOptions\")}\n </MenuItem.Button>\n )}\n </Menu>\n </Dropdown>\n </>\n );\n};\n\nMultiSelect.propTypes = {\n values: PropTypes.array,\n dropDownOptions: PropTypes.array,\n name: PropTypes.string,\n};\n\nexport default MultiSelect;\n","import { useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Typography, Pane, Button } from \"neetoui\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PaneFooterBlock from \"components/Common/PaneFooterBlock\";\nimport useOnButtonPressed from \"hooks/useOnButtonPressed\";\n\nimport EditorAction from \"./EditorAction\";\n\nconst NoteField = ({ name, value = \"\", index, selectedField }) => {\n const { t } = useTranslation();\n const { errors, touched } = useFormikContext();\n\n const [showPane, setShowPane] = useState(false);\n\n const initialFocusRef = useRef(null);\n\n useOnButtonPressed(initialFocusRef, () => setShowPane(false));\n\n const isValid =\n errors.actions &&\n isNotNil(errors.actions?.value?.[index]) &&\n isNotNil(touched.actions?.value?.[index]);\n\n const separator =\n selectedField?.separator?.toLowerCase() || t(\"neetoRules.common.as\");\n const variables = selectedField?.variables || [];\n const defaultLabel = selectedField?.placeholder || t(\"neetoRules.form.note\");\n\n return (\n <>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"note-action-separator-text\"\n style=\"h5\"\n weight=\"normal\"\n >\n {separator}\n </Typography>\n <Button\n data-cy=\"note-action-button\"\n label={defaultLabel.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": showPane,\n \"neeto-ui-text-error-500\": isValid,\n }\n )}\n onClick={() => setShowPane(prevState => !prevState)}\n />\n <Pane\n {...{ initialFocusRef }}\n isOpen={showPane}\n size=\"large\"\n onClose={() => setShowPane(false)}\n >\n <Pane.Header>\n <Typography\n className=\"neeto-ui-text-gray-800\"\n data-cy=\"note-action-pane-header-title\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {defaultLabel}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <EditorAction {...{ name, value, variables }} />\n </Pane.Body>\n <Pane.Footer>\n <PaneFooterBlock {...{ setShowPane }} />\n </Pane.Footer>\n </Pane>\n </>\n );\n};\n\nexport default NoteField;\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import { hyphenize } from \"neetocommons/utils\";\nimport { filter, isNotNil, join, map, pipe, pluck, uniq } from \"ramda\";\n\nimport {\n ERROR_MESSAGE_DELIMITER,\n PHONE_NUMBER_VALIDATION_SCHEMA,\n} from \"./constants\";\n\nconst removeDuplicateErrorMessages = pipe(\n filter(isNotNil),\n uniq,\n join(ERROR_MESSAGE_DELIMITER)\n);\n\nexport const dasherize = input => hyphenize(input, \"neeto-rules-input\");\n\nexport const formatPhoneNumberInputOptions = phoneNumber => {\n let isValid;\n\n try {\n PHONE_NUMBER_VALIDATION_SCHEMA.validateSync(phoneNumber);\n isValid = true;\n } catch {\n isValid = false;\n }\n\n return { label: phoneNumber, value: phoneNumber, valid: isValid };\n};\n\nexport const pruneDuplicates = pipe(\n pluck(\"value\"),\n uniq,\n map(formatPhoneNumberInputOptions)\n);\n\nexport const renderValidPhoneNumbers = phoneNumbers =>\n phoneNumbers.filter(phoneNumber => phoneNumber && phoneNumber.valid);\n\nexport const getValidPhoneNumbersCount = phoneNumbers =>\n renderValidPhoneNumbers(phoneNumbers).length;\n\nexport const formatErrorMessage = error => {\n if (typeof error === \"string\") return error;\n\n return removeDuplicateErrorMessages(error);\n};\n","import { t } from \"i18next\";\nimport { Close } from \"neetoicons\";\nimport { isPhoneNumberValid } from \"neetomolecules/PhoneNumber\";\nimport { Tag } from \"neetoui\";\nimport { assoc } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { components } from \"react-select\";\nimport * as yup from \"yup\";\n\nimport { dasherize } from \"./utils\";\n\nconst STYLES = {\n border: {\n default: \"1px solid rgb(var(--neeto-ui-gray-400))\",\n error: \"1px solid rgb(var(--neeto-ui-error-800)) !important\",\n },\n color: {\n default: \"rgb(var(--neeto-ui-gray-800))\",\n error: \"rgb(var(--neeto-ui-error-800)) !important\",\n },\n};\n\nconst MultiValueRemove = props => (\n <components.MultiValueRemove\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: `${dasherize(props.data.label)}-remove-icon`,\n }}\n >\n <Close size={16} />\n </components.MultiValueRemove>\n);\n\nconst ValueContainer = ({ children, ...props }) => {\n const { t } = useTranslation();\n\n const {\n getValue,\n selectProps: { isFocused, visiblePhoneNumbersCount },\n } = props;\n const value = getValue();\n const [firstChild, ...rest] = children;\n\n const shouldCollapse = !isFocused && value.length > visiblePhoneNumbersCount;\n\n return (\n <components.ValueContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-phone-number-input-container\",\n }}\n >\n {shouldCollapse\n ? firstChild.slice(0, visiblePhoneNumbersCount)\n : firstChild}\n {shouldCollapse && (\n <Tag\n style=\"secondary\"\n label={t(\"neetoRules.labels.remainingItemsCount\", {\n count: value.length - visiblePhoneNumbersCount,\n })}\n />\n )}\n {rest}\n </components.ValueContainer>\n );\n};\n\nconst ClearIndicator = props => (\n <components.ClearIndicator\n {...props}\n innerProps={{ ...props.innerProps, [\"data-cy\"]: \"clear-all-button\" }}\n >\n <Close className=\"cursor-pointer\" size={16} />\n </components.ClearIndicator>\n);\n\nexport const ERROR_MESSAGE_DELIMITER = \". \";\nexport const DELIMITER_KEYS = [\"Enter\", \"Tab\", \",\", \" \"];\nexport const PHONE_NUMBER_SEPARATION_REGEX = /[^\\s,]+/g;\nexport const FLEXIBLE_PHONE_NUMBER_REGEX = /[0-9+, ]+/g;\n\nexport const PHONE_NUMBER_VALIDATION_SCHEMA = yup\n .string()\n .required(\n t(\"neetoRules.validations.required.entity\", {\n entity: t(\"neetoRules.common.phoneNumber\"),\n })\n )\n .test(\n \"testPhoneNumber\",\n t(\"neetoRules.validations.invalidPhoneNumber\"),\n isPhoneNumberValid\n );\n\nexport const CUSTOM_STYLES = {\n input: assoc(\"overflow\", \"hidden\"),\n multiValue: (styles, { data: { valid } }) => ({\n ...styles,\n border: valid ? STYLES.border.default : STYLES.border.error,\n color: valid ? STYLES.color.default : STYLES.color.error,\n }),\n};\n\nexport const CUSTOM_COMPONENTS = {\n DropdownIndicator: null,\n MultiValueRemove,\n ValueContainer,\n ClearIndicator,\n};\n","import { forwardRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { Label } from \"neetoui\";\nimport { mergeLeft, filter, includes, test } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport CreatableSelect from \"react-select/creatable\";\n\nimport {\n CUSTOM_COMPONENTS,\n CUSTOM_STYLES,\n DELIMITER_KEYS,\n ERROR_MESSAGE_DELIMITER,\n FLEXIBLE_PHONE_NUMBER_REGEX,\n PHONE_NUMBER_SEPARATION_REGEX,\n} from \"./constants\";\nimport {\n formatPhoneNumberInputOptions,\n pruneDuplicates,\n renderValidPhoneNumbers,\n getValidPhoneNumbersCount,\n dasherize,\n formatErrorMessage,\n} from \"./utils\";\n\nconst MultiPhoneNumberInput = forwardRef(\n (\n { value = [], onChange = noop, error = \"\", onBlur = noop, ...otherProps },\n ref\n ) => {\n const [inputValue, setInputValue] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n\n const { t } = useTranslation();\n\n const label = t(\"neetoRules.common.phoneNumbers\");\n\n const handleFilterPhoneNumbers = () =>\n onChange(renderValidPhoneNumbers(value));\n\n const handlePhoneNumberChange = () => {\n const inputValues = inputValue.match(PHONE_NUMBER_SEPARATION_REGEX) || [];\n const phoneNumberMatches = filter(\n test(FLEXIBLE_PHONE_NUMBER_REGEX),\n inputValues\n );\n\n const phoneNumbers = phoneNumberMatches.map(\n formatPhoneNumberInputOptions\n );\n onChange(pruneDuplicates([...value, ...phoneNumbers]));\n setInputValue(\"\");\n };\n\n const handleKeyDown = event => {\n if (!inputValue) return;\n\n if (includes(event.key, DELIMITER_KEYS)) {\n handlePhoneNumberChange();\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n const onCreateOption = input => {\n const phoneNumber = formatPhoneNumberInputOptions(input);\n onChange(pruneDuplicates([...value, phoneNumber]));\n };\n\n const handleBlur = event => {\n inputValue ? handlePhoneNumberChange() : onBlur(event);\n setIsFocused(false);\n };\n\n const isFilterPhoneNumbersLinkVisible =\n value.length > getValidPhoneNumbersCount(value);\n\n return (\n <div className=\"neeto-ui-input__wrapper neeto-ui-email-input__wrapper\">\n <div className=\"neeto-ui-email-input__label-wrapper\">\n <Label\n required\n className=\"neeto-ui-email-input__label\"\n data-cy={`${dasherize(label)}-input-label`}\n >\n {label}\n </Label>\n </div>\n <CreatableSelect\n isMulti\n required\n classNamePrefix=\"neeto-ui-react-select\"\n components={CUSTOM_COMPONENTS}\n menuIsOpen={false}\n placeholder={t(\"neetoRules.placeholders.phoneNumberField\")}\n visiblePhoneNumbersCount={4}\n className={classnames(\n \"neeto-ui-react-select__container neeto-ui-react-select__container--medium neeto-ui-email-input__select\",\n { \"neeto-ui-react-select__container--error\": !!error }\n )}\n styles={{\n ...CUSTOM_STYLES,\n control: mergeLeft({\n maxHeight: \"200px\",\n overflowY: \"auto\",\n }),\n }}\n onBlur={handleBlur}\n onFocus={() => setIsFocused(true)}\n onInputChange={setInputValue}\n onKeyDown={handleKeyDown}\n {...{\n inputValue,\n isFocused,\n onChange,\n onCreateOption,\n ref,\n value,\n ...otherProps,\n }}\n />\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${dasherize(label)}-input-error`}\n >\n {formatErrorMessage(error)}\n {isFilterPhoneNumbersLinkVisible && (\n <span\n className=\"neeto-ui-font-semibold cursor-pointer\"\n onClick={handleFilterPhoneNumbers}\n >\n {ERROR_MESSAGE_DELIMITER}\n {t(\"neetoRules.messages.removeInvalidPhoneNumbers\")}\n </span>\n )}\n </p>\n )}\n <p\n className=\"neeto-ui-input__help-text\"\n data-cy={`${dasherize(label)}-input-help`}\n >\n {t(\"neetoRules.helpTexts.phoneNumber\")}\n </p>\n </div>\n );\n }\n);\n\nMultiPhoneNumberInput.displayName = \"MultiPhoneNumberInput\";\n\nexport default MultiPhoneNumberInput;\n","import { useField } from \"formik\";\nimport { nullSafe } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { map, pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport MultiPhoneNumberInput from \"./MultiPhoneNumberInput\";\nimport { formatPhoneNumberInputOptions } from \"./MultiPhoneNumberInput/utils\";\n\nconst PhoneNumberField = ({ initialFocusRef, name, phoneNumbers = [] }) => {\n const [_, meta, { setValue, setTouched }] = useField(name);\n const { t } = useTranslation();\n\n const formattedPhoneNumbers = map(\n formatPhoneNumberInputOptions,\n phoneNumbers\n );\n\n return (\n <div className=\"mb-4\">\n <MultiPhoneNumberInput\n {...{ name }}\n error={meta.touched ? meta.error : \"\"}\n label={t(\"neetoRules.common.phoneNumbers\")}\n placeholder={t(\"neetoRules.placeholders.phoneNumberField\")}\n ref={initialFocusRef}\n value={formattedPhoneNumbers}\n onBlur={() => setTouched(true)}\n onChange={value => setValue(nullSafe(pluck)(\"value\", value))}\n />\n </div>\n );\n};\n\nPhoneNumberField.propTypes = {\n name: PropTypes.string,\n phoneNumbers: PropTypes.array,\n};\n\nexport default PhoneNumberField;\n","import { useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport { Pane, Typography, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PaneFooterBlock from \"components/Common/PaneFooterBlock\";\nimport useOnButtonPressed from \"hooks/useOnButtonPressed\";\n\nimport EditorAction from \"./EditorAction\";\nimport PhoneNumberField from \"./PhoneNumberField\";\nimport SelectTemplateField from \"./SelectTemplateField\";\nimport { setEditorContent } from \"./utils\";\n\nconst SmsFields = ({\n name,\n action,\n selectedField,\n phoneNumbers = [],\n showPhoneNumberInput = false,\n index,\n}) => {\n const { errors, touched, setFieldValue } = useFormikContext();\n\n const [showPane, setShowPane] = useState(false);\n\n const initialFocusRef = useRef(null);\n const editorRef = useRef(null);\n\n const { t } = useTranslation();\n\n useOnButtonPressed(initialFocusRef, () => setShowPane(false));\n\n const isValid =\n errors.actions &&\n isNotNil(errors.actions?.value?.[index]) &&\n isNotNil(touched.actions?.value?.[index]);\n\n const separator =\n selectedField?.separator?.toLowerCase() || t(\"neetoRules.common.as\");\n\n const defaultLabel =\n selectedField?.smsPlaceholder || t(\"neetoRules.common.sms\");\n\n const templates = selectedField?.templates;\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n const handleTemplateChange = template => {\n setFieldValue(`${name}.body`, template.body);\n setEditorContent(editorRef, template.body);\n };\n\n const isFirstFieldInForm = field => {\n if (isTemplateSelectionEnabled) {\n return false;\n }\n\n return field === \"phoneNumbers\" ? true : !showPhoneNumberInput;\n };\n\n return (\n <>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"sms-action-separator-text\"\n style=\"h5\"\n weight=\"normal\"\n >\n {separator}\n </Typography>\n <Button\n data-cy=\"sms-action-button\"\n label={defaultLabel.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": showPane,\n \"neeto-ui-text-error-500\": isValid,\n }\n )}\n onClick={() => setShowPane(prevState => !prevState)}\n />\n <Pane\n {...{ initialFocusRef }}\n isOpen={showPane}\n size=\"large\"\n onClose={() => setShowPane(false)}\n >\n <Pane.Header>\n <Typography\n className=\"neeto-ui-text-gray-800 cursor-pointer\"\n data-cy=\"sms-action-pane-header-title\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {defaultLabel}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <div className=\"w-full\">\n {isTemplateSelectionEnabled && (\n <SelectTemplateField\n {...{ initialFocusRef, selectedField, templates }}\n onChange={handleTemplateChange}\n />\n )}\n {showPhoneNumberInput && (\n <PhoneNumberField\n {...{ phoneNumbers }}\n name={`${name}.phoneNumbers`}\n initialFocusRef={\n isFirstFieldInForm(\"phoneNumbers\") ? initialFocusRef : null\n }\n />\n )}\n <EditorAction\n {...{ editorRef }}\n required\n addons={[]}\n autoFocus={isFirstFieldInForm(\"body\")}\n defaults={[]}\n label={t(\"neetoRules.labels.body\")}\n name={`${name}.body`}\n value={action.metadata?.body}\n variables={selectedField?.variables}\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <PaneFooterBlock {...{ setShowPane }} />\n </Pane.Footer>\n </Pane>\n </>\n );\n};\n\nSmsFields.propTypes = {\n name: PropTypes.string,\n action: PropTypes.object,\n selectedField: PropTypes.object,\n phoneNumbers: PropTypes.array,\n showPhoneNumberInput: PropTypes.bool,\n};\n\nexport default SmsFields;\n","import { memo } from \"react\";\n\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport LongTextField from \"components/Common/Fields/LongTextField\";\n\nimport ApiFields from \"./Fields/ApiFields\";\nimport CustomAction from \"./Fields/CustomAction\";\nimport DateField from \"./Fields/DateField\";\nimport DropdownField from \"./Fields/DropdownField\";\nimport EmailFields from \"./Fields/EmailFields\";\nimport Input from \"./Fields/Input\";\nimport ListField from \"./Fields/ListField\";\nimport MultiSelect from \"./Fields/MultiSelect\";\nimport NoteField from \"./Fields/NoteField\";\nimport SmsFields from \"./Fields/SmsFields\";\n\nimport { ACTION_INPUT_TYPES, ACTION_TYPES } from \"../constants\";\n\nconst ActionSubItems = ({ name, index, action, options, selectedField }) => {\n const { t } = useTranslation();\n\n if (selectedField?.type === ACTION_TYPES.emailToIds) {\n return (\n <EmailFields\n {...{ action, index, name, selectedField }}\n isEmailIdField\n emails={action.metadata?.emails}\n key={name}\n />\n );\n }\n\n if (selectedField?.type === ACTION_TYPES.email) {\n return (\n <EmailFields {...{ action, index, name, selectedField }} key={name} />\n );\n }\n\n if (selectedField?.type === ACTION_TYPES.emailTo) {\n return (\n <>\n <DropdownField\n {...{ index, selectedField }}\n dropdownOptions={options}\n key={`${name}.value`}\n name={`${name}.value`}\n />\n <EmailFields {...{ action, index, name, selectedField }} key={name} />\n </>\n );\n }\n\n if (selectedField?.type === ACTION_TYPES.smsToNumbers) {\n return (\n <SmsFields\n {...{ action, index, name, selectedField }}\n showPhoneNumberInput\n key={name}\n phoneNumbers={action.metadata?.phoneNumbers}\n />\n );\n }\n\n if (selectedField?.type === ACTION_TYPES.sms) {\n return <SmsFields {...{ action, index, name, selectedField }} key={name} />;\n }\n\n if (selectedField?.type === ACTION_TYPES.smsTo) {\n return (\n <>\n <DropdownField\n {...{ index, selectedField }}\n dropdownOptions={options}\n key={`${name}.value`}\n name={`${name}.value`}\n />\n <SmsFields {...{ action, index, name, selectedField }} key={name} />\n </>\n );\n }\n\n if (selectedField?.type === ACTION_TYPES.sendToApi) {\n return <ApiFields {...{ index, name, selectedField }} key={name} />;\n }\n\n if (selectedField?.type === ACTION_TYPES.dropdown) {\n return (\n <DropdownField\n {...{ index, selectedField }}\n dropdownOptions={options}\n key={name}\n name={`${name}.value`}\n />\n );\n }\n\n if (selectedField?.type === ACTION_TYPES.note) {\n return (\n <NoteField\n {...{ index, selectedField }}\n key={name}\n name={`${name}.value`}\n value={action.metadata?.value}\n />\n );\n }\n\n if (selectedField?.type === ACTION_TYPES.list) {\n return (\n <ListField\n {...{ index, selectedField }}\n key={name}\n name={`${name}.value`}\n values={action.metadata?.value}\n />\n );\n }\n\n if (selectedField?.type === ACTION_TYPES.multiSelect) {\n return (\n <MultiSelect\n {...{ index, selectedField }}\n dropDownOptions={options}\n key={name}\n name={`${name}.value`}\n values={action.metadata?.value}\n />\n );\n }\n\n if (ACTION_INPUT_TYPES.includes(selectedField?.type)) {\n return <Input {...{ index, name, selectedField }} />;\n }\n\n if (selectedField?.type === ACTION_TYPES.date) {\n return <DateField {...{ index, name, selectedField }} />;\n }\n\n if (\n selectedField?.type === ACTION_TYPES.longText ||\n selectedField?.type === ACTION_TYPES.textarea\n ) {\n return (\n <LongTextField\n {...{ index, selectedField }}\n defaultLabel={t(\"neetoRules.labels.body\")}\n defaultSeparator={t(\"neetoRules.common.as\")}\n key={name}\n name={`${name}.value`}\n value={action.metadata?.value}\n />\n );\n }\n\n if (selectedField?.component) {\n const ActionComponent = selectedField.component;\n\n return (\n <CustomAction\n {...{ ActionComponent, action, index, name, selectedField }}\n />\n );\n }\n\n return null;\n};\n\nActionSubItems.propTypes = {\n name: PropTypes.string,\n action: PropTypes.object,\n selectedField: PropTypes.object,\n};\n\nexport default memo(ActionSubItems);\n","import { t } from \"i18next\";\n\nconst OPERATORS = { or: \"or_operator\", and: \"and_operator\" };\n\nconst OPERATOR_LABELS = {\n or_operator: t(\"neetoRules.operators.or\"),\n and_operator: t(\"neetoRules.operators.and\"),\n};\n\nconst VERB_LABELS = {\n is: t(\"neetoRules.conditionVerbs.is\"),\n is_not: t(\"neetoRules.conditionVerbs.isNot\"),\n contains: t(\"neetoRules.conditionVerbs.contains\"),\n does_not_contain: t(\"neetoRules.conditionVerbs.doesNotContain\"),\n contains_any_of: t(\"neetoRules.conditionVerbs.containsAnyOf\"),\n contains_all_of: t(\"neetoRules.conditionVerbs.containsAllOf\"),\n contains_none_of: t(\"neetoRules.conditionVerbs.containsNoneOf\"),\n starts_with: t(\"neetoRules.conditionVerbs.startsWith\"),\n ends_with: t(\"neetoRules.conditionVerbs.endsWith\"),\n less_than: t(\"neetoRules.conditionVerbs.lessThan\"),\n greater_than: t(\"neetoRules.conditionVerbs.greaterThan\"),\n any_time: t(\"neetoRules.conditionVerbs.anyTime\"),\n during: t(\"neetoRules.conditionVerbs.during\"),\n not_during: t(\"neetoRules.conditionVerbs.notDuring\"),\n any_of: t(\"neetoRules.conditionVerbs.anyOf\"),\n none_of: t(\"neetoRules.conditionVerbs.noneOf\"),\n is_before: t(\"neetoRules.conditionVerbs.isBefore\"),\n is_after: t(\"neetoRules.conditionVerbs.isAfter\"),\n};\n\nconst CONDITION_VALUE_TYPES = {\n text: \"text\",\n number: \"number\",\n decimal: \"decimal\",\n url: \"url\",\n email: \"email\",\n dropdown: \"dropdown\",\n multiSelect: \"multi-select\",\n multiSelectCreate: \"multi-select-create\",\n date: \"date\",\n regex: \"regex\",\n textarea: \"textarea\",\n};\n\nconst INPUT_FIELD_TYPES = [\n \"email\",\n \"text\",\n \"number\",\n \"decimal\",\n \"url\",\n \"regex\",\n];\n\nconst DATETIME_FORMAT = { date: \"DD/MM/YYYY\", time: \"HH:mm a\" };\n\nconst MAXIMUM_OPTION_LENGTH = 7;\n\nexport {\n OPERATORS,\n OPERATOR_LABELS,\n VERB_LABELS,\n CONDITION_VALUE_TYPES,\n DATETIME_FORMAT,\n MAXIMUM_OPTION_LENGTH,\n INPUT_FIELD_TYPES,\n};\n","import { t } from \"i18next\";\nimport { findBy } from \"neetocist\";\nimport { isPhoneNumberValid } from \"neetomolecules/PhoneNumber\";\nimport * as yup from \"yup\";\n\nimport { isEditorEmpty } from \"neetoeditor\";\n\nimport {\n DECIMAL_NUMBER_REGEX,\n NUMBER_REGEX,\n POSITIVE_DECIMAL_NUMBER_REGEX,\n POSITIVE_NUMBER_REGEX,\n VALIDATION_SCHEMA,\n} from \"../constants\";\nimport { ACTION_TYPES } from \"../Element/Actions/constants\";\nimport { CONDITION_VALUE_TYPES } from \"../Element/Conditions/constants\";\n\nconst getSchemaForStrings = element => {\n const { label, componentProps = {} } = element;\n const required = componentProps?.required !== false;\n\n return yup.string().when(\"test\", {\n is: () => required,\n then: yup\n .string()\n .required(t(\"neetoRules.validations.required.entity\", { entity: label })),\n });\n};\n\nconst getEventsSchema = element => {\n const { label, componentProps = {} } = element;\n\n const required = componentProps?.required !== false;\n\n return yup.array().when(\"test\", {\n is: () => required,\n then: yup\n .array()\n .of(\n yup.object().shape({\n name: yup\n .string()\n .required(\n t(\"neetoRules.validations.required.entity\", { entity: label })\n ),\n })\n )\n .min(1, t(\"neetoRules.validations.atLeastOneValue\")),\n });\n};\n\nconst getConditionsSchema = element => {\n const { conditionOptions, componentProps = {} } = element;\n const required = componentProps?.required !== false;\n\n return yup.array().when(\"test\", {\n is: () => required,\n then: yup.array().of(\n yup.object().shape({\n field: yup\n .string()\n .required(t(\"neetoRules.validations.required.condition\")),\n\n metadata: yup.mixed().when([\"field\", \"verb\"], (field, verb, schema) => {\n const selectedCondition = findBy({ value: field }, conditionOptions);\n let type = selectedCondition?.type;\n if (selectedCondition?.additionalData) {\n const value = selectedCondition?.additionalData[verb];\n if (value) type = value;\n }\n\n if (selectedCondition?.noValueForVerbs?.includes(verb)) {\n return yup.object();\n }\n\n if (\n [\n CONDITION_VALUE_TYPES.dropdown,\n CONDITION_VALUE_TYPES.date,\n ].includes(type)\n ) {\n return yup.object().shape({\n value: yup\n .string()\n .required(t(\"neetoRules.validations.required.value\")),\n });\n } else if (\n [CONDITION_VALUE_TYPES.text, CONDITION_VALUE_TYPES.regex].includes(\n type\n )\n ) {\n return yup.object().shape({\n value: yup\n .string()\n .trim()\n .test(\n \"no-blank-spaces\",\n t(\"neetoRules.validations.noBlankSpaces\"),\n value => value === undefined || value.trim() !== \"\"\n )\n .required(t(\"neetoRules.validations.required.value\")),\n });\n } else if (\n [\n CONDITION_VALUE_TYPES.multiSelect,\n CONDITION_VALUE_TYPES.multiSelectCreate,\n ].includes(type)\n ) {\n return yup.object().shape({\n values: yup\n .array()\n .min(1, t(\"neetoRules.validations.atLeastOneValue\"))\n .required(t(\"neetoRules.validations.atLeastOneValue\")),\n });\n } else if ([CONDITION_VALUE_TYPES.email].includes(type)) {\n if ([\"is\", \"is_not\"].includes(verb)) {\n return yup.object().shape({\n value: yup\n .string()\n .email(t(\"neetoRules.validations.inValidEmail\"))\n .required(t(\"neetoRules.validations.required.email\")),\n });\n }\n\n return yup.object().shape({\n value: yup\n .string()\n .trim()\n .test(\n \"no-blank-spaces\",\n t(\"neetoRules.validations.noBlankSpaces\"),\n value => value === undefined || value.trim() !== \"\"\n )\n .required(t(\"neetoRules.validations.required.value\")),\n });\n } else if ([CONDITION_VALUE_TYPES.number].includes(type)) {\n const message = selectedCondition?.onlyPositive\n ? t(\"neetoRules.validations.positiveNumber\")\n : t(\"neetoRules.validations.number\");\n\n const regex = selectedCondition?.onlyPositive\n ? POSITIVE_NUMBER_REGEX\n : NUMBER_REGEX;\n\n return yup.object({\n value: yup\n .string()\n .test(\"are-all-number\", message, value => regex.test(value)),\n });\n } else if ([CONDITION_VALUE_TYPES.url].includes(type)) {\n if ([\"is\", \"is_not\"].includes(verb)) {\n return yup.object().shape({\n value: yup\n .string()\n .url(t(\"neetoRules.validations.inValidURL\"))\n .required(t(\"neetoRules.validations.required.url\")),\n });\n }\n\n return yup.object().shape({\n value: yup\n .string()\n .trim()\n .test(\n \"no-blank-spaces\",\n t(\"neetoRules.validations.noBlankSpaces\"),\n value => value === undefined || value.trim() !== \"\"\n )\n .required(t(\"neetoRules.validations.required.value\")),\n });\n } else if ([CONDITION_VALUE_TYPES.decimal].includes(type)) {\n const message = selectedCondition?.onlyPositive\n ? t(\"neetoRules.validations.positiveDecimal\")\n : t(\"neetoRules.validations.decimal\");\n\n const regex = selectedCondition?.onlyPositive\n ? POSITIVE_DECIMAL_NUMBER_REGEX\n : DECIMAL_NUMBER_REGEX;\n\n return yup.object({\n value: yup\n .string()\n .test(\"are-all-number\", message, value => regex.test(value))\n .required(t(\"neetoRules.validations.required.decimal\")),\n });\n } else if ([CONDITION_VALUE_TYPES.textarea].includes(type)) {\n return yup.object({\n value: yup\n .string()\n .test(\n \"text\",\n t(\"neetoRules.validations.required.text\"),\n value => !isEditorEmpty(value)\n ),\n });\n }\n\n return schema;\n }),\n })\n ),\n });\n};\n\nconst getSchemaForConditionGroup = element => {\n const { componentProps = {} } = element;\n const required = componentProps?.required !== false;\n\n return yup.array().when(\"test\", {\n is: () => required,\n then: yup.array().of(\n yup.object().shape({\n conditions: yup.object().shape({\n value: getConditionsSchema(element),\n }),\n })\n ),\n });\n};\n\nconst getActionsSchema = (element, customData) => {\n const { actionOptions, componentProps = {} } = element;\n const required = componentProps?.required !== false;\n\n return yup.array().when(\"test\", {\n is: () => required,\n then: yup.array().of(\n yup.object().shape({\n name: yup\n .string()\n .required(t(\"neetoRules.validations.required.action\")),\n\n metadata: yup.mixed().when(\"name\", (field, schema) => {\n const selectedAction = actionOptions.find(\n option => option.value === field\n );\n\n if (\n [\n ACTION_TYPES.email,\n ACTION_TYPES.emailToIds,\n ACTION_TYPES.emailTo,\n ].includes(selectedAction?.type)\n ) {\n return yup.object({\n subject: !selectedAction.hideSubject\n ? yup\n .string()\n .required(t(\"neetoRules.validations.required.subject\"))\n : schema,\n emails:\n selectedAction.type === ACTION_TYPES.emailToIds\n ? yup\n .array()\n .min(1, t(\"neetoRules.validations.required.emailId\"))\n .required(t(\"neetoRules.validations.required.emailId\"))\n .of(\n yup\n .string()\n .email(t(\"neetoRules.validations.inValidEmail\"))\n )\n : schema,\n body: yup\n .string()\n .test(\n \"body\",\n t(\"neetoRules.validations.required.body\"),\n value => !isEditorEmpty(value)\n ),\n value:\n selectedAction.type === ACTION_TYPES.emailTo\n ? yup\n .string()\n .required(t(\"neetoRules.validations.required.value\"))\n : schema,\n });\n } else if (\n [\n ACTION_TYPES.sms,\n ACTION_TYPES.smsToNumbers,\n ACTION_TYPES.smsTo,\n ].includes(selectedAction?.type)\n ) {\n return yup.object({\n phoneNumbers:\n selectedAction.type === ACTION_TYPES.smsToNumbers\n ? yup\n .array()\n .required(\n t(\"neetoRules.validations.required.entity\", {\n entity: t(\"neetoRules.common.phoneNumber\"),\n })\n )\n .of(\n yup\n .string()\n .test(\n \"testPhoneNumber\",\n t(\"neetoRules.validations.invalidPhoneNumber\"),\n value => isPhoneNumberValid(value)\n )\n )\n : schema,\n body: yup\n .string()\n .test(\n \"body\",\n t(\"neetoRules.validations.required.body\"),\n value => !isEditorEmpty(value)\n ),\n value:\n selectedAction.type === ACTION_TYPES.smsTo\n ? yup\n .string()\n .required(t(\"neetoRules.validations.required.value\"))\n : schema,\n });\n } else if (ACTION_TYPES.sendToApi === selectedAction?.type) {\n return yup.object({\n endpoint: yup\n .string()\n .url(\n t(\"neetoRules.validations.invalidUrlEntity\", {\n entity: t(\"neetoRules.labels.endpoint\"),\n })\n )\n .required(\n t(\"neetoRules.validations.required.entity\", {\n entity: t(\"neetoRules.labels.endpoint\"),\n })\n ),\n });\n } else if (ACTION_TYPES.multiSelect === selectedAction?.type) {\n return yup.object({\n value: yup\n .array()\n .min(1, t(\"neetoRules.validations.atLeastOneValue\"))\n .required(t(\"neetoRules.validations.atLeastOneValue\")),\n });\n } else if (ACTION_TYPES.list === selectedAction?.type) {\n return yup.object({\n value: yup\n .array()\n .min(1, t(\"neetoRules.validations.atLeastOneValue\"))\n .required(t(\"neetoRules.validations.atLeastOneValue\")),\n });\n } else if (\n selectedAction?.type === ACTION_TYPES.note ||\n selectedAction?.type === ACTION_TYPES.textarea\n ) {\n return yup.object({\n value: yup\n .string()\n .test(\n \"body\",\n t(\"neetoRules.validations.required.body\"),\n value => !isEditorEmpty(value)\n ),\n });\n } else if (\n selectedAction?.type === ACTION_TYPES.dropdown ||\n selectedAction?.type === ACTION_TYPES.date\n ) {\n return yup.object({\n value: yup\n .string()\n .required(t(\"neetoRules.validations.required.value\")),\n });\n } else if (\n selectedAction?.type === ACTION_TYPES.text ||\n selectedAction?.type === ACTION_TYPES.regex\n ) {\n return yup.object({\n value: yup\n .string()\n .trim()\n .test(\n \"no-blank-spaces\",\n t(\"neetoRules.validations.noBlankSpaces\"),\n value => value === undefined || value.trim() !== \"\"\n )\n .required(t(\"neetoRules.validations.required.value\")),\n });\n } else if (selectedAction?.type === ACTION_TYPES.number) {\n const message = selectedAction?.onlyPositive\n ? t(\"neetoRules.validations.positiveNumber\")\n : t(\"neetoRules.validations.number\");\n\n const regex = selectedAction?.onlyPositive\n ? POSITIVE_NUMBER_REGEX\n : NUMBER_REGEX;\n\n return yup.object({\n value: yup\n .string()\n .test(\"are-all-number\", message, value => regex.test(value)),\n });\n } else if (selectedAction?.type === ACTION_TYPES.decimal) {\n const message = selectedAction?.onlyPositive\n ? t(\"neetoRules.validations.positiveDecimal\")\n : t(\"neetoRules.validations.decimal\");\n\n const regex = selectedAction?.onlyPositive\n ? POSITIVE_DECIMAL_NUMBER_REGEX\n : DECIMAL_NUMBER_REGEX;\n\n return yup.object({\n value: yup\n .string()\n .test(\"are-all-number\", message, value => regex.test(value))\n .required(t(\"neetoRules.validations.required.decimal\")),\n });\n } else if (selectedAction?.type === ACTION_TYPES.longText) {\n return yup.object({\n value: yup\n .string()\n .required(t(\"neetoRules.validations.required.body\")),\n });\n } else if (selectedAction?.component) {\n return typeof selectedAction.validation === \"function\"\n ? selectedAction.validation(customData)\n : selectedAction.validation;\n }\n\n return schema;\n }),\n })\n ),\n });\n};\n\nconst getSchemaForArray = element => {\n const { componentProps = {} } = element;\n const required = componentProps?.required !== false;\n\n return yup.array().when(\"test\", {\n is: () => required,\n then: yup\n .array()\n .min(1, t(\"neetoRules.validations.atLeastOneValue\"))\n .required(t(\"neetoRules.validations.atLeastOneValue\")),\n });\n};\n\nconst getSchemaForElement = (element, customData) =>\n VALIDATION_SCHEMA[element.type](element, customData);\n\nconst getValidationSchema = (data, customData) => {\n const fieldKeys = Object.keys(data);\n const schema = fieldKeys.reduce(\n (acc, key) => ({\n ...acc,\n [key]: yup.object({ value: getSchemaForElement(data[key], customData) }),\n }),\n {}\n );\n\n return yup.object(schema);\n};\n\nexport {\n getSchemaForStrings,\n getEventsSchema,\n getConditionsSchema,\n getSchemaForConditionGroup,\n getActionsSchema,\n getSchemaForArray,\n getValidationSchema,\n};\n","import {\n getSchemaForStrings,\n getEventsSchema,\n getConditionsSchema,\n getActionsSchema,\n getSchemaForArray,\n} from \"./utils/validate\";\n\nexport const FIELD_TYPES = {\n text: \"text\",\n longText: \"long-text\",\n dropdown: \"dropdown\",\n condition: \"condition\",\n events: \"events\",\n radio: \"radio\",\n actions: \"actions\",\n multiSelect: \"multi-select\",\n};\n\nexport const MAXIMUM_OPTION_LENGTH = 7;\n\nexport const VALIDATION_SCHEMA = {\n [FIELD_TYPES.text]: getSchemaForStrings,\n [FIELD_TYPES.longText]: getSchemaForStrings,\n [FIELD_TYPES.dropdown]: getSchemaForStrings,\n [FIELD_TYPES.radio]: getSchemaForStrings,\n [FIELD_TYPES.events]: getEventsSchema,\n [FIELD_TYPES.condition]: getConditionsSchema,\n [FIELD_TYPES.actions]: getActionsSchema,\n [FIELD_TYPES.multiSelect]: getSchemaForArray,\n};\n\nexport const DECIMAL_NUMBER_REGEX = /^-?\\d*\\.?\\d+$/;\n\nexport const NUMBER_REGEX = /^-?\\d+$/;\n\nexport const POSITIVE_DECIMAL_NUMBER_REGEX = /^\\d*\\.?\\d+$/;\n\nexport const POSITIVE_NUMBER_REGEX = /^\\d+$/;\n\nexport const STATUS_KEYS = { ENABLED: \"enabled\", DISABLED: \"disabled\" };\n\nexport const DEFAULT_INITIAL_VALUE = {\n name: { value: \"\" },\n description: { value: \"\" },\n status: { value: STATUS_KEYS.ENABLED },\n};\n","import { memo, useMemo, useState, useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\nimport { Check, Search } from \"neetoicons\";\nimport { Typography, Dropdown, Input, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty, isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport OptionsWrapper from \"components/Common/OptionsWrapper\";\n\nimport ActionSubItem from \"./ActionSubItem\";\nimport { ACTION_TYPES } from \"./constants\";\nimport {\n getActionOptions,\n getFieldDetails,\n getSearchedOptions,\n getSlackChannelErrors,\n} from \"./helper\";\n\nimport { MAXIMUM_OPTION_LENGTH } from \"../../constants\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst ActionItem = ({\n name,\n action,\n index,\n parentName,\n elementProps,\n onSelectAction,\n selectedActionOptions,\n routeToSlackIntegration,\n}) => {\n const { t } = useTranslation();\n\n const [selectedOption, setSelectedOption] = useState({\n label: t(\"neetoRules.form.doThis\"),\n });\n const [isActive, setIsActive] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const { values, setFieldValue, errors, touched } = useFormikContext();\n\n const { actionOptions: optionList } = elementProps;\n const { children: ActionChildren } = action;\n const actions = values[parentName].value || [];\n const label = index\n ? t(\"neetoRules.common.and\", {\n what: t(\"neetoRules.common.then\"),\n })\n : t(\"neetoRules.common.then\");\n\n const actionOptions = useMemo(\n () => getActionOptions(action, actions, optionList),\n [action, actions, optionList]\n );\n\n const selectedField = useMemo(\n () => getFieldDetails(action.name, actionOptions),\n [action, actionOptions]\n );\n\n const searchedOptions = getSearchedOptions(actionOptions, searchTerm);\n const isActionSelected =\n selectedOption?.label === t(\"neetoRules.form.doThis\") &&\n errors.actions &&\n touched.actions &&\n isNotNil(errors.actions?.value?.[index]) &&\n isNotNil(touched.actions?.value?.[index]);\n\n const handleSelectOption = option => {\n setFieldValue(`${name}.name`, option.value);\n setFieldValue(`${name}.metadata`, {});\n onSelectAction?.(name, option);\n setSearchTerm(\"\");\n };\n\n const handleClose = () => {\n setIsActive(false);\n setSearchTerm(\"\");\n };\n\n const getSelectedFieldOptions = () => {\n if (\n [\n ACTION_TYPES.dropdown,\n ACTION_TYPES.multiSelect,\n ACTION_TYPES.emailTo,\n ACTION_TYPES.smsTo,\n ].includes(selectedField?.type)\n ) {\n if (typeof selectedActionOptions === \"function\") {\n return selectedActionOptions(selectedField) || [];\n }\n\n return (selectedActionOptions ?? selectedField.dropdownOptions) || [];\n }\n\n return [];\n };\n\n const isMessageToSlackAction = action?.name === \"message_to_slack\";\n\n const { error: selectDropDownHasError, message: selectDropDownErrorMessage } =\n isMessageToSlackAction &&\n getSlackChannelErrors({\n slackChannels: getSelectedFieldOptions(),\n action,\n routeToSlackIntegration,\n });\n\n const findSelectedOption = () =>\n selectedField\n ? setSelectedOption({\n value: selectedField?.value,\n label: selectedField?.label,\n })\n : setSelectedOption({ label: t(\"neetoRules.form.doThis\") });\n\n const { isDisabled = false, disabledReason = \"\" } = selectedField || {};\n\n const renderErrorCallout = message => (\n <Typography\n className=\"neeto-ui-text-white neeto-ui-bg-error-500 neeto-ui-rounded-sm -mx-4 w-full p-3\"\n style=\"h5\"\n >\n {message}\n </Typography>\n );\n\n const renderDisabledReason = () => {\n if (typeof disabledReason === \"function\") {\n return disabledReason(selectedField);\n }\n\n if (typeof disabledReason === \"string\" && isPresent(disabledReason)) {\n return renderErrorCallout(disabledReason);\n }\n\n return null;\n };\n\n useEffect(() => {\n findSelectedOption();\n }, [selectedField]);\n\n return (\n <div className=\"flex max-w-2xl flex-wrap gap-x-1 gap-y-3\">\n {selectDropDownHasError && renderErrorCallout(selectDropDownErrorMessage)}\n {!isMessageToSlackAction && isDisabled && renderDisabledReason()}\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-3\">\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n weight=\"normal\"\n >\n {label}\n </Typography>\n <Dropdown\n buttonStyle=\"secondary\"\n className=\"neeto-ui-bg-gray-100\"\n position=\"bottom-start\"\n customTarget={\n <Button\n data-cy=\"action-dropdown-button\"\n label={selectedOption?.label?.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": isActive,\n \"neeto-ui-text-error-500\": isActionSelected,\n }\n )}\n onClick={() => setIsActive(prevState => !prevState)}\n />\n }\n onClose={handleClose}\n >\n <Menu className=\"max-h-60 max-w-2xl p-3\">\n {actionOptions.length > MAXIMUM_OPTION_LENGTH && (\n <Input\n autoFocus\n data-cy=\"search-text-field\"\n placeholder={t(\"neetoRules.common.search\")}\n prefix={<Search />}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n onClick={e => e.stopPropagation()}\n />\n )}\n <OptionsWrapper\n hasScroll={actionOptions.length > MAXIMUM_OPTION_LENGTH}\n >\n {searchedOptions.map((option, idx) => (\n <MenuItem.Button\n data-cy={`${joinHyphenCase(option.label)}-menu-item`}\n key={idx}\n suffix={\n selectedOption?.value === option.value && (\n <Check className=\"neeto-ui-text-primary-800\" />\n )\n }\n onClick={() => handleSelectOption(option)}\n >\n {option.label}\n </MenuItem.Button>\n ))}\n </OptionsWrapper>\n {isEmpty(actionOptions) && (\n <MenuItem.Button data-cy=\"no-options-menu-item\">\n {t(\"neetoRules.common.noOptions\")}\n </MenuItem.Button>\n )}\n </Menu>\n </Dropdown>\n <ActionSubItem\n {...{ action, index, selectedField }}\n name={`${name}.metadata`}\n options={getSelectedFieldOptions()}\n />\n {isPresent(action?.children) && (\n <ActionChildren\n {...{ action, index, selectedField }}\n parentFieldName={name}\n />\n )}\n </div>\n </div>\n );\n};\n\nActionItem.propTypes = {\n name: PropTypes.string,\n action: PropTypes.object,\n elementProps: PropTypes.object,\n};\n\nexport default memo(ActionItem);\n","import { joinHyphenCase } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nconst Card = ({ title, children }) => (\n <div>\n <Typography\n className=\"neeto-ui-text-gray-600\"\n data-cy={`${joinHyphenCase(title)}-card-title`}\n style=\"h4\"\n >\n {title}\n </Typography>\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-sm my-3 p-4\">\n {children}\n </div>\n </div>\n);\n\nCard.propTypes = {\n title: PropTypes.string,\n children: PropTypes.node,\n};\nexport default Card;\n","import { useMemo } from \"react\";\n\nimport { useFormikContext, FieldArray } from \"formik\";\nimport { noop } from \"neetocist\";\nimport { Plus, Delete, Refresh } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ActionItem from \"./ActionItem\";\nimport { DEFAULT_RULE_ACTION } from \"./constants\";\n\nimport Card from \"../Card\";\n\nconst Actions = ({\n name,\n label,\n data,\n onSelectAction,\n selectedActionOptions,\n showAddButton = true,\n handleSlackChannelRefresh = noop,\n routeToSlackIntegration = \"\",\n}) => {\n const { values, setFieldValue } = useFormikContext();\n const { t } = useTranslation();\n\n const elementProps = data[name] || {};\n const actions = values[name].value || [];\n\n const showButton = useMemo(\n () =>\n !!actions[actions?.length - 1]?.name &&\n elementProps.actionOptions.length !== actions.length &&\n showAddButton,\n [actions]\n );\n\n const handleRemoveAction = (index, action, arrayHelpers) => {\n if (action.id) {\n setFieldValue(`${name}.deleted`, [\n ...(values[name].deleted || []),\n { ...action, _destroy: true },\n ]);\n }\n arrayHelpers.remove(index);\n };\n\n return (\n <Card title={label || elementProps?.label}>\n <FieldArray name={`${name}.value`}>\n {arrayHelpers => (\n <>\n {actions.map((action, index) => (\n <div className=\"flex justify-between\" key={index}>\n <ActionItem\n {...{\n action,\n elementProps,\n index,\n onSelectAction,\n routeToSlackIntegration,\n selectedActionOptions,\n }}\n name={`${name}.value.${index}`}\n parentName={name}\n />\n <div className=\"-mx-1 flex flex-wrap\">\n {handleSlackChannelRefresh &&\n action.name === \"message_to_slack\" && (\n <Button\n data-cy=\"refresh-slack-button\"\n icon={Refresh}\n size={24}\n style=\"icon\"\n tooltipProps={{\n content: t(\"neetoRules.slack.refreshChannelList\"),\n position: \"top\",\n }}\n onClick={() => handleSlackChannelRefresh()}\n />\n )}\n {showButton && index === actions.length - 1 && (\n <Button\n data-cy=\"add-action-button\"\n icon={Plus}\n size={24}\n style=\"icon\"\n tooltipProps={{\n content: t(\"neetoRules.common.addAction\"),\n position: \"top\",\n }}\n onClick={() => arrayHelpers.push(DEFAULT_RULE_ACTION)}\n />\n )}\n {actions.length > 1 && (\n <Button\n data-cy={`delete-action-button-${index}`}\n icon={Delete}\n size={24}\n style=\"icon\"\n tooltipProps={{\n content: t(\"neetoRules.common.delete\"),\n position: \"top\",\n }}\n onClick={() =>\n handleRemoveAction(index, action, arrayHelpers)\n }\n />\n )}\n </div>\n </div>\n ))}\n </>\n )}\n </FieldArray>\n </Card>\n );\n};\n\nActions.propTypes = {\n name: PropTypes.string,\n label: PropTypes.string,\n data: PropTypes.object,\n onSelectAction: PropTypes.func,\n selectedActionOptions: PropTypes.func,\n handleSlackChannelRefresh: PropTypes.func,\n showAddButton: PropTypes.bool,\n routeToSlackIntegration: PropTypes.string,\n};\n\nexport default Actions;\n","/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport { toLower } from \"ramda\";\n\nimport { VERB_LABELS } from \"./constants\";\n\nexport const getFieldDetails = /*#__PURE__*/ (\n fieldValue,\n conditionOptions = []\n) => conditionOptions.find(option => option.value === fieldValue);\n\nexport const getVerbOptions = /*#__PURE__*/ (verbs = []) =>\n verbs.map(verb => ({ label: VERB_LABELS[verb], value: verb }));\n\nexport const getConditionOptions = (\n currentCondition,\n selectedConditions,\n conditionOptions = []\n) => {\n const selectedConditionOptions = selectedConditions.map(\n condition => condition.field\n );\n\n return conditionOptions.filter(\n option =>\n option.value === currentCondition.field ||\n !selectedConditionOptions.includes(option.value)\n );\n};\n\nexport const getSearchedOptions = /*#__PURE__*/ (dropDownOptions, searchTerm) =>\n dropDownOptions?.filter(({ label }) =>\n toLower(label).includes(toLower(searchTerm.trim()))\n );\n\nexport const getAllOptions = /*#__PURE__*/ options =>\n Array.isArray(options)\n ? options.map(option => ({ label: option, value: option }))\n : [];\n","import { useState, useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { findBy, toLabelAndValue } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\nimport { Check, Search } from \"neetoicons\";\nimport { Dropdown, Input, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport OptionsWrapper from \"components/Common/OptionsWrapper\";\n\nimport { MAXIMUM_OPTION_LENGTH } from \"../constants\";\nimport { getSearchedOptions } from \"../helpers\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst DropdownField = ({\n index,\n fieldType,\n options,\n placeholder,\n handleSelect,\n}) => {\n const {\n values: { conditions },\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n const defaultSelectedValue =\n fieldType === \"field\"\n ? conditions.value[index].field\n : conditions.value[index].verb;\n\n const [selectedOption, setSelectedOption] = useState(\n toLabelAndValue(placeholder)\n );\n const [isSelected, setIsSelected] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const searchedOptions = getSearchedOptions(options, searchTerm);\n\n const findDefaultOption = () => {\n const option = findBy({ value: defaultSelectedValue }, options);\n if (option) {\n setSelectedOption(option);\n }\n };\n\n const handleClose = () => {\n setIsSelected(false);\n setSearchTerm(\"\");\n };\n\n useEffect(() => {\n findDefaultOption();\n }, [options, conditions]);\n\n return (\n <Dropdown\n buttonStyle=\"secondary\"\n className=\"neeto-ui-bg-gray-100\"\n position=\"bottom-start\"\n customTarget={\n <Button\n data-cy={`condition-${fieldType}-dropdown-button`}\n label={selectedOption?.label?.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n { \"neeto-ui-text-accent-800\": isSelected }\n )}\n onClick={() => setIsSelected(prevState => !prevState)}\n />\n }\n onClose={handleClose}\n >\n <Menu className=\"max-h-60 max-w-2xl p-3\">\n {options.length > MAXIMUM_OPTION_LENGTH && (\n <Input\n autoFocus\n data-cy=\"search-text-field\"\n placeholder={t(\"neetoRules.common.search\")}\n prefix={<Search />}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n onClick={e => e.stopPropagation()}\n />\n )}\n <OptionsWrapper hasScroll={options.length > MAXIMUM_OPTION_LENGTH}>\n {searchedOptions.map((option, idx) => (\n <MenuItem.Button\n data-cy={`${joinHyphenCase(option.label)}-menu-item`}\n key={idx}\n className={classNames({\n \"neeto-ui-bg-gray-100\": selectedOption.value === option.value,\n })}\n suffix={\n selectedOption.value === option.value && (\n <Check\n className=\"neeto-ui-text-primary-800\"\n data-cy=\"check-icon\"\n />\n )\n }\n onClick={() => {\n handleSelect(option);\n setSelectedOption(option);\n }}\n >\n {option.label}\n </MenuItem.Button>\n ))}\n </OptionsWrapper>\n {isEmpty(options) && (\n <MenuItem.Button data-cy=\"no-options-menu-item\">\n {t(\"neetoRules.common.noOptions\")}\n </MenuItem.Button>\n )}\n </Menu>\n </Dropdown>\n );\n};\n\nDropdownField.propTypes = {\n index: PropTypes.number,\n fieldType: PropTypes.string,\n options: PropTypes.array,\n placeholder: PropTypes.string,\n handleSelect: PropTypes.func,\n};\n\nexport default DropdownField;\n","import { useState, useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\nimport { Check, Search } from \"neetoicons\";\nimport { Dropdown as NeetoUIDropdown, Input, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { assocPath, isEmpty, isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport OptionsWrapper from \"components/Common/OptionsWrapper\";\n\nimport { MAXIMUM_OPTION_LENGTH } from \"../constants\";\nimport { getSearchedOptions } from \"../helpers\";\n\nconst { Menu, MenuItem } = NeetoUIDropdown;\n\nconst Dropdown = ({ name, options, index }) => {\n const {\n values: { conditions },\n setFieldValue,\n errors,\n touched,\n setTouched,\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n const defaultLabel = t(\"neetoRules.placeholders.selectOption\");\n\n const [defaultSelectedOption, setDefaultSelectedOption] = useState({\n label: defaultLabel,\n });\n const [isActive, setIsActive] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const defaultValue = conditions.value[index].metadata?.value;\n const searchedOptions = getSearchedOptions(options, searchTerm);\n const isValueSelected =\n defaultSelectedOption?.label === defaultLabel &&\n errors.conditions &&\n isNotNil(errors.conditions?.value?.[index]) &&\n isNotNil(touched.conditions?.value?.[index]);\n\n const handleClose = () => {\n setIsActive(false);\n setSearchTerm(\"\");\n };\n\n const handleSelectOption = option => {\n setFieldValue(name, option.value);\n setDefaultSelectedOption(option);\n };\n\n const findDefaultSelectedOption = () => {\n if (defaultValue && options.length) {\n const option = options.find(option => option.value === defaultValue);\n if (option && option !== -1) {\n setDefaultSelectedOption(option);\n } else {\n setDefaultSelectedOption({ label: defaultLabel });\n }\n } else {\n setDefaultSelectedOption({ label: defaultLabel });\n }\n };\n\n useEffect(() => {\n findDefaultSelectedOption();\n }, [options, conditions]);\n\n return (\n <NeetoUIDropdown\n buttonStyle=\"secondary\"\n className=\"neeto-ui-bg-gray-100\"\n customTarget={\n <Button\n data-cy=\"condition-value-dropdown-button\"\n label={defaultSelectedOption?.label?.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": isActive,\n \"neeto-ui-text-error-500\": isValueSelected,\n }\n )}\n onClick={() => {\n setTouched(\n assocPath([\"conditions\", \"value\", index], true, touched)\n );\n setIsActive(prevState => !prevState);\n }}\n />\n }\n onClose={handleClose}\n >\n <Menu className=\"max-h-60 max-w-2xl p-3\">\n {options.length > MAXIMUM_OPTION_LENGTH && (\n <Input\n autoFocus\n data-cy=\"search-text-field\"\n placeholder={t(\"neetoRules.common.search\")}\n prefix={<Search />}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n onClick={e => e.stopPropagation()}\n />\n )}\n <OptionsWrapper hasScroll={options.length > MAXIMUM_OPTION_LENGTH}>\n {searchedOptions.map((option, idx) => (\n <MenuItem.Button\n data-cy={`${joinHyphenCase(option.label)}-menu-item`}\n key={idx}\n className={classNames({\n \"neeto-ui-bg-gray-100\":\n defaultSelectedOption?.value === option.value,\n })}\n suffix={\n defaultSelectedOption?.value === option.value && (\n <Check className=\"neeto-ui-text-primary-800\" />\n )\n }\n onClick={() => handleSelectOption(option)}\n >\n {option.label}\n </MenuItem.Button>\n ))}\n </OptionsWrapper>\n {isEmpty(options) && (\n <MenuItem.Button data-cy=\"no-options-menu-item\">\n {t(\"neetoRules.common.noOptions\")}\n </MenuItem.Button>\n )}\n </Menu>\n </NeetoUIDropdown>\n );\n};\n\nDropdown.propTypes = {\n name: PropTypes.string,\n options: PropTypes.array,\n index: PropTypes.number,\n};\n\nexport default Dropdown;\n","import { useEffect, useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Check } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useCloseInputField from \"hooks/useCloseInputField\";\n\nconst InputField = ({ name, index, placeholder }) => {\n const {\n values: { conditions },\n errors,\n touched,\n } = useFormikContext();\n\n const [showInput, setShowInput] = useState(false);\n const inputRef = useRef(null);\n\n const { t } = useTranslation();\n\n useCloseInputField(inputRef, showInput, () => setShowInput(false));\n\n const condition = conditions.value[index];\n const valueTerm = condition.metadata?.value?.toString();\n\n const label =\n valueTerm && valueTerm?.trim().length\n ? valueTerm\n : t(\"neetoRules.form.addValue\");\n\n const isValid =\n errors.conditions &&\n isNotNil(errors.conditions?.value?.[index]) &&\n isNotNil(touched.conditions?.value?.[index]);\n\n useEffect(() => {\n setShowInput(false);\n }, [condition.verb]);\n\n return showInput ? (\n <Input\n {...{ name, placeholder }}\n ref={inputRef}\n size=\"small\"\n suffix={\n <Check\n className=\"cursor-pointer\"\n onClick={() => setShowInput(prevState => !prevState)}\n />\n }\n />\n ) : (\n <Button\n {...{ label }}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n { \"neeto-ui-text-error-500\": isValid }\n )}\n onClick={() => setShowInput(prevState => !prevState)}\n />\n );\n};\n\nexport default InputField;\n","import { Fragment, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\nimport { Search } from \"neetoicons\";\nimport { Typography, Dropdown, Checkbox, Input, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty, without, append, isNotNil, assocPath } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport OptionsWrapper from \"components/Common/OptionsWrapper\";\n\nimport { MAXIMUM_OPTION_LENGTH } from \"../constants\";\nimport { getSearchedOptions } from \"../helpers\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst MultiSelect = ({ name, dropDownOptions, index }) => {\n const {\n values: { conditions },\n setFieldValue,\n errors,\n touched,\n setTouched,\n } = useFormikContext();\n\n const [activeOption, setActiveOption] = useState(null);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const { t } = useTranslation();\n\n const values = conditions.value[index]?.metadata?.values;\n const selectedOptions = values || [];\n const defaultLabel = t(\"neetoRules.form.selectValues\");\n const options = dropDownOptions?.filter(option =>\n selectedOptions?.includes(option.value)\n );\n const searchedOptions = getSearchedOptions(dropDownOptions, searchTerm);\n const isValid =\n errors.conditions &&\n isNotNil(errors.conditions?.value?.[index]) &&\n isNotNil(touched.conditions?.value?.[index]);\n\n const handleMultiSelectOption = value => {\n const options = selectedOptions?.includes(value)\n ? without([value], selectedOptions)\n : append(value, selectedOptions);\n\n setFieldValue(name, options);\n };\n\n const handleClose = () => {\n setActiveOption(null);\n setSearchTerm(\"\");\n };\n\n return (\n <Dropdown\n buttonStyle=\"secondary\"\n className=\"neeto-ui-bg-gray-100\"\n closeOnSelect={false}\n position=\"top-start\"\n customTarget={\n isNotEmpty(options) ? (\n <span className=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n {options.map((option, idx) => (\n <Fragment key={idx}>\n {!!idx && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.or\")}\n </Typography>\n )}\n <Button\n data-cy=\"condition-value-multi-select-field\"\n label={option?.label?.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": activeOption === option.value,\n }\n )}\n onClick={() => {\n setTouched(\n assocPath([\"conditions\", \"value\", index], true, touched)\n );\n setActiveOption(activeOption ? null : option.value);\n }}\n />\n </Fragment>\n ))}\n </span>\n ) : (\n <Button\n data-cy=\"condition-value-multi-select-field\"\n label={defaultLabel}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": activeOption === defaultLabel,\n \"neeto-ui-text-error-500\": isValid,\n }\n )}\n onClick={() => {\n setTouched(\n assocPath([\"conditions\", \"value\", index], true, touched)\n );\n setActiveOption(activeOption ? null : defaultLabel);\n }}\n />\n )\n }\n onClose={handleClose}\n >\n <Menu className=\"max-h-60 max-w-2xl p-3\">\n {dropDownOptions.length > MAXIMUM_OPTION_LENGTH && (\n <Input\n autoFocus\n className=\"mb-1\"\n data-cy=\"search-text-field\"\n placeholder={t(\"neetoRules.common.search\")}\n prefix={<Search />}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n />\n )}\n <OptionsWrapper\n hasScroll={dropDownOptions.length > MAXIMUM_OPTION_LENGTH}\n >\n {searchedOptions.map((option, idx) => (\n <MenuItem.Button\n data-cy={`${joinHyphenCase(option.label)}-menu-item`}\n key={idx}\n prefix={\n <Checkbox\n checked={selectedOptions?.includes(option.value)}\n data-cy=\"check-icon\"\n id={option.value}\n />\n }\n onClick={() => handleMultiSelectOption(option.value)}\n >\n {option.label}\n </MenuItem.Button>\n ))}\n </OptionsWrapper>\n {isEmpty(dropDownOptions) && (\n <MenuItem.Button data-cy=\"no-options-menu-item\">\n {t(\"neetoRules.common.noOptions\")}\n </MenuItem.Button>\n )}\n </Menu>\n </Dropdown>\n );\n};\n\nMultiSelect.propTypes = {\n name: PropTypes.string,\n index: PropTypes.number,\n dropDownOptions: PropTypes.array,\n};\n\nexport default MultiSelect;\n","import { Fragment, useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Typography, Pane, Select, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { assocPath, isEmpty, isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PaneFooterBlock from \"components/Common/PaneFooterBlock\";\nimport useOnButtonPressed from \"hooks/useOnButtonPressed\";\n\nimport { getAllOptions } from \"../helpers\";\n\nconst MultiSelectCreate = ({ name, index, ...props }) => {\n const { t } = useTranslation();\n const {\n values: { conditions },\n setFieldValue,\n errors,\n touched,\n setTouched,\n } = useFormikContext();\n\n const [showPane, setShowPane] = useState(false);\n\n const initialFocusRef = useRef(null);\n\n useOnButtonPressed(initialFocusRef, () => setShowPane(false));\n\n const values = conditions.value[index]?.metadata?.values;\n const allOptions = getAllOptions(values);\n const defaultLabel = t(\"neetoRules.form.selectValues\");\n const isValid =\n errors.conditions &&\n isNotNil(errors.conditions?.value?.[index]) &&\n isNotNil(touched.conditions?.value?.[index]);\n\n return <>\n {isEmpty(allOptions) && (\n <Button\n data-cy=\"condition-value-multi-select-create-button\"\n label={defaultLabel}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n { \"neeto-ui-text-error-500\": isValid }\n )}\n onClick={() => {\n setTouched(\n assocPath([\"conditions\", \"value\", index], true, touched)\n );\n setShowPane(prevState => !prevState);\n }}\n />\n )}\n {allOptions.map((option, idx) => (\n <Fragment key={idx}>\n {!!idx && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.or\")}\n </Typography>\n )}\n <Button\n className=\"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\"\n data-cy=\"condition-value-multi-select-create-button\"\n label={option.label}\n style=\"link\"\n onClick={() => setShowPane(prevState => !prevState)}\n />\n </Fragment>\n ))}\n <Pane\n {...{ initialFocusRef }}\n isOpen={showPane}\n size=\"large\"\n onClose={() => setShowPane(false)}\n >\n <Pane.Header>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"multi-select-create-pane-header-title\"\n style=\"h3\"\n >\n {t(\"neetoRules.labels.multipleValues\")}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <Select\n isMulti\n className=\"mt-4 w-full\"\n data-cy=\"multi-select-create-container\"\n defaultValue={allOptions}\n innerRef={initialFocusRef}\n label={t(\"neetoRules.labels.selectValues\")}\n onChange={options =>\n setFieldValue(\n name,\n options.map(option => option.value)\n )\n }\n {...props}\n />\n </Pane.Body>\n <Pane.Footer>\n <PaneFooterBlock {...{ setShowPane }} />\n </Pane.Footer>\n </Pane>\n </>;\n};\n\nMultiSelectCreate.propTypes = {\n name: PropTypes.string,\n index: PropTypes.number,\n};\n\nexport default MultiSelectCreate;\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import { useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport dayjs from \"dayjs\";\nimport { useFormikContext } from \"formik\";\nimport { Check } from \"neetoicons\";\nimport { DatePicker, Button } from \"neetoui\";\nimport { assocPath, isEmpty, isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst DateField = ({ name, index, conditionName }) => {\n const {\n values: { conditions },\n errors,\n setFieldValue,\n validateField,\n touched,\n setTouched,\n } = useFormikContext();\n\n const [showInput, setShowInput] = useState(false);\n\n const { t } = useTranslation();\n\n const valueTerm = conditions.value[index].metadata?.value;\n const label = valueTerm || t(\"neetoRules.form.selectDate\");\n const isValid =\n errors.conditions &&\n isNotNil(errors.conditions?.value?.[index]) &&\n isNotNil(touched.conditions?.value?.[index]);\n\n const handleValidate = async () => {\n try {\n if (!isEmpty(errors)) {\n await validateField(conditionName);\n }\n } catch {}\n };\n\n const handleOnChange = date => {\n setFieldValue(\n `${name}.value`,\n // This is the format being stored in database as of now, standard doesn't include this format\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n date ? dayjs(date).format(\"YYYY-MM-DD\") : \"\"\n );\n handleValidate();\n };\n\n return (\n <>\n {showInput ? (\n <>\n <DatePicker\n autoFocus\n defaultValue={valueTerm}\n name={`${name}.value`}\n type=\"date\"\n onChange={handleOnChange}\n />\n <Check\n className=\"cursor-pointer\"\n onClick={() => setShowInput(prevState => !prevState)}\n />\n </>\n ) : (\n <Button\n {...{ label }}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n { \"neeto-ui-text-error-500\": isValid }\n )}\n onClick={() => {\n setTouched(\n assocPath([\"conditions\", \"value\", index], true, touched)\n );\n setShowInput(prevState => !prevState);\n }}\n />\n )}\n </>\n );\n};\n\nexport default DateField;\n","import PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport LongTextField from \"components/Common/Fields/LongTextField\";\n\nimport { CONDITION_VALUE_TYPES, INPUT_FIELD_TYPES } from \"./constants\";\nimport { Dropdown, MultiSelect, InputField, MultiSelectCreate } from \"./Fields\";\nimport DateField from \"./Fields/DateField\";\n\nconst ValueField = ({\n field,\n condition,\n options,\n name,\n index,\n conditionName,\n}) => {\n const { t } = useTranslation();\n\n let fieldType = field?.type;\n if (field?.additionalData) {\n const value = field?.additionalData[condition.verb];\n if (value) {\n fieldType = value;\n }\n }\n\n if (\n field?.noValueForVerbs &&\n field?.noValueForVerbs.includes(condition.verb)\n ) {\n return null;\n }\n\n if (INPUT_FIELD_TYPES.includes(fieldType)) {\n return (\n <InputField\n {...{ conditionName, index }}\n data-cy={`condition-value-${fieldType}-field`}\n name={`${name}.value`}\n placeholder={t(\"neetoRules.common.value\")}\n />\n );\n }\n\n if (fieldType === CONDITION_VALUE_TYPES.textarea) {\n return (\n <LongTextField\n {...{ index }}\n defaultLabel={t(\"neetoRules.labels.text\")}\n name={`${name}.value`}\n value={condition.metadata?.value}\n />\n );\n }\n\n if (fieldType === CONDITION_VALUE_TYPES.dropdown) {\n return <Dropdown {...{ index, options }} name={`${name}.value`} />;\n }\n\n if (fieldType === CONDITION_VALUE_TYPES.multiSelect) {\n return (\n <MultiSelect\n {...{ index }}\n dropDownOptions={options}\n name={`${name}.values`}\n />\n );\n }\n\n if (fieldType === CONDITION_VALUE_TYPES.multiSelectCreate) {\n return (\n <MultiSelectCreate\n {...{ index, options }}\n isCreateable\n name={`${name}.values`}\n placeholder={t(\"neetoRules.placeholders.multiSelect\")}\n />\n );\n }\n\n if (fieldType === CONDITION_VALUE_TYPES.date) {\n return <DateField {...{ conditionName, index, name }} />;\n }\n\n return null;\n};\n\nValueField.propTypes = {\n field: PropTypes.object,\n condition: PropTypes.object,\n name: PropTypes.string,\n};\n\nexport default ValueField;\n","import { useFormikContext } from \"formik\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { CONDITION_VALUE_TYPES } from \"./constants\";\nimport DropdownField from \"./Fields/DropdownField\";\nimport { getFieldDetails, getVerbOptions } from \"./helpers\";\nimport ValueField from \"./ValueField\";\n\nconst ConditionItem = ({\n index,\n name,\n condition,\n elementProps,\n onSelectCondition,\n selectedConditionOptions,\n isWithEvents,\n}) => {\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n\n const { conditionOptions } = elementProps;\n const selectedField = getFieldDetails(condition.field, conditionOptions);\n const verbOptions = getVerbOptions(selectedField?.allowMatching);\n const ifLabel = index\n ? t(\"neetoRules.placeholders.if\")\n : t(\"neetoRules.placeholders.if\");\n\n const defaultLabel = isWithEvents ? t(\"neetoRules.common.when\") : ifLabel;\n\n const getSelectedFieldOptions = () => {\n if (\n [\n CONDITION_VALUE_TYPES.dropdown,\n CONDITION_VALUE_TYPES.multiSelect,\n CONDITION_VALUE_TYPES.multiSelectCreate,\n ].includes(selectedField?.type)\n ) {\n if (typeof selectedConditionOptions === \"function\") {\n return selectedConditionOptions(selectedField) || [];\n }\n\n return (selectedConditionOptions ?? selectedField.dropdownOptions) || [];\n }\n\n return [];\n };\n\n const handleFieldChange = option => {\n const { value } = option;\n setFieldValue(`${name}.field`, value);\n const fieldDetails = getFieldDetails(value, conditionOptions);\n setFieldValue(`${name}.verb`, fieldDetails?.allowMatching[0]);\n setFieldValue(`${name}.kind`, fieldDetails?.kind);\n setFieldValue(`${name}.metadata`, {});\n onSelectCondition?.(name, option);\n };\n\n const handleVerbChange = ({ value }) => {\n setFieldValue(`${name}.verb`, value);\n setFieldValue(`${name}.metadata`, {});\n };\n\n return (\n <>\n {isWithEvents && !index && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.and\", { what: \"\" })}\n </Typography>\n )}\n <Typography className=\"neeto-ui-text-gray-700\" style=\"h5\" weight=\"normal\">\n {defaultLabel}\n </Typography>\n <DropdownField\n {...{ index }}\n fieldType=\"field\"\n handleSelect={handleFieldChange}\n options={conditionOptions}\n placeholder={t(\"neetoRules.form.selectField\")}\n />\n <DropdownField\n {...{ index }}\n fieldType=\"verb\"\n handleSelect={handleVerbChange}\n options={verbOptions}\n placeholder={t(\"neetoRules.form.selectVerb\")}\n />\n <ValueField\n {...{ condition, index }}\n conditionName={name}\n field={selectedField}\n name={`${name}.metadata`}\n options={getSelectedFieldOptions()}\n />\n </>\n );\n};\n\nConditionItem.propTypes = {\n index: PropTypes.number,\n name: PropTypes.string,\n condition: PropTypes.object,\n elementProps: PropTypes.object,\n};\n\nexport default ConditionItem;\n","import { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport { OPERATOR_LABELS } from \"./constants\";\n\nconst LogicOperator = ({ logicOperation, handleGroupJoinType }) => {\n const logicOperationLabel = OPERATOR_LABELS[logicOperation];\n\n return (\n <Button\n className=\"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\"\n data-cy=\"logic-operator-button\"\n label={logicOperationLabel}\n style=\"link\"\n onClick={() => handleGroupJoinType(logicOperation)}\n />\n );\n};\n\nLogicOperator.propTypes = {\n logicOperation: PropTypes.string,\n handleGroupJoinType: PropTypes.func,\n};\n\nexport default LogicOperator;\n","import { FieldArray, useField, useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Plus, Delete, Eye } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ConditionItem from \"./ConditionItem\";\nimport { OPERATORS } from \"./constants\";\nimport LogicOperator from \"./LogicOperator\";\n\nconst Conditions = ({\n data,\n name,\n onSelectCondition,\n selectedConditionOptions,\n isCallback = false,\n previewCallback,\n isWithEvents = false,\n allowEmpty = true,\n}) => {\n const [field, , { setValue }] = useField(name);\n const { setFieldValue } = useFormikContext();\n const { t } = useTranslation();\n\n const elementProps = data[name] || {};\n const conditions = field.value?.value || [];\n\n const handleAddCondition = (arrayHelpers, logicOperation) => {\n arrayHelpers.push({\n field: elementProps?.conditionOptions[0].value,\n verb: elementProps?.conditionOptions[0]?.allowMatching[0],\n joinType: logicOperation,\n metadata: {},\n });\n };\n\n const handleRemoveCondition = (index, condition, arrayHelpers) => {\n if (condition.id) {\n setValue({\n ...field.value,\n deleted: [\n ...(field.value?.deleted || []),\n { ...condition, _destroy: true },\n ],\n });\n }\n arrayHelpers.remove(index);\n };\n\n const handleGroupJoinType = logicOperation => {\n const operator =\n logicOperation === OPERATORS.or ? OPERATORS.and : OPERATORS.or;\n for (let index = 0; index < conditions.length; index++) {\n setFieldValue(`${name}.value.${index}.joinType`, operator);\n }\n };\n\n return (\n <FieldArray name={`${name}.value`}>\n {arrayHelpers => (\n <div className=\"flex w-full flex-col gap-y-1\">\n {conditions?.map((condition, index) => (\n <div className=\"flex w-full justify-between\" key={index}>\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-2\">\n {!!index && (\n <LogicOperator\n {...{ handleGroupJoinType }}\n logicOperation={condition.joinType}\n />\n )}\n <ConditionItem\n {...{\n condition,\n elementProps,\n index,\n isWithEvents,\n onSelectCondition,\n selectedConditionOptions,\n }}\n key={index}\n name={`${name}.value.${index}`}\n />\n </div>\n <div className=\"flex\">\n {index === conditions.length - 1 && (\n <Button\n data-cy=\"add-condition-button\"\n icon={Plus}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoRules.form.addCondition\"),\n position: \"top\",\n }}\n onClick={() =>\n handleAddCondition(arrayHelpers, condition.joinType)\n }\n />\n )}\n {(allowEmpty || index !== 0) && (\n <Button\n data-cy={`delete-condition-button-${index}`}\n icon={Delete}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoRules.common.delete\"),\n position: \"top\",\n }}\n onClick={() =>\n handleRemoveCondition(index, condition, arrayHelpers)\n }\n />\n )}\n </div>\n </div>\n ))}\n {isEmpty(conditions) && (\n <Button\n className=\"neeto-ui-text-gray-600 mr-auto\"\n data-cy=\"add-condition-button\"\n label={t(\"neetoRules.form.addCondition\")}\n style=\"text\"\n onClick={() => handleAddCondition(arrayHelpers, OPERATORS.or)}\n />\n )}\n {isCallback && isNotEmpty(conditions) && (\n <div>\n <Button\n className=\"mt-2\"\n data-cy=\"preview-callback-button\"\n icon={Eye}\n label={t(\"neetoRules.common.preview\")}\n style=\"secondary\"\n onClick={() => previewCallback(conditions)}\n />\n </div>\n )}\n </div>\n )}\n </FieldArray>\n );\n};\n\nConditions.propTypes = {\n name: PropTypes.string,\n data: PropTypes.object,\n isCallback: PropTypes.bool,\n onSelectCondition: PropTypes.func,\n selectedConditionOptions: PropTypes.func,\n previewCallback: PropTypes.func,\n};\n\nexport default Conditions;\n","export const MAXIMUM_OPTION_LENGTH = 7;\n\nexport const OPERATORS = { or: \"or_operator\", and: \"and_operator\" };\n","/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport { toLower, isEmpty, pipe, partition } from \"ramda\";\n\nexport const getAllEvents = (events, dropdownOptions) =>\n dropdownOptions.filter(option => events.includes(option.value));\n\nexport const getSearchedOptions = (dropdownOptions, searchTerm) =>\n dropdownOptions?.filter(({ label }) =>\n toLower(label).includes(toLower(searchTerm.trim()))\n );\n\nexport const getDropdownOptions = (eventNames, eventOptions) => {\n if (isEmpty(eventOptions)) {\n return [];\n }\n\n const [includedOptions, excludedOptions] = pipe(\n partition(option => eventNames.includes(option.value)),\n ([included, excluded]) => [included, excluded]\n )(eventOptions);\n\n return [...includedOptions, ...excludedOptions];\n};\n","import { useState, useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { findBy } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\nimport { Check, Search } from \"neetoicons\";\nimport { Typography, Dropdown, Input, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport OptionsWrapper from \"components/Common/OptionsWrapper\";\n\nimport { MAXIMUM_OPTION_LENGTH } from \"./constants\";\nimport { getSearchedOptions } from \"./helpers\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst Performer = ({ name, data, isMenuDisabled = false }) => {\n const { values, setFieldValue, errors } = useFormikContext();\n\n const { t } = useTranslation();\n\n const elementProps = data[name] || {};\n const performer = values[name].value;\n const performerOptions = elementProps.options;\n\n const defaultLabel = {\n label: t(\"neetoRules.placeholders.selectOption\"),\n };\n\n const [selectedOption, setSelectedOption] = useState(defaultLabel);\n const [isSelected, setIsSelected] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const searchedOptions = getSearchedOptions(performerOptions, searchTerm);\n const isValueSelected =\n selectedOption.label === t(\"neetoRules.placeholders.selectOption\") &&\n errors.performer;\n\n const findDefaultOption = () => {\n const option = findBy({ value: performer }, performerOptions);\n if (option) {\n setSelectedOption(option);\n } else {\n setSelectedOption(defaultLabel);\n }\n };\n\n const handleClose = () => {\n setIsSelected(false);\n setSearchTerm(\"\");\n };\n\n useEffect(() => {\n findDefaultOption();\n }, [performer]);\n\n const handleSelectOption = option => {\n setFieldValue(`${name}.value`, option.value);\n setSelectedOption(option);\n };\n\n return (\n <div className=\"my-auto flex items-center gap-x-2 gap-y-3\">\n <Typography className=\"neeto-ui-text-gray-700\" style=\"h5\" weight=\"normal\">\n {t(\"neetoRules.common.by\")}\n </Typography>\n <Dropdown\n buttonStyle=\"secondary\"\n className=\"neeto-ui-bg-gray-100\"\n customTarget={\n <Button\n data-cy=\"event-performer-dropdown\"\n label={selectedOption?.label?.toLowerCase()}\n style=\"link\"\n className={classNames(\n \" neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": isSelected,\n \"neeto-ui-text-error-500\": isValueSelected,\n }\n )}\n onClick={() => setIsSelected(prevState => !prevState)}\n />\n }\n onClose={handleClose}\n >\n <Menu className=\"max-h-60 max-w-2xl p-3\">\n {performerOptions.length > MAXIMUM_OPTION_LENGTH && (\n <Input\n autoFocus\n className=\"mb-1\"\n data-cy=\"search-text-field\"\n placeholder={t(\"neetoRules.common.search\")}\n prefix={<Search />}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n onClick={e => e.stopPropagation()}\n />\n )}\n <OptionsWrapper\n hasScroll={performerOptions.length > MAXIMUM_OPTION_LENGTH}\n >\n {searchedOptions.map((option, idx) => (\n <MenuItem.Button\n data-cy={`${joinHyphenCase(option.label)}-menu-item`}\n isDisabled={isMenuDisabled}\n key={idx}\n className={classNames({\n \"neeto-ui-bg-gray-100\": selectedOption.value === option.value,\n })}\n suffix={\n selectedOption.value === option.value && (\n <Check\n className=\"neeto-ui-text-primary-800\"\n data-cy=\"check-icon\"\n />\n )\n }\n onClick={() => handleSelectOption(option)}\n >\n {option.label}\n </MenuItem.Button>\n ))}\n </OptionsWrapper>\n {isEmpty(performerOptions) && (\n <MenuItem.Button data-cy=\"no-options-menu-item\">\n {t(\"neetoRules.common.noOptions\")}\n </MenuItem.Button>\n )}\n </Menu>\n </Dropdown>\n </div>\n );\n};\n\nPerformer.propTypes = {\n name: PropTypes.string,\n data: PropTypes.object,\n};\n\nexport default Performer;\n","import { useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { findBy, isNotEmpty, removeBy } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\nimport { Search } from \"neetoicons\";\nimport { Typography, Dropdown, Checkbox, Input, Button } from \"neetoui\";\nimport { isEmpty, pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport OptionsWrapper from \"components/Common/OptionsWrapper\";\n\nimport { MAXIMUM_OPTION_LENGTH } from \"./constants\";\nimport {\n getAllEvents,\n getDropdownOptions,\n getSearchedOptions,\n} from \"./helpers\";\nimport Performer from \"./Performer\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst Events = ({ name, data, onSelectEvent, performerName }) => {\n const { values, setFieldValue, errors } = useFormikContext();\n\n const [activeOption, setActiveOption] = useState(null);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const { t } = useTranslation();\n\n const elementProps = data[name] || {};\n const events = values[name].value || [];\n const defaultLabel = t(\"neetoRules.form.thisHappens\");\n const defaultData = elementProps.defaultData;\n\n const eventNames = pluck(\"name\", events);\n const dropdownOptions = getDropdownOptions(\n eventNames,\n elementProps.eventOptions\n );\n\n const isMenuDisabled = eventNames.includes(defaultData?.name);\n const allEvents = getAllEvents(eventNames, dropdownOptions);\n const searchedOptions = getSearchedOptions(dropdownOptions, searchTerm);\n const isValid = !errors.events;\n\n const handleDefaultData = () => {\n let deletedEvents = values[name]?.deleted || [];\n for (let idx = 0; idx < events.length; idx++) {\n if (events[idx].id) {\n deletedEvents = [...deletedEvents, { ...events[idx], _destroy: true }];\n }\n }\n setFieldValue(`${name}.deleted`, deletedEvents);\n if (isMenuDisabled) {\n setFieldValue(`${name}.value`, []);\n } else {\n setFieldValue(`${name}.value`, [{ name: defaultData.name }]);\n setFieldValue(`${performerName}.value`, defaultData?.performer);\n }\n };\n\n const handleMultiSelectOption = option => {\n if (option.value === defaultData?.name) {\n handleDefaultData();\n\n return;\n }\n\n let options = events;\n if (isMenuDisabled) {\n const defaultEvent = findBy({ name: defaultData?.name }, events);\n if (defaultEvent.id) {\n setFieldValue(`${name}.deleted`, [\n ...(values[name]?.deleted || []),\n { ...defaultEvent, _destroy: true },\n ]);\n }\n options = removeBy({ name: defaultData?.name }, events);\n }\n const event = findBy({ name: option.value }, events);\n\n if (event && event.id) {\n setFieldValue(`${name}.deleted`, [\n ...(values[name]?.deleted || []),\n { ...event, _destroy: true },\n ]);\n }\n\n options = eventNames.includes(option.value)\n ? removeBy({ name: option.value }, options)\n : [...options, { name: option.value }];\n\n onSelectEvent?.(name, options);\n setFieldValue(`${name}.value`, options);\n };\n\n const handleClose = () => {\n setActiveOption(null);\n setSearchTerm(\"\");\n };\n\n return (\n <div className=\"my-auto flex flex-wrap items-center gap-x-2 gap-y-3\">\n <Typography\n className=\"neeto-ui-text-gray-700 my-auto\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.when\")}\n </Typography>\n <Dropdown\n buttonStyle=\"secondary\"\n className=\"neeto-ui-bg-gray-100\"\n closeOnSelect={false}\n position=\"top-start\"\n customTarget={\n isNotEmpty(allEvents) ? (\n <span className=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n {allEvents.map((event, idx) => (\n <span\n className=\"flex flex-wrap items-center gap-x-2 gap-y-1\"\n key={idx}\n >\n {!!idx && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.or\")}\n </Typography>\n )}\n <Button\n data-cy=\"condition-value-multi-select-field\"\n label={event?.label?.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\":\n activeOption === event.value,\n }\n )}\n onClick={() =>\n setActiveOption(activeOption ? null : event.value)\n }\n />\n </span>\n ))}\n </span>\n ) : (\n <Button\n data-cy=\"condition-value-multi-select-field\"\n label={defaultLabel}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": activeOption === defaultLabel,\n \"neeto-ui-text-error-500\": !isValid,\n }\n )}\n onClick={() =>\n setActiveOption(activeOption ? null : defaultLabel)\n }\n />\n )\n }\n onClose={handleClose}\n >\n <Menu className=\"max-h-60 max-w-2xl p-3\">\n {dropdownOptions.length > MAXIMUM_OPTION_LENGTH && (\n <Input\n autoFocus\n className=\"mb-1\"\n data-cy=\"search-text-field\"\n placeholder={t(\"neetoRules.common.search\")}\n prefix={<Search />}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n />\n )}\n <OptionsWrapper\n hasScroll={dropdownOptions.length > MAXIMUM_OPTION_LENGTH}\n >\n {searchedOptions.map((option, idx) => (\n <MenuItem.Button\n data-cy={`${joinHyphenCase(option.label)}-menu-item`}\n key={idx}\n prefix={\n <Checkbox\n checked={eventNames?.includes(option.value)}\n data-cy=\"check-icon\"\n id={option.value}\n />\n }\n onClick={() => handleMultiSelectOption(option)}\n >\n {option.label}\n </MenuItem.Button>\n ))}\n </OptionsWrapper>\n {isEmpty(dropdownOptions) && (\n <MenuItem.Button data-cy=\"no-options-menu-item\">\n {t(\"neetoRules.common.noOptions\")}\n </MenuItem.Button>\n )}\n </Menu>\n </Dropdown>\n <Performer {...{ data, isMenuDisabled }} name={performerName} />\n </div>\n );\n};\n\nexport default Events;\n","import classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Plus } from \"neetoicons\";\nimport { Button, Tooltip } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { OPERATORS } from \"./constants\";\nimport Events from \"./Events\";\n\nimport Card from \"../Card\";\nimport Conditions from \"../Conditions\";\n\nconst EventConditions = ({\n addButtonTooltipProps = {},\n data,\n label,\n name,\n performerName,\n conditionsName,\n onSelectEvent,\n ...config\n}) => {\n const { values, setFieldValue } = useFormikContext();\n const { t } = useTranslation();\n\n const elementProps = data[name] || {};\n const conditionProps = data[conditionsName] || {};\n const conditions = values[conditionsName].value || [];\n const showAddButton = isEmpty(conditions);\n\n const handleAddCondition = () => {\n setFieldValue(`${conditionsName}.value`, [\n {\n field: conditionProps?.conditionOptions[0].value,\n verb: conditionProps?.conditionOptions[0]?.allowMatching[0],\n joinType: OPERATORS.or,\n metadata: {},\n },\n ]);\n };\n\n const addButtonTooltips = {\n content: t(\"neetoRules.form.addCondition\"),\n position: \"top\",\n };\n\n const disabledAddButtonTooltips = {\n content: t(\"neetoRules.form.noTicketFields\"),\n position: \"top\",\n ...addButtonTooltipProps,\n };\n\n const isConditionsEmpty = isEmpty(conditionProps?.conditionOptions);\n\n const tooltipProps = isConditionsEmpty\n ? disabledAddButtonTooltips\n : addButtonTooltips;\n\n return (\n <div>\n <Card title={label || elementProps?.label}>\n <div className=\"flex justify-between\">\n <div\n className={classNames(\"my-auto\", {\n \"max-w-4xl\": showAddButton,\n })}\n >\n <Events {...{ data, name, onSelectEvent, performerName }} />\n </div>\n {showAddButton && (\n <Tooltip {...tooltipProps}>\n <div>\n <Button\n data-cy=\"add-condition-button\"\n data-test-id=\"automation-rules-add-events-button\"\n disabled={isConditionsEmpty}\n icon={Plus}\n size=\"small\"\n style=\"text\"\n onClick={handleAddCondition}\n />\n </div>\n </Tooltip>\n )}\n </div>\n {!showAddButton && (\n <div className=\"mt-3\">\n <Conditions\n {...{ data }}\n isWithEvents\n name={conditionsName}\n {...config}\n />\n </div>\n )}\n </Card>\n </div>\n );\n};\n\nexport default EventConditions;\n","import { toLower } from \"ramda\";\n\nexport const getEventOptions = (currentOption, selectedOptions, options) => {\n const selectedEventOptions = selectedOptions.map(option => option.name);\n\n return options.filter(\n option =>\n option.value === currentOption.name ||\n !selectedEventOptions.includes(option.value)\n );\n};\n\nexport const getSearchedOptions = /*#__PURE__*/ (dropDownOptions, searchTerm) =>\n dropDownOptions.filter(({ label }) =>\n toLower(label).includes(toLower(searchTerm.trim()))\n );\n","import { useMemo, useState, useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\nimport { Search } from \"neetoicons\";\nimport { Dropdown, Input, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport OptionsWrapper from \"components/Common/OptionsWrapper\";\n\nimport { getEventOptions, getSearchedOptions } from \"./helpers\";\n\nimport { MAXIMUM_OPTION_LENGTH } from \"../../constants\";\n\nconst { Menu, MenuItem, Divider } = Dropdown;\n\nconst EventItem = ({\n name,\n parentName,\n event,\n elementProps,\n removeEvent,\n onSelectEvent,\n}) => {\n const [selectedOption, setSelectedOption] = useState(\n t(\"neetoRules.form.thisHappens\")\n );\n const [isActive, setIsActive] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const { t } = useTranslation();\n\n const { values, setFieldValue, errors } = useFormikContext();\n const events = values[parentName].value || [];\n\n const handleEventChange = option => {\n setFieldValue(name, option.value);\n onSelectEvent?.(name, option);\n setSelectedOption(option.label);\n };\n\n const eventOptions = useMemo(\n () => getEventOptions(event, events, elementProps.eventOptions),\n [events]\n );\n\n const searchedOptions = getSearchedOptions(eventOptions, searchTerm);\n const isValueSelected =\n selectedOption === t(\"neetoRules.form.thisHappens\") && errors.events;\n\n const findDefaultOption = () => {\n if (event.name) {\n const defaultOption = eventOptions.find(\n option => option.value === event.name\n );\n if (defaultOption) {\n setSelectedOption(defaultOption?.label);\n } else {\n setSelectedOption(t(\"neetoRules.form.thisHappens\"));\n }\n } else {\n setSelectedOption(t(\"neetoRules.form.thisHappens\"));\n }\n };\n\n useEffect(() => {\n findDefaultOption();\n }, [events]);\n\n const handleClose = () => {\n setIsActive(false);\n setSearchTerm(\"\");\n };\n\n return (\n <div className=\"my-auto flex flex-wrap\">\n <Dropdown\n buttonStyle=\"secondary\"\n className=\"neeto-ui-bg-gray-100\"\n closeOnSelect={false}\n customTarget={\n <Button\n data-cy=\"event-dropdown-button\"\n label={selectedOption.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": isActive,\n \"neeto-ui-text-error-500\": isValueSelected,\n }\n )}\n onClick={() => setIsActive(prevState => !prevState)}\n />\n }\n onClose={handleClose}\n >\n <Menu className=\"max-h-60 max-w-2xl p-3\">\n {eventOptions.length > MAXIMUM_OPTION_LENGTH && (\n <Input\n className=\"mb-1\"\n data-cy=\"search-text-field\"\n placeholder={t(\"neetoRules.common.search\")}\n prefix={<Search />}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n />\n )}\n <OptionsWrapper\n hasScroll={eventOptions.length > MAXIMUM_OPTION_LENGTH}\n >\n {searchedOptions.map((option, idx) => (\n <MenuItem.Button\n data-cy={`${joinHyphenCase(option.label)}-menu-item`}\n key={idx}\n onClick={() => handleEventChange(option)}\n >\n {option.label}\n </MenuItem.Button>\n ))}\n </OptionsWrapper>\n {!eventOptions.length && (\n <MenuItem.Button data-cy=\"no-options-menu-item\">\n {t(\"neetoRules.common.noOptions\")}\n </MenuItem.Button>\n )}\n <Divider />\n <MenuItem.Button\n data-cy=\"delete-event-button\"\n style=\"danger\"\n onClick={removeEvent}\n >\n {t(\"neetoRules.common.delete\")}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n </div>\n );\n};\n\nEventItem.propTypes = {\n name: PropTypes.string,\n event: PropTypes.object,\n elementProps: PropTypes.object,\n removeEvent: PropTypes.func,\n};\n\nexport default EventItem;\n","import { useState, useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { findBy } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\nimport { Check, Search } from \"neetoicons\";\nimport { Typography, Dropdown, Input, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport OptionsWrapper from \"components/Common/OptionsWrapper\";\n\nimport { getSearchedOptions } from \"./helpers\";\n\nimport { MAXIMUM_OPTION_LENGTH } from \"../../constants\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst Performer = ({ name, data }) => {\n const { values, setFieldValue, isValid } = useFormikContext();\n\n const { t } = useTranslation();\n\n const elementProps = data[name] || {};\n const performer = values[name].value;\n const performerOptions = elementProps.options;\n\n const defaultLabel = {\n label: t(\"neetoRules.placeholders.selectOption\"),\n };\n\n const [selectedOption, setSelectedOption] = useState(defaultLabel);\n const [isSelected, setIsSelected] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const searchedOptions = getSearchedOptions(performerOptions, searchTerm);\n const isValueSelected =\n selectedOption.label === t(\"neetoRules.placeholders.selectOption\") &&\n !isValid;\n\n const findDefaultOption = () => {\n const option = findBy({ value: performer }, performerOptions);\n if (option) {\n setSelectedOption(option);\n } else {\n setSelectedOption(defaultLabel);\n }\n };\n\n const handleClose = () => {\n setIsSelected(false);\n setSearchTerm(\"\");\n };\n\n useEffect(() => {\n findDefaultOption();\n }, []);\n\n const handleSelectOption = option => {\n setFieldValue(`${name}.value`, option.value);\n setSelectedOption(option);\n };\n\n return (\n <div className=\"my-auto flex\">\n <Typography\n className=\"neeto-ui-text-gray-700 mr-2\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.by\")}\n </Typography>\n <Dropdown\n buttonStyle=\"secondary\"\n className=\"neeto-ui-bg-gray-100\"\n closeOnSelect={false}\n customTarget={\n <Button\n data-cy=\"event-performer-dropdown\"\n label={selectedOption?.label?.toLowerCase()}\n style=\"link\"\n className={classNames(\n \"neeto-ui-text-gray-800 neeto-ui-font-semibold underline\",\n {\n \"neeto-ui-text-accent-800\": isSelected,\n \"neeto-ui-text-error-500\": isValueSelected,\n }\n )}\n onClick={() => setIsSelected(prevState => !prevState)}\n />\n }\n onClose={handleClose}\n >\n <Menu className=\"max-h-60 max-w-2xl p-3\">\n {performerOptions.length > MAXIMUM_OPTION_LENGTH && (\n <Input\n className=\"mb-1\"\n data-cy=\"search-text-field\"\n placeholder={t(\"neetoRules.common.search\")}\n prefix={<Search />}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n />\n )}\n <OptionsWrapper\n hasScroll={performerOptions.length > MAXIMUM_OPTION_LENGTH}\n >\n {searchedOptions.map((option, idx) => (\n <MenuItem.Button\n data-cy={`${joinHyphenCase(option.label)}-menu-item`}\n key={idx}\n className={classNames({\n \"neeto-ui-bg-gray-100\": selectedOption.value === option.value,\n })}\n suffix={\n selectedOption.value === option.value && (\n <Check\n className=\"neeto-ui-text-primary-800\"\n data-cy=\"check-icon\"\n />\n )\n }\n onClick={() => handleSelectOption(option)}\n >\n {option.label}\n </MenuItem.Button>\n ))}\n </OptionsWrapper>\n {isEmpty(performerOptions) && (\n <MenuItem.Button data-cy=\"no-options-menu-item\">\n {t(\"neetoRules.common.noOptions\")}\n </MenuItem.Button>\n )}\n </Menu>\n </Dropdown>\n </div>\n );\n};\n\nPerformer.propTypes = {\n name: PropTypes.string,\n data: PropTypes.object,\n};\n\nexport default Performer;\n","import { useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport { FieldArray, useFormikContext } from \"formik\";\nimport { findBy, isNotEmpty, removeBy } from \"neetocist\";\nimport { Plus, Delete } from \"neetoicons\";\nimport { Typography, Button } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EventItem from \"./EventItem\";\nimport Performer from \"./Performer\";\n\nimport Card from \"../Card\";\n\nconst Events = ({ name, label, data, onSelectEvent, performerName }) => {\n const { values, setFieldValue } = useFormikContext();\n\n const { t } = useTranslation();\n\n const elementProps = data[name] || {};\n const events = values[name].value;\n const showAddButton = elementProps.eventOptions.length !== events.length;\n const defaultData = elementProps.defaultData;\n const message = defaultData?.message || t(\"neetoRules.form.noEvents\");\n\n const removeEvent = (index, event, arrayHelpers) => {\n if (event.id) {\n setFieldValue(`${name}.deleted`, [\n ...(values[name]?.deleted || []),\n { ...event, _destroy: true },\n ]);\n }\n arrayHelpers.remove(index);\n };\n\n const popEvent = arrayHelpers => {\n if (!(isNotEmpty(arrayHelpers) && isNotEmpty(events))) return;\n const eventIdx = events.length - 1;\n removeEvent(eventIdx, events[eventIdx], arrayHelpers);\n };\n\n const handleAddEvent = arrayHelpers => arrayHelpers.push({ name: null });\n\n const defaultEvent = findBy({ name: defaultData?.name }, events);\n const showMessage = (!defaultData && isEmpty(events)) || defaultEvent;\n\n const setTimeBasedEvent = () => {\n if (defaultData && isEmpty(events)) {\n setFieldValue(`${name}.value`, [{ name: defaultData?.name }]);\n setFieldValue(`${performerName}.value`, defaultData?.performer);\n } else if (defaultEvent && events.length > 1) {\n if (defaultEvent.id) {\n setFieldValue(`${name}.deleted`, [\n ...(values[name]?.deleted || []),\n { ...defaultEvent, _destroy: true },\n ]);\n }\n\n const allEvents = removeBy({ name: defaultEvent.name }, events);\n setFieldValue(`${name}.value`, allEvents);\n }\n };\n\n useEffect(() => {\n setTimeBasedEvent();\n }, [events]);\n\n return (\n <Card title={label || elementProps?.label}>\n <FieldArray name={`${name}.value`}>\n {arrayHelpers => (\n <div className=\"flex justify-between\">\n <div\n className={classNames(\"flex flex-wrap gap-x-2 gap-y-2\", {\n \"max-w-2xl\": showAddButton,\n })}\n >\n {showMessage && (\n <Typography\n className=\"my-auto\"\n component=\"p\"\n data-cy=\"event-message-text\"\n style=\"body2\"\n >\n {message}\n </Typography>\n )}\n {!showMessage &&\n events.map((event, index) => (\n <div className=\"flex flex-wrap gap-x-2\" key={index}>\n {!index && (\n <Typography\n className=\"neeto-ui-text-gray-700 my-auto\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.when\")}\n </Typography>\n )}\n {!!index && (\n <Typography\n className=\"neeto-ui-text-gray-700 my-auto\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.or\")}\n </Typography>\n )}\n <EventItem\n {...{ elementProps, event, onSelectEvent }}\n name={`${name}.value.${index}.name`}\n parentName={name}\n removeEvent={() =>\n removeEvent(index, event, arrayHelpers)\n }\n />\n </div>\n ))}\n {!showMessage && <Performer {...{ data }} name={performerName} />}\n </div>\n <div>\n {showAddButton && (\n <Button\n data-cy=\"add-event-button\"\n data-test-id=\"automation-rules-add-events-button\"\n icon={Plus}\n size={32}\n style=\"icon\"\n tooltipProps={{\n content: t(\"neetoRules.form.addEvent\"),\n position: \"top\",\n }}\n onClick={() => handleAddEvent(arrayHelpers)}\n />\n )}\n {!showMessage && (\n <Button\n data-cy=\"delete-event-button\"\n icon={Delete}\n size={32}\n style=\"icon\"\n tooltipProps={{\n content: t(\"neetoRules.common.delete\"),\n position: \"top\",\n }}\n onClick={() => popEvent(arrayHelpers)}\n />\n )}\n </div>\n </div>\n )}\n </FieldArray>\n </Card>\n );\n};\n\nexport default Events;\n","import { useEffect, useState } from \"react\";\n\nimport { useDebounce } from \"neetocommons/react-utils\";\n\nconst useDebouncedUpdate = (value, setValue, duration = 200) => {\n const [text, setText] = useState(value);\n\n const debouncedValue = useDebounce(text, duration);\n\n useEffect(() => {\n setValue(text);\n }, [debouncedValue]);\n\n return [text, setText];\n};\n\nexport default useDebouncedUpdate;\n","import { useField } from \"formik\";\nimport { Input } from \"neetoui/formik\";\n\nimport useDebouncedUpdate from \"hooks/useDebouncedUpdate\";\n\nconst InputField = ({ data, name, label, ...componentProps }) => {\n const elementProps = data[name];\n\n const [field, _, { setValue }] = useField(`${name}.value`);\n const [text, setText] = useDebouncedUpdate(field.value, setValue);\n\n return (\n <Input\n className=\"mb-4\"\n label={label || elementProps?.label}\n {...field}\n value={text}\n onChange={e => setText(e.target.value)}\n {...componentProps}\n />\n );\n};\n\nexport default InputField;\n","import { useField } from \"formik\";\nimport { Select } from \"neetoui/formik\";\n\nconst MultiSelectField = ({\n data,\n name,\n label,\n options,\n onChange,\n ...componentProps\n}) => {\n const [, , { setValue }] = useField(`${name}.value`);\n\n const elementProps = data[name];\n\n return (\n <Select\n isMulti\n label={label || elementProps?.label}\n name={`${name}.value`}\n options={options || elementProps?.options}\n strategy=\"fixed\"\n onChange={options => onChange?.(options, setValue) || setValue(options)}\n {...componentProps}\n />\n );\n};\n\nexport default MultiSelectField;\n","import { Label } from \"neetoui\";\nimport { Radio } from \"neetoui/formik\";\n\nconst RadioField = ({ name, label, data, options, ...componentProps }) => {\n const elementProps = data[name] || {};\n const radioOptions = options || elementProps?.options;\n\n return (\n <div className=\"my-6\">\n <Label className=\"mb-4\" data-cy=\"radio-field-label\">\n {label || elementProps?.label}\n </Label>\n <Radio name={`${name}.value`} {...componentProps}>\n {radioOptions.map(({ label, value }, index) => (\n <Radio.Item {...{ label, value }} key={index} />\n ))}\n </Radio>\n </div>\n );\n};\n\nexport default RadioField;\n","import { useField } from \"formik\";\nimport { Select } from \"neetoui/formik\";\n\nconst SelectField = ({\n data,\n name,\n label,\n options,\n onChange,\n ...componentProps\n}) => {\n const [, , { setValue }] = useField(`${name}.value`);\n\n const elementProps = data[name];\n\n return (\n <Select\n label={label || elementProps?.label}\n name={`${name}.value`}\n options={options || elementProps?.options}\n strategy=\"fixed\"\n onChange={option =>\n onChange?.(option, setValue) || setValue(option.value)\n }\n {...componentProps}\n />\n );\n};\n\nexport default SelectField;\n","import { useField } from \"formik\";\nimport { Textarea } from \"neetoui/formik\";\n\nimport useDebouncedUpdate from \"hooks/useDebouncedUpdate\";\n\nconst TextareaField = ({ data, name, label, ...componentProps }) => {\n const elementProps = data[name];\n\n const [field, _, { setValue }] = useField(`${name}.value`);\n const [text, setText] = useDebouncedUpdate(field.value, setValue);\n\n return (\n <Textarea\n className=\"mb-4\"\n label={label || elementProps?.label}\n rows={4}\n {...field}\n value={text}\n onChange={e => setText(e.target.value)}\n {...componentProps}\n />\n );\n};\n\nexport default TextareaField;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import { FIELD_TYPES } from \"./constants\";\n\nexport const buildPayload = (data, values) =>\n Object.keys(data).reduce((acc, key) => {\n let fieldValue = values[key].value;\n if (Array.isArray(fieldValue)) {\n if (data[key].type === FIELD_TYPES.conditionGroup) {\n fieldValue = fieldValue?.map(conditionGroup => ({\n ...conditionGroup,\n conditions: [\n ...conditionGroup.conditions.value,\n ...(conditionGroup.conditions?.deleted || []),\n ],\n }));\n }\n fieldValue = [...fieldValue, ...(values[key]?.deleted || [])];\n }\n\n return { ...acc, [key]: fieldValue };\n }, {});\n\nexport const formatData = data =>\n Object.keys(data).reduce((acc, key) => {\n const value =\n data[key].type === FIELD_TYPES.conditionGroup\n ? data[key].value.map(conditionGroup => ({\n ...conditionGroup,\n conditions: { value: conditionGroup.conditions },\n }))\n : data[key].value;\n\n return { ...acc, [key]: { value } };\n }, {});\n","import { useFormikContext } from \"formik\";\nimport { Help } from \"neetoicons\";\nimport { Switch } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { STATUS_KEYS } from \"./constants\";\n\nconst { ENABLED, DISABLED } = STATUS_KEYS;\n\nconst Status = () => {\n const {\n values: { status },\n setFieldValue,\n } = useFormikContext();\n const { t } = useTranslation();\n\n const defaultValue = status?.value;\n\n const handleChange = e => {\n const status = e.target.checked ? ENABLED : DISABLED;\n setFieldValue(\"status.value\", status);\n };\n\n return (\n <Switch\n checked={defaultValue === ENABLED}\n label={t(\"neetoRules.labels.active\")}\n labelProps={{\n helpIconProps: {\n icon: Help,\n tooltipProps: {\n content:\n status.value === ENABLED\n ? t(\"neetoRules.tooltips.rule.active\")\n : t(\"neetoRules.tooltips.rule.inactive\"),\n },\n },\n }}\n onChange={handleChange}\n />\n );\n};\n\nexport default Status;\n","const transformObjectToDotNotation = (obj, prefix = \"\", result = []) => {\n const errorKey = Object.keys(obj).find(key => !!obj[key]);\n const value = obj[errorKey];\n if (!value) return;\n\n const nextKey = prefix ? `${prefix}.${errorKey}` : errorKey;\n if (typeof value === \"object\") {\n transformObjectToDotNotation(value, nextKey, result);\n } else {\n result.push(nextKey);\n }\n\n /* eslint-disable */\n return result;\n};\n\nexport const getErrorFieldName = formikErrors => {\n return transformObjectToDotNotation(formikErrors)[0];\n};\n","import { useEffect, useRef } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { findBy } from \"neetocist\";\n\nimport { getErrorFieldName } from \"./helpers\";\n\nexport const ScrollToErrorField = ({ formRef }) => {\n const { submitCount, isValid, errors } = useFormikContext();\n const isValidatedRef = useRef(false);\n\n useEffect(() => {\n isValidatedRef.current = false;\n }, [submitCount]);\n\n useEffect(() => {\n if (!formRef.current) return;\n\n if (isValidatedRef.current || isValid) return;\n\n isValidatedRef.current = true;\n const fieldErrorNames = getErrorFieldName(errors);\n if (!fieldErrorNames || fieldErrorNames?.length <= 0) return;\n\n const errorFormElement = findBy({ name: fieldErrorNames }, [\n ...formRef.current.elements,\n ]);\n\n errorFormElement?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }, [submitCount, errors]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n","import { useMemo, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Form as FormikForm, Formik } from \"formik\";\nimport { noop } from \"neetocist\";\nimport { ActionBlock } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_INITIAL_VALUE } from \"./constants\";\nimport { InputField, TextareaField } from \"./Element\";\nimport { buildPayload, formatData } from \"./helpers\";\nimport Status from \"./Status\";\nimport useCustomDataStore from \"./stores/useCustomDataStore\";\nimport { getValidationSchema } from \"./utils/validate\";\n\nimport { ScrollToErrorField } from \"../Common/ScrollToErrorField\";\n\nconst Form = ({\n data = {},\n children,\n className,\n handleSubmit = noop,\n handleCancel = noop,\n}) => {\n const formRef = useRef(null);\n\n const { t } = useTranslation();\n\n const submitForm = (values, formikBag) => {\n const payload = buildPayload(data, values);\n handleSubmit(payload, formikBag);\n };\n\n const initialValues = useMemo(() => formatData(data), [data]);\n\n const { customData } = useCustomDataStore.pick();\n\n return (\n <Formik\n enableReinitialize\n initialValues={{ ...DEFAULT_INITIAL_VALUE, ...initialValues }}\n validationSchema={getValidationSchema(data, customData)}\n onSubmit={submitForm}\n >\n {({ dirty, values, ...fromikBag }) => (\n <FormikForm\n ref={formRef}\n className={classnames([\n \"w-full space-y-6 px-0 md:px-14 xl:px-24\",\n className,\n ])}\n >\n <InputField\n required\n data={initialValues}\n label={t(\"neetoRules.common.name\")}\n name=\"name\"\n />\n <TextareaField\n data={initialValues}\n label={t(\"neetoRules.common.description\")}\n name=\"description\"\n />\n <Status />\n {typeof children === \"function\"\n ? children?.({\n values,\n formattedValues: buildPayload(data, values),\n dirty,\n ...fromikBag,\n })\n : children}\n <ScrollToErrorField {...{ formRef }} />\n <div className=\"py-4\">\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n submitButtonProps={{ \"data-cy\": \"form-submit-button\" }}\n />\n </div>\n </FormikForm>\n )}\n </Formik>\n );\n};\n\nForm.prototype = {\n data: PropTypes.object,\n handleSubmit: PropTypes.func,\n className: PropTypes.string,\n};\n\nexport default Form;\n","import \"src/stylesheets/main.scss\";\n\nimport {\n Actions,\n Card,\n Conditions,\n Events,\n InputField,\n RadioField,\n SelectField,\n TextareaField,\n MultiSelectField,\n EventConditions,\n} from \"./Element\";\nimport Form from \"./Form\";\n\nconst NeetoRulesForm = ({ ...rest }) => <Form {...rest} />;\nNeetoRulesForm.InputField = InputField;\nNeetoRulesForm.TextareaField = TextareaField;\nNeetoRulesForm.SelectField = SelectField;\nNeetoRulesForm.RadioField = RadioField;\nNeetoRulesForm.Events = Events;\nNeetoRulesForm.Conditions = Conditions;\nNeetoRulesForm.Actions = Actions;\nNeetoRulesForm.Card = Card;\nNeetoRulesForm.MultiSelectField = MultiSelectField;\nNeetoRulesForm.EventConditions = EventConditions;\n\nexport default NeetoRulesForm;\n","import { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nconst Title = ({ title, children }) => (\n <>\n <Typography className=\"neeto-ui-text-gray-800\" style=\"h5\" weight=\"semibold\">\n {title}\n </Typography>\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-sm my-3 p-4\">\n {children}\n </div>\n </>\n);\n\nTitle.propTypes = {\n title: PropTypes.string,\n children: PropTypes.node,\n};\nexport default Title;\n","export const PREVIEW_CONDITION_LIMIT = 3;\n\nexport const ACTION_TYPE = {\n TEXT: \"text\",\n NUMBER: \"number\",\n DECIMAL: \"decimal\",\n REGEX: \"regex\",\n DATE: \"date\",\n EMAIL: \"email\",\n EMAIL_TO: \"emailTo\",\n EMAIL_TO_IDS: \"emailToIds\",\n SMS_TO_NUMBERS: \"smsToNumbers\",\n MULTI_SELECT: \"multiSelect\",\n SEND_TO_API: \"sendToApi\",\n DROPDOWN: \"dropdown\",\n MULTISELECT: \"multiSelect\",\n};\n\nexport const TEXT_FIELDS = [\n ACTION_TYPE.TEXT,\n ACTION_TYPE.NUMBER,\n ACTION_TYPE.DECIMAL,\n ACTION_TYPE.REGEX,\n ACTION_TYPE.DATE,\n];\n","import { Fragment } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst MultiSelectValues = ({ separator, values }) => (\n <>\n {values?.map((value, idx) => (\n <Fragment key={idx}>\n {!!idx && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n weight=\"normal\"\n >\n {separator}\n </Typography>\n )}\n <Typography\n className=\"neeto-ui-text-gray-800\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {value.toLowerCase()}\n </Typography>\n </Fragment>\n ))}\n </>\n);\n\nexport default MultiSelectValues;\n","import { findBy } from \"neetocist\";\n\nimport { ACTION_TYPE, TEXT_FIELDS } from \"./constants\";\n\nexport const getEntityDisplayValue = (entitiy, entitiyOption) =>\n findBy(\n { value: entitiy.metadata.value },\n entitiyOption.dropdownOptions\n )?.label?.toLowerCase();\n\nexport const getActionDisplayValue = (action, actionOption) => {\n const displayValueData = { displayValue: null, isBulk: false };\n\n if (TEXT_FIELDS.includes(actionOption.type)) {\n displayValueData.displayValue = action.metadata.value?.toLowerCase();\n\n return displayValueData;\n }\n switch (actionOption.type) {\n case ACTION_TYPE.DROPDOWN: {\n displayValueData.displayValue = getEntityDisplayValue(\n action,\n actionOption\n );\n\n return displayValueData;\n }\n case ACTION_TYPE.EMAIL_TO_IDS: {\n displayValueData.isBulk = true;\n displayValueData.displayValue = action.metadata.emails;\n\n return displayValueData;\n }\n\n case ACTION_TYPE.EMAIL_TO: {\n displayValueData.displayValue = action.displayValue;\n\n return displayValueData;\n }\n\n case ACTION_TYPE.SMS_TO_NUMBERS: {\n displayValueData.isBulk = true;\n displayValueData.displayValue = action.metadata.phoneNumbers;\n\n return displayValueData;\n }\n case ACTION_TYPE.SEND_TO_API: {\n displayValueData.displayValue = action.metadata.endpoint;\n\n return displayValueData;\n }\n default:\n return null;\n }\n};\n","import { useState } from \"react\";\n\nimport { findBy } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Typography, Button } from \"neetoui\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Card from \"./Card\";\nimport { ACTION_TYPE } from \"./constants\";\nimport MultiSelectValues from \"./MultiSelectValues\";\nimport { getActionDisplayValue } from \"./utils\";\n\nconst ActionsDetail = ({ actions }) => {\n const [viewMore, setViewMore] = useState(false);\n const { t } = useTranslation();\n\n const actionsList = actions.value;\n const allActions =\n viewMore && actionsList.length > 4 ? actionsList : actionsList.slice(0, 4);\n\n const getLabel = index =>\n index\n ? t(\"neetoRules.common.and\", {\n what: t(\"neetoRules.common.then\"),\n })\n : t(\"neetoRules.common.then\");\n\n const renderActionValues = (action, actionOption) => {\n const commonSeperator =\n actionOption.type === ACTION_TYPE.SEND_TO_API\n ? t(\"neetoRules.common.at\")\n : t(\"neetoRules.common.to\");\n const separator = actionOption?.separator?.toLowerCase() || commonSeperator;\n\n const { displayValue, isBulk } =\n getActionDisplayValue(action, actionOption) ?? {};\n\n if (actionOption.type === ACTION_TYPE.MULTISELECT) {\n const values = pluck(\n \"label\",\n actionOption.dropdownOptions.filter(({ value }) =>\n action.metadata.value.includes(value)\n )\n );\n\n return (\n <MultiSelectValues\n {...{ values }}\n separator={t(\"neetoRules.common.and\", { what: \"\" })}\n />\n );\n }\n\n if (!displayValue) return null;\n\n if (!isBulk) {\n return (\n <>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n weight=\"normal\"\n >\n {separator}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {displayValue?.toLowerCase()}\n </Typography>\n </>\n );\n }\n\n return displayValue.map((value, index) => (\n <div className=\"mr-1 flex\" key={index}>\n <Typography key={index} style=\"h5\" weight=\"semibold\">\n {value}\n </Typography>\n {index !== displayValue.length - 1 && \", \"}\n </div>\n ));\n };\n\n const renderAction = action => {\n const actionOption = findBy({ value: action.name }, actions.actionOptions);\n if (!actionOption) return null;\n\n return (\n <>\n <Typography\n className=\"neeto-ui-text-gray-800\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {actionOption?.label.toLowerCase()}\n </Typography>\n {renderActionValues(action, actionOption)}\n </>\n );\n };\n\n return (\n <Card title={t(\"neetoRules.common.then\")}>\n {allActions.map((action, index) => (\n <div\n className=\"mb-2 flex flex-wrap gap-x-1 gap-y-2\"\n data-cy=\"then-action-events\"\n key={action.name}\n >\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n weight=\"normal\"\n >\n {getLabel(index)}\n </Typography>\n {renderAction(action)}\n </div>\n ))}\n {actionsList.length > 4 && (\n <div className=\"mt-3 w-full\">\n <Button\n icon={!viewMore ? Down : Up}\n size=\"small\"\n style=\"link\"\n label={\n !viewMore\n ? t(\"neetoRules.common.viewMore\")\n : t(\"neetoRules.common.viewLess\")\n }\n onClick={() => setViewMore(prevState => !prevState)}\n />\n </div>\n )}\n </Card>\n );\n};\n\nexport default ActionsDetail;\n","import { useState } from \"react\";\n\nimport { findBy } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { VERB_LABELS } from \"components/NeetoRulesForm/Element/Conditions/constants\";\n\nimport { PREVIEW_CONDITION_LIMIT } from \"./constants\";\nimport MultiSelectValues from \"./MultiSelectValues\";\nimport { getEntityDisplayValue } from \"./utils\";\n\nconst ConditionsDetail = ({\n conditions,\n conditionOptions,\n conditionVerbs = {},\n hasEvent = true,\n}) => {\n const [viewMore, setViewMore] = useState(false);\n\n const { t } = useTranslation();\n\n const conditionsList = conditions.value;\n const allConditions =\n viewMore && conditionsList.length > PREVIEW_CONDITION_LIMIT\n ? conditionsList\n : conditionsList.slice(0, PREVIEW_CONDITION_LIMIT);\n\n const allConditionVerbs = { ...VERB_LABELS, ...conditionVerbs };\n\n const getLogicOperator = joinType =>\n joinType === \"or_operator\" ? \"or\" : \"and\";\n\n const renderConditionValues = (condition, conditionOption) => {\n if ([\"email\", \"text\", \"number\"].includes(conditionOption.type)) {\n return (\n <Typography\n className=\"neeto-ui-text-gray-800\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {condition.metadata.value?.toLowerCase()}\n </Typography>\n );\n }\n\n if (conditionOption.type === \"multi-select\") {\n const values = pluck(\n \"label\",\n conditionOption.dropdownOptions.filter(({ value }) =>\n condition.metadata.values.includes(value)\n )\n );\n\n return (\n <MultiSelectValues\n {...{ values }}\n separator={t(\"neetoRules.common.or\")}\n />\n );\n }\n\n if (conditionOption.type === \"dropdown\") {\n return (\n <Typography\n className=\"neeto-ui-text-gray-800\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {getEntityDisplayValue(condition, conditionOption)}\n </Typography>\n );\n }\n\n return null;\n };\n\n const renderCondition = condition => {\n const conditionOption = findBy(\n { value: condition.field },\n conditionOptions\n );\n if (!conditionOption) return null;\n\n const conditionVerb = allConditionVerbs[condition.verb]?.toLowerCase();\n\n return (\n <>\n <Typography\n className=\"neeto-ui-text-gray-800\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {conditionOption?.label.toLowerCase()}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {conditionVerb}\n </Typography>\n {renderConditionValues(condition, conditionOption)}\n </>\n );\n };\n\n return (\n <>\n <div className=\"mt-2\">\n {allConditions.map((condition, index) => (\n <div\n className=\"mb-2 flex flex-wrap gap-x-2 gap-y-2\"\n key={condition.id}\n >\n {!index && hasEvent && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.and\", { what: \"\" })}\n </Typography>\n )}\n {!!index && (\n <Typography\n className=\"neeto-ui-text-gray-800\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {getLogicOperator(condition.joinType)}\n </Typography>\n )}\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.when\")}\n </Typography>\n {renderCondition(condition)}\n </div>\n ))}\n </div>\n {conditionsList.length > 3 && (\n <div className=\"mt-3 w-full\">\n <Button\n icon={!viewMore ? Down : Up}\n size=\"small\"\n style=\"link\"\n label={\n !viewMore\n ? t(\"neetoRules.common.viewMore\")\n : t(\"neetoRules.common.viewLess\")\n }\n onClick={() => setViewMore(prevState => !prevState)}\n />\n </div>\n )}\n </>\n );\n};\n\nexport default ConditionsDetail;\n","import { findBy } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Card from \"./Card\";\nimport ConditionsDetail from \"./ConditionsDetail\";\n\nconst EventsDetail = ({ events, performer, conditions }) => {\n const { t } = useTranslation();\n\n const eventNames = pluck(\"name\", events.value);\n const allEvents = events.eventOptions.filter(event =>\n eventNames?.includes(event.value)\n );\n\n const currentPerformer = findBy(\n { value: performer.value },\n performer.options\n );\n\n return (\n <Card title={t(\"neetoRules.common.when\")}>\n <div\n className=\"flex flex-wrap gap-x-2 gap-y-2\"\n data-cy=\"when-condition-events\"\n >\n {allEvents.map((event, index) => (\n <div className=\"flex gap-x-2\" key={index}>\n {!index && (\n <Typography\n className=\"neeto-ui-text-gray-700 my-auto\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.when\")}\n </Typography>\n )}\n {!!index && (\n <Typography\n className=\"neeto-ui-text-gray-700 my-auto\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.or\")}\n </Typography>\n )}\n <Typography\n className=\"neeto-ui-text-gray-800\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {event.label.toLowerCase()}\n </Typography>\n </div>\n ))}\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n weight=\"normal\"\n >\n {t(\"neetoRules.common.by\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {currentPerformer?.label?.toLowerCase()}\n </Typography>\n </div>\n <ConditionsDetail\n {...{ conditions }}\n conditionOptions={conditions.conditionOptions}\n conditionVerbs={conditions.verbs}\n />\n </Card>\n );\n};\n\nexport default EventsDetail;\n","import { isNotEmpty } from \"neetocist\";\nimport MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport { Pane, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useUtilityStore from \"components/stores/useUtilityStore\";\n\nimport ActionsDetail from \"./ActionsDetail\";\nimport Card from \"./Card\";\nimport ConditionsDetail from \"./ConditionsDetail\";\nimport EventsDetail from \"./EventsDetail\";\n\nconst RulePreview = ({ isLoading, ruleDetails, isOpen, onClose }) => {\n const { t } = useTranslation();\n\n const { moreActionDropdownItems, showPreviewPane } = useUtilityStore.pick();\n\n return (\n <Pane {...{ onClose }} isOpen={isOpen && showPreviewPane}>\n {isLoading ? (\n <PageLoader />\n ) : (\n <>\n <Pane.Header>\n <div className=\"flex items-center justify-between gap-x-3\">\n <Typography className=\"line-clamp-2\" style=\"h4\" weight=\"semibold\">\n {ruleDetails.name.value}\n </Typography>\n <MoreDropdown\n dropdownProps={{ strategy: \"fixed\" }}\n menuItems={moreActionDropdownItems}\n />\n </div>\n </Pane.Header>\n <Pane.Body>\n <div className=\"mt-2 w-full\">\n <div className=\"mb-6\">\n {ruleDetails.description && (\n <Typography className=\"my-auto mb-4\" style=\"body2\">\n {ruleDetails.description.value}\n </Typography>\n )}\n {ruleDetails.entity && (\n <div className=\"flex space-x-8\">\n <Typography\n className=\"neeto-ui-text-gray-800 col-span-1\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {ruleDetails.entity.label}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800 col-span-2\"\n style=\"h5\"\n weight=\"normal\"\n >\n {ruleDetails.entity.value}\n </Typography>\n </div>\n )}\n </div>\n {ruleDetails.events && isNotEmpty(ruleDetails.events) ? (\n <EventsDetail\n conditions={ruleDetails.conditions}\n events={ruleDetails.events}\n performer={ruleDetails.performer}\n />\n ) : (\n <Card title={t(\"neetoRules.common.when\")}>\n <ConditionsDetail\n conditionOptions={ruleDetails.conditions.conditionOptions}\n conditionVerbs={ruleDetails.conditions.verbs}\n conditions={ruleDetails.conditions}\n hasEvent={false}\n />\n </Card>\n )}\n <ActionsDetail actions={ruleDetails.actions} />\n </div>\n </Pane.Body>\n </>\n )}\n </Pane>\n );\n};\n\nexport default RulePreview;\n"],"names":["AUTOMATION_RULES","STALE_TIME","_typeof","toPrimitive","_defineProperty","toPropertyKey","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_objectWithoutPropertiesLoose","objectWithoutPropertiesLoose","fetch","_ref","url","params","_objectWithoutProperties","_excluded","axios","get","update","_ref2","id","payload","patch","concat","clone","_ref3","post","destroy","_ref4","reorder","_ref5","automationRulesApi","useFetchAutomationRules","options","arguments","length","undefined","useQuery","_objectSpread","queryKey","queryFn","staleTime","select","response","data","placeholderData","keepPreviousData","useUpdateAutomationRule","useMutationWithInvalidation","keysToInvalidate","useCloneAutomationRule","useDeleteAutomationRule","useReorderAutomationRules","INITIAL_RULES_DATA","rules","totalCount","createRoutes","basePath","index","edit","Header","breadcrumbs","automationRulesPath","_ref$helpPopoverProps","helpPopoverProps","setIsReorderPaneOpen","hasUnfilteredRules","allowReordering","headerProps","_useQueryParams","useQueryParams","_useQueryParams$searc","searchTerm","_useTranslation","useTranslation","t","_jsx","NeetoHeader","actionBlock","_jsxs","_Fragment","children","Button","disabled","isNotEmpty","label","style","onClick","className","iconPosition","to","searchProps","placeholder","title","HelpPopover","description","memo","ownKeys","defineProperty","createStore","bindActionCreators","e","require$$0","h","k","l","m","n","p","q","r","u","shimModule","require$$1","v","w","_extends","b","c","d","f","g","reactIs_production_min","reactIsModule","reactIs","useIsomorphicLayoutEffect","isContextConsumer","defaultSelectorFactory","useSyncExternalStore","batch","areInputsEqual","prefix","invariant","noSpacing","getWindowScroll","isEqual","React","rafSchd","reorderList","endIndex","firstDisplayOrder","list","startIndex","result","Array","from","_result$splice","splice","_result$splice2","_slicedToArray","removed","map","item","displayOrder","getDragItemStyle","isDragging","draggableStyle","zIndex","DraggableItem","props","rule","ruleIndex","Draggable","draggableId","provided","snapshot","ref","innerRef","draggableProps","dragHandleProps","Reorder","name","withRouter","RulesReorder","_rules$0$displayOrder","_rules$","isOpen","onClose","onReorderSuccess","_useState","useState","_useState2","reorderedRules","setReorderedRules","_useFetchAutomationRu","pageSize","enabled","_useFetchAutomationRu2","_useFetchAutomationRu3","isLoading","_useReorderAutomation","reOrder","mutate","isPending","handleReorderSave","onSuccess","onDragEnd","destination","source","items","useEffect","Pane","Container","PageLoader","Typography","weight","Body","DragDropContext","Droppable","droppableId","renderClone","rubric","NeetoUIReorderIcon","droppableProps","_createElement","key","Footer","equals","loading","useUtilityStore","create","withImmutableActions","set","moreActionDropdownItems","showPreviewPane","setMoreActionDropdownItems","hidePreviewPane","STATUS_KEYS","ENABLED","DISABLED","DEFAULT_INIT_PAGE","arrayWithoutHoles","iterableToArray","nonIterableSpread","DisableMessage","withT","disabledReason","isNotNil","component","buildActionDropdownMenuItems","onClone","onDelete","_ref$moreDropdownItem","moreDropdownItems","allowCloning","defaultOptions","_toConsumableArray","others","buildUrl","ruleId","type","removeBy","getColumnData","handleChangeStatus","_ref3$additionalColum","additionalColumns","onPreview","otherProps","_excluded2","_useUtilityStore","store","shallow","dataIndex","ellipsis","width","render","MoreDropdown","dropdownProps","strategy","menuItems","isPresent","Tooltip","content","position","align","_","Switch","checked","status","onChange","renderNoDataHelpText","helpDocUrl","Trans","i18nKey","components","a","target","pathname","RulesTable","_ref$automationRulesP","_ref$rules","onDeleteSuccess","onCloneSuccess","onUpdateSuccess","page","setPage","_ref$allowCloning","_ref$hasUnfilteredRul","selectedRule","setSelectedRule","_useUpdateAutomationR","updateRule","isUpdating","_useCloneAutomationRu","cloneRule","isCloning","_useDeleteAutomationR","deleteRule","isDeleting","event","handleCloneSuccess","handleDeleteSuccess","columnData","isEmpty","SubHeader","leftActionBlock","count","TableWrapper","hasPagination","DEFAULT_PAGE_SIZE","Table","fixedHeight","allowClick","currentPageNumber","defaultPageSize","handlePageChange","rowData","rowSelection","scroll","x","tableLayout","Alert","isSubmitting","submitButtonLabel","message","values","onSubmit","NoData","helpText","primaryButtonProps","NeetoRules","_helpPopoverProps$hel","_cloneRule$allowed","_cloneRule$onSuccess","_deleteRule$onSuccess","_updateRule$onSuccess","_reorderRules$onSucce","automationRulesEndpoint","_ref$allowReordering","_ref$rulesTableProps","rulesTableProps","reorderRules","_ref$headerProps","isReorderPaneOpen","helpLinkProps","href","_useState3","_useState4","isFetching","allowed","callback","useCustomDataStore","customData","setCustomDataState","OptionsWrapper","hasScroll","_ref$maxHeight","maxHeight","classNames","useOnButtonPressed","handler","buttonPressed","keysPressed","listener","isNil","document","addEventListener","removeEventListener","DEFAULT_LONG_TEXT_ROWS","PaneFooterBlock","setShowPane","_ref$submitButtonProp","submitButtonProps","_ref$cancelButtonProp","cancelButtonProps","ActionBlock","LongTextField","_errors$actions","_touched$actions","_selectedField$separa","_ref$value","value","_ref$selectedField","selectedField","defaultLabel","defaultSeparator","_useFormikContext","useFormikContext","errors","touched","showPane","initialFocusRef","useRef","isValid","actions","separator","toLowerCase","rows","prevState","size","Textarea","required","InputField","_useField","useField","_useField2","field","meta","Input","error","ADDITIONAL_DATA_INITIAL_VALUE","SAMPLE_ENDPOINT","addOption","arrayHelpers","push","removeOption","remove","hasKeyOrValue","whereAny","setEditorContent","current","editor","commands","setContent","dotPath","useWith","path","split","formatAdditionalData","additionalData","KeyValuePairsField","_ref$label","FieldArray","form","showDeleteButton","Label","suffix","icon","Delete","SelectTemplateField","templates","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","selectedTemplate","setSelectedTemplate","handleTemplateChange","option","template","findBy","Select","isClearable","isSearchable","renameKeys","ApiFields","setFieldValue","dataPlaceholder","isTemplateSelectionEnabled","endpoint","CustomAction","ActionComponent","action","DateField","_actions$value$index$","setTouched","showInput","setShowInput","valueTerm","metadata","hideSeparator","DatePicker","autoFocus","defaultValue","date","dayjs","format","Check","assocPath","ACTION_TYPES","emailToIds","email","emailTo","dropdown","multiSelect","note","text","number","decimal","regex","textarea","longText","sms","smsToNumbers","smsTo","sendToApi","LIST_FIELD_TOOLTIP_PROPS","save","delay","cancel","DEFAULT_RULE_ACTION","EDITOR_ADDONS","EMAIL_REGEX","MAXIMUM_OPTION_LENGTH","ACTION_INPUT_TYPES","getFieldDetails","fieldValue","actionOptions","find","getActionOptions","currentAction","selectedActions","selectedActionOptions","condition","filter","includes","buildEmailValues","emails","emailRegex","valid","test","getDetailsByValue","getSearchedOptions","dropDownOptions","toLower","trim","getSelectedOptions","getSlackChannelErrors","_action$metadata","slackChannels","routeToSlackIntegration","opts","button","selectedOption","op","_action$metadata2","Menu","Dropdown","MenuItem","DropdownField","_actions$value$index","_defaultSelectedOptio","dropdownOptions","defaultSelectedOption","setDefaultSelectedOption","isActive","setIsActive","_useState5","_useState6","setSearchTerm","searchedOptions","isValueSelected","handleClose","handleSelectOption","findDefaultSelectedOption","buttonStyle","customTarget","Search","stopPropagation","idx","joinHyphenCase","EditorAction","_ref$variables","variables","_ref$addons","addons","_ref$editorRef","editorRef","defaults","editorData","setEditorData","debouncedValue","useDebounce","FormikEditor","hideSlashCommands","EmailIdFields","_ref$emails","formattedEmails","MultiEmailInput","EmailFields","_ref$isEmailIdField","isEmailIdField","emailPlaceholder","body","hideSubject","subject","isFirstFieldInForm","useCloseInputField","_ref$current","_ref$current2","focus","inputRef","NeetoUIInput","useOnClickOutside","contains","SHORTCUTS","sequence","submit","InlineInput","forwardRef","_props$value","_props$nullable","nullable","handleSubmit","handleCancel","inputValue","setInputValue","inputWrapperRef","trimmedValue","isValidValue","preventDefault","inputFieldEscapeHotkeyRef","useHotkeys","mode","inputFieldEnterHotkeyRef","classnames","node","tooltipProps","Close","displayName","ListField","_ref$values","isInputCardOpen","setIsInputCardOpen","arrayHelper","ErrorMessage","Plus","MultiSelect","_selectedField$placeh","_ref$dropDownOptions","activeOption","setActiveOption","allOptions","useMemo","selectedOptions","without","append","closeOnSelect","what","Checkbox","NoteField","removeDuplicateErrorMessages","pipe","uniq","join","ERROR_MESSAGE_DELIMITER","dasherize","input","hyphenize","formatPhoneNumberInputOptions","phoneNumber","PHONE_NUMBER_VALIDATION_SCHEMA","validateSync","_unused","pruneDuplicates","pluck","renderValidPhoneNumbers","phoneNumbers","getValidPhoneNumbersCount","formatErrorMessage","STYLES","border","color","MultiValueRemove","innerProps","ValueContainer","getValue","_props$selectProps","selectProps","isFocused","visiblePhoneNumbersCount","_children","_toArray","firstChild","rest","slice","shouldCollapse","Tag","ClearIndicator","DELIMITER_KEYS","PHONE_NUMBER_SEPARATION_REGEX","FLEXIBLE_PHONE_NUMBER_REGEX","yup","string","entity","isPhoneNumberValid","CUSTOM_STYLES","assoc","multiValue","styles","CUSTOM_COMPONENTS","DropdownIndicator","MultiPhoneNumberInput","_ref$onChange","noop","_ref$error","_ref$onBlur","onBlur","setIsFocused","handleFilterPhoneNumbers","handlePhoneNumberChange","inputValues","match","phoneNumberMatches","handleKeyDown","onCreateOption","handleBlur","isFilterPhoneNumbersLinkVisible","CreatableSelect","isMulti","classNamePrefix","menuIsOpen","control","mergeLeft","overflowY","onFocus","onInputChange","onKeyDown","PhoneNumberField","_ref$phoneNumbers","_useField2$","setValue","formattedPhoneNumbers","nullSafe","SmsFields","_ref$showPhoneNumberI","showPhoneNumberInput","smsPlaceholder","ActionSubItems","_action$metadata3","_action$metadata4","_action$metadata5","_action$metadata6","OPERATORS","or","and","OPERATOR_LABELS","or_operator","and_operator","VERB_LABELS","is","is_not","does_not_contain","contains_any_of","contains_all_of","contains_none_of","starts_with","ends_with","less_than","greater_than","any_time","during","not_during","any_of","none_of","is_before","is_after","CONDITION_VALUE_TYPES","multiSelectCreate","INPUT_FIELD_TYPES","getSchemaForStrings","element","_element$componentPro","componentProps","when","then","getEventsSchema","_element$componentPro2","array","of","object","shape","min","getConditionsSchema","conditionOptions","_element$componentPro3","mixed","verb","schema","_selectedCondition$no","selectedCondition","noValueForVerbs","onlyPositive","POSITIVE_NUMBER_REGEX","NUMBER_REGEX","POSITIVE_DECIMAL_NUMBER_REGEX","DECIMAL_NUMBER_REGEX","isEditorEmpty","getActionsSchema","_element$componentPro5","selectedAction","validation","getSchemaForArray","_element$componentPro6","getSchemaForElement","VALIDATION_SCHEMA","getValidationSchema","fieldKeys","Object","keys","reduce","acc","FIELD_TYPES","events","radio","_VALIDATION_SCHEMA","DEFAULT_INITIAL_VALUE","ActionItem","_selectedOption$label","parentName","elementProps","onSelectAction","setSelectedOption","optionList","ActionChildren","isActionSelected","getSelectedFieldOptions","isMessageToSlackAction","selectDropDownHasError","selectDropDownErrorMessage","findSelectedOption","_ref3$isDisabled","isDisabled","_ref3$disabledReason","renderErrorCallout","renderDisabledReason","ActionSubItem","parentFieldName","Card","Actions","_ref$showAddButton","showAddButton","_ref$handleSlackChann","handleSlackChannelRefresh","_ref$routeToSlackInte","showButton","_actions","handleRemoveAction","deleted","_destroy","Refresh","getVerbOptions","verbs","getAllOptions","isArray","fieldType","handleSelect","conditions","defaultSelectedValue","toLabelAndValue","isSelected","setIsSelected","findDefaultOption","NeetoUIDropdown","_conditions$value$ind","_errors$conditions","_touched$conditions","_condition$metadata","toString","handleMultiSelectOption","_option$label","Fragment","MultiSelectCreate","conditionName","validateField","handleValidate","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","t0","stop","apply","handleOnChange","ValueField","isCreateable","ConditionItem","onSelectCondition","selectedConditionOptions","isWithEvents","verbOptions","allowMatching","ifLabel","handleFieldChange","fieldDetails","kind","handleVerbChange","LogicOperator","logicOperation","handleGroupJoinType","logicOperationLabel","Conditions","_field$value","_ref$isCallback","isCallback","previewCallback","_ref$isWithEvents","_ref$allowEmpty","allowEmpty","handleAddCondition","_elementProps$conditi","joinType","handleRemoveCondition","_field$value2","operator","Eye","getAllEvents","getDropdownOptions","eventNames","eventOptions","_pipe","partition","included","excluded","_pipe2","includedOptions","excludedOptions","Performer","_ref$isMenuDisabled","isMenuDisabled","performer","performerOptions","Events","onSelectEvent","performerName","defaultData","allEvents","handleDefaultData","_values$name","deletedEvents","defaultEvent","_values$name2","_values$name3","_event$label","EventConditions","_ref$addButtonTooltip","addButtonTooltipProps","conditionsName","config","conditionProps","_conditionProps$condi","addButtonTooltips","disabledAddButtonTooltips","isConditionsEmpty","getEventOptions","currentOption","selectedEventOptions","Divider","EventItem","removeEvent","handleEventChange","defaultOption","popEvent","eventIdx","handleAddEvent","showMessage","setTimeBasedEvent","useDebouncedUpdate","duration","setText","_useDebouncedUpdate","_useDebouncedUpdate2","MultiSelectField","RadioField","radioOptions","Radio","Item","SelectField","TextareaField","ReactPropTypesSecret","propTypesModule","buildPayload","_values$key","conditionGroup","_fieldValue","_conditionGroup$condi","formatData","Status","handleChange","labelProps","helpIconProps","Help","transformObjectToDotNotation","obj","errorKey","nextKey","getErrorFieldName","formikErrors","ScrollToErrorField","formRef","submitCount","isValidatedRef","fieldErrorNames","errorFormElement","elements","scrollIntoView","behavior","block","Form","_ref$data","_ref$handleSubmit","_ref$handleCancel","submitForm","formikBag","initialValues","_useCustomDataStore","Formik","enableReinitialize","validationSchema","dirty","fromikBag","FormikForm","formattedValues","prototype","PropTypes","func","NeetoRulesForm","assign","_objectDestructuringEmpty","Title","PREVIEW_CONDITION_LIMIT","ACTION_TYPE","TEXT","NUMBER","DECIMAL","REGEX","DATE","EMAIL","EMAIL_TO","EMAIL_TO_IDS","SMS_TO_NUMBERS","MULTI_SELECT","SEND_TO_API","DROPDOWN","MULTISELECT","TEXT_FIELDS","MultiSelectValues","getEntityDisplayValue","entitiy","entitiyOption","_findBy","getActionDisplayValue","actionOption","displayValueData","displayValue","isBulk","_action$metadata$valu","ActionsDetail","viewMore","setViewMore","actionsList","allActions","getLabel","renderActionValues","_actionOption$separat","_getActionDisplayValu","commonSeperator","renderAction","Down","Up","ConditionsDetail","_ref$conditionVerbs","conditionVerbs","_ref$hasEvent","hasEvent","conditionsList","allConditions","allConditionVerbs","getLogicOperator","renderConditionValues","conditionOption","_condition$metadata$v","renderCondition","_allConditionVerbs$co","conditionVerb","EventsDetail","_currentPerformer$lab","currentPerformer","RulePreview","ruleDetails"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|