@argusoft/medplat-form-engine 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AccessRights-sgIhYR30-DWNCTLI6.js +1238 -0
- package/dist/AccessRights-sgIhYR30-DWNCTLI6.js.map +1 -0
- package/dist/AddEditQueryBuilder-BaZxS2Cm-emLM3Oli.js +289 -0
- package/dist/AddEditQueryBuilder-BaZxS2Cm-emLM3Oli.js.map +1 -0
- package/dist/AddEditQueryBuilder-BaZxS2Cm.css +1 -0
- package/dist/AddFeatures-BxXCC6ex-1VYoA24R.js +212 -0
- package/dist/AddFeatures-BxXCC6ex-1VYoA24R.js.map +1 -0
- package/dist/AddLabelModal-DE3ploGD-DWF1SOUp.js +734 -0
- package/dist/AddLabelModal-DE3ploGD-DWF1SOUp.js.map +1 -0
- package/dist/AddMenuConfiguration-QWfpcnuP-TAM2c68S.js +5389 -0
- package/dist/AddMenuConfiguration-QWfpcnuP-TAM2c68S.js.map +1 -0
- package/dist/AddMenuConfiguration-QWfpcnuP.css +1 -0
- package/dist/AddRoleDrawer-ZK1eejxI-ldfhQqA_.js +453 -0
- package/dist/AddRoleDrawer-ZK1eejxI-ldfhQqA_.js.map +1 -0
- package/dist/AppModal-BgZyfrd--CNvWjWhL.js +428 -0
- package/dist/AppModal-BgZyfrd--CNvWjWhL.js.map +1 -0
- package/dist/ChangePasswordModal-MV7g8tkA-BDA1Pw0i.js +176 -0
- package/dist/ChangePasswordModal-MV7g8tkA-BDA1Pw0i.js.map +1 -0
- package/dist/ConditionConfig-GDCXIg3C-XbR1fp6h.js +395 -0
- package/dist/ConditionConfig-GDCXIg3C-XbR1fp6h.js.map +1 -0
- package/dist/ConditionConfig-GDCXIg3C.css +1 -0
- package/dist/EntityManagement-D-x6Qzal-BE01iKNR.js +50 -0
- package/dist/EntityManagement-D-x6Qzal-BE01iKNR.js.map +1 -0
- package/dist/EventConfigurations-jGCJ4LqP-B_ftXinp.js +384 -0
- package/dist/EventConfigurations-jGCJ4LqP-B_ftXinp.js.map +1 -0
- package/dist/EventConfigurations-jGCJ4LqP.css +1 -0
- package/dist/EventsExceptionModal-BF6E1Np7-DHT7pQsx.js +200 -0
- package/dist/EventsExceptionModal-BF6E1Np7-DHT7pQsx.js.map +1 -0
- package/dist/EventsSkeleton-BN7_0IGs-BAnd1Vug.js +74 -0
- package/dist/EventsSkeleton-BN7_0IGs-BAnd1Vug.js.map +1 -0
- package/dist/FeatureMenu-BYSRoNm0-D2Ak-EDd.js +249 -0
- package/dist/FeatureMenu-BYSRoNm0-D2Ak-EDd.js.map +1 -0
- package/dist/Features-CKMmuqcs-ClXAzWGV.js +11 -0
- package/dist/Features-CKMmuqcs-ClXAzWGV.js.map +1 -0
- package/dist/FlywayQuery-Cx2sly6g-B1LLSyLE.js +169 -0
- package/dist/FlywayQuery-Cx2sly6g-B1LLSyLE.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-DZ8EqXlF-CSPs9x_q.js +5162 -0
- package/dist/ImmunizationConfigurationBase-DZ8EqXlF-CSPs9x_q.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-DZ8EqXlF.css +1 -0
- package/dist/ImmunizationConfigurationsList-CQnxWa09-DIujYt0W.js +335 -0
- package/dist/ImmunizationConfigurationsList-CQnxWa09-DIujYt0W.js.map +1 -0
- package/dist/ImmunizationSkeleton-D2tdv5k--B7SY-gnr.js +186 -0
- package/dist/ImmunizationSkeleton-D2tdv5k--B7SY-gnr.js.map +1 -0
- package/dist/LanguagesModal-rk6IGQwY-Cxw9xctN.js +394 -0
- package/dist/LanguagesModal-rk6IGQwY-Cxw9xctN.js.map +1 -0
- package/dist/ManageDynamicFeature-CeeqiS3K-D2Se68tC.js +4189 -0
- package/dist/ManageDynamicFeature-CeeqiS3K-D2Se68tC.js.map +1 -0
- package/dist/ManageEventConfiguration-BJxS2Su0-yd2dUxgz.js +1017 -0
- package/dist/ManageEventConfiguration-BJxS2Su0-yd2dUxgz.js.map +1 -0
- package/dist/ManageEventConfiguration-BJxS2Su0.css +1 -0
- package/dist/ManageNotification-B4prX-9Z-B4mRuGir.js +6819 -0
- package/dist/ManageNotification-B4prX-9Z-B4mRuGir.js.map +1 -0
- package/dist/ManageRole-ByqBmjuc-CApL3DJy.js +699 -0
- package/dist/ManageRole-ByqBmjuc-CApL3DJy.js.map +1 -0
- package/dist/ManageTranslation-BTxvSYKb-CwT975cy.js +616 -0
- package/dist/ManageTranslation-BTxvSYKb-CwT975cy.js.map +1 -0
- package/dist/ManageTranslation-BTxvSYKb.css +1 -0
- package/dist/ManageUser-PHiTNyF8-Bddmh2CC.js +2160 -0
- package/dist/ManageUser-PHiTNyF8-Bddmh2CC.js.map +1 -0
- package/dist/ManageUser-PHiTNyF8.css +1 -0
- package/dist/{MedplatFormWrapper-CFiFeztb.js → MedplatFormWrapper-DbdQUpEu.js} +10677 -10272
- package/dist/MedplatFormWrapper-DbdQUpEu.js.map +1 -0
- package/dist/MobileMenuManagement-DmQU5TTo-D7n_NP0X.js +108 -0
- package/dist/MobileMenuManagement-DmQU5TTo-D7n_NP0X.js.map +1 -0
- package/dist/MobileTypeEventConfigModal-ChhO_A4f-Wd3d3SEP.js +782 -0
- package/dist/MobileTypeEventConfigModal-ChhO_A4f-Wd3d3SEP.js.map +1 -0
- package/dist/NewServerManagement-5YcAtF-g-DHV6PFTR.js +1002 -0
- package/dist/NewServerManagement-5YcAtF-g-DHV6PFTR.js.map +1 -0
- package/dist/NotificationFlywayQuery-BY8Zzml_-C7G-28dx.js +244 -0
- package/dist/NotificationFlywayQuery-BY8Zzml_-C7G-28dx.js.map +1 -0
- package/dist/NotificationList-BkpOrCpM-B-vKDGd_.js +400 -0
- package/dist/NotificationList-BkpOrCpM-B-vKDGd_.js.map +1 -0
- package/dist/OtherTypeEventConfigModal-ZnCGWm9v-tpC-SI0P.js +1952 -0
- package/dist/OtherTypeEventConfigModal-ZnCGWm9v-tpC-SI0P.js.map +1 -0
- package/dist/QueryBuilder-Cus_mRwZ-DLXSM32i.js +378 -0
- package/dist/QueryBuilder-Cus_mRwZ-DLXSM32i.js.map +1 -0
- package/dist/QueryBuilder-Cus_mRwZ.css +1 -0
- package/dist/QueryManagement-DXA73N2j-Wlk7hKP3.js +671 -0
- package/dist/QueryManagement-DXA73N2j-Wlk7hKP3.js.map +1 -0
- package/dist/QueryManagement-DXA73N2j.css +1 -0
- package/dist/RoleManagement-CLaEJ90J-BW0tG5t9.js +410 -0
- package/dist/RoleManagement-CLaEJ90J-BW0tG5t9.js.map +1 -0
- package/dist/ServerSyncModal-uNjGCQJz--PJ3F3xg.js +869 -0
- package/dist/ServerSyncModal-uNjGCQJz--PJ3F3xg.js.map +1 -0
- package/dist/ShowFlywayQuery-DMsAbtOW-TT9XXzUi.js +130 -0
- package/dist/ShowFlywayQuery-DMsAbtOW-TT9XXzUi.js.map +1 -0
- package/dist/ShowFlywayQuery-DVRCd384-BypXcNWX.js +259 -0
- package/dist/ShowFlywayQuery-DVRCd384-BypXcNWX.js.map +1 -0
- package/dist/ShowQueryHistory-BDN0tzHg-17BxK88Z.js +190 -0
- package/dist/ShowQueryHistory-BDN0tzHg-17BxK88Z.js.map +1 -0
- package/dist/SubMenu-BHcSNSUF-d-_yEXeN.js +187 -0
- package/dist/SubMenu-BHcSNSUF-d-_yEXeN.js.map +1 -0
- package/dist/TableDetails-DzREeJkm-B-WEBbQz.js +1508 -0
- package/dist/TableDetails-DzREeJkm-B-WEBbQz.js.map +1 -0
- package/dist/TableList-B9hr05Hs-BIsMbnIV.js +428 -0
- package/dist/TableList-B9hr05Hs-BIsMbnIV.js.map +1 -0
- package/dist/TypeConfiguration-C-lk8Szs-DKu6I5Im.js +116 -0
- package/dist/TypeConfiguration-C-lk8Szs-DKu6I5Im.js.map +1 -0
- package/dist/UserList-BxB1tCwM-7YIwwGQ9.js +13039 -0
- package/dist/UserList-BxB1tCwM-7YIwwGQ9.js.map +1 -0
- package/dist/UserList-BxB1tCwM.css +1 -0
- package/dist/UserListSkeleton-cglK2SaU-B_Tj5gUp.js +184 -0
- package/dist/UserListSkeleton-cglK2SaU-B_Tj5gUp.js.map +1 -0
- package/dist/WidgetList-BSApErov-CBYLh0Oh.js +188 -0
- package/dist/WidgetList-BSApErov-CBYLh0Oh.js.map +1 -0
- package/dist/_commonjsHelpers-BItOPCY9-B9tZyK9c.js +29 -0
- package/dist/_commonjsHelpers-BItOPCY9-B9tZyK9c.js.map +1 -0
- package/dist/i18next-CTOWN_jH-BKKbdDel.js +1389 -0
- package/dist/i18next-CTOWN_jH-BKKbdDel.js.map +1 -0
- package/dist/index-B4r0wjBD.js +563 -0
- package/dist/index-B4r0wjBD.js.map +1 -0
- package/dist/{index-ohCbNSTD.js → index-CdFr9tGu.js} +107 -107
- package/dist/{index-ohCbNSTD.js.map → index-CdFr9tGu.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/manageImmunization-B4swS745-JldexHrO.js +1204 -0
- package/dist/manageImmunization-B4swS745-JldexHrO.js.map +1 -0
- package/dist/manageImmunization-B4swS745.css +1 -0
- package/package.json +1 -1
- package/dist/MedplatFormWrapper-CFiFeztb.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddMenuConfiguration-QWfpcnuP-TAM2c68S.js","sources":["../../node_modules/@dnd-kit/utilities/dist/utilities.esm.js","../../node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js","../../node_modules/@dnd-kit/core/dist/core.esm.js","../../node_modules/@dnd-kit/sortable/dist/sortable.esm.js","../../core/dist/AddMenuConfiguration-QWfpcnuP.js"],"sourcesContent":["import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from 'react';\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = useRef(null);\n const set = useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = useRef();\n return useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef(null);\n const setNodeRef = useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexport { CSS, add, canUseDOM, findFirstFocusableNode, getEventCoordinates, getOwnerDocument, getWindow, hasViewportRelativeCoordinates, isDocument, isHTMLElement, isKeyboardEvent, isNode, isSVGElement, isTouchEvent, isWindow, subtract, useCombinedRefs, useEvent, useInterval, useIsomorphicLayoutEffect, useLatestValue, useLazyMemo, useNodeRef, usePrevious, useUniqueId };\n//# sourceMappingURL=utilities.esm.js.map\n","import React, { useState, useCallback } from 'react';\n\nconst hiddenStyles = {\n display: 'none'\n};\nfunction HiddenText(_ref) {\n let {\n id,\n value\n } = _ref;\n return React.createElement(\"div\", {\n id: id,\n style: hiddenStyles\n }, value);\n}\n\nfunction LiveRegion(_ref) {\n let {\n id,\n announcement,\n ariaLiveType = \"assertive\"\n } = _ref;\n // Hide element visually but keep it readable by screen readers\n const visuallyHidden = {\n position: 'fixed',\n top: 0,\n left: 0,\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap'\n };\n return React.createElement(\"div\", {\n id: id,\n style: visuallyHidden,\n role: \"status\",\n \"aria-live\": ariaLiveType,\n \"aria-atomic\": true\n }, announcement);\n}\n\nfunction useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback(value => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n return {\n announce,\n announcement\n };\n}\n\nexport { HiddenText, LiveRegion, useAnnouncement };\n//# sourceMappingURL=accessibility.esm.js.map\n","import React, { createContext, useContext, useEffect, useState, useCallback, useMemo, useRef, memo, useReducer, cloneElement, forwardRef } from 'react';\nimport { createPortal, unstable_batchedUpdates } from 'react-dom';\nimport { useUniqueId, getEventCoordinates, getWindow, isDocument, isHTMLElement, isSVGElement, canUseDOM, isWindow, isNode, getOwnerDocument, add, isKeyboardEvent, subtract, useLazyMemo, useInterval, usePrevious, useLatestValue, useEvent, useIsomorphicLayoutEffect, useNodeRef, findFirstFocusableNode, CSS } from '@dnd-kit/utilities';\nimport { useAnnouncement, HiddenText, LiveRegion } from '@dnd-kit/accessibility';\n\nconst DndMonitorContext = /*#__PURE__*/createContext(null);\n\nfunction useDndMonitor(listener) {\n const registerListener = useContext(DndMonitorContext);\n useEffect(() => {\n if (!registerListener) {\n throw new Error('useDndMonitor must be used within a children of <DndContext>');\n }\n\n const unsubscribe = registerListener(listener);\n return unsubscribe;\n }, [listener, registerListener]);\n}\n\nfunction useDndMonitorProvider() {\n const [listeners] = useState(() => new Set());\n const registerListener = useCallback(listener => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }, [listeners]);\n const dispatch = useCallback(_ref => {\n let {\n type,\n event\n } = _ref;\n listeners.forEach(listener => {\n var _listener$type;\n\n return (_listener$type = listener[type]) == null ? void 0 : _listener$type.call(listener, event);\n });\n }, [listeners]);\n return [dispatch, registerListener];\n}\n\nconst defaultScreenReaderInstructions = {\n draggable: \"\\n To pick up a draggable item, press the space bar.\\n While dragging, use the arrow keys to move the item.\\n Press space again to drop the item in its new position, or press escape to cancel.\\n \"\n};\nconst defaultAnnouncements = {\n onDragStart(_ref) {\n let {\n active\n } = _ref;\n return \"Picked up draggable item \" + active.id + \".\";\n },\n\n onDragOver(_ref2) {\n let {\n active,\n over\n } = _ref2;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was moved over droppable area \" + over.id + \".\";\n }\n\n return \"Draggable item \" + active.id + \" is no longer over a droppable area.\";\n },\n\n onDragEnd(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was dropped over droppable area \" + over.id;\n }\n\n return \"Draggable item \" + active.id + \" was dropped.\";\n },\n\n onDragCancel(_ref4) {\n let {\n active\n } = _ref4;\n return \"Dragging was cancelled. Draggable item \" + active.id + \" was dropped.\";\n }\n\n};\n\nfunction Accessibility(_ref) {\n let {\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions\n } = _ref;\n const {\n announce,\n announcement\n } = useAnnouncement();\n const liveRegionId = useUniqueId(\"DndLiveRegion\");\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n useDndMonitor(useMemo(() => ({\n onDragStart(_ref2) {\n let {\n active\n } = _ref2;\n announce(announcements.onDragStart({\n active\n }));\n },\n\n onDragMove(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({\n active,\n over\n }));\n }\n },\n\n onDragOver(_ref4) {\n let {\n active,\n over\n } = _ref4;\n announce(announcements.onDragOver({\n active,\n over\n }));\n },\n\n onDragEnd(_ref5) {\n let {\n active,\n over\n } = _ref5;\n announce(announcements.onDragEnd({\n active,\n over\n }));\n },\n\n onDragCancel(_ref6) {\n let {\n active,\n over\n } = _ref6;\n announce(announcements.onDragCancel({\n active,\n over\n }));\n }\n\n }), [announce, announcements]));\n\n if (!mounted) {\n return null;\n }\n\n const markup = React.createElement(React.Fragment, null, React.createElement(HiddenText, {\n id: hiddenTextDescribedById,\n value: screenReaderInstructions.draggable\n }), React.createElement(LiveRegion, {\n id: liveRegionId,\n announcement: announcement\n }));\n return container ? createPortal(markup, container) : markup;\n}\n\nvar Action;\n\n(function (Action) {\n Action[\"DragStart\"] = \"dragStart\";\n Action[\"DragMove\"] = \"dragMove\";\n Action[\"DragEnd\"] = \"dragEnd\";\n Action[\"DragCancel\"] = \"dragCancel\";\n Action[\"DragOver\"] = \"dragOver\";\n Action[\"RegisterDroppable\"] = \"registerDroppable\";\n Action[\"SetDroppableDisabled\"] = \"setDroppableDisabled\";\n Action[\"UnregisterDroppable\"] = \"unregisterDroppable\";\n})(Action || (Action = {}));\n\nfunction noop() {}\n\nfunction useSensor(sensor, options) {\n return useMemo(() => ({\n sensor,\n options: options != null ? options : {}\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]);\n}\n\nfunction useSensors() {\n for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) {\n sensors[_key] = arguments[_key];\n }\n\n return useMemo(() => [...sensors].filter(sensor => sensor != null), // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]);\n}\n\nconst defaultCoordinates = /*#__PURE__*/Object.freeze({\n x: 0,\n y: 0\n});\n\n/**\r\n * Returns the distance between two points\r\n */\nfunction distanceBetween(p1, p2) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n\nfunction getRelativeTransformOrigin(event, rect) {\n const eventCoordinates = getEventCoordinates(event);\n\n if (!eventCoordinates) {\n return '0 0';\n }\n\n const transformOrigin = {\n x: (eventCoordinates.x - rect.left) / rect.width * 100,\n y: (eventCoordinates.y - rect.top) / rect.height * 100\n };\n return transformOrigin.x + \"% \" + transformOrigin.y + \"%\";\n}\n\n/**\r\n * Sort collisions from smallest to greatest value\r\n */\nfunction sortCollisionsAsc(_ref, _ref2) {\n let {\n data: {\n value: a\n }\n } = _ref;\n let {\n data: {\n value: b\n }\n } = _ref2;\n return a - b;\n}\n/**\r\n * Sort collisions from greatest to smallest value\r\n */\n\nfunction sortCollisionsDesc(_ref3, _ref4) {\n let {\n data: {\n value: a\n }\n } = _ref3;\n let {\n data: {\n value: b\n }\n } = _ref4;\n return b - a;\n}\n/**\r\n * Returns the coordinates of the corners of a given rectangle:\r\n * [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]\r\n */\n\nfunction cornersOfRectangle(_ref5) {\n let {\n left,\n top,\n height,\n width\n } = _ref5;\n return [{\n x: left,\n y: top\n }, {\n x: left + width,\n y: top\n }, {\n x: left,\n y: top + height\n }, {\n x: left + width,\n y: top + height\n }];\n}\nfunction getFirstCollision(collisions, property) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n\n const [firstCollision] = collisions;\n return property ? firstCollision[property] : firstCollision;\n}\n\n/**\r\n * Returns the coordinates of the center of a given ClientRect\r\n */\n\nfunction centerOfRectangle(rect, left, top) {\n if (left === void 0) {\n left = rect.left;\n }\n\n if (top === void 0) {\n top = rect.top;\n }\n\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5\n };\n}\n/**\r\n * Returns the closest rectangles from an array of rectangles to the center of a given\r\n * rectangle.\r\n */\n\n\nconst closestCenter = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: distBetween\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the closest rectangles from an array of rectangles to the corners of\r\n * another rectangle.\r\n */\n\nconst closestCorners = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const corners = cornersOfRectangle(collisionRect);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const rectCorners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner, index) => {\n return accumulator + distanceBetween(rectCorners[index], corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the intersecting rectangle area between two rectangles\r\n */\n\nfunction getIntersectionRatio(entry, target) {\n const top = Math.max(target.top, entry.top);\n const left = Math.max(target.left, entry.left);\n const right = Math.min(target.left + target.width, entry.left + entry.width);\n const bottom = Math.min(target.top + target.height, entry.top + entry.height);\n const width = right - left;\n const height = bottom - top;\n\n if (left < right && top < bottom) {\n const targetArea = target.width * target.height;\n const entryArea = entry.width * entry.height;\n const intersectionArea = width * height;\n const intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea);\n return Number(intersectionRatio.toFixed(4));\n } // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n\n\n return 0;\n}\n/**\r\n * Returns the rectangles that has the greatest intersection area with a given\r\n * rectangle in an array of rectangles.\r\n */\n\nconst rectIntersection = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const intersectionRatio = getIntersectionRatio(rect, collisionRect);\n\n if (intersectionRatio > 0) {\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: intersectionRatio\n }\n });\n }\n }\n }\n\n return collisions.sort(sortCollisionsDesc);\n};\n\n/**\r\n * Check if a given point is contained within a bounding rectangle\r\n */\n\nfunction isPointWithinRect(point, rect) {\n const {\n top,\n left,\n bottom,\n right\n } = rect;\n return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right;\n}\n/**\r\n * Returns the rectangles that the pointer is hovering over\r\n */\n\n\nconst pointerWithin = _ref => {\n let {\n droppableContainers,\n droppableRects,\n pointerCoordinates\n } = _ref;\n\n if (!pointerCoordinates) {\n return [];\n }\n\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect && isPointWithinRect(pointerCoordinates, rect)) {\n /* There may be more than a single rectangle intersecting\r\n * with the pointer coordinates. In order to sort the\r\n * colliding rectangles, we measure the distance between\r\n * the pointer and the corners of the intersecting rectangle\r\n */\n const corners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner) => {\n return accumulator + distanceBetween(pointerCoordinates, corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\nfunction adjustScale(transform, rect1, rect2) {\n return { ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1\n };\n}\n\nfunction getRectDelta(rect1, rect2) {\n return rect1 && rect2 ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top\n } : defaultCoordinates;\n}\n\nfunction createRectAdjustmentFn(modifier) {\n return function adjustClientRect(rect) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((acc, adjustment) => ({ ...acc,\n top: acc.top + modifier * adjustment.y,\n bottom: acc.bottom + modifier * adjustment.y,\n left: acc.left + modifier * adjustment.x,\n right: acc.right + modifier * adjustment.x\n }), { ...rect\n });\n };\n}\nconst getAdjustedRect = /*#__PURE__*/createRectAdjustmentFn(1);\n\nfunction parseTransform(transform) {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5]\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3]\n };\n }\n\n return null;\n}\n\nfunction inverseTransform(rect, transform, transformOrigin) {\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return rect;\n }\n\n const {\n scaleX,\n scaleY,\n x: translateX,\n y: translateY\n } = parsedTransform;\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x\n };\n}\n\nconst defaultOptions = {\n ignoreTransform: false\n};\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n */\n\nfunction getClientRect(element, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n let rect = element.getBoundingClientRect();\n\n if (options.ignoreTransform) {\n const {\n transform,\n transformOrigin\n } = getWindow(element).getComputedStyle(element);\n\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n\n const {\n top,\n left,\n width,\n height,\n bottom,\n right\n } = rect;\n return {\n top,\n left,\n width,\n height,\n bottom,\n right\n };\n}\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n *\r\n * @remarks\r\n * The ClientRect returned by this method does not take into account transforms\r\n * applied to the element it measures.\r\n *\r\n */\n\nfunction getTransformAgnosticClientRect(element) {\n return getClientRect(element, {\n ignoreTransform: true\n });\n}\n\nfunction getWindowClientRect(element) {\n const width = element.innerWidth;\n const height = element.innerHeight;\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height\n };\n}\n\nfunction isFixed(node, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(node).getComputedStyle(node);\n }\n\n return computedStyle.position === 'fixed';\n}\n\nfunction isScrollable(element, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(element).getComputedStyle(element);\n }\n\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.some(property => {\n const value = computedStyle[property];\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\n\nfunction getScrollableAncestors(element, limit) {\n const scrollParents = [];\n\n function findScrollableAncestors(node) {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (isDocument(node) && node.scrollingElement != null && !scrollParents.includes(node.scrollingElement)) {\n scrollParents.push(node.scrollingElement);\n return scrollParents;\n }\n\n if (!isHTMLElement(node) || isSVGElement(node)) {\n return scrollParents;\n }\n\n if (scrollParents.includes(node)) {\n return scrollParents;\n }\n\n const computedStyle = getWindow(element).getComputedStyle(node);\n\n if (node !== element) {\n if (isScrollable(node, computedStyle)) {\n scrollParents.push(node);\n }\n }\n\n if (isFixed(node, computedStyle)) {\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\nfunction getFirstScrollableAncestor(node) {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n return firstScrollableAncestor != null ? firstScrollableAncestor : null;\n}\n\nfunction getScrollableElement(element) {\n if (!canUseDOM || !element) {\n return null;\n }\n\n if (isWindow(element)) {\n return element;\n }\n\n if (!isNode(element)) {\n return null;\n }\n\n if (isDocument(element) || element === getOwnerDocument(element).scrollingElement) {\n return window;\n }\n\n if (isHTMLElement(element)) {\n return element;\n }\n\n return null;\n}\n\nfunction getScrollXCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollX;\n }\n\n return element.scrollLeft;\n}\nfunction getScrollYCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollY;\n }\n\n return element.scrollTop;\n}\nfunction getScrollCoordinates(element) {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element)\n };\n}\n\nvar Direction;\n\n(function (Direction) {\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n\nfunction isDocumentScrollingElement(element) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === document.scrollingElement;\n}\n\nfunction getScrollPosition(scrollingContainer) {\n const minScroll = {\n x: 0,\n y: 0\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer) ? {\n height: window.innerHeight,\n width: window.innerWidth\n } : {\n height: scrollingContainer.clientHeight,\n width: scrollingContainer.clientWidth\n };\n const maxScroll = {\n x: scrollingContainer.scrollWidth - dimensions.width,\n y: scrollingContainer.scrollHeight - dimensions.height\n };\n const isTop = scrollingContainer.scrollTop <= minScroll.y;\n const isLeft = scrollingContainer.scrollLeft <= minScroll.x;\n const isBottom = scrollingContainer.scrollTop >= maxScroll.y;\n const isRight = scrollingContainer.scrollLeft >= maxScroll.x;\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll\n };\n}\n\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2\n};\nfunction getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, _ref, acceleration, thresholdPercentage) {\n let {\n top,\n left,\n right,\n bottom\n } = _ref;\n\n if (acceleration === void 0) {\n acceleration = 10;\n }\n\n if (thresholdPercentage === void 0) {\n thresholdPercentage = defaultThreshold;\n }\n\n const {\n isTop,\n isBottom,\n isLeft,\n isRight\n } = getScrollPosition(scrollContainer);\n const direction = {\n x: 0,\n y: 0\n };\n const speed = {\n x: 0,\n y: 0\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x\n };\n\n if (!isTop && top <= scrollContainerRect.top + threshold.height) {\n // Scroll Up\n direction.y = Direction.Backward;\n speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold.height - top) / threshold.height);\n } else if (!isBottom && bottom >= scrollContainerRect.bottom - threshold.height) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold.height - bottom) / threshold.height);\n }\n\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold.width - right) / threshold.width);\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold.width - left) / threshold.width);\n }\n\n return {\n direction,\n speed\n };\n}\n\nfunction getScrollElementRect(element) {\n if (element === document.scrollingElement) {\n const {\n innerWidth,\n innerHeight\n } = window;\n return {\n top: 0,\n left: 0,\n right: innerWidth,\n bottom: innerHeight,\n width: innerWidth,\n height: innerHeight\n };\n }\n\n const {\n top,\n left,\n right,\n bottom\n } = element.getBoundingClientRect();\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getScrollOffsets(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\nfunction getScrollXOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\nfunction getScrollYOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\n\nfunction scrollIntoViewIfNeeded(element, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n if (!element) {\n return;\n }\n\n const {\n top,\n left,\n bottom,\n right\n } = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n\n if (!firstScrollableAncestor) {\n return;\n }\n\n if (bottom <= 0 || right <= 0 || top >= window.innerHeight || left >= window.innerWidth) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center'\n });\n }\n}\n\nconst properties = [['x', ['left', 'right'], getScrollXOffset], ['y', ['top', 'bottom'], getScrollYOffset]];\nclass Rect {\n constructor(rect, element) {\n this.rect = void 0;\n this.width = void 0;\n this.height = void 0;\n this.top = void 0;\n this.bottom = void 0;\n this.right = void 0;\n this.left = void 0;\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n this.rect = { ...rect\n };\n this.width = rect.width;\n this.height = rect.height;\n\n for (const [axis, keys, getScrollOffset] of properties) {\n for (const key of keys) {\n Object.defineProperty(this, key, {\n get: () => {\n const currentOffsets = getScrollOffset(scrollableAncestors);\n const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true\n });\n }\n }\n\n Object.defineProperty(this, 'rect', {\n enumerable: false\n });\n }\n\n}\n\nclass Listeners {\n constructor(target) {\n this.target = void 0;\n this.listeners = [];\n\n this.removeAll = () => {\n this.listeners.forEach(listener => {\n var _this$target;\n\n return (_this$target = this.target) == null ? void 0 : _this$target.removeEventListener(...listener);\n });\n };\n\n this.target = target;\n }\n\n add(eventName, handler, options) {\n var _this$target2;\n\n (_this$target2 = this.target) == null ? void 0 : _this$target2.addEventListener(eventName, handler, options);\n this.listeners.push([eventName, handler, options]);\n }\n\n}\n\nfunction getEventListenerTarget(target) {\n // If the `event.target` element is removed from the document events will still be targeted\n // at it, and hence won't always bubble up to the window or document anymore.\n // If there is any risk of an element being removed while it is being dragged,\n // the best practice is to attach the event listeners directly to the target.\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n const {\n EventTarget\n } = getWindow(target);\n return target instanceof EventTarget ? target : getOwnerDocument(target);\n}\n\nfunction hasExceededDistance(delta, measurement) {\n const dx = Math.abs(delta.x);\n const dy = Math.abs(delta.y);\n\n if (typeof measurement === 'number') {\n return Math.sqrt(dx ** 2 + dy ** 2) > measurement;\n }\n\n if ('x' in measurement && 'y' in measurement) {\n return dx > measurement.x && dy > measurement.y;\n }\n\n if ('x' in measurement) {\n return dx > measurement.x;\n }\n\n if ('y' in measurement) {\n return dy > measurement.y;\n }\n\n return false;\n}\n\nvar EventName;\n\n(function (EventName) {\n EventName[\"Click\"] = \"click\";\n EventName[\"DragStart\"] = \"dragstart\";\n EventName[\"Keydown\"] = \"keydown\";\n EventName[\"ContextMenu\"] = \"contextmenu\";\n EventName[\"Resize\"] = \"resize\";\n EventName[\"SelectionChange\"] = \"selectionchange\";\n EventName[\"VisibilityChange\"] = \"visibilitychange\";\n})(EventName || (EventName = {}));\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\n\nvar KeyboardCode;\n\n(function (KeyboardCode) {\n KeyboardCode[\"Space\"] = \"Space\";\n KeyboardCode[\"Down\"] = \"ArrowDown\";\n KeyboardCode[\"Right\"] = \"ArrowRight\";\n KeyboardCode[\"Left\"] = \"ArrowLeft\";\n KeyboardCode[\"Up\"] = \"ArrowUp\";\n KeyboardCode[\"Esc\"] = \"Escape\";\n KeyboardCode[\"Enter\"] = \"Enter\";\n KeyboardCode[\"Tab\"] = \"Tab\";\n})(KeyboardCode || (KeyboardCode = {}));\n\nconst defaultKeyboardCodes = {\n start: [KeyboardCode.Space, KeyboardCode.Enter],\n cancel: [KeyboardCode.Esc],\n end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab]\n};\nconst defaultKeyboardCoordinateGetter = (event, _ref) => {\n let {\n currentCoordinates\n } = _ref;\n\n switch (event.code) {\n case KeyboardCode.Right:\n return { ...currentCoordinates,\n x: currentCoordinates.x + 25\n };\n\n case KeyboardCode.Left:\n return { ...currentCoordinates,\n x: currentCoordinates.x - 25\n };\n\n case KeyboardCode.Down:\n return { ...currentCoordinates,\n y: currentCoordinates.y + 25\n };\n\n case KeyboardCode.Up:\n return { ...currentCoordinates,\n y: currentCoordinates.y - 25\n };\n }\n\n return undefined;\n};\n\nclass KeyboardSensor {\n constructor(props) {\n this.props = void 0;\n this.autoScrollEnabled = false;\n this.referenceCoordinates = void 0;\n this.listeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n const {\n event: {\n target\n }\n } = props;\n this.props = props;\n this.listeners = new Listeners(getOwnerDocument(target));\n this.windowListeners = new Listeners(getWindow(target));\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.attach();\n }\n\n attach() {\n this.handleStart();\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n\n handleStart() {\n const {\n activeNode,\n onStart\n } = this.props;\n const node = activeNode.node.current;\n\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n\n onStart(defaultCoordinates);\n }\n\n handleKeyDown(event) {\n if (isKeyboardEvent(event)) {\n const {\n active,\n context,\n options\n } = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth'\n } = options;\n const {\n code\n } = event;\n\n if (keyboardCodes.end.includes(code)) {\n this.handleEnd(event);\n return;\n }\n\n if (keyboardCodes.cancel.includes(code)) {\n this.handleCancel(event);\n return;\n }\n\n const {\n collisionRect\n } = context.current;\n const currentCoordinates = collisionRect ? {\n x: collisionRect.left,\n y: collisionRect.top\n } : defaultCoordinates;\n\n if (!this.referenceCoordinates) {\n this.referenceCoordinates = currentCoordinates;\n }\n\n const newCoordinates = coordinateGetter(event, {\n active,\n context: context.current,\n currentCoordinates\n });\n\n if (newCoordinates) {\n const coordinatesDelta = subtract(newCoordinates, currentCoordinates);\n const scrollDelta = {\n x: 0,\n y: 0\n };\n const {\n scrollableAncestors\n } = context.current;\n\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {\n isTop,\n isRight,\n isLeft,\n isBottom,\n maxScroll,\n minScroll\n } = getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n const clampedCoordinates = {\n x: Math.min(direction === KeyboardCode.Right ? scrollElementRect.right - scrollElementRect.width / 2 : scrollElementRect.right, Math.max(direction === KeyboardCode.Right ? scrollElementRect.left : scrollElementRect.left + scrollElementRect.width / 2, newCoordinates.x)),\n y: Math.min(direction === KeyboardCode.Down ? scrollElementRect.bottom - scrollElementRect.height / 2 : scrollElementRect.bottom, Math.max(direction === KeyboardCode.Down ? scrollElementRect.top : scrollElementRect.top + scrollElementRect.height / 2, newCoordinates.y))\n };\n const canScrollX = direction === KeyboardCode.Right && !isRight || direction === KeyboardCode.Left && !isLeft;\n const canScrollY = direction === KeyboardCode.Down && !isBottom || direction === KeyboardCode.Up && !isTop;\n\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates = scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates = direction === KeyboardCode.Right && newScrollCoordinates <= maxScroll.x || direction === KeyboardCode.Left && newScrollCoordinates >= minScroll.x;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.y) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n left: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;\n } else {\n scrollDelta.x = direction === KeyboardCode.Right ? scrollContainer.scrollLeft - maxScroll.x : scrollContainer.scrollLeft - minScroll.x;\n }\n\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior\n });\n }\n\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates = scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates = direction === KeyboardCode.Down && newScrollCoordinates <= maxScroll.y || direction === KeyboardCode.Up && newScrollCoordinates >= minScroll.y;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.x) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n top: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;\n } else {\n scrollDelta.y = direction === KeyboardCode.Down ? scrollContainer.scrollTop - maxScroll.y : scrollContainer.scrollTop - minScroll.y;\n }\n\n if (scrollDelta.y) {\n scrollContainer.scrollBy({\n top: -scrollDelta.y,\n behavior: scrollBehavior\n });\n }\n\n break;\n }\n }\n\n this.handleMove(event, add(subtract(newCoordinates, this.referenceCoordinates), scrollDelta));\n }\n }\n }\n\n handleMove(event, coordinates) {\n const {\n onMove\n } = this.props;\n event.preventDefault();\n onMove(coordinates);\n }\n\n handleEnd(event) {\n const {\n onEnd\n } = this.props;\n event.preventDefault();\n this.detach();\n onEnd();\n }\n\n handleCancel(event) {\n const {\n onCancel\n } = this.props;\n event.preventDefault();\n this.detach();\n onCancel();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n\n}\nKeyboardSensor.activators = [{\n eventName: 'onKeyDown',\n handler: (event, _ref, _ref2) => {\n let {\n keyboardCodes = defaultKeyboardCodes,\n onActivation\n } = _ref;\n let {\n active\n } = _ref2;\n const {\n code\n } = event.nativeEvent;\n\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n\n if (activator && event.target !== activator) {\n return false;\n }\n\n event.preventDefault();\n onActivation == null ? void 0 : onActivation({\n event: event.nativeEvent\n });\n return true;\n }\n\n return false;\n }\n}];\n\nfunction isDistanceConstraint(constraint) {\n return Boolean(constraint && 'distance' in constraint);\n}\n\nfunction isDelayConstraint(constraint) {\n return Boolean(constraint && 'delay' in constraint);\n}\n\nclass AbstractPointerSensor {\n constructor(props, events, listenerTarget) {\n var _getEventCoordinates;\n\n if (listenerTarget === void 0) {\n listenerTarget = getEventListenerTarget(props.event.target);\n }\n\n this.props = void 0;\n this.events = void 0;\n this.autoScrollEnabled = true;\n this.document = void 0;\n this.activated = false;\n this.initialCoordinates = void 0;\n this.timeoutId = null;\n this.listeners = void 0;\n this.documentListeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n this.events = events;\n const {\n event\n } = props;\n const {\n target\n } = event;\n this.props = props;\n this.events = events;\n this.document = getOwnerDocument(target);\n this.documentListeners = new Listeners(this.document);\n this.listeners = new Listeners(listenerTarget);\n this.windowListeners = new Listeners(getWindow(target));\n this.initialCoordinates = (_getEventCoordinates = getEventCoordinates(event)) != null ? _getEventCoordinates : defaultCoordinates;\n this.handleStart = this.handleStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleEnd = this.handleEnd.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.removeTextSelection = this.removeTextSelection.bind(this);\n this.attach();\n }\n\n attach() {\n const {\n events,\n props: {\n options: {\n activationConstraint,\n bypassActivationConstraint\n }\n }\n } = this;\n this.listeners.add(events.move.name, this.handleMove, {\n passive: false\n });\n this.listeners.add(events.end.name, this.handleEnd);\n\n if (events.cancel) {\n this.listeners.add(events.cancel.name, this.handleCancel);\n }\n\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.DragStart, preventDefault);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n this.windowListeners.add(EventName.ContextMenu, preventDefault);\n this.documentListeners.add(EventName.Keydown, this.handleKeydown);\n\n if (activationConstraint) {\n if (bypassActivationConstraint != null && bypassActivationConstraint({\n event: this.props.event,\n activeNode: this.props.activeNode,\n options: this.props.options\n })) {\n return this.handleStart();\n }\n\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);\n this.handlePending(activationConstraint);\n return;\n }\n\n if (isDistanceConstraint(activationConstraint)) {\n this.handlePending(activationConstraint);\n return;\n }\n }\n\n this.handleStart();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll(); // Wait until the next event loop before removing document listeners\n // This is necessary because we listen for `click` and `selection` events on the document\n\n setTimeout(this.documentListeners.removeAll, 50);\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n handlePending(constraint, offset) {\n const {\n active,\n onPending\n } = this.props;\n onPending(active, constraint, this.initialCoordinates, offset);\n }\n\n handleStart() {\n const {\n initialCoordinates\n } = this;\n const {\n onStart\n } = this.props;\n\n if (initialCoordinates) {\n this.activated = true; // Stop propagation of click events once activation constraints are met\n\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true\n }); // Remove any text selection from the document\n\n this.removeTextSelection(); // Prevent further text selection while dragging\n\n this.documentListeners.add(EventName.SelectionChange, this.removeTextSelection);\n onStart(initialCoordinates);\n }\n }\n\n handleMove(event) {\n var _getEventCoordinates2;\n\n const {\n activated,\n initialCoordinates,\n props\n } = this;\n const {\n onMove,\n options: {\n activationConstraint\n }\n } = props;\n\n if (!initialCoordinates) {\n return;\n }\n\n const coordinates = (_getEventCoordinates2 = getEventCoordinates(event)) != null ? _getEventCoordinates2 : defaultCoordinates;\n const delta = subtract(initialCoordinates, coordinates); // Constraint validation\n\n if (!activated && activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n if (activationConstraint.tolerance != null && hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n\n if (hasExceededDistance(delta, activationConstraint.distance)) {\n return this.handleStart();\n }\n }\n\n if (isDelayConstraint(activationConstraint)) {\n if (hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n }\n\n this.handlePending(activationConstraint, delta);\n return;\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n\n onMove(coordinates);\n }\n\n handleEnd() {\n const {\n onAbort,\n onEnd\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onEnd();\n }\n\n handleCancel() {\n const {\n onAbort,\n onCancel\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onCancel();\n }\n\n handleKeydown(event) {\n if (event.code === KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n\n removeTextSelection() {\n var _this$document$getSel;\n\n (_this$document$getSel = this.document.getSelection()) == null ? void 0 : _this$document$getSel.removeAllRanges();\n }\n\n}\n\nconst events = {\n cancel: {\n name: 'pointercancel'\n },\n move: {\n name: 'pointermove'\n },\n end: {\n name: 'pointerup'\n }\n};\nclass PointerSensor extends AbstractPointerSensor {\n constructor(props) {\n const {\n event\n } = props; // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n\n const listenerTarget = getOwnerDocument(event.target);\n super(props, events, listenerTarget);\n }\n\n}\nPointerSensor.activators = [{\n eventName: 'onPointerDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$1 = {\n move: {\n name: 'mousemove'\n },\n end: {\n name: 'mouseup'\n }\n};\nvar MouseButton;\n\n(function (MouseButton) {\n MouseButton[MouseButton[\"RightClick\"] = 2] = \"RightClick\";\n})(MouseButton || (MouseButton = {}));\n\nclass MouseSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$1, getOwnerDocument(props.event.target));\n }\n\n}\nMouseSensor.activators = [{\n eventName: 'onMouseDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$2 = {\n cancel: {\n name: 'touchcancel'\n },\n move: {\n name: 'touchmove'\n },\n end: {\n name: 'touchend'\n }\n};\nclass TouchSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$2);\n }\n\n static setup() {\n // Adding a non-capture and non-passive `touchmove` listener in order\n // to force `event.preventDefault()` calls to work in dynamically added\n // touchmove event handlers. This is required for iOS Safari.\n window.addEventListener(events$2.move.name, noop, {\n capture: false,\n passive: false\n });\n return function teardown() {\n window.removeEventListener(events$2.move.name, noop);\n }; // We create a new handler because the teardown function of another sensor\n // could remove our event listener if we use a referentially equal listener.\n\n function noop() {}\n }\n\n}\nTouchSensor.activators = [{\n eventName: 'onTouchStart',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n const {\n touches\n } = event;\n\n if (touches.length > 1) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nvar AutoScrollActivator;\n\n(function (AutoScrollActivator) {\n AutoScrollActivator[AutoScrollActivator[\"Pointer\"] = 0] = \"Pointer\";\n AutoScrollActivator[AutoScrollActivator[\"DraggableRect\"] = 1] = \"DraggableRect\";\n})(AutoScrollActivator || (AutoScrollActivator = {}));\n\nvar TraversalOrder;\n\n(function (TraversalOrder) {\n TraversalOrder[TraversalOrder[\"TreeOrder\"] = 0] = \"TreeOrder\";\n TraversalOrder[TraversalOrder[\"ReversedTreeOrder\"] = 1] = \"ReversedTreeOrder\";\n})(TraversalOrder || (TraversalOrder = {}));\n\nfunction useAutoScroller(_ref) {\n let {\n acceleration,\n activator = AutoScrollActivator.Pointer,\n canScroll,\n draggingRect,\n enabled,\n interval = 5,\n order = TraversalOrder.TreeOrder,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n delta,\n threshold\n } = _ref;\n const scrollIntent = useScrollIntent({\n delta,\n disabled: !enabled\n });\n const [setAutoScrollInterval, clearAutoScrollInterval] = useInterval();\n const scrollSpeed = useRef({\n x: 0,\n y: 0\n });\n const scrollDirection = useRef({\n x: 0,\n y: 0\n });\n const rect = useMemo(() => {\n switch (activator) {\n case AutoScrollActivator.Pointer:\n return pointerCoordinates ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x\n } : null;\n\n case AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = useRef(null);\n const autoScroll = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n\n if (!scrollContainer) {\n return;\n }\n\n const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;\n const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = useMemo(() => order === TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]);\n useEffect(() => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n\n for (const scrollContainer of sortedScrollableAncestors) {\n if ((canScroll == null ? void 0 : canScroll(scrollContainer)) === false) {\n continue;\n }\n\n const index = scrollableAncestors.indexOf(scrollContainer);\n const scrollContainerRect = scrollableAncestorRects[index];\n\n if (!scrollContainerRect) {\n continue;\n }\n\n const {\n direction,\n speed\n } = getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, rect, acceleration, threshold);\n\n for (const axis of ['x', 'y']) {\n if (!scrollIntent[axis][direction[axis]]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n return;\n }\n }\n\n scrollSpeed.current = {\n x: 0,\n y: 0\n };\n scrollDirection.current = {\n x: 0,\n y: 0\n };\n clearAutoScrollInterval();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [acceleration, autoScroll, canScroll, clearAutoScrollInterval, enabled, interval, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect), // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent), setAutoScrollInterval, scrollableAncestors, sortedScrollableAncestors, scrollableAncestorRects, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold)]);\n}\nconst defaultScrollIntent = {\n x: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n },\n y: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n }\n};\n\nfunction useScrollIntent(_ref2) {\n let {\n delta,\n disabled\n } = _ref2;\n const previousDelta = usePrevious(delta);\n return useLazyMemo(previousIntent => {\n if (disabled || !previousDelta || !previousIntent) {\n // Reset scroll intent tracking when auto-scrolling is disabled\n return defaultScrollIntent;\n }\n\n const direction = {\n x: Math.sign(delta.x - previousDelta.x),\n y: Math.sign(delta.y - previousDelta.y)\n }; // Keep track of the user intent to scroll in each direction for both axis\n\n return {\n x: {\n [Direction.Backward]: previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]: previousIntent.x[Direction.Forward] || direction.x === 1\n },\n y: {\n [Direction.Backward]: previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]: previousIntent.y[Direction.Forward] || direction.y === 1\n }\n };\n }, [disabled, delta, previousDelta]);\n}\n\nfunction useCachedNode(draggableNodes, id) {\n const draggableNode = id != null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n return useLazyMemo(cachedNode => {\n var _ref;\n\n if (id == null) {\n return null;\n } // In some cases, the draggable node can unmount while dragging\n // This is the case for virtualized lists. In those situations,\n // we fall back to the last known value for that node.\n\n\n return (_ref = node != null ? node : cachedNode) != null ? _ref : null;\n }, [node, id]);\n}\n\nfunction useCombineActivators(sensors, getSyntheticHandler) {\n return useMemo(() => sensors.reduce((accumulator, sensor) => {\n const {\n sensor: Sensor\n } = sensor;\n const sensorActivators = Sensor.activators.map(activator => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor)\n }));\n return [...accumulator, ...sensorActivators];\n }, []), [sensors, getSyntheticHandler]);\n}\n\nvar MeasuringStrategy;\n\n(function (MeasuringStrategy) {\n MeasuringStrategy[MeasuringStrategy[\"Always\"] = 0] = \"Always\";\n MeasuringStrategy[MeasuringStrategy[\"BeforeDragging\"] = 1] = \"BeforeDragging\";\n MeasuringStrategy[MeasuringStrategy[\"WhileDragging\"] = 2] = \"WhileDragging\";\n})(MeasuringStrategy || (MeasuringStrategy = {}));\n\nvar MeasuringFrequency;\n\n(function (MeasuringFrequency) {\n MeasuringFrequency[\"Optimized\"] = \"optimized\";\n})(MeasuringFrequency || (MeasuringFrequency = {}));\n\nconst defaultValue = /*#__PURE__*/new Map();\nfunction useDroppableMeasuring(containers, _ref) {\n let {\n dragging,\n dependencies,\n config\n } = _ref;\n const [queue, setQueue] = useState(null);\n const {\n frequency,\n measure,\n strategy\n } = config;\n const containersRef = useRef(containers);\n const disabled = isDisabled();\n const disabledRef = useLatestValue(disabled);\n const measureDroppableContainers = useCallback(function (ids) {\n if (ids === void 0) {\n ids = [];\n }\n\n if (disabledRef.current) {\n return;\n }\n\n setQueue(value => {\n if (value === null) {\n return ids;\n }\n\n return value.concat(ids.filter(id => !value.includes(id)));\n });\n }, [disabledRef]);\n const timeoutId = useRef(null);\n const droppableRects = useLazyMemo(previousValue => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n\n if (!previousValue || previousValue === defaultValue || containersRef.current !== containers || queue != null) {\n const map = new Map();\n\n for (let container of containers) {\n if (!container) {\n continue;\n }\n\n if (queue && queue.length > 0 && !queue.includes(container.id) && container.rect.current) {\n // This container does not need to be re-measured\n map.set(container.id, container.rect.current);\n continue;\n }\n\n const node = container.node.current;\n const rect = node ? new Rect(measure(node), node) : null;\n container.rect.current = rect;\n\n if (rect) {\n map.set(container.id, rect);\n }\n }\n\n return map;\n }\n\n return previousValue;\n }, [containers, queue, dragging, disabled, measure]);\n useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n measureDroppableContainers();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]);\n useEffect(() => {\n if (queue && queue.length > 0) {\n setQueue(null);\n }\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(queue)]);\n useEffect(() => {\n if (disabled || typeof frequency !== 'number' || timeoutId.current !== null) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]);\n return {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled: queue != null\n };\n\n function isDisabled() {\n switch (strategy) {\n case MeasuringStrategy.Always:\n return false;\n\n case MeasuringStrategy.BeforeDragging:\n return dragging;\n\n default:\n return !dragging;\n }\n }\n}\n\nfunction useInitialValue(value, computeFn) {\n return useLazyMemo(previousValue => {\n if (!value) {\n return null;\n }\n\n if (previousValue) {\n return previousValue;\n }\n\n return typeof computeFn === 'function' ? computeFn(value) : value;\n }, [computeFn, value]);\n}\n\nfunction useInitialRect(node, measure) {\n return useInitialValue(node, measure);\n}\n\n/**\r\n * Returns a new MutationObserver instance.\r\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useMutationObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleMutations = useEvent(callback);\n const mutationObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.MutationObserver === 'undefined') {\n return undefined;\n }\n\n const {\n MutationObserver\n } = window;\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n useEffect(() => {\n return () => mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }, [mutationObserver]);\n return mutationObserver;\n}\n\n/**\r\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\r\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useResizeObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleResize = useEvent(callback);\n const resizeObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.ResizeObserver === 'undefined') {\n return undefined;\n }\n\n const {\n ResizeObserver\n } = window;\n return new ResizeObserver(handleResize);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]);\n useEffect(() => {\n return () => resizeObserver == null ? void 0 : resizeObserver.disconnect();\n }, [resizeObserver]);\n return resizeObserver;\n}\n\nfunction defaultMeasure(element) {\n return new Rect(getClientRect(element), element);\n}\n\nfunction useRect(element, measure, fallbackRect) {\n if (measure === void 0) {\n measure = defaultMeasure;\n }\n\n const [rect, setRect] = useState(null);\n\n function measureRect() {\n setRect(currentRect => {\n if (!element) {\n return null;\n }\n\n if (element.isConnected === false) {\n var _ref;\n\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;\n }\n\n const newRect = measure(element);\n\n if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {\n return currentRect;\n }\n\n return newRect;\n });\n }\n\n const mutationObserver = useMutationObserver({\n callback(records) {\n if (!element) {\n return;\n }\n\n for (const record of records) {\n const {\n type,\n target\n } = record;\n\n if (type === 'childList' && target instanceof HTMLElement && target.contains(element)) {\n measureRect();\n break;\n }\n }\n }\n\n });\n const resizeObserver = useResizeObserver({\n callback: measureRect\n });\n useIsomorphicLayoutEffect(() => {\n measureRect();\n\n if (element) {\n resizeObserver == null ? void 0 : resizeObserver.observe(element);\n mutationObserver == null ? void 0 : mutationObserver.observe(document.body, {\n childList: true,\n subtree: true\n });\n } else {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }\n }, [element]);\n return rect;\n}\n\nfunction useRectDelta(rect) {\n const initialRect = useInitialValue(rect);\n return getRectDelta(rect, initialRect);\n}\n\nconst defaultValue$1 = [];\nfunction useScrollableAncestors(node) {\n const previousNode = useRef(node);\n const ancestors = useLazyMemo(previousValue => {\n if (!node) {\n return defaultValue$1;\n }\n\n if (previousValue && previousValue !== defaultValue$1 && node && previousNode.current && node.parentNode === previousNode.current.parentNode) {\n return previousValue;\n }\n\n return getScrollableAncestors(node);\n }, [node]);\n useEffect(() => {\n previousNode.current = node;\n }, [node]);\n return ancestors;\n}\n\nfunction useScrollOffsets(elements) {\n const [scrollCoordinates, setScrollCoordinates] = useState(null);\n const prevElements = useRef(elements); // To-do: Throttle the handleScroll callback\n\n const handleScroll = useCallback(event => {\n const scrollingElement = getScrollableElement(event.target);\n\n if (!scrollingElement) {\n return;\n }\n\n setScrollCoordinates(scrollCoordinates => {\n if (!scrollCoordinates) {\n return null;\n }\n\n scrollCoordinates.set(scrollingElement, getScrollCoordinates(scrollingElement));\n return new Map(scrollCoordinates);\n });\n }, []);\n useEffect(() => {\n const previousElements = prevElements.current;\n\n if (elements !== previousElements) {\n cleanup(previousElements);\n const entries = elements.map(element => {\n const scrollableElement = getScrollableElement(element);\n\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true\n });\n return [scrollableElement, getScrollCoordinates(scrollableElement)];\n }\n\n return null;\n }).filter(entry => entry != null);\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n prevElements.current = elements;\n }\n\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n\n function cleanup(elements) {\n elements.forEach(element => {\n const scrollableElement = getScrollableElement(element);\n scrollableElement == null ? void 0 : scrollableElement.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n return useMemo(() => {\n if (elements.length) {\n return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => add(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements);\n }\n\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\n\nfunction useScrollOffsetsDelta(scrollOffsets, dependencies) {\n if (dependencies === void 0) {\n dependencies = [];\n }\n\n const initialScrollOffsets = useRef(null);\n useEffect(() => {\n initialScrollOffsets.current = null;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies);\n useEffect(() => {\n const hasScrollOffsets = scrollOffsets !== defaultCoordinates;\n\n if (hasScrollOffsets && !initialScrollOffsets.current) {\n initialScrollOffsets.current = scrollOffsets;\n }\n\n if (!hasScrollOffsets && initialScrollOffsets.current) {\n initialScrollOffsets.current = null;\n }\n }, [scrollOffsets]);\n return initialScrollOffsets.current ? subtract(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates;\n}\n\nfunction useSensorSetup(sensors) {\n useEffect(() => {\n if (!canUseDOM) {\n return;\n }\n\n const teardownFns = sensors.map(_ref => {\n let {\n sensor\n } = _ref;\n return sensor.setup == null ? void 0 : sensor.setup();\n });\n return () => {\n for (const teardown of teardownFns) {\n teardown == null ? void 0 : teardown();\n }\n };\n }, // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n sensors.map(_ref2 => {\n let {\n sensor\n } = _ref2;\n return sensor;\n }));\n}\n\nfunction useSyntheticListeners(listeners, id) {\n return useMemo(() => {\n return listeners.reduce((acc, _ref) => {\n let {\n eventName,\n handler\n } = _ref;\n\n acc[eventName] = event => {\n handler(event, id);\n };\n\n return acc;\n }, {});\n }, [listeners, id]);\n}\n\nfunction useWindowRect(element) {\n return useMemo(() => element ? getWindowClientRect(element) : null, [element]);\n}\n\nconst defaultValue$2 = [];\nfunction useRects(elements, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n const [firstElement] = elements;\n const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null);\n const [rects, setRects] = useState(defaultValue$2);\n\n function measureRects() {\n setRects(() => {\n if (!elements.length) {\n return defaultValue$2;\n }\n\n return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));\n });\n }\n\n const resizeObserver = useResizeObserver({\n callback: measureRects\n });\n useIsomorphicLayoutEffect(() => {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n measureRects();\n elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));\n }, [elements]);\n return rects;\n}\n\nfunction getMeasurableNode(node) {\n if (!node) {\n return null;\n }\n\n if (node.children.length > 1) {\n return node;\n }\n\n const firstChild = node.children[0];\n return isHTMLElement(firstChild) ? firstChild : node;\n}\n\nfunction useDragOverlayMeasuring(_ref) {\n let {\n measure\n } = _ref;\n const [rect, setRect] = useState(null);\n const handleResize = useCallback(entries => {\n for (const {\n target\n } of entries) {\n if (isHTMLElement(target)) {\n setRect(rect => {\n const newRect = measure(target);\n return rect ? { ...rect,\n width: newRect.width,\n height: newRect.height\n } : newRect;\n });\n break;\n }\n }\n }, [measure]);\n const resizeObserver = useResizeObserver({\n callback: handleResize\n });\n const handleNodeChange = useCallback(element => {\n const node = getMeasurableNode(element);\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n\n if (node) {\n resizeObserver == null ? void 0 : resizeObserver.observe(node);\n }\n\n setRect(node ? measure(node) : null);\n }, [measure, resizeObserver]);\n const [nodeRef, setRef] = useNodeRef(handleNodeChange);\n return useMemo(() => ({\n nodeRef,\n rect,\n setRef\n }), [rect, nodeRef, setRef]);\n}\n\nconst defaultSensors = [{\n sensor: PointerSensor,\n options: {}\n}, {\n sensor: KeyboardSensor,\n options: {}\n}];\nconst defaultData = {\n current: {}\n};\nconst defaultMeasuringConfiguration = {\n draggable: {\n measure: getTransformAgnosticClientRect\n },\n droppable: {\n measure: getTransformAgnosticClientRect,\n strategy: MeasuringStrategy.WhileDragging,\n frequency: MeasuringFrequency.Optimized\n },\n dragOverlay: {\n measure: getClientRect\n }\n};\n\nclass DroppableContainersMap extends Map {\n get(id) {\n var _super$get;\n\n return id != null ? (_super$get = super.get(id)) != null ? _super$get : undefined : undefined;\n }\n\n toArray() {\n return Array.from(this.values());\n }\n\n getEnabled() {\n return this.toArray().filter(_ref => {\n let {\n disabled\n } = _ref;\n return !disabled;\n });\n }\n\n getNodeFor(id) {\n var _this$get$node$curren, _this$get;\n\n return (_this$get$node$curren = (_this$get = this.get(id)) == null ? void 0 : _this$get.node.current) != null ? _this$get$node$curren : undefined;\n }\n\n}\n\nconst defaultPublicContext = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: /*#__PURE__*/new Map(),\n droppableRects: /*#__PURE__*/new Map(),\n droppableContainers: /*#__PURE__*/new DroppableContainersMap(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null\n },\n rect: null,\n setRef: noop\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: defaultMeasuringConfiguration,\n measureDroppableContainers: noop,\n windowRect: null,\n measuringScheduled: false\n};\nconst defaultInternalContext = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: ''\n },\n dispatch: noop,\n draggableNodes: /*#__PURE__*/new Map(),\n over: null,\n measureDroppableContainers: noop\n};\nconst InternalContext = /*#__PURE__*/createContext(defaultInternalContext);\nconst PublicContext = /*#__PURE__*/createContext(defaultPublicContext);\n\nfunction getInitialState() {\n return {\n draggable: {\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n nodes: new Map(),\n translate: {\n x: 0,\n y: 0\n }\n },\n droppable: {\n containers: new DroppableContainersMap()\n }\n };\n}\nfunction reducer(state, action) {\n switch (action.type) {\n case Action.DragStart:\n return { ...state,\n draggable: { ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active\n }\n };\n\n case Action.DragMove:\n if (state.draggable.active == null) {\n return state;\n }\n\n return { ...state,\n draggable: { ...state.draggable,\n translate: {\n x: action.coordinates.x - state.draggable.initialCoordinates.x,\n y: action.coordinates.y - state.draggable.initialCoordinates.y\n }\n }\n };\n\n case Action.DragEnd:\n case Action.DragCancel:\n return { ...state,\n draggable: { ...state.draggable,\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n translate: {\n x: 0,\n y: 0\n }\n }\n };\n\n case Action.RegisterDroppable:\n {\n const {\n element\n } = action;\n const {\n id\n } = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.SetDroppableDisabled:\n {\n const {\n id,\n key,\n disabled\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, { ...element,\n disabled\n });\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.UnregisterDroppable:\n {\n const {\n id,\n key\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.delete(id);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nfunction RestoreFocus(_ref) {\n let {\n disabled\n } = _ref;\n const {\n active,\n activatorEvent,\n draggableNodes\n } = useContext(InternalContext);\n const previousActivatorEvent = usePrevious(activatorEvent);\n const previousActiveId = usePrevious(active == null ? void 0 : active.id); // Restore keyboard focus on the activator node\n\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {\n if (!isKeyboardEvent(previousActivatorEvent)) {\n return;\n }\n\n if (document.activeElement === previousActivatorEvent.target) {\n // No need to restore focus\n return;\n }\n\n const draggableNode = draggableNodes.get(previousActiveId);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n activatorNode,\n node\n } = draggableNode;\n\n if (!activatorNode.current && !node.current) {\n return;\n }\n\n requestAnimationFrame(() => {\n for (const element of [activatorNode.current, node.current]) {\n if (!element) {\n continue;\n }\n\n const focusableNode = findFirstFocusableNode(element);\n\n if (focusableNode) {\n focusableNode.focus();\n break;\n }\n }\n });\n }\n }, [activatorEvent, disabled, draggableNodes, previousActiveId, previousActivatorEvent]);\n return null;\n}\n\nfunction applyModifiers(modifiers, _ref) {\n let {\n transform,\n ...args\n } = _ref;\n return modifiers != null && modifiers.length ? modifiers.reduce((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args\n });\n }, transform) : transform;\n}\n\nfunction useMeasuringConfiguration(config) {\n return useMemo(() => ({\n draggable: { ...defaultMeasuringConfiguration.draggable,\n ...(config == null ? void 0 : config.draggable)\n },\n droppable: { ...defaultMeasuringConfiguration.droppable,\n ...(config == null ? void 0 : config.droppable)\n },\n dragOverlay: { ...defaultMeasuringConfiguration.dragOverlay,\n ...(config == null ? void 0 : config.dragOverlay)\n }\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [config == null ? void 0 : config.draggable, config == null ? void 0 : config.droppable, config == null ? void 0 : config.dragOverlay]);\n}\n\nfunction useLayoutShiftScrollCompensation(_ref) {\n let {\n activeNode,\n measure,\n initialRect,\n config = true\n } = _ref;\n const initialized = useRef(false);\n const {\n x,\n y\n } = typeof config === 'boolean' ? {\n x: config,\n y: config\n } : config;\n useIsomorphicLayoutEffect(() => {\n const disabled = !x && !y;\n\n if (disabled || !activeNode) {\n initialized.current = false;\n return;\n }\n\n if (initialized.current || !initialRect) {\n // Return early if layout shift scroll compensation was already attempted\n // or if there is no initialRect to compare to.\n return;\n } // Get the most up to date node ref for the active draggable\n\n\n const node = activeNode == null ? void 0 : activeNode.node.current;\n\n if (!node || node.isConnected === false) {\n // Return early if there is no attached node ref or if the node is\n // disconnected from the document.\n return;\n }\n\n const rect = measure(node);\n const rectDelta = getRectDelta(rect, initialRect);\n\n if (!x) {\n rectDelta.x = 0;\n }\n\n if (!y) {\n rectDelta.y = 0;\n } // Only perform layout shift scroll compensation once\n\n\n initialized.current = true;\n\n if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {\n const firstScrollableAncestor = getFirstScrollableAncestor(node);\n\n if (firstScrollableAncestor) {\n firstScrollableAncestor.scrollBy({\n top: rectDelta.y,\n left: rectDelta.x\n });\n }\n }\n }, [activeNode, x, y, initialRect, measure]);\n}\n\nconst ActiveDraggableContext = /*#__PURE__*/createContext({ ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1\n});\nvar Status;\n\n(function (Status) {\n Status[Status[\"Uninitialized\"] = 0] = \"Uninitialized\";\n Status[Status[\"Initializing\"] = 1] = \"Initializing\";\n Status[Status[\"Initialized\"] = 2] = \"Initialized\";\n})(Status || (Status = {}));\n\nconst DndContext = /*#__PURE__*/memo(function DndContext(_ref) {\n var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;\n\n let {\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n } = _ref;\n const store = useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider();\n const [status, setStatus] = useState(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {\n active: activeId,\n nodes: draggableNodes,\n translate\n },\n droppable: {\n containers: droppableContainers\n }\n } = state;\n const node = activeId != null ? draggableNodes.get(activeId) : null;\n const activeRects = useRef({\n initial: null,\n translated: null\n });\n const active = useMemo(() => {\n var _node$data;\n\n return activeId != null ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: (_node$data = node == null ? void 0 : node.data) != null ? _node$data : defaultData,\n rect: activeRects\n } : null;\n }, [activeId, node]);\n const activeRef = useRef(null);\n const [activeSensor, setActiveSensor] = useState(null);\n const [activatorEvent, setActivatorEvent] = useState(null);\n const latestProps = useLatestValue(props, Object.values(props));\n const draggableDescribedById = useUniqueId(\"DndDescribedBy\", id);\n const enabledDroppableContainers = useMemo(() => droppableContainers.getEnabled(), [droppableContainers]);\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled\n } = useDroppableMeasuring(enabledDroppableContainers, {\n dragging: isInitialized,\n dependencies: [translate.x, translate.y],\n config: measuringConfiguration.droppable\n });\n const activeNode = useCachedNode(draggableNodes, activeId);\n const activationCoordinates = useMemo(() => activatorEvent ? getEventCoordinates(activatorEvent) : null, [activatorEvent]);\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);\n useLayoutShiftScrollCompensation({\n activeNode: activeId != null ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure\n });\n const activeNodeRect = useRect(activeNode, measuringConfiguration.draggable.measure, initialActiveNodeRect);\n const containerNodeRect = useRect(activeNode ? activeNode.parentElement : null);\n const sensorContext = useRef({\n activatorEvent: null,\n active: null,\n activeNode,\n collisionRect: null,\n collisions: null,\n droppableRects,\n draggableNodes,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null\n });\n const overNode = droppableContainers.getNodeFor((_sensorContext$curren = sensorContext.current.over) == null ? void 0 : _sensorContext$curren.id);\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure\n }); // Use the rect of the drag overlay if it is mounted\n\n const draggingNode = (_dragOverlay$nodeRef$ = dragOverlay.nodeRef.current) != null ? _dragOverlay$nodeRef$ : activeNode;\n const draggingNodeRect = isInitialized ? (_dragOverlay$rect = dragOverlay.rect) != null ? _dragOverlay$rect : activeNodeRect : null;\n const usesDragOverlay = Boolean(dragOverlay.nodeRef.current && dragOverlay.rect); // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect); // Get the window rect of the dragging node\n\n const windowRect = useWindowRect(draggingNode ? getWindow(draggingNode) : null); // Get scrollable ancestors of the dragging node\n\n const scrollableAncestors = useScrollableAncestors(isInitialized ? overNode != null ? overNode : activeNode : null);\n const scrollableAncestorRects = useRects(scrollableAncestors); // Apply modifiers\n\n const modifiedTranslate = applyModifiers(modifiers, {\n transform: {\n x: translate.x - nodeRectDelta.x,\n y: translate.y - nodeRectDelta.y,\n scaleX: 1,\n scaleY: 1\n },\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect,\n over: sensorContext.current.over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n });\n const pointerCoordinates = activationCoordinates ? add(activationCoordinates, translate) : null;\n const scrollOffsets = useScrollOffsets(scrollableAncestors); // Represents the scroll delta since dragging was initiated\n\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets); // Represents the scroll delta since the last time the active node rect was measured\n\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [activeNodeRect]);\n const scrollAdjustedTranslate = add(modifiedTranslate, scrollAdjustment);\n const collisionRect = draggingNodeRect ? getAdjustedRect(draggingNodeRect, modifiedTranslate) : null;\n const collisions = active && collisionRect ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates\n }) : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = useState(null); // When there is no drag overlay used, we need to account for the\n // window scroll delta\n\n const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);\n const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);\n const activeSensorRef = useRef(null);\n const instantiateSensor = useCallback((event, _ref2) => {\n let {\n sensor: Sensor,\n options\n } = _ref2;\n\n if (activeRef.current == null) {\n return;\n }\n\n const activeNode = draggableNodes.get(activeRef.current);\n\n if (!activeNode) {\n return;\n }\n\n const activatorEvent = event.nativeEvent;\n const sensorInstance = new Sensor({\n active: activeRef.current,\n activeNode,\n event: activatorEvent,\n options,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: sensorContext,\n\n onAbort(id) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragAbort\n } = latestProps.current;\n const event = {\n id\n };\n onDragAbort == null ? void 0 : onDragAbort(event);\n dispatchMonitorEvent({\n type: 'onDragAbort',\n event\n });\n },\n\n onPending(id, constraint, initialCoordinates, offset) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragPending\n } = latestProps.current;\n const event = {\n id,\n constraint,\n initialCoordinates,\n offset\n };\n onDragPending == null ? void 0 : onDragPending(event);\n dispatchMonitorEvent({\n type: 'onDragPending',\n event\n });\n },\n\n onStart(initialCoordinates) {\n const id = activeRef.current;\n\n if (id == null) {\n return;\n }\n\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragStart\n } = latestProps.current;\n const event = {\n activatorEvent,\n active: {\n id,\n data: draggableNode.data,\n rect: activeRects\n }\n };\n unstable_batchedUpdates(() => {\n onDragStart == null ? void 0 : onDragStart(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id\n });\n dispatchMonitorEvent({\n type: 'onDragStart',\n event\n });\n setActiveSensor(activeSensorRef.current);\n setActivatorEvent(activatorEvent);\n });\n },\n\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates\n });\n },\n\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel)\n });\n activeSensorRef.current = sensorInstance;\n\n function createHandler(type) {\n return async function handler() {\n const {\n active,\n collisions,\n over,\n scrollAdjustedTranslate\n } = sensorContext.current;\n let event = null;\n\n if (active && scrollAdjustedTranslate) {\n const {\n cancelDrop\n } = latestProps.current;\n event = {\n activatorEvent,\n active: active,\n collisions,\n delta: scrollAdjustedTranslate,\n over\n };\n\n if (type === Action.DragEnd && typeof cancelDrop === 'function') {\n const shouldCancel = await Promise.resolve(cancelDrop(event));\n\n if (shouldCancel) {\n type = Action.DragCancel;\n }\n }\n }\n\n activeRef.current = null;\n unstable_batchedUpdates(() => {\n dispatch({\n type\n });\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n activeSensorRef.current = null;\n const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n\n if (event) {\n const handler = latestProps.current[eventName];\n handler == null ? void 0 : handler(event);\n dispatchMonitorEvent({\n type: eventName,\n event\n });\n }\n });\n };\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]);\n const bindActivatorToSensorInstantiator = useCallback((handler, sensor) => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent;\n const activeDraggableNode = draggableNodes.get(active);\n\n if ( // Another sensor is already instantiating\n activeRef.current !== null || // No active draggable\n !activeDraggableNode || // Event has already been captured\n nativeEvent.dndKit || nativeEvent.defaultPrevented) {\n return;\n }\n\n const activationContext = {\n active: activeDraggableNode\n };\n const shouldActivate = handler(event, sensor.options, activationContext);\n\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor\n };\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n }, [draggableNodes, instantiateSensor]);\n const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator);\n useSensorSetup(sensors);\n useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n useEffect(() => {\n const {\n onDragMove\n } = latestProps.current;\n const {\n active,\n activatorEvent,\n collisions,\n over\n } = sensorContext.current;\n\n if (!active || !activatorEvent) {\n return;\n }\n\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n onDragMove == null ? void 0 : onDragMove(event);\n dispatchMonitorEvent({\n type: 'onDragMove',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]);\n useEffect(() => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate\n } = sensorContext.current;\n\n if (!active || activeRef.current == null || !activatorEvent || !scrollAdjustedTranslate) {\n return;\n }\n\n const {\n onDragOver\n } = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over = overContainer && overContainer.rect.current ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled\n } : null;\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver == null ? void 0 : onDragOver(event);\n dispatchMonitorEvent({\n type: 'onDragOver',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]);\n useIsomorphicLayoutEffect(() => {\n sensorContext.current = {\n activatorEvent,\n active,\n activeNode,\n collisionRect,\n collisions,\n droppableRects,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate\n };\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect\n };\n }, [active, activeNode, collisions, collisionRect, draggableNodes, draggingNode, draggingNodeRect, droppableRects, droppableContainers, over, scrollableAncestors, scrollAdjustedTranslate]);\n useAutoScroller({ ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects\n });\n const publicContext = useMemo(() => {\n const context = {\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect\n };\n return context;\n }, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect]);\n const internalContext = useMemo(() => {\n const context = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers\n };\n return context;\n }, [activatorEvent, activators, active, activeNodeRect, dispatch, draggableDescribedById, draggableNodes, over, measureDroppableContainers]);\n return React.createElement(DndMonitorContext.Provider, {\n value: registerMonitorListener\n }, React.createElement(InternalContext.Provider, {\n value: internalContext\n }, React.createElement(PublicContext.Provider, {\n value: publicContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: transform\n }, children)), React.createElement(RestoreFocus, {\n disabled: (accessibility == null ? void 0 : accessibility.restoreFocus) === false\n })), React.createElement(Accessibility, { ...accessibility,\n hiddenTextDescribedById: draggableDescribedById\n }));\n\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll = (activeSensor == null ? void 0 : activeSensor.autoScrollEnabled) === false;\n const autoScrollGloballyDisabled = typeof autoScroll === 'object' ? autoScroll.enabled === false : autoScroll === false;\n const enabled = isInitialized && !activeSensorDisablesAutoscroll && !autoScrollGloballyDisabled;\n\n if (typeof autoScroll === 'object') {\n return { ...autoScroll,\n enabled\n };\n }\n\n return {\n enabled\n };\n }\n});\n\nconst NullContext = /*#__PURE__*/createContext(null);\nconst defaultRole = 'button';\nconst ID_PREFIX = 'Draggable';\nfunction useDraggable(_ref) {\n let {\n id,\n data,\n disabled = false,\n attributes\n } = _ref;\n const key = useUniqueId(ID_PREFIX);\n const {\n activators,\n activatorEvent,\n active,\n activeNodeRect,\n ariaDescribedById,\n draggableNodes,\n over\n } = useContext(InternalContext);\n const {\n role = defaultRole,\n roleDescription = 'draggable',\n tabIndex = 0\n } = attributes != null ? attributes : {};\n const isDragging = (active == null ? void 0 : active.id) === id;\n const transform = useContext(isDragging ? ActiveDraggableContext : NullContext);\n const [node, setNodeRef] = useNodeRef();\n const [activatorNode, setActivatorNodeRef] = useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = useLatestValue(data);\n useIsomorphicLayoutEffect(() => {\n draggableNodes.set(id, {\n id,\n key,\n node,\n activatorNode,\n data: dataRef\n });\n return () => {\n const node = draggableNodes.get(id);\n\n if (node && node.key === key) {\n draggableNodes.delete(id);\n }\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]);\n const memoizedAttributes = useMemo(() => ({\n role,\n tabIndex,\n 'aria-disabled': disabled,\n 'aria-pressed': isDragging && role === defaultRole ? true : undefined,\n 'aria-roledescription': roleDescription,\n 'aria-describedby': ariaDescribedById.draggable\n }), [disabled, role, tabIndex, isDragging, roleDescription, ariaDescribedById.draggable]);\n return {\n active,\n activatorEvent,\n activeNodeRect,\n attributes: memoizedAttributes,\n isDragging,\n listeners: disabled ? undefined : listeners,\n node,\n over,\n setNodeRef,\n setActivatorNodeRef,\n transform\n };\n}\n\nfunction useDndContext() {\n return useContext(PublicContext);\n}\n\nconst ID_PREFIX$1 = 'Droppable';\nconst defaultResizeObserverConfig = {\n timeout: 25\n};\nfunction useDroppable(_ref) {\n let {\n data,\n disabled = false,\n id,\n resizeObserverConfig\n } = _ref;\n const key = useUniqueId(ID_PREFIX$1);\n const {\n active,\n dispatch,\n over,\n measureDroppableContainers\n } = useContext(InternalContext);\n const previous = useRef({\n disabled\n });\n const resizeObserverConnected = useRef(false);\n const rect = useRef(null);\n const callbackId = useRef(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout\n } = { ...defaultResizeObserverConfig,\n ...resizeObserverConfig\n };\n const ids = useLatestValue(updateMeasurementsFor != null ? updateMeasurementsFor : id);\n const handleResize = useCallback(() => {\n if (!resizeObserverConnected.current) {\n // ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,\n // assuming the element is rendered and displayed.\n resizeObserverConnected.current = true;\n return;\n }\n\n if (callbackId.current != null) {\n clearTimeout(callbackId.current);\n }\n\n callbackId.current = setTimeout(() => {\n measureDroppableContainers(Array.isArray(ids.current) ? ids.current : [ids.current]);\n callbackId.current = null;\n }, resizeObserverTimeout);\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]);\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active\n });\n const handleNodeChange = useCallback((newElement, previousElement) => {\n if (!resizeObserver) {\n return;\n }\n\n if (previousElement) {\n resizeObserver.unobserve(previousElement);\n resizeObserverConnected.current = false;\n }\n\n if (newElement) {\n resizeObserver.observe(newElement);\n }\n }, [resizeObserver]);\n const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange);\n const dataRef = useLatestValue(data);\n useEffect(() => {\n if (!resizeObserver || !nodeRef.current) {\n return;\n }\n\n resizeObserver.disconnect();\n resizeObserverConnected.current = false;\n resizeObserver.observe(nodeRef.current);\n }, [nodeRef, resizeObserver]);\n useEffect(() => {\n dispatch({\n type: Action.RegisterDroppable,\n element: {\n id,\n key,\n disabled,\n node: nodeRef,\n rect,\n data: dataRef\n }\n });\n return () => dispatch({\n type: Action.UnregisterDroppable,\n key,\n id\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]);\n useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled\n });\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n return {\n active,\n rect,\n isOver: (over == null ? void 0 : over.id) === id,\n node: nodeRef,\n over,\n setNodeRef\n };\n}\n\nfunction AnimationManager(_ref) {\n let {\n animation,\n children\n } = _ref;\n const [clonedChildren, setClonedChildren] = useState(null);\n const [element, setElement] = useState(null);\n const previousChildren = usePrevious(children);\n\n if (!children && !clonedChildren && previousChildren) {\n setClonedChildren(previousChildren);\n }\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n return;\n }\n\n const key = clonedChildren == null ? void 0 : clonedChildren.key;\n const id = clonedChildren == null ? void 0 : clonedChildren.props.id;\n\n if (key == null || id == null) {\n setClonedChildren(null);\n return;\n }\n\n Promise.resolve(animation(id, element)).then(() => {\n setClonedChildren(null);\n });\n }, [animation, clonedChildren, element]);\n return React.createElement(React.Fragment, null, children, clonedChildren ? cloneElement(clonedChildren, {\n ref: setElement\n }) : null);\n}\n\nconst defaultTransform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction NullifiedContextProvider(_ref) {\n let {\n children\n } = _ref;\n return React.createElement(InternalContext.Provider, {\n value: defaultInternalContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: defaultTransform\n }, children));\n}\n\nconst baseStyles = {\n position: 'fixed',\n touchAction: 'none'\n};\n\nconst defaultTransition = activatorEvent => {\n const isKeyboardActivator = isKeyboardEvent(activatorEvent);\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\n\nconst PositionedOverlay = /*#__PURE__*/forwardRef((_ref, ref) => {\n let {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition\n } = _ref;\n\n if (!rect) {\n return null;\n }\n\n const scaleAdjustedTransform = adjustScale ? transform : { ...transform,\n scaleX: 1,\n scaleY: 1\n };\n const styles = { ...baseStyles,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n transform: CSS.Transform.toString(scaleAdjustedTransform),\n transformOrigin: adjustScale && activatorEvent ? getRelativeTransformOrigin(activatorEvent, rect) : undefined,\n transition: typeof transition === 'function' ? transition(activatorEvent) : transition,\n ...style\n };\n return React.createElement(as, {\n className,\n style: styles,\n ref\n }, children);\n});\n\nconst defaultDropAnimationSideEffects = options => _ref => {\n let {\n active,\n dragOverlay\n } = _ref;\n const originalStyles = {};\n const {\n styles,\n className\n } = options;\n\n if (styles != null && styles.active) {\n for (const [key, value] of Object.entries(styles.active)) {\n if (value === undefined) {\n continue;\n }\n\n originalStyles[key] = active.node.style.getPropertyValue(key);\n active.node.style.setProperty(key, value);\n }\n }\n\n if (styles != null && styles.dragOverlay) {\n for (const [key, value] of Object.entries(styles.dragOverlay)) {\n if (value === undefined) {\n continue;\n }\n\n dragOverlay.node.style.setProperty(key, value);\n }\n }\n\n if (className != null && className.active) {\n active.node.classList.add(className.active);\n }\n\n if (className != null && className.dragOverlay) {\n dragOverlay.node.classList.add(className.dragOverlay);\n }\n\n return function cleanup() {\n for (const [key, value] of Object.entries(originalStyles)) {\n active.node.style.setProperty(key, value);\n }\n\n if (className != null && className.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\n\nconst defaultKeyframeResolver = _ref2 => {\n let {\n transform: {\n initial,\n final\n }\n } = _ref2;\n return [{\n transform: CSS.Transform.toString(initial)\n }, {\n transform: CSS.Transform.toString(final)\n }];\n};\n\nconst defaultDropAnimationConfiguration = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: /*#__PURE__*/defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0'\n }\n }\n })\n};\nfunction useDropAnimation(_ref3) {\n let {\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n } = _ref3;\n return useEvent((id, node) => {\n if (config === null) {\n return;\n }\n\n const activeDraggable = draggableNodes.get(id);\n\n if (!activeDraggable) {\n return;\n }\n\n const activeNode = activeDraggable.node.current;\n\n if (!activeNode) {\n return;\n }\n\n const measurableNode = getMeasurableNode(node);\n\n if (!measurableNode) {\n return;\n }\n\n const {\n transform\n } = getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return;\n }\n\n const animation = typeof config === 'function' ? config : createDefaultDropAnimation(config);\n scrollIntoViewIfNeeded(activeNode, measuringConfiguration.draggable.measure);\n return animation({\n active: {\n id,\n data: activeDraggable.data,\n node: activeNode,\n rect: measuringConfiguration.draggable.measure(activeNode)\n },\n draggableNodes,\n dragOverlay: {\n node,\n rect: measuringConfiguration.dragOverlay.measure(measurableNode)\n },\n droppableContainers,\n measuringConfiguration,\n transform: parsedTransform\n });\n });\n}\n\nfunction createDefaultDropAnimation(options) {\n const {\n duration,\n easing,\n sideEffects,\n keyframes\n } = { ...defaultDropAnimationConfiguration,\n ...options\n };\n return _ref4 => {\n let {\n active,\n dragOverlay,\n transform,\n ...rest\n } = _ref4;\n\n if (!duration) {\n // Do not animate if animation duration is zero.\n return;\n }\n\n const delta = {\n x: dragOverlay.rect.left - active.rect.left,\n y: dragOverlay.rect.top - active.rect.top\n };\n const scale = {\n scaleX: transform.scaleX !== 1 ? active.rect.width * transform.scaleX / dragOverlay.rect.width : 1,\n scaleY: transform.scaleY !== 1 ? active.rect.height * transform.scaleY / dragOverlay.rect.height : 1\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale\n };\n const animationKeyframes = keyframes({ ...rest,\n active,\n dragOverlay,\n transform: {\n initial: transform,\n final: finalTransform\n }\n });\n const [firstKeyframe] = animationKeyframes;\n const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];\n\n if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {\n // The start and end keyframes are the same, infer that there is no animation needed.\n return;\n }\n\n const cleanup = sideEffects == null ? void 0 : sideEffects({\n active,\n dragOverlay,\n ...rest\n });\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards'\n });\n return new Promise(resolve => {\n animation.onfinish = () => {\n cleanup == null ? void 0 : cleanup();\n resolve();\n };\n });\n };\n}\n\nlet key = 0;\nfunction useKey(id) {\n return useMemo(() => {\n if (id == null) {\n return;\n }\n\n key++;\n return key;\n }, [id]);\n}\n\nconst DragOverlay = /*#__PURE__*/React.memo(_ref => {\n let {\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999\n } = _ref;\n const {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggableNodes,\n droppableContainers,\n dragOverlay,\n over,\n measuringConfiguration,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n } = useDndContext();\n const transform = useContext(ActiveDraggableContext);\n const key = useKey(active == null ? void 0 : active.id);\n const modifiedTransform = applyModifiers(modifiers, {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect: dragOverlay.rect,\n over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n transform,\n windowRect\n });\n const initialRect = useInitialValue(activeNodeRect);\n const dropAnimation = useDropAnimation({\n config: dropAnimationConfig,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n }); // We need to wait for the active node to be measured before connecting the drag overlay ref\n // otherwise collisions can be computed against a mispositioned drag overlay\n\n const ref = initialRect ? dragOverlay.setRef : undefined;\n return React.createElement(NullifiedContextProvider, null, React.createElement(AnimationManager, {\n animation: dropAnimation\n }, active && key ? React.createElement(PositionedOverlay, {\n key: key,\n id: active.id,\n ref: ref,\n as: wrapperElement,\n activatorEvent: activatorEvent,\n adjustScale: adjustScale,\n className: className,\n transition: transition,\n rect: initialRect,\n style: {\n zIndex,\n ...style\n },\n transform: modifiedTransform\n }, children) : null));\n});\n\nexport { AutoScrollActivator, DndContext, DragOverlay, KeyboardCode, KeyboardSensor, MeasuringFrequency, MeasuringStrategy, MouseSensor, PointerSensor, TouchSensor, TraversalOrder, applyModifiers, closestCenter, closestCorners, defaultAnnouncements, defaultCoordinates, defaultDropAnimationConfiguration as defaultDropAnimation, defaultDropAnimationSideEffects, defaultKeyboardCoordinateGetter, defaultScreenReaderInstructions, getClientRect, getFirstCollision, getScrollableAncestors, pointerWithin, rectIntersection, useDndContext, useDndMonitor, useDraggable, useDroppable, useSensor, useSensors };\n//# sourceMappingURL=core.esm.js.map\n","import React, { useMemo, useRef, useEffect, useState, useContext } from 'react';\nimport { useDndContext, getClientRect, useDroppable, useDraggable, closestCorners, getFirstCollision, getScrollableAncestors, KeyboardCode } from '@dnd-kit/core';\nimport { useUniqueId, useIsomorphicLayoutEffect, CSS, useCombinedRefs, isKeyboardEvent, subtract } from '@dnd-kit/utilities';\n\n/**\r\n * Move an array item to a different position. Returns a new array with the item moved to the new position.\r\n */\nfunction arrayMove(array, from, to) {\n const newArray = array.slice();\n newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\n\n/**\r\n * Swap an array item to a different position. Returns a new array with the item swapped to the new position.\r\n */\nfunction arraySwap(array, from, to) {\n const newArray = array.slice();\n newArray[from] = array[to];\n newArray[to] = array[from];\n return newArray;\n}\n\nfunction getSortedRects(items, rects) {\n return items.reduce((accumulator, id, index) => {\n const rect = rects.get(id);\n\n if (rect) {\n accumulator[index] = rect;\n }\n\n return accumulator;\n }, Array(items.length));\n}\n\nfunction isValidIndex(index) {\n return index !== null && index >= 0;\n}\n\nfunction itemsEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction normalizeDisabled(disabled) {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled\n };\n }\n\n return disabled;\n}\n\n// To-do: We should be calculating scale transformation\nconst defaultScale = {\n scaleX: 1,\n scaleY: 1\n};\nconst horizontalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n rects,\n activeNodeRect: fallbackActiveRect,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n const itemGap = getItemGap(rects, index, activeIndex);\n\n if (index === activeIndex) {\n const newIndexRect = rects[overIndex];\n\n if (!newIndexRect) {\n return null;\n }\n\n return {\n x: activeIndex < overIndex ? newIndexRect.left + newIndexRect.width - (activeNodeRect.left + activeNodeRect.width) : newIndexRect.left - activeNodeRect.left,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: -activeNodeRect.width - itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: activeNodeRect.width + itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale\n };\n};\n\nfunction getItemGap(rects, index, activeIndex) {\n const currentRect = rects[index];\n const previousRect = rects[index - 1];\n const nextRect = rects[index + 1];\n\n if (!currentRect || !previousRect && !nextRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.left - (previousRect.left + previousRect.width) : nextRect.left - (currentRect.left + currentRect.width);\n }\n\n return nextRect ? nextRect.left - (currentRect.left + currentRect.width) : currentRect.left - (previousRect.left + previousRect.width);\n}\n\nconst rectSortingStrategy = _ref => {\n let {\n rects,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const newRects = arrayMove(rects, overIndex, activeIndex);\n const oldRect = rects[index];\n const newRect = newRects[index];\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\nconst rectSwappingStrategy = _ref => {\n let {\n activeIndex,\n index,\n rects,\n overIndex\n } = _ref;\n let oldRect;\n let newRect;\n\n if (index === activeIndex) {\n oldRect = rects[index];\n newRect = rects[overIndex];\n }\n\n if (index === overIndex) {\n oldRect = rects[index];\n newRect = rects[activeIndex];\n }\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\n// To-do: We should be calculating scale transformation\nconst defaultScale$1 = {\n scaleX: 1,\n scaleY: 1\n};\nconst verticalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n activeIndex,\n activeNodeRect: fallbackActiveRect,\n index,\n rects,\n overIndex\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n if (index === activeIndex) {\n const overIndexRect = rects[overIndex];\n\n if (!overIndexRect) {\n return null;\n }\n\n return {\n x: 0,\n y: activeIndex < overIndex ? overIndexRect.top + overIndexRect.height - (activeNodeRect.top + activeNodeRect.height) : overIndexRect.top - activeNodeRect.top,\n ...defaultScale$1\n };\n }\n\n const itemGap = getItemGap$1(rects, index, activeIndex);\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: 0,\n y: -activeNodeRect.height - itemGap,\n ...defaultScale$1\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: 0,\n y: activeNodeRect.height + itemGap,\n ...defaultScale$1\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale$1\n };\n};\n\nfunction getItemGap$1(clientRects, index, activeIndex) {\n const currentRect = clientRects[index];\n const previousRect = clientRects[index - 1];\n const nextRect = clientRects[index + 1];\n\n if (!currentRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.top - (previousRect.top + previousRect.height) : nextRect ? nextRect.top - (currentRect.top + currentRect.height) : 0;\n }\n\n return nextRect ? nextRect.top - (currentRect.top + currentRect.height) : previousRect ? currentRect.top - (previousRect.top + previousRect.height) : 0;\n}\n\nconst ID_PREFIX = 'Sortable';\nconst Context = /*#__PURE__*/React.createContext({\n activeIndex: -1,\n containerId: ID_PREFIX,\n disableTransforms: false,\n items: [],\n overIndex: -1,\n useDragOverlay: false,\n sortedRects: [],\n strategy: rectSortingStrategy,\n disabled: {\n draggable: false,\n droppable: false\n }\n});\nfunction SortableContext(_ref) {\n let {\n children,\n id,\n items: userDefinedItems,\n strategy = rectSortingStrategy,\n disabled: disabledProp = false\n } = _ref;\n const {\n active,\n dragOverlay,\n droppableRects,\n over,\n measureDroppableContainers\n } = useDndContext();\n const containerId = useUniqueId(ID_PREFIX, id);\n const useDragOverlay = Boolean(dragOverlay.rect !== null);\n const items = useMemo(() => userDefinedItems.map(item => typeof item === 'object' && 'id' in item ? item.id : item), [userDefinedItems]);\n const isDragging = active != null;\n const activeIndex = active ? items.indexOf(active.id) : -1;\n const overIndex = over ? items.indexOf(over.id) : -1;\n const previousItemsRef = useRef(items);\n const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);\n const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;\n const disabled = normalizeDisabled(disabledProp);\n useIsomorphicLayoutEffect(() => {\n if (itemsHaveChanged && isDragging) {\n measureDroppableContainers(items);\n }\n }, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);\n useEffect(() => {\n previousItemsRef.current = items;\n }, [items]);\n const contextValue = useMemo(() => ({\n activeIndex,\n containerId,\n disabled,\n disableTransforms,\n items,\n overIndex,\n useDragOverlay,\n sortedRects: getSortedRects(items, droppableRects),\n strategy\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeIndex, containerId, disabled.draggable, disabled.droppable, disableTransforms, items, overIndex, droppableRects, useDragOverlay, strategy]);\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nconst defaultNewIndexGetter = _ref => {\n let {\n id,\n items,\n activeIndex,\n overIndex\n } = _ref;\n return arrayMove(items, activeIndex, overIndex).indexOf(id);\n};\nconst defaultAnimateLayoutChanges = _ref2 => {\n let {\n containerId,\n isSorting,\n wasDragging,\n index,\n items,\n newIndex,\n previousItems,\n previousContainerId,\n transition\n } = _ref2;\n\n if (!transition || !wasDragging) {\n return false;\n }\n\n if (previousItems !== items && index === newIndex) {\n return false;\n }\n\n if (isSorting) {\n return true;\n }\n\n return newIndex !== index && containerId === previousContainerId;\n};\nconst defaultTransition = {\n duration: 200,\n easing: 'ease'\n};\nconst transitionProperty = 'transform';\nconst disabledTransition = /*#__PURE__*/CSS.Transition.toString({\n property: transitionProperty,\n duration: 0,\n easing: 'linear'\n});\nconst defaultAttributes = {\n roleDescription: 'sortable'\n};\n\n/*\r\n * When the index of an item changes while sorting,\r\n * we need to temporarily disable the transforms\r\n */\n\nfunction useDerivedTransform(_ref) {\n let {\n disabled,\n index,\n node,\n rect\n } = _ref;\n const [derivedTransform, setDerivedtransform] = useState(null);\n const previousIndex = useRef(index);\n useIsomorphicLayoutEffect(() => {\n if (!disabled && index !== previousIndex.current && node.current) {\n const initial = rect.current;\n\n if (initial) {\n const current = getClientRect(node.current, {\n ignoreTransform: true\n });\n const delta = {\n x: initial.left - current.left,\n y: initial.top - current.top,\n scaleX: initial.width / current.width,\n scaleY: initial.height / current.height\n };\n\n if (delta.x || delta.y) {\n setDerivedtransform(delta);\n }\n }\n }\n\n if (index !== previousIndex.current) {\n previousIndex.current = index;\n }\n }, [disabled, index, node, rect]);\n useEffect(() => {\n if (derivedTransform) {\n setDerivedtransform(null);\n }\n }, [derivedTransform]);\n return derivedTransform;\n}\n\nfunction useSortable(_ref) {\n let {\n animateLayoutChanges = defaultAnimateLayoutChanges,\n attributes: userDefinedAttributes,\n disabled: localDisabled,\n data: customData,\n getNewIndex = defaultNewIndexGetter,\n id,\n strategy: localStrategy,\n resizeObserverConfig,\n transition = defaultTransition\n } = _ref;\n const {\n items,\n containerId,\n activeIndex,\n disabled: globalDisabled,\n disableTransforms,\n sortedRects,\n overIndex,\n useDragOverlay,\n strategy: globalStrategy\n } = useContext(Context);\n const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);\n const index = items.indexOf(id);\n const data = useMemo(() => ({\n sortable: {\n containerId,\n index,\n items\n },\n ...customData\n }), [containerId, customData, index, items]);\n const itemsAfterCurrentSortable = useMemo(() => items.slice(items.indexOf(id)), [items, id]);\n const {\n rect,\n node,\n isOver,\n setNodeRef: setDroppableNodeRef\n } = useDroppable({\n id,\n data,\n disabled: disabled.droppable,\n resizeObserverConfig: {\n updateMeasurementsFor: itemsAfterCurrentSortable,\n ...resizeObserverConfig\n }\n });\n const {\n active,\n activatorEvent,\n activeNodeRect,\n attributes,\n setNodeRef: setDraggableNodeRef,\n listeners,\n isDragging,\n over,\n setActivatorNodeRef,\n transform\n } = useDraggable({\n id,\n data,\n attributes: { ...defaultAttributes,\n ...userDefinedAttributes\n },\n disabled: disabled.draggable\n });\n const setNodeRef = useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);\n const isSorting = Boolean(active);\n const displaceItem = isSorting && !disableTransforms && isValidIndex(activeIndex) && isValidIndex(overIndex);\n const shouldDisplaceDragSource = !useDragOverlay && isDragging;\n const dragSourceDisplacement = shouldDisplaceDragSource && displaceItem ? transform : null;\n const strategy = localStrategy != null ? localStrategy : globalStrategy;\n const finalTransform = displaceItem ? dragSourceDisplacement != null ? dragSourceDisplacement : strategy({\n rects: sortedRects,\n activeNodeRect,\n activeIndex,\n overIndex,\n index\n }) : null;\n const newIndex = isValidIndex(activeIndex) && isValidIndex(overIndex) ? getNewIndex({\n id,\n items,\n activeIndex,\n overIndex\n }) : index;\n const activeId = active == null ? void 0 : active.id;\n const previous = useRef({\n activeId,\n items,\n newIndex,\n containerId\n });\n const itemsHaveChanged = items !== previous.current.items;\n const shouldAnimateLayoutChanges = animateLayoutChanges({\n active,\n containerId,\n isDragging,\n isSorting,\n id,\n index,\n items,\n newIndex: previous.current.newIndex,\n previousItems: previous.current.items,\n previousContainerId: previous.current.containerId,\n transition,\n wasDragging: previous.current.activeId != null\n });\n const derivedTransform = useDerivedTransform({\n disabled: !shouldAnimateLayoutChanges,\n index,\n node,\n rect\n });\n useEffect(() => {\n if (isSorting && previous.current.newIndex !== newIndex) {\n previous.current.newIndex = newIndex;\n }\n\n if (containerId !== previous.current.containerId) {\n previous.current.containerId = containerId;\n }\n\n if (items !== previous.current.items) {\n previous.current.items = items;\n }\n }, [isSorting, newIndex, containerId, items]);\n useEffect(() => {\n if (activeId === previous.current.activeId) {\n return;\n }\n\n if (activeId && !previous.current.activeId) {\n previous.current.activeId = activeId;\n return;\n }\n\n const timeoutId = setTimeout(() => {\n previous.current.activeId = activeId;\n }, 50);\n return () => clearTimeout(timeoutId);\n }, [activeId]);\n return {\n active,\n activeIndex,\n attributes,\n data,\n rect,\n index,\n newIndex,\n items,\n isOver,\n isSorting,\n isDragging,\n listeners,\n node,\n overIndex,\n over,\n setNodeRef,\n setActivatorNodeRef,\n setDroppableNodeRef,\n setDraggableNodeRef,\n transform: derivedTransform != null ? derivedTransform : finalTransform,\n transition: getTransition()\n };\n\n function getTransition() {\n if ( // Temporarily disable transitions for a single frame to set up derived transforms\n derivedTransform || // Or to prevent items jumping to back to their \"new\" position when items change\n itemsHaveChanged && previous.current.newIndex === index) {\n return disabledTransition;\n }\n\n if (shouldDisplaceDragSource && !isKeyboardEvent(activatorEvent) || !transition) {\n return undefined;\n }\n\n if (isSorting || shouldAnimateLayoutChanges) {\n return CSS.Transition.toString({ ...transition,\n property: transitionProperty\n });\n }\n\n return undefined;\n }\n}\n\nfunction normalizeLocalDisabled(localDisabled, globalDisabled) {\n var _localDisabled$dragga, _localDisabled$droppa;\n\n if (typeof localDisabled === 'boolean') {\n return {\n draggable: localDisabled,\n // Backwards compatibility\n droppable: false\n };\n }\n\n return {\n draggable: (_localDisabled$dragga = localDisabled == null ? void 0 : localDisabled.draggable) != null ? _localDisabled$dragga : globalDisabled.draggable,\n droppable: (_localDisabled$droppa = localDisabled == null ? void 0 : localDisabled.droppable) != null ? _localDisabled$droppa : globalDisabled.droppable\n };\n}\n\nfunction hasSortableData(entry) {\n if (!entry) {\n return false;\n }\n\n const data = entry.data.current;\n\n if (data && 'sortable' in data && typeof data.sortable === 'object' && 'containerId' in data.sortable && 'items' in data.sortable && 'index' in data.sortable) {\n return true;\n }\n\n return false;\n}\n\nconst directions = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\nconst sortableKeyboardCoordinates = (event, _ref) => {\n let {\n context: {\n active,\n collisionRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors\n }\n } = _ref;\n\n if (directions.includes(event.code)) {\n event.preventDefault();\n\n if (!active || !collisionRect) {\n return;\n }\n\n const filteredContainers = [];\n droppableContainers.getEnabled().forEach(entry => {\n if (!entry || entry != null && entry.disabled) {\n return;\n }\n\n const rect = droppableRects.get(entry.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Left:\n if (collisionRect.left > rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Right:\n if (collisionRect.left < rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n }\n });\n const collisions = closestCorners({\n active,\n collisionRect: collisionRect,\n droppableRects,\n droppableContainers: filteredContainers,\n pointerCoordinates: null\n });\n let closestId = getFirstCollision(collisions, 'id');\n\n if (closestId === (over == null ? void 0 : over.id) && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null) {\n const activeDroppable = droppableContainers.get(active.id);\n const newDroppable = droppableContainers.get(closestId);\n const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;\n const newNode = newDroppable == null ? void 0 : newDroppable.node.current;\n\n if (newNode && newRect && activeDroppable && newDroppable) {\n const newScrollAncestors = getScrollableAncestors(newNode);\n const hasDifferentScrollAncestors = newScrollAncestors.some((element, index) => scrollableAncestors[index] !== element);\n const hasSameContainer = isSameContainer(activeDroppable, newDroppable);\n const isAfterActive = isAfter(activeDroppable, newDroppable);\n const offset = hasDifferentScrollAncestors || !hasSameContainer ? {\n x: 0,\n y: 0\n } : {\n x: isAfterActive ? collisionRect.width - newRect.width : 0,\n y: isAfterActive ? collisionRect.height - newRect.height : 0\n };\n const rectCoordinates = {\n x: newRect.left,\n y: newRect.top\n };\n const newCoordinates = offset.x && offset.y ? rectCoordinates : subtract(rectCoordinates, offset);\n return newCoordinates;\n }\n }\n }\n\n return undefined;\n};\n\nfunction isSameContainer(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n return a.data.current.sortable.containerId === b.data.current.sortable.containerId;\n}\n\nfunction isAfter(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n if (!isSameContainer(a, b)) {\n return false;\n }\n\n return a.data.current.sortable.index < b.data.current.sortable.index;\n}\n\nexport { SortableContext, arrayMove, arraySwap, defaultAnimateLayoutChanges, defaultNewIndexGetter, hasSortableData, horizontalListSortingStrategy, rectSortingStrategy, rectSwappingStrategy, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy };\n//# sourceMappingURL=sortable.esm.js.map\n","import { jsxs as p, jsx as e, Fragment as Ze } from \"react/jsx-runtime\";\nimport { execute as ve } from \"@/common/services/QueryBuilder\";\nimport { showToast as ie } from \"@/common/toaster/toaster\";\nimport { useDroppable as nt, DndContext as Nt, useDraggable as Mt, DragOverlay as an, rectIntersection as At, closestCenter as sn } from \"@dnd-kit/core\";\nimport { SortableContext as De, verticalListSortingStrategy as Ue, arrayMove as Pe, useSortable as rt } from \"@dnd-kit/sortable\";\nimport { Box as U, Typography as S, FormControl as Ve, InputLabel as ln, Select as cn, MenuItem as Tt, Tooltip as dn, Paper as xe, IconButton as un, Divider as ot, Button as Ge, Switch as Ot, TextField as Qe, InputAdornment as pn, Accordion as Ye, AccordionSummary as Je, AccordionDetails as Xe, Grid2 as fn, Autocomplete as mn } from \"@mui/material\";\nimport v from \"@mui/material/Grid2\";\nimport { Grid as ye, Box as N } from \"@mui/system\";\nimport K, { createContext as hn, useState as k, useCallback as Re, useMemo as Fe, useEffect as Ke } from \"react\";\nimport { useForm as gn } from \"react-hook-form\";\nimport { useSelector as xn } from \"react-redux\";\nimport { useLocation as yn, useNavigate as bn } from \"react-router\";\nimport Sn from \"@/views/custom-components/CustomDropdown\";\nimport m from \"prop-types\";\nimport { FontAwesomeIcon as W } from \"@fortawesome/react-fontawesome\";\nimport { faWifi as Cn, faSignal as In, faBatteryFull as vn, faLocationDot as Rn, faRotate as wn, faBell as En, faCircleUser as An, faChevronDown as _t, faMagnifyingGlass as kt, faTimes as Tn, faTrashCan as On } from \"@fortawesome/free-solid-svg-icons\";\nimport Nn from \"@/assets/img/home.svg\";\nimport Mn from \"@/assets/img/programs.svg\";\nimport _n from \"@/assets/img/analytics.svg\";\nimport kn from \"@/assets/img/family-management.svg\";\nimport { CSS as Fn } from \"@dnd-kit/utilities\";\nimport X from \"@/common/fontAwesomeIcons/FontAwesomeIcons\";\nimport { generateUUID as ge } from \"@/utils/UUIDgenerator\";\nimport Pn from \"@/views/custom-components/CustomConfirmationModal\";\nimport './AddMenuConfiguration.css';const Gn = hn(), Dn = ({ id: o, children: c, componentType: d }) => {\n const { attributes: b, listeners: E, setNodeRef: u, isDragging: y } = rt({\n id: o,\n data: { sortable: !0, type: d }\n }), R = {\n opacity: y ? 0.3 : 1\n };\n return K.cloneElement(c, {\n ref: u,\n style: { ...c.props.style, ...R },\n dnd: { listeners: E, attributes: b }\n });\n}, Un = ({ id: o, children: c, componentType: d }) => {\n const { attributes: b, listeners: E, setNodeRef: u, isDragging: y } = Mt({\n id: o,\n data: {\n type: d,\n deletable: !0\n }\n }), R = {\n opacity: y ? 0.3 : 1\n };\n return K.cloneElement(c, {\n ref: u,\n style: { ...c.props.style, ...R },\n ...E,\n ...b\n });\n}, Ft = ({ id: o, children: c, sectionId: d, featureName: b }) => {\n const { attributes: E, listeners: u, setNodeRef: y, isDragging: R } = rt({\n id: o,\n data: {\n sortable: !0,\n type: \"FEATURE_TILE\",\n sectionId: d,\n name: b\n }\n }), F = {\n opacity: R ? 0.3 : 1\n };\n return K.cloneElement(c, {\n ref: y,\n style: { ...c.props.style, ...F },\n ...E,\n ...u\n });\n}, it = K.forwardRef(({ id: o, style: c, handleSectionClick: d, ...b }, E) => /* @__PURE__ */ p(\n U,\n {\n id: o,\n ref: E,\n onContextMenu: (y) => {\n y.preventDefault(), d(o);\n },\n sx: {\n ...c,\n width: \"100%\",\n minHeight: \"50px\",\n p: 1.5,\n border: \"1px solid #ccc\",\n borderRadius: \"8px\",\n backgroundColor: \"#fff\",\n display: \"flex\",\n alignItems: \"center\",\n mt: 1,\n boxShadow: \"0 1px 3px rgba(0,0,0,0.05)\",\n mb: 3\n },\n ...b,\n children: [\n /* @__PURE__ */ e(W, { icon: kt, style: { marginRight: \"8px\", color: \"#888\" } }),\n /* @__PURE__ */ e(S, { variant: \"body2\", color: \"textSecondary\", sx: { flexGrow: 1 }, children: \"Search...\" })\n ]\n }\n));\nit.displayName = \"MobileSearchBar\";\nit.propTypes = {\n id: m.any,\n style: m.any,\n handleSectionClick: m.any\n};\nconst at = K.forwardRef(\n ({\n id: o,\n arrayIndex: c,\n sectionTitle: d,\n handleSectionClick: b,\n dnd: E,\n sectionFeatures: u,\n SvgIconBox: y,\n onGroupClick: R,\n activeGroupId: F,\n ...Q\n }, ee) => {\n const { listeners: de, attributes: T } = E || {}, te = (A) => {\n A.preventDefault(), b(o);\n }, M = (A) => {\n A.stopPropagation();\n }, ne = (A, j) => {\n A.preventDefault(), A.stopPropagation(), R && R(A, j);\n }, { setNodeRef: ae, isOver: ue } = nt({\n id: `section-drop-zone-${o}`,\n data: {\n type: \"SECTION_DROP_ZONE\",\n sectionId: o\n }\n });\n return /* @__PURE__ */ p(\n U,\n {\n id: o,\n ref: ee,\n ...de,\n ...T,\n onContextMenu: te,\n sx: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n justifyContent: \"flex-start\",\n p: 1,\n border: ue ? \"1px dashed #073149\" : \"0.1px solid #A9BCCD\",\n cursor: \"pointer\",\n backgroundColor: \"#e6f0ff\",\n borderRadius: \"14px\",\n mt: 1\n },\n ...Q,\n children: [\n /* @__PURE__ */ e(\n U,\n {\n sx: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n width: \"100%\",\n mb: 0.5\n },\n children: /* @__PURE__ */ e(S, { variant: \"body2\", sx: { fontWeight: \"bold\", color: \"#073149\", flexGrow: 1 }, children: d || `Section ${c + 1}` })\n }\n ),\n /* @__PURE__ */ e(\n U,\n {\n ref: ae,\n sx: {\n width: \"100%\",\n minHeight: \"40px\",\n border: `${ue ? \"1px dashed #073149\" : \"\"}`,\n borderRadius: \"4px\",\n textAlign: \"center\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: (u == null ? void 0 : u.length) > 0 ? \"flex-start\" : \"center\",\n transition: \"background-color 0.1s\"\n },\n children: (u == null ? void 0 : u.length) > 0 ? /* @__PURE__ */ e(De, { items: u.map((A) => A.instanceId), strategy: Ue, children: /* @__PURE__ */ e(ye, { container: !0, spacing: 1, sx: { width: \"100%\", m: 0 }, children: u.map((A) => {\n const j = A.type === \"GROUP\", be = j && F === A.instanceId;\n return /* @__PURE__ */ e(\n Ft,\n {\n id: A.instanceId,\n sectionId: o,\n featureName: A.name,\n children: /* @__PURE__ */ e(\n ye,\n {\n item: !0,\n xs: 3,\n sm: 3,\n sx: {\n flexBasis: \"calc(25% - 8px)\",\n maxWidth: \"calc(25% - 8px)\",\n flexGrow: 0,\n flexShrink: 0,\n minWidth: 0\n },\n children: /* @__PURE__ */ p(\n U,\n {\n onClick: (P) => A.type === \"FEATURE\" && M(P),\n onContextMenu: (P) => A.type === \"GROUP\" && ne(P, A),\n sx: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n p: 0.5,\n height: \"100%\",\n backgroundColor: \"transparent\",\n cursor: j ? \"pointer\" : \"grab\",\n minWidth: 0,\n overflow: \"hidden\",\n \"&:hover\": {\n backgroundColor: \"#f5f5f5\"\n }\n },\n children: [\n Ut(\n Object.prototype.hasOwnProperty.call(A, \"icon\") ? A.icon : null,\n y\n ),\n /* @__PURE__ */ e(\n S,\n {\n variant: \"body2\",\n sx: {\n mt: 0.5,\n textAlign: \"center\",\n lineHeight: 1.2,\n width: \"100%\",\n fontSize: \"0.7rem\",\n color: \"#073149\",\n fontWeight: \"bold\",\n letterSpacing: 0.2,\n whiteSpace: \"normal\",\n wordBreak: \"break-word\",\n overflowWrap: \"break-word\"\n },\n children: Dt(A.name)\n }\n ),\n j && /* @__PURE__ */ e(U, { sx: { ml: 0.5, display: \"flex\", alignItems: \"center\" }, children: /* @__PURE__ */ e(\n W,\n {\n icon: _t,\n sx: {\n fontSize: \"0.7rem\",\n color: \"#073149\",\n transition: \"transform 0.2s\",\n transform: be ? \"rotate(180deg)\" : \"rotate(0deg)\"\n }\n }\n ) })\n ]\n }\n )\n }\n )\n },\n A.instanceId\n );\n }) }) }) : /* @__PURE__ */ e(S, { variant: \"caption\", color: \"textSecondary\", children: ue ? \"Drop Feature Here\" : \"Drag features here later.\" })\n }\n )\n ]\n }\n );\n }\n);\nat.displayName = \"MobileSection\";\nat.propTypes = {\n id: m.any,\n arrayIndex: m.any,\n sectionTitle: m.any,\n handleSectionClick: m.any,\n dnd: m.any,\n sectionFeatures: m.any,\n SvgIconBox: m.any,\n onGroupClick: m.any,\n activeGroupId: m.any\n};\nconst Pt = ({ feature: o, SvgIconBox: c, handleFeatureClick: d }) => {\n const { attributes: b, listeners: E, setNodeRef: u, transform: y, transition: R, isDragging: F } = rt({\n id: o.uuid || o.id\n }), Q = {\n transform: Fn.Transform.toString(y),\n transition: R,\n zIndex: F ? 2e3 : 1,\n opacity: F ? 0.8 : 1,\n boxShadow: F ? \"0px 4px 10px rgba(0,0,0,0.1)\" : \"none\"\n };\n return /* @__PURE__ */ e(\n ye,\n {\n item: !0,\n xs: 4,\n ref: u,\n style: Q,\n sx: {\n flexBasis: \"calc(33.3333% - 8px)\",\n maxWidth: \"calc(33.3333% - 8px)\",\n flexGrow: 0,\n flexShrink: 0,\n minWidth: 0,\n p: 0.5\n },\n children: /* @__PURE__ */ p(\n U,\n {\n onClick: (T) => {\n T.stopPropagation(), d && d();\n },\n ...E,\n ...b,\n sx: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n p: 0.5,\n height: \"100%\",\n backgroundColor: \"transparent\",\n cursor: \"grab\",\n minWidth: 0,\n overflow: \"hidden\",\n borderRadius: \"8px\",\n \"&:hover\": {\n backgroundColor: \"#f5f5f5\"\n }\n },\n children: [\n /* @__PURE__ */ e(U, { sx: { mt: 0.5, mb: 0.5, display: \"flex\", alignItems: \"center\" }, children: ((T, te) => {\n let M = null;\n if (typeof T == \"object\" && T !== null ? T.type === \"svg\" && typeof T.content == \"string\" ? M = T.content : typeof T.svg == \"string\" && (M = T.svg) : typeof T == \"string\" ? M = T : typeof o.icon == \"object\" && o.icon !== null && (M = o.icon.content || o.icon.svg), typeof M == \"string\" && M.includes(\"<svg\")) {\n const ne = M.match(/<svg[\\s\\S]*<\\/svg>/i);\n ne && (M = ne[0]);\n }\n return M ? /* @__PURE__ */ e(U, { sx: { height: \"24px\", width: \"24px\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\" }, children: /* @__PURE__ */ e(te, { svg: M }) }) : /* @__PURE__ */ e(\n U,\n {\n sx: {\n height: \"24px\",\n width: \"24px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n color: \"#b0bec5\",\n border: \"1px solid\",\n borderRadius: \"4px\",\n fontSize: \"0.8rem\"\n },\n children: \"?\"\n }\n );\n })(o.icon, c) }),\n /* @__PURE__ */ e(\n S,\n {\n variant: \"body2\",\n sx: {\n mt: 0.5,\n textAlign: \"center\",\n lineHeight: 1.2,\n width: \"100%\",\n fontSize: \"0.7rem\",\n color: \"#073149\",\n fontWeight: \"bold\",\n letterSpacing: 0.2,\n whiteSpace: \"normal\",\n wordBreak: \"break-word\",\n overflowWrap: \"break-word\",\n p: \"0 4px\"\n },\n children: o.name\n }\n )\n ]\n }\n )\n }\n );\n};\nPt.propTypes = {\n feature: m.any,\n SvgIconBox: m.any,\n handleFeatureClick: m.any\n};\nfunction Gt({\n tabStatus: o,\n layoutComponents: c,\n componentTypes: d,\n handleSectionClick: b,\n activeElementId: E,\n activeTabId: u,\n handleTabSwitch: y,\n formList: R,\n selectedForm: F,\n onFormSelect: Q,\n SvgIconBox: ee,\n setCurrentLayoutComponents: de,\n programFeatures: T\n}) {\n const te = \"mobile-content\", M = u === \"programs\" ? \"PROGRAMS_ROOT_DROP_ZONE\" : \"LAYOUT_ROOT_DROP_ZONE\", { setNodeRef: ne, isOver: ae } = nt({\n id: te,\n data: {\n type: M,\n sectionId: te\n }\n }), A = [\n { id: \"home\", label: \"Home\", icon: Nn, alt: \"Home\" },\n { id: \"programs\", label: \"Programs\", icon: Mn, alt: \"Programs\" },\n { id: \"analytics\", label: \"Analytics\", icon: _n, alt: \"Analytics\" },\n { id: \"familyManagement\", label: \"Family Management\", icon: kn, alt: \"Family Management\" }\n ].filter((f) => o[f.id]), j = c.find((f) => f.type === d.SEARCH_BAR), be = c.filter((f) => f.type === d.SECTION), [P, se] = k({\n anchorEl: null,\n groupData: null\n }), $ = Re(\n (f, G) => {\n var H;\n const q = f.currentTarget;\n ((H = P.groupData) == null ? void 0 : H.instanceId) === G.instanceId ? Se() : se({\n anchorEl: q,\n groupData: G\n });\n },\n [P.groupData]\n ), Se = Re(() => {\n se({ anchorEl: null, groupData: null });\n }, []), Be = (f) => {\n var H;\n const G = f.type === \"GROUP\", q = G && ((H = P.groupData) == null ? void 0 : H.instanceId) === f.instanceId;\n return /* @__PURE__ */ e(\n Ft,\n {\n id: f.instanceId,\n sectionId: null,\n featureName: f.name,\n children: /* @__PURE__ */ e(\n ye,\n {\n item: !0,\n xs: 4,\n sm: 4,\n sx: {\n flexBasis: \"calc(33.3333% - 8px)\",\n maxWidth: \"calc(33.3333% - 8px)\",\n flexGrow: 0,\n flexShrink: 0,\n minWidth: 0\n },\n children: /* @__PURE__ */ p(\n U,\n {\n onClick: (L) => f.type === \"FEATURE\" && L.stopPropagation(),\n onContextMenu: (L) => f.type === \"GROUP\" && $(L, f),\n sx: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n p: 0.5,\n height: \"100%\",\n backgroundColor: \"transparent\",\n cursor: G ? \"pointer\" : \"grab\",\n minWidth: 0,\n overflow: \"hidden\",\n \"&:hover\": {\n backgroundColor: \"#f5f5f5\"\n }\n },\n children: [\n Ut(Object.prototype.hasOwnProperty.call(f, \"icon\") ? f.icon : null, ee),\n /* @__PURE__ */ e(\n S,\n {\n variant: \"body2\",\n sx: {\n mt: 0.5,\n textAlign: \"center\",\n lineHeight: 1.2,\n width: \"100%\",\n fontSize: \"0.7rem\",\n color: \"#073149\",\n fontWeight: \"bold\",\n letterSpacing: 0.2,\n whiteSpace: \"normal\",\n wordBreak: \"break-word\",\n overflowWrap: \"break-word\"\n },\n children: Dt(f.name)\n }\n ),\n G && /* @__PURE__ */ e(U, { sx: { ml: 0.5, display: \"flex\", alignItems: \"center\" }, children: /* @__PURE__ */ e(\n W,\n {\n icon: _t,\n sx: {\n fontSize: \"0.7rem\",\n color: \"#073149\",\n transition: \"transform 0.2s\",\n transform: q ? \"rotate(180deg)\" : \"rotate(0deg)\"\n }\n }\n ) })\n ]\n }\n )\n }\n )\n },\n f.instanceId\n );\n }, ze = (f) => {\n const { active: G, over: q } = f;\n if (!q || G.id === q.id || !P.groupData)\n return;\n const H = P.groupData.instanceId;\n let L = null;\n de((Ce) => Ce.map((pe) => pe.features ? {\n ...pe,\n features: pe.features.map((B) => {\n if (B.instanceId === H && B.type === \"GROUP\" && B.menus) {\n const fe = B.menus.findIndex((Y) => (Y.uuid || Y.instanceId) === G.id), Ie = B.menus.findIndex((Y) => (Y.uuid || Y.instanceId) === q.id);\n if (fe !== -1 && Ie !== -1) {\n const Y = Pe(B.menus, fe, Ie);\n return L = { ...B, menus: Y }, L;\n }\n }\n return B;\n })\n } : pe)), L && se((Ce) => ({\n ...Ce,\n groupData: L\n }));\n }, Ae = () => {\n Se();\n }, Te = (f, G) => {\n var H;\n const q = f.id === E;\n return /* @__PURE__ */ e(Dn, { id: f.id, componentType: d.SECTION, isSortable: !0, children: /* @__PURE__ */ e(\n at,\n {\n id: f.id,\n arrayIndex: G,\n sectionTitle: f.title,\n handleSectionClick: b,\n sectionFeatures: f.features,\n isActive: q,\n SvgIconBox: ee,\n onGroupClick: $,\n activeGroupId: (H = P.groupData) == null ? void 0 : H.instanceId\n }\n ) }, f.id);\n };\n return /* @__PURE__ */ p(\"div\", { className: \"mobile-screen-v2\", id: \"mobile-screen\", children: [\n /* @__PURE__ */ p(\"div\", { className: \"status-bar-v2\", children: [\n /* @__PURE__ */ e(\"span\", { className: \"time-v2\", children: \"12:16\" }),\n /* @__PURE__ */ e(\"div\", { className: \"notch-v2\" }),\n /* @__PURE__ */ p(\"div\", { className: \"right-status-icons-v2\", children: [\n /* @__PURE__ */ e(\"span\", { \"aria-label\": \"wifi\", children: /* @__PURE__ */ e(W, { icon: Cn }) }),\n /* @__PURE__ */ e(\"span\", { \"aria-label\": \"signal\", children: /* @__PURE__ */ e(W, { icon: In }) }),\n /* @__PURE__ */ e(\"span\", { \"aria-label\": \"battery\", className: \"battery-icon\", children: /* @__PURE__ */ e(W, { icon: vn }) })\n ] })\n ] }),\n /* @__PURE__ */ p(\"div\", { className: \"header-v2\", children: [\n /* @__PURE__ */ p(\"div\", { className: \"location-v2\", children: [\n /* @__PURE__ */ e(W, { icon: Rn }),\n /* @__PURE__ */ e(\"span\", { className: \"location-text-v2\", children: \"પાલડી-કાંકજ\" })\n ] }),\n /* @__PURE__ */ p(\"div\", { className: \"header-actions-v2\", children: [\n /* @__PURE__ */ e(\"span\", { className: \"action-icon-v2 rotate-icon\", role: \"button\", \"aria-label\": \"refresh\", children: /* @__PURE__ */ e(W, { icon: wn }) }),\n /* @__PURE__ */ e(\"span\", { className: \"action-icon-v2 notification-outline\", role: \"button\", \"aria-label\": \"notifications\", children: /* @__PURE__ */ e(W, { icon: En }) }),\n /* @__PURE__ */ e(\"span\", { className: \"action-icon-v2 profile-icon\", role: \"button\", \"aria-label\": \"profile\", children: /* @__PURE__ */ e(W, { icon: An }) })\n ] })\n ] }),\n /* @__PURE__ */ e(\n \"div\",\n {\n className: \"content-v2\",\n id: \"mobile-content\",\n ref: u !== \"familyManagement\" ? ne : null,\n style: {\n border: u !== \"familyManagement\" && ae ? \"2px dashed #073149\" : \"none\",\n backgroundColor: u !== \"familyManagement\" && ae ? \"#f0f4f8\" : \"transparent\",\n minHeight: \"300px\",\n maxHeight: \"calc(100% - 110px)\",\n overflowY: \"auto\",\n padding: \"8px\",\n marginTop: u === \"programs\" ? 20 : 0,\n marginLeft: u === \"programs\" ? 3 : 0\n },\n children: u === \"familyManagement\" ? /* @__PURE__ */ p(\n U,\n {\n sx: {\n p: 2,\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\"\n },\n children: [\n /* @__PURE__ */ e(S, { variant: \"body1\", sx: { mb: 2, fontWeight: \"bold\" }, children: \"Select Form for Family Management\" }),\n /* @__PURE__ */ p(Ve, { fullWidth: !0, sx: { maxWidth: \"90%\", mb: 2 }, children: [\n /* @__PURE__ */ e(ln, { id: \"form-selector-label\", children: \"Form Name\" }),\n /* @__PURE__ */ p(\n cn,\n {\n labelId: \"form-selector-label\",\n id: \"form-selector\",\n value: (F == null ? void 0 : F.code) || \"\",\n label: \"Form Name\",\n onChange: Q,\n MenuProps: {\n PaperProps: {\n style: {\n maxHeight: 240\n }\n }\n },\n children: [\n R == null ? void 0 : R.map((f) => /* @__PURE__ */ e(Tt, { value: f.code, children: f.name }, f.code)),\n (R == null ? void 0 : R.length) === 0 && /* @__PURE__ */ e(Tt, { disabled: !0, children: \"No Forms Available\" })\n ]\n }\n )\n ] })\n ]\n }\n ) : u === \"programs\" ? /* @__PURE__ */ e(Ze, { children: T && T.length > 0 ? /* @__PURE__ */ e(De, { items: T.map((f) => f.instanceId), strategy: Ue, children: /* @__PURE__ */ e(ye, { container: !0, spacing: 1, sx: { width: \"100%\", m: 0 }, children: T.map((f) => Be(f)) }) }) : /* @__PURE__ */ e(S, { variant: \"body2\", color: \"textSecondary\", sx: { mt: 5, textAlign: \"center\" }, children: ae ? \"Drop features here (Groups are not allowed).\" : \"Drag features directly onto the screen.\" }) }) : /* @__PURE__ */ p(Ze, { children: [\n j && /* @__PURE__ */ e(Un, { id: j.id, componentType: d.SEARCH_BAR, children: /* @__PURE__ */ e(\n it,\n {\n id: j.id,\n style: { marginBottom: \"8px\" },\n handleSectionClick: b\n }\n ) }),\n be.map((f, G) => Te(f, G)),\n c.length === 0 && /* @__PURE__ */ e(S, { variant: \"body2\", color: \"textSecondary\", sx: { mt: 5, textAlign: \"center\" }, children: \"Drag components here to build the layout.\" })\n ] })\n }\n ),\n P.groupData && P.anchorEl && /* @__PURE__ */ e(\"div\", { onPointerDown: (f) => f.stopPropagation(), children: /* @__PURE__ */ e(Nt, { onDragEnd: ze, children: /* @__PURE__ */ e(\n Bt,\n {\n groupData: P.groupData,\n anchorEl: P.anchorEl,\n onClose: Se,\n SvgIconBox: ee,\n handleFeatureClick: Ae\n }\n ) }) }),\n /* @__PURE__ */ p(\"div\", { className: \"bottom-nav-v2\", children: [\n /* @__PURE__ */ e(\"div\", { className: \"nav-bar-v2\", children: A.map((f) => /* @__PURE__ */ e(dn, { title: f.label, placement: \"bottom\", arrow: !0, children: /* @__PURE__ */ e(\n \"div\",\n {\n className: `nav-item-v2 ${u === f.id ? \"active-v2\" : \"\"}`,\n role: \"button\",\n \"aria-label\": f.label,\n onClick: () => y(f.id),\n children: /* @__PURE__ */ e(\"img\", { src: f.icon, alt: f.alt })\n },\n f.id\n ) }, f.id)) }),\n /* @__PURE__ */ e(\"div\", { className: \"home-indicator-v2\" })\n ] })\n ] });\n}\nGt.propTypes = {\n tabStatus: m.any.isRequired,\n layoutComponents: m.any,\n componentTypes: m.any,\n handleSectionClick: m.any,\n activeElementId: m.any,\n activeTabId: m.any,\n handleTabSwitch: m.any,\n formList: m.any,\n selectedForm: m.any,\n onFormSelect: m.any,\n SvgIconBox: m.any,\n setCurrentLayoutComponents: m.any,\n programFeatures: m.any\n};\nconst Dt = (o) => {\n const c = o.split(\" \");\n return c.map((d, b) => /* @__PURE__ */ p(K.Fragment, { children: [\n d,\n b < c.length - 1 && /* @__PURE__ */ e(\"br\", {})\n ] }, b));\n}, Ut = (o, c) => {\n let d = null;\n if (typeof o == \"object\" && o !== null ? o.type === \"svg\" && typeof o.content == \"string\" ? d = o.content : typeof o.svg == \"string\" && (d = o.svg) : typeof o == \"string\" && (d = o), typeof d == \"string\" && d.includes(\"<svg\")) {\n const b = d.match(/<svg[\\s\\S]*<\\/svg>/i);\n b && (d = b[0]);\n }\n return d ? /* @__PURE__ */ e(\n U,\n {\n sx: {\n height: \"36px\",\n width: \"36px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n },\n children: /* @__PURE__ */ e(c, { svg: d })\n }\n ) : /* @__PURE__ */ e(\n U,\n {\n sx: {\n fontSize: \"1.2rem\",\n color: \"#b0bec5\",\n border: \"1px solid\",\n borderRadius: \"50%\",\n height: \"36px\",\n width: \"36px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginBottom: \"4px\"\n },\n children: \"?\"\n }\n );\n}, Bt = ({ groupData: o, anchorEl: c, onClose: d, SvgIconBox: b, handleFeatureClick: E }) => {\n if (!o || !c) return null;\n const u = o.menus || [], y = c.getBoundingClientRect();\n return /* @__PURE__ */ p(\n xe,\n {\n elevation: 8,\n sx: {\n position: \"fixed\",\n top: y.bottom,\n left: y.left + y.width + 65,\n minWidth: \"320px\",\n maxWidth: \"100%\",\n p: 2,\n borderRadius: \"12px\",\n boxShadow: \"0 8px 30px rgba(0,0,0,0.25)\",\n backgroundColor: \"#f9f9f9\",\n zIndex: 1500,\n maxHeight: \"400px\",\n overflowY: \"auto\",\n transform: \"translateX(-50%)\"\n },\n children: [\n /* @__PURE__ */ p(U, { sx: { display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\", mb: 1 }, children: [\n /* @__PURE__ */ e(S, { variant: \"h6\", sx: { color: \"#073149\", fontWeight: \"bold\", fontSize: \"1rem\" }, children: o.name }),\n /* @__PURE__ */ e(un, { onClick: d, size: \"small\", sx: { color: \"#073149\", p: 0.5 }, children: /* @__PURE__ */ e(W, { icon: Tn }) })\n ] }),\n /* @__PURE__ */ e(ot, {}),\n u.length > 0 ? /* @__PURE__ */ e(De, { items: u.map((R) => R.uuid || R.instanceId), strategy: Ue, children: /* @__PURE__ */ e(ye, { container: !0, spacing: 1, children: u.map((R) => /* @__PURE__ */ e(\n Pt,\n {\n feature: R,\n SvgIconBox: b,\n handleFeatureClick: E\n },\n R.uuid || R.instanceId\n )) }) }) : /* @__PURE__ */ e(S, { variant: \"body2\", color: \"textSecondary\", sx: { fontStyle: \"italic\", p: 1 }, children: \"This menu is empty.\" })\n ]\n }\n );\n};\nBt.propTypes = {\n groupData: m.any,\n anchorEl: m.any,\n onClose: m.any,\n SvgIconBox: m.any,\n handleFeatureClick: m.any\n};\nfunction cr() {\n var ht, gt;\n const o = yn(), c = o.state, d = Fe(() => new URLSearchParams(o.search), [o.search]), b = bn(), [E, u] = k([]), [y, R] = k(!1), [F, Q] = k([]), [ee, de] = k([]), [T, te] = k({}), [M, ne] = k([]), [ae, ue] = k(!0), [A, j] = k(!0), [be, P] = k(!1), { user: se } = xn((t) => t.Authenticate), $ = gn({\n defaultValues: {\n role: \"\",\n isAttendanceRequired: !1\n },\n mode: \"onChange\"\n });\n Ke(() => {\n (async () => (await ze(), await Se(), await Be(), d.get(\"id\") && (c != null && c.mobileMenuList) ? (R(!0), $.setValue(\"role\", c.roleId), await Ae(c.roleId)) : R(!1)))();\n }, []), Ke(() => {\n var t;\n if (Object.keys(T).length > 0 && d.get(\"id\") && (c != null && c.mobileMenuList)) {\n const { appConfiguration: n, tabStatus: r, selectedForm: a, isAttendanceRequired: i } = q(\n (t = c == null ? void 0 : c.mobileMenuList) == null ? void 0 : t.configJson\n );\n J(n), Ie(r), ct(a), $.setValue(\"isAttendanceRequired\", i);\n }\n }, [T]);\n const Se = async () => {\n const r = (await ve({\n code: \"medplat_form_get_all_form_details\",\n parameters: {}\n })).data.result.map((a, i) => ({\n id: a.form_code,\n name: a.form_name,\n code: a.form_code,\n uuid: a.uuid || `temp-uuid-${i}`\n }));\n Q(r);\n }, Be = async () => {\n const n = (await ve({\n code: \"get_all_mobile_query\",\n parameters: {}\n })).data.result;\n de(n);\n }, ze = async () => {\n try {\n const t = (await ve({\n code: \"RETRIEVE_MENU_CONFIG_ROLE_V2\"\n })).data;\n t.result && u(t.result);\n } catch (t) {\n ie({\n message: t,\n type: \"error\"\n });\n }\n }, Ae = async (t) => {\n if (t)\n try {\n const n = (await ve({\n code: \"fetch_linked_menus_by_role_id\",\n parameters: {\n id: t\n }\n })).data;\n n.result && H(n.result);\n } catch (n) {\n ie({\n message: n,\n type: \"error\"\n });\n }\n }, Te = (t, n, r) => {\n const a = n[t];\n if (a) return a;\n const i = r.find((s) => s.type === \"GROUP\" && s.id === t);\n return i || null;\n }, f = (t, n, r, a) => {\n const i = Te(t.id, r, a);\n if (!i) return null;\n const s = ge();\n if (i.type === \"GROUP\") {\n const l = t.menus.map((C) => {\n const Z = Te(C.id, r, a);\n return Z ? {\n ...Z,\n uuid: ge(),\n isGroupMember: !0,\n groupId: t.id\n } : null;\n }).filter((C) => C !== null);\n return l.length === 0 ? null : {\n ...i,\n id: s,\n instanceId: `${n}_GROUP_${s}`,\n menus: l\n };\n } else if (i.type === \"FEATURE\") {\n const l = n === \"PROGRAMS_ROOT\" ? n : `${n}_${i.id}`;\n return {\n ...i,\n id: i.id,\n uuid: s,\n instanceId: `${l}_${s}`\n };\n }\n return null;\n }, G = (t, n, r, a) => {\n if (!t || !Array.isArray(t)) return [];\n if (t.every((i) => i.id && !i.type && !i.features)) {\n const i = n === \"programs\" ? \"PROGRAMS_ROOT\" : n;\n return t.map((s) => f(s, i, r, a)).filter((s) => s !== null);\n }\n return t.map((i) => {\n const s = ge();\n if (i.type === \"SEARCH_BAR\")\n return { ...i, id: s };\n if (i.type === \"SECTION\") {\n const l = `comp-${s}`, C = i.features.map((Z) => f(Z, l, r, a)).filter((Z) => Z !== null);\n return { type: i.type, title: i.title, id: l, features: C };\n }\n return null;\n }).filter((i) => i !== null);\n }, q = (t) => {\n var s;\n const n = {}, r = {};\n let a = null;\n const i = ((s = t == null ? void 0 : t.isAttendanceRequired) == null ? void 0 : s.value) || !1;\n for (const l in t) {\n const C = t[l];\n if (r[l] = C.active, C.active)\n if (l === \"home\" && C.layout)\n n[l] = G(C.layout, l, T, M);\n else if (l === \"programs\" && (C != null && C.features)) {\n const Z = G(C.features, l, T, M);\n n[l] = {\n features: Z\n };\n } else C != null && C.features ? n[l] = G(C == null ? void 0 : C.features, l, T, M) : l === \"familyManagement\" && C.formCode && (a = {\n formName: `Form for ${C.formCode}`,\n code: C.formCode,\n formUuid: ge()\n });\n else\n l === \"programs\" ? n[l] = { features: [] } : n[l] = [];\n }\n return {\n appConfiguration: n,\n tabStatus: r,\n selectedForm: a,\n isAttendanceRequired: i\n };\n }, H = (t) => {\n const n = [], r = {};\n t.forEach((a) => {\n const s = JSON.parse(a.menus || \"[]\").map((l) => {\n const C = {\n uuid: ge(),\n id: l.id ? parseInt(l.id) : null,\n name: l.name || \"\",\n icon: l.icon || \"\",\n type: \"FEATURE\",\n isGroupMember: a.id != null,\n groupId: a.id || null\n };\n return r[C.id] = C, C;\n });\n a.id != null ? n.push({\n uuid: ge(),\n id: a.id,\n name: a.name,\n icon: a.icon || \"\",\n type: \"GROUP\",\n menus: s\n }) : n.push(...s);\n }), te(r), ne(n);\n }, L = (t) => {\n var n, r;\n if (t.type === \"GROUP\") {\n const a = (r = (n = t.menus) == null ? void 0 : n[0]) == null ? void 0 : r.groupId;\n return a ? {\n id: a,\n menus: t.menus.map((i) => ({\n id: i.id\n }))\n } : null;\n } else if (t.type === \"FEATURE\")\n return {\n id: t.id\n };\n return null;\n }, Ce = (t) => !t || !Array.isArray(t) ? [] : t.map((n) => {\n if (n.type === \"SEARCH_BAR\")\n return {\n type: n.type,\n queryName: n.queryName\n };\n if (n.type === \"SECTION\") {\n const r = n == null ? void 0 : n.features.map(L).filter((a) => a !== null);\n return {\n type: n.type,\n title: n.title,\n features: r\n };\n }\n return null;\n }).filter((n) => n !== null), lt = () => {\n const t = {\n isAttendanceRequired: { value: $.getValues(\"isAttendanceRequired\") }\n };\n return B.forEach((n) => {\n var s;\n const r = n.id, a = fe[r], i = {\n active: a\n };\n if (a) {\n if (r === \"familyManagement\" && We)\n i.formCode = We.code;\n else if (r === \"home\") {\n const l = he[r] || [];\n i.layout = Ce(l);\n } else if (r === \"programs\") {\n const l = ((s = he[r]) == null ? void 0 : s.features) || [];\n l.length > 0 && (i.features = l.map(L).filter((C) => C !== null));\n } else if (r !== \"analytics\") {\n const l = he[r] || [];\n Array.isArray(l) && (i.features = l.map(L).filter((C) => C !== null));\n }\n }\n t[r] = i;\n }), t;\n }, pe = async (t) => {\n const n = lt(), r = JSON.stringify(n), a = {\n roleId: t.role,\n userId: se == null ? void 0 : se.id,\n config_json: r\n };\n try {\n (await ve({\n code: \"save_mobile_menu_role_relation\",\n parameters: a\n })).data.result && (ie({\n message: \"Menu configuration saved successfully\",\n type: \"success\"\n }), b(\"/ui/medplat/admin/mobileMenuManagement\"));\n } catch (i) {\n ie({\n message: i,\n type: \"error\"\n });\n }\n }, B = [\n { id: \"home\", name: \"Home\" },\n { id: \"programs\", name: \"Programs\" },\n { id: \"analytics\", name: \"Analytics\" },\n { id: \"familyManagement\", name: \"Family Management\" }\n ], [fe, Ie] = k({\n home: !0,\n programs: !0,\n analytics: !0,\n familyManagement: !0\n }), Y = (t) => {\n Ie((n) => {\n const r = {\n ...n,\n [t]: !n[t]\n };\n if (t === z && !r[t]) {\n const i = B.find((s) => s.id !== t && r[s.id] === !0);\n i ? Oe(i.id) : r.home ? Oe(\"home\") : Oe(B[0].id);\n }\n return r;\n });\n }, w = {\n SEARCH_BAR: \"SEARCH_BAR\",\n SECTION: \"SECTION\",\n FEATURE: \"FEATURE\",\n SECTION_DROP_ZONE: \"SECTION_DROP_ZONE\",\n GROUP: \"GROUP\"\n }, [We, ct] = k(null), Ht = (t) => {\n const n = t.target.value, r = F.find((a) => a.code === n);\n ct(r);\n }, [me, He] = k(null), [dt, ut] = k(null), [z, Oe] = k(\"home\"), [he, J] = k(() => {\n const t = {};\n return B.forEach((n) => {\n t[n.id] = [];\n }), t;\n }), [Le, Lt] = k(\"\"), [jt, $t] = k(null), le = ((ht = he.programs) == null ? void 0 : ht.features) || [], qt = (t) => {\n $t((n) => n === t ? null : t);\n }, pt = he[z], re = Array.isArray(pt) ? pt : [], je = Fe(() => {\n const t = Le.toLowerCase();\n return M.map((n) => {\n if (n.type === \"GROUP\") {\n const r = n.menus.filter((a) => a.name.toLowerCase().includes(t));\n return n.name.toLowerCase().includes(t) || r.length > 0 ? { ...n, menus: r } : null;\n }\n return n.name.toLowerCase().includes(t) ? n : null;\n }).filter(Boolean);\n }, [M, Le]), { separatedGroups: Ne, separatedFeatures: Me } = Fe(() => {\n const t = je.filter((r) => r.type === \"GROUP\"), n = je.filter((r) => r.type !== \"GROUP\");\n return { separatedGroups: t, separatedFeatures: n };\n }, [je]), oe = Re(\n (t) => {\n J((n) => ({\n ...n,\n [z]: typeof t == \"function\" ? t(n[z] || []) : t\n }));\n },\n [z]\n ), Zt = Re((t) => {\n Oe(t);\n }, []), Vt = (t, n, r) => {\n oe((a) => a.map((i) => i.id === t ? { ...i, [n]: r } : i));\n }, Qt = (t) => {\n He(t.active.id);\n }, Yt = Re(\n (t) => {\n var C, Z, xt, yt, bt, St, Ct, It, vt, Rt, wt, Et;\n const { active: n, over: r } = t;\n if (!n || !n.data.current) {\n He(null);\n return;\n }\n const a = (C = r == null ? void 0 : r.data.current) == null ? void 0 : C.type, i = (Z = r == null ? void 0 : r.data.current) == null ? void 0 : Z.sectionId, s = (xt = n.data.current) == null ? void 0 : xt.sectionId, l = (yt = n.data.current) == null ? void 0 : yt.type;\n if (He(null), !r && z === \"programs\" && l === w.FEATURE) {\n const g = n.data.current.data;\n if (!g) return;\n J((h) => {\n const x = h.programs || {}, I = (x == null ? void 0 : x.features) || [], O = {\n id: g.id,\n name: g.name,\n instanceId: `PROGRAMS_ROOT_${g.id}_${crypto.randomUUID()}`,\n type: \"FEATURE\",\n icon: {\n id: `svg-icon-${g.id}`,\n content: g.icon,\n type: \"svg\"\n }\n };\n return {\n ...h,\n programs: {\n ...x,\n features: [...I, O]\n }\n };\n });\n return;\n }\n if ((r == null ? void 0 : r.id) === \"trash-zone\") {\n const g = n.id, h = n.data.current.sectionId;\n l === \"FEATURE_TILE\" ? h ? oe(\n (x) => x.map((I) => {\n if (I.id === h && (I != null && I.features)) {\n const O = I == null ? void 0 : I.features.filter((_) => _.instanceId !== g);\n return { ...I, features: O };\n }\n return I;\n })\n ) : z === \"programs\" && J((x) => {\n const I = x.programs || {}, _ = ((I == null ? void 0 : I.features) || []).filter((D) => D.instanceId !== g);\n return {\n ...x,\n programs: {\n ...I,\n features: _\n }\n };\n }) : (l === w.SECTION || l === w.SEARCH_BAR) && oe((x) => x.filter((I) => I.id !== n.id));\n return;\n }\n if (l === \"FEATURE_TILE\" && a === \"FEATURE_TILE\") {\n if (!s && z === \"programs\") {\n J((g) => {\n const h = g.programs || {}, x = (h == null ? void 0 : h.features) || [], I = x.findIndex((D) => D.instanceId === n.id), O = x.findIndex((D) => D.instanceId === r.id);\n if (I === -1 || O === -1)\n return g;\n const _ = Pe(x, I, O);\n return {\n ...g,\n programs: {\n ...h,\n features: _\n }\n };\n });\n return;\n }\n s === i && n.id !== r.id && oe(\n (g) => g.map((h) => {\n if (h.id === s) {\n const x = h == null ? void 0 : h.features, I = x.findIndex((D) => D.instanceId === n.id), O = x.findIndex((D) => D.instanceId === r.id);\n if (I === -1 || O === -1) return h;\n const _ = Pe(x, I, O);\n return { ...h, features: _ };\n }\n return h;\n })\n );\n return;\n }\n if (l === w.GROUP && a === w.SECTION_DROP_ZONE) {\n const g = n.data.current.data, h = (bt = r == null ? void 0 : r.data.current) == null ? void 0 : bt.sectionId;\n g && h && J((x) => {\n const I = x[z] || [], O = I.findIndex((ke) => ke.id === h);\n if (O === -1) return x;\n const _ = I[O], D = String(g.uuid);\n if (_ == null ? void 0 : _.features.some((ke) => ke.type === \"GROUP\" && String(ke.uuid) === D))\n return ie({\n type: \"warn\",\n message: `Group ${g.name} is already in this section.`\n }), x;\n const qe = {\n id: g.uuid,\n name: g.name,\n instanceId: `${h}_GROUP_${g.uuid}_${crypto.randomUUID()}`,\n type: \"GROUP\",\n menus: g.menus || [],\n icon: g.icon\n }, _e = {\n ..._,\n features: [..._.features, qe]\n }, ce = [...I];\n return ce[O] = _e, { ...x, [z]: ce };\n });\n return;\n }\n if (l === w.FEATURE && a === w.SECTION_DROP_ZONE) {\n const g = n.data.current.data, h = (St = r == null ? void 0 : r.data.current) == null ? void 0 : St.sectionId;\n g && h && J((x) => {\n const I = x[z] || [], O = I.findIndex((ce) => ce.id === h);\n if (O === -1) return x;\n const _ = I[O];\n if (_ == null ? void 0 : _.features.some((ce) => ce.id === g.id && ce.type === \"FEATURE\"))\n return ie({\n type: \"warn\",\n message: `Feature ${g.name} is already in this section.`\n }), x;\n const V = {\n id: g.id,\n name: g.name,\n instanceId: `${h}_${g.id}_${crypto.randomUUID()}`,\n type: \"FEATURE\",\n icon: {\n id: `svg-icon-${g.id}`,\n content: g.icon,\n type: \"svg\"\n }\n }, qe = {\n ..._,\n features: [..._.features, V]\n }, _e = [...I];\n return _e[O] = qe, { ...x, [z]: _e };\n });\n return;\n }\n if (!((Ct = n.data.current) != null && Ct.sortable && !((It = r == null ? void 0 : r.data.current) != null && It.sortable) && (r == null ? void 0 : r.id) === \"mobile-content\")) {\n if ((vt = r == null ? void 0 : r.data.current) != null && vt.sortable && ((Rt = n.data.current) == null ? void 0 : Rt.type) === w.SECTION && n.id !== r.id) {\n oe((g) => {\n const h = g.find((V) => V.type === w.SEARCH_BAR), x = g.filter((V) => V.type !== w.SEARCH_BAR), I = x.findIndex((V) => V.id === n.id), O = x.findIndex((V) => V.id === r.id);\n if (I === -1 || O === -1)\n return g;\n let D = Pe(x, I, O);\n return h && (D = [h, ...D]), D;\n });\n return;\n }\n if ((r == null ? void 0 : r.id) === \"mobile-content\" && l) {\n const g = (wt = r.data.current) == null ? void 0 : wt.type;\n if (g === \"PROGRAMS_ROOT_DROP_ZONE\") {\n if (l === w.GROUP) {\n ie({\n type: \"warn\",\n message: \"Groups cannot be dropped directly onto the Programs tab.\"\n });\n return;\n }\n if (l === w.FEATURE) {\n const h = n.data.current.data;\n if (!h) return;\n J((x) => ({\n ...x,\n programs: {\n ...x.programs,\n features: [\n ...x.programs.features,\n {\n id: h.id,\n name: h.name,\n instanceId: `PROGRAMS_ROOT_${h.id}_${crypto.randomUUID()}`,\n type: \"FEATURE\",\n icon: {\n id: `svg-icon-${h.id}`,\n content: h.icon,\n type: \"svg\"\n }\n }\n ]\n }\n }));\n return;\n }\n }\n if ((Et = n.data.current) != null && Et.sortable && g === \"LAYOUT_ROOT_DROP_ZONE\")\n return;\n if (g === \"LAYOUT_ROOT_DROP_ZONE\") {\n oe((h) => {\n if (l === w.SEARCH_BAR)\n return h.some((O) => O.type === w.SEARCH_BAR) ? (ie({\n type: \"info\",\n message: \"Only one Search Bar is allowed.\"\n }), h) : [{\n id: `comp-${Date.now()}`,\n type: w.SEARCH_BAR,\n queryName: \"Query Name\"\n }, ...h];\n if (l === w.SECTION) {\n const x = {\n id: `comp-${Date.now()}`,\n type: l,\n title: \"Section\",\n features: []\n };\n return [...h, x];\n }\n return h;\n });\n return;\n }\n }\n }\n },\n [oe, J, z, w]\n ), ft = \"350px\", Jt = () => /* @__PURE__ */ p(\n N,\n {\n sx: {\n width: ft,\n p: 1.5,\n border: \"1px solid #ccc\",\n borderRadius: \"8px\",\n backgroundColor: \"#fff\",\n display: \"flex\",\n alignItems: \"center\",\n boxShadow: \"0 1px 10px rgba(0,0,0,0.3)\"\n },\n children: [\n /* @__PURE__ */ e(W, { icon: kt, style: { marginRight: \"8px\", color: \"#888\" } }),\n /* @__PURE__ */ e(S, { variant: \"body2\", color: \"textSecondary\", sx: { flexGrow: 1 }, children: \"Search...\" })\n ]\n }\n ), Xt = () => /* @__PURE__ */ e(\n N,\n {\n sx: {\n width: ft,\n minHeight: \"100px\",\n backgroundColor: \"#e6f0ff\",\n border: \"1px dashed #073149\",\n borderRadius: \"4px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n boxShadow: \"0 1px 10px rgba(0,0,0,0.3)\",\n color: \"#073149\"\n },\n children: /* @__PURE__ */ e(S, { variant: \"caption\", sx: { fontWeight: \"bold\" }, children: \"Section Dragging\" })\n }\n ), $e = ({ feature: t }) => /* @__PURE__ */ e(v, { item: !0, xs: 4, sm: 4, children: /* @__PURE__ */ p(\n N,\n {\n sx: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n p: 0.5,\n height: \"100%\",\n backgroundColor: \"transparent\",\n cursor: \"grab\"\n },\n children: [\n Ee(t.icon),\n /* @__PURE__ */ e(\n S,\n {\n variant: \"caption\",\n sx: {\n mt: 1,\n textAlign: \"center\",\n lineHeight: 1.2,\n width: \"100%\",\n fontSize: \"0.65rem\"\n },\n children: t.name\n }\n )\n ]\n }\n ) });\n $e.propTypes = {\n feature: m.any\n };\n const mt = ({ feature: t }) => /* @__PURE__ */ p(\n N,\n {\n sx: {\n width: \"fit-content\",\n p: \"10px\",\n pl: \"10px\",\n backgroundColor: \"#fff\",\n border: \"1px solid #e0e0e0\",\n borderRadius: \"4px\",\n boxShadow: \"0 1px 2px rgba(0, 0, 0, 0.05)\",\n cursor: \"grab\",\n display: \"flex\",\n alignItems: \"center\",\n transition: \"all 0.1s\",\n mt: \"4px\",\n \"&:hover\": {\n backgroundColor: \"#f5f5f5\",\n borderColor: \"#b0bec5\"\n }\n },\n children: [\n ((r, a) => {\n const i = Ee(t.icon, \"18px\");\n return i && i.type === N ? K.cloneElement(i, {\n sx: {\n ...i.props.sx,\n height: \"18px\",\n width: \"18px\",\n marginRight: \"8px\"\n }\n }) : /* @__PURE__ */ e(N, { sx: { mr: \"8px\", display: \"flex\", alignItems: \"center\" }, children: Ee(r, a) });\n })(t.icon, \"18px\"),\n /* @__PURE__ */ e(S, { variant: \"body2\", sx: { fontWeight: \"normal\", color: \"#333\" }, children: t == null ? void 0 : t.name })\n ]\n }\n );\n mt.propTypes = {\n feature: m.any\n };\n const Kt = (t) => {\n const r = M.flatMap((s) => s.type === w.GROUP ? [s, ...s.menus] : [s]).find((s) => (s.uuid || s.id) === t);\n if (r) {\n let s;\n return r.type ? s = r.type : r.menus ? s = w.GROUP : s = w.FEATURE, {\n type: s,\n data: r\n };\n }\n const a = le == null ? void 0 : le.find((s) => s.instanceId === t);\n if (a)\n return { type: \"FEATURE_TILE\", data: a };\n const i = re.find((s) => s.id === t);\n if (i) return { type: i.type, data: i };\n for (const s of re)\n if (s != null && s.features) {\n const l = s == null ? void 0 : s.features.find((C) => C.instanceId === t);\n if (l)\n return { type: \"FEATURE_TILE\", data: l };\n }\n return null;\n }, en = re.find((t) => t.id === dt), tn = (t) => {\n const n = Kt(t);\n return n ? n.type === w.SEARCH_BAR ? /* @__PURE__ */ e(Jt, {}) : n.type === w.SECTION ? /* @__PURE__ */ e(Xt, {}) : n.type === w.FEATURE ? /* @__PURE__ */ e(mt, { feature: n.data }) : n.type === w.GROUP ? /* @__PURE__ */ e($e, { feature: n.data }) : n.type === \"FEATURE_TILE\" ? /* @__PURE__ */ e($e, { feature: n.data }) : null : null;\n }, nn = Fe(() => {\n if (!me) return !1;\n const t = re.some((a) => a.id === me), n = re.some((a) => {\n var i;\n return (i = a == null ? void 0 : a.features) == null ? void 0 : i.some((s) => s.instanceId === me);\n }), r = le == null ? void 0 : le.some((a) => a.instanceId === me);\n return t || n || r;\n }, [me, re, le]), rn = re.filter((t) => t.type === w.SECTION).map((t) => t.id), on = (t) => {\n var r, a;\n const n = (a = (r = t.active) == null ? void 0 : r.data.current) == null ? void 0 : a.type;\n if (n === w.FEATURE) {\n const i = t.droppableContainers.filter(\n (s) => {\n var l;\n return ((l = s.data.current) == null ? void 0 : l.type) === \"SECTION_DROP_ZONE\";\n }\n );\n return At({\n ...t,\n droppableContainers: i\n });\n }\n if (n === w.SECTION) {\n const i = t.droppableContainers.filter((s) => {\n var l;\n return !(s.id === t.active.id || ((l = s.data.current) == null ? void 0 : l.type) === \"SECTION_DROP_ZONE\");\n });\n return At({\n ...t,\n droppableContainers: i\n });\n }\n return sn(t);\n };\n return /* @__PURE__ */ p(Ze, { children: [\n /* @__PURE__ */ e(Gn.Provider, { children: /* @__PURE__ */ e(\"form\", { noValidate: !0, onSubmit: $.handleSubmit(pe), children: /* @__PURE__ */ p(\n Nt,\n {\n onDragStart: Qt,\n onDragEnd: Yt,\n collisionDetection: on,\n children: [\n /* @__PURE__ */ p(v, { container: !0, spacing: 1, children: [\n /* @__PURE__ */ e(v, { size: 1 }),\n /* @__PURE__ */ e(v, { size: 6, children: /* @__PURE__ */ p(\n v,\n {\n sx: {\n padding: \"2px\",\n margin: \"6px 0px\"\n },\n children: [\n /* @__PURE__ */ p(v, { container: !0, sx: { justifyContent: \"space-between\" }, children: [\n /* @__PURE__ */ e(v, { size: 2 }),\n /* @__PURE__ */ e(S, { variant: \"subtitle1\", sx: { fontWeight: \"bold\", marginLeft: \"5px\", mb: 1 }, children: \"Mobile View\" }),\n /* @__PURE__ */ p(v, { container: !0, spacing: 1, children: [\n /* @__PURE__ */ e(\n Ge,\n {\n variant: \"contained\",\n color: \"gray\",\n sx: { fontSize: \"0.8rem\", height: \"30px\" },\n type: \"submit\",\n onClick: () => {\n P(!0);\n },\n children: \"Back\"\n }\n ),\n /* @__PURE__ */ e(\n Ge,\n {\n variant: \"contained\",\n color: \"primary\",\n sx: { fontSize: \"0.8rem\", height: \"30px\" },\n type: \"submit\",\n children: \"Save\"\n }\n )\n ] })\n ] }),\n /* @__PURE__ */ e(v, { sx: { height: \"100%\", maxHeight: \"100%\", overflowY: \"auto\" }, children: /* @__PURE__ */ e(De, { items: rn, strategy: Ue, children: /* @__PURE__ */ e(\n Gt,\n {\n tabStatus: fe,\n layoutComponents: re,\n componentTypes: w,\n handleSectionClick: ut,\n activeElementId: dt,\n activeTabId: z,\n handleTabSwitch: Zt,\n formList: F,\n selectedForm: We,\n onFormSelect: Ht,\n SvgIconBox: st,\n setCurrentLayoutComponents: oe,\n programFeatures: ((gt = he.programs) == null ? void 0 : gt.features) || []\n }\n ) }) }),\n /* @__PURE__ */ e(v, { container: !0, spacing: 2, justifyContent: \"space-around\", sx: { my: \"1.25rem\" }, children: B.map((t) => /* @__PURE__ */ e(v, { item: !0, xs: 12, sm: 6, md: 3, children: /* @__PURE__ */ p(v, { container: !0, alignItems: \"center\", justifyContent: \"space-between\", children: [\n /* @__PURE__ */ e(S, { variant: \"body2\", sx: { fontWeight: \"bolder\" }, children: t.name }),\n /* @__PURE__ */ e(\n Ot,\n {\n checked: fe[t.id],\n onChange: () => Y(t.id),\n name: t.name,\n sx: {\n \"& .MuiSwitch-switchBase.Mui-checked\": {\n color: \"#073149\",\n \"&:hover\": {\n backgroundColor: \"rgba(7, 49, 73, 0.08)\"\n }\n },\n \"& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track\": {\n backgroundColor: \"#073149\",\n opacity: 0.7\n }\n }\n }\n )\n ] }) }, t.id)) })\n ]\n }\n ) }),\n /* @__PURE__ */ e(v, { size: 1 }),\n /* @__PURE__ */ p(v, { size: 4, children: [\n /* @__PURE__ */ e(v, { size: 12, children: /* @__PURE__ */ p(xe, { sx: { padding: \"2px\", margin: \"6px 0px\" }, children: [\n /* @__PURE__ */ e(v, { className: \"justify-between items-center\", container: !0, children: /* @__PURE__ */ e(S, { variant: \"subtitle1\", sx: { fontWeight: \"bold\", marginLeft: \"5px\" }, children: \"Menu Relation\" }) }),\n /* @__PURE__ */ p(v, { container: !0, children: [\n /* @__PURE__ */ e(v, { size: 12, children: /* @__PURE__ */ p(\n Ve,\n {\n variant: \"outlined\",\n className: \"ml-3 mb-1 flex flex-row items-center align-items w-[90%]\",\n children: [\n /* @__PURE__ */ p(S, { variant: \"body2\", children: [\n \"Select Role\",\n /* @__PURE__ */ e(\"span\", { className: \"text-red-500 ml-1\", children: \"*\" }),\n \" :\"\n ] }),\n /* @__PURE__ */ e(N, { className: \"w-[60%] ms-3\", children: /* @__PURE__ */ e(\n Sn,\n {\n control: $.control,\n size: \"small\",\n id: \"role\",\n name: \"role\",\n options: E || [],\n disabled: y,\n displayName: \"name\",\n optionValue: \"id\",\n errors: $.formState.errors,\n sx: { height: \"50px\", mt: 2 },\n disableClearable: !!y,\n placeholder: \"Select role\",\n onChange: (t) => Ae(t.target.value)\n }\n ) })\n ]\n }\n ) }),\n /* @__PURE__ */ e(v, { size: 12, children: /* @__PURE__ */ p(\n Ve,\n {\n variant: \"standard\",\n className: \"ml-3 mb-3 flex flex-row items-center align-items w-[90%]\",\n children: [\n /* @__PURE__ */ e(S, { variant: \"body2\", children: \"Attendance Required? :\" }),\n /* @__PURE__ */ e(N, { className: \"w-[60%] ms-3\", children: /* @__PURE__ */ e(\n Ot,\n {\n checked: $.watch(\"isAttendanceRequired\"),\n onChange: (t) => $.setValue(\"isAttendanceRequired\", t.target.checked),\n sx: {\n \"& .MuiSwitch-switchBase.Mui-checked\": {\n color: \"#073149\",\n \"&:hover\": {\n backgroundColor: \"rgba(7, 49, 73, 0.08)\"\n }\n },\n \"& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track\": {\n backgroundColor: \"#073149\",\n opacity: 0.7\n }\n }\n }\n ) })\n ]\n }\n ) })\n ] })\n ] }) }),\n /* @__PURE__ */ e(v, { size: 12, children: /* @__PURE__ */ p(\n xe,\n {\n sx: {\n padding: \"5px\",\n margin: \"2px 0px\",\n height: \"595px\",\n transition: \"height 0.3s ease-in-out\"\n },\n children: [\n /* @__PURE__ */ e(S, { variant: \"subtitle1\", sx: { fontWeight: \"bold\", marginLeft: \"5px\", mb: 1 }, children: \"Draggable Components\" }),\n /* @__PURE__ */ p(v, { container: !0, spacing: 2, justifyContent: \"space-around\", sx: { p: 1 }, children: [\n /* @__PURE__ */ e(we, { id: \"draggable-search\", componentType: w.SEARCH_BAR, children: /* @__PURE__ */ e(v, { item: !0, xs: 6, sm: 4, size: 6, children: /* @__PURE__ */ p(\n N,\n {\n sx: {\n width: \"100%\",\n height: \"50px\",\n p: \"8px 10px\",\n backgroundColor: \"#f0f4f8\",\n border: \"1px solid #e0e0e0\",\n borderRadius: \"8px\",\n boxShadow: \"0 1px 3px rgba(0, 0, 0, 0.1)\",\n cursor: \"grab\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n color: \"#073149\",\n transition: \"all 0.2s ease-in-out\",\n \"&:hover\": {\n backgroundColor: \"#e0eaf1\",\n borderColor: \"#b0bec5\",\n boxShadow: \"0 2px 5px rgba(0, 0, 0, 0.15)\"\n }\n },\n children: [\n /* @__PURE__ */ e(\n X,\n {\n iconName: \"faMagnifyingGlass\",\n style: { fontSize: \"1.2rem\", marginRight: \"8px\" }\n }\n ),\n /* @__PURE__ */ e(S, { variant: \"body2\", sx: { fontWeight: \"bold\", lineHeight: 1 }, children: \"Search Bar\" })\n ]\n }\n ) }) }),\n /* @__PURE__ */ e(we, { id: \"draggable-section\", componentType: w.SECTION, children: /* @__PURE__ */ e(v, { item: !0, xs: 6, sm: 4, size: 6, children: /* @__PURE__ */ p(\n N,\n {\n sx: {\n width: \"100%\",\n height: \"50px\",\n p: \"8px 10px\",\n backgroundColor: \"#f0f4f8\",\n border: \"1px solid #e0e0e0\",\n borderRadius: \"8px\",\n boxShadow: \"0 1px 3px rgba(0, 0, 0, 0.1)\",\n cursor: \"grab\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n color: \"#073149\",\n transition: \"all 0.2s ease-in-out\",\n \"&:hover\": {\n backgroundColor: \"#c5e1ff\",\n borderColor: \"#073149\",\n boxShadow: \"0 2px 5px rgba(0, 0, 0, 0.15)\"\n }\n },\n children: [\n /* @__PURE__ */ e(X, { iconName: \"faBox\", style: { fontSize: \"1.2rem\", marginRight: \"8px\" } }),\n /* @__PURE__ */ e(S, { variant: \"body2\", sx: { fontWeight: \"bold\", lineHeight: 1 }, children: \"Section\" })\n ]\n }\n ) }) })\n ] }),\n /* @__PURE__ */ e(v, { children: /* @__PURE__ */ e(zt, { isDraggingSortable: nn }) }),\n /* @__PURE__ */ e(ot, { sx: { mt: 2 } }),\n /* @__PURE__ */ e(v, { size: 12, children: /* @__PURE__ */ p(\n N,\n {\n sx: {\n padding: \"0px\",\n margin: \"10px 0px\",\n height: \"450px\",\n overflowY: \"auto\",\n transition: \"height 0.3s ease-in-out\"\n },\n children: [\n /* @__PURE__ */ e(S, { variant: \"subtitle1\", sx: { fontWeight: \"bold\", marginLeft: \"5px\", mb: 1 }, children: \"Available Features\" }),\n /* @__PURE__ */ e(\n Qe,\n {\n fullWidth: !0,\n size: \"small\",\n placeholder: \"Search Feature...\",\n variant: \"outlined\",\n sx: { mb: 2, px: 1 },\n value: Le,\n onChange: (t) => Lt(t.target.value),\n InputProps: {\n startAdornment: /* @__PURE__ */ e(pn, { position: \"start\", children: /* @__PURE__ */ e(X, { iconName: \"faMagnifyingGlass\" }) })\n }\n }\n ),\n /* @__PURE__ */ e(\n N,\n {\n sx: {\n flexGrow: 1,\n overflowY: \"auto\",\n padding: \"0 8px\"\n },\n children: /* @__PURE__ */ p(v, { container: !0, direction: \"column\", spacing: 0, sx: { px: 1 }, children: [\n Ne.length > 0 && /* @__PURE__ */ e(\n v,\n {\n item: !0,\n xs: 12,\n sx: {\n mb: 1\n },\n children: /* @__PURE__ */ p(\n Ye,\n {\n sx: {\n \"&:before\": { display: \"none\" },\n boxShadow: \"0 2px 4px rgba(0,0,0,0.05)\",\n border: \"1px solid #c5e1ff\",\n borderRadius: \"4px!important\",\n backgroundColor: \"#fff\"\n },\n expanded: ae,\n onChange: () => ue((t) => !t),\n disableGutters: !0,\n children: [\n /* @__PURE__ */ e(\n Je,\n {\n expandIcon: /* @__PURE__ */ e(X, { iconName: \"faChevronDown\", style: { color: \"#3f51b5\" } }),\n sx: {\n minHeight: \"40px\",\n backgroundColor: \"#e3f2fd\",\n \"&:hover\": { backgroundColor: \"#c5e3f8\" },\n \"& .MuiAccordionSummary-content\": { margin: \"0\" },\n p: \"0 10px\"\n },\n children: /* @__PURE__ */ p(S, { variant: \"subtitle2\", sx: { fontWeight: \"bold\", color: \"#3f51b5\" }, children: [\n /* @__PURE__ */ e(X, { iconName: \"faLayerGroup\", style: { marginRight: \"6px\" } }),\n \"Menu Groups (\",\n Ne.length,\n \")\"\n ] })\n }\n ),\n /* @__PURE__ */ e(Xe, { sx: { p: \"8px\", pt: 1, backgroundColor: \"#f9f9f9\" }, children: /* @__PURE__ */ e(v, { container: !0, spacing: 0.5, direction: \"column\", children: Ne.map((t) => /* @__PURE__ */ e(\n tt,\n {\n item: t,\n COMPONENT_TYPES: w,\n activeGroupId: jt,\n onGroupToggle: qt\n },\n t.uuid\n )) }) })\n ]\n }\n )\n }\n ),\n Me.length > 0 && /* @__PURE__ */ e(v, { item: !0, xs: 12, children: /* @__PURE__ */ p(\n Ye,\n {\n sx: {\n mt: 0.5,\n \"&:before\": { display: \"none\" },\n boxShadow: \"0 2px 4px rgba(0,0,0,0.05)\",\n border: \"1px solid #c8e6c9\",\n mb: 1,\n borderRadius: \"4px!important\",\n backgroundColor: \"#fff\"\n },\n expanded: A,\n onChange: () => j((t) => !t),\n disableGutters: !0,\n children: [\n /* @__PURE__ */ e(\n Je,\n {\n expandIcon: /* @__PURE__ */ e(X, { iconName: \"faChevronDown\", style: { color: \"#009688\" } }),\n sx: {\n minHeight: \"40px\",\n backgroundColor: \"#e8f5e9\",\n \"&:hover\": { backgroundColor: \"#cbe6cc\" },\n \"& .MuiAccordionSummary-content\": { margin: \"0\" },\n p: \"0 10px\"\n },\n children: /* @__PURE__ */ p(S, { variant: \"subtitle2\", sx: { fontWeight: \"bold\", color: \"#009688\" }, children: [\n /* @__PURE__ */ e(X, { iconName: \"faPuzzlePiece\", style: { marginRight: \"6px\" } }),\n \"Standalone Features (\",\n Me.length,\n \")\"\n ] })\n }\n ),\n /* @__PURE__ */ e(Xe, { sx: { p: \"8px\", pt: 1, backgroundColor: \"#ffffff\" }, children: /* @__PURE__ */ e(v, { container: !0, spacing: 0.5, direction: \"column\", children: Me.map((t) => /* @__PURE__ */ e(\n tt,\n {\n item: t,\n COMPONENT_TYPES: w\n },\n t.uuid\n )) }) })\n ]\n }\n ) }),\n Ne.length === 0 && Me.length === 0 && /* @__PURE__ */ e(S, { variant: \"body2\", sx: { p: 2, color: \"#9e9e9e\", textAlign: \"center\" }, children: \"No groups or features match your search criteria.\" })\n ] })\n }\n )\n ]\n }\n ) })\n ]\n }\n ) }),\n /* @__PURE__ */ e(v, { size: 12, sx: { mt: 1 }, children: /* @__PURE__ */ e(\n Wt,\n {\n activeComponent: en,\n onUpdate: Vt,\n onDeselect: () => ut(null),\n mobileQueries: ee\n }\n ) })\n ] })\n ] }),\n /* @__PURE__ */ e(an, { children: tn(me) })\n ]\n }\n ) }) }),\n /* @__PURE__ */ e(\n Pn,\n {\n open: be,\n handleClose: () => {\n P(!1);\n },\n handleClick: () => {\n b(\"/ui/medplat/admin/mobileMenuManagement\");\n },\n title: \"Leave Page\",\n description: \"Changes you made will be discarded. Do you want to continue?\",\n dataTestId: \"delete-auth-confirmation\"\n }\n )\n ] });\n}\nfunction we({ id: o, children: c, componentType: d, dragData: b = null }) {\n const { attributes: E, listeners: u, setNodeRef: y, transform: R } = Mt({\n id: o,\n data: { type: d, ...b && { data: b } }\n }), F = R ? {\n transform: `translate3d(${R.x}px, ${R.y}px, 0)`,\n zIndex: 1e3,\n opacity: 0.9\n } : void 0;\n return K.cloneElement(c, {\n ref: y,\n style: { ...c.props.style, ...F },\n ...u,\n ...E\n });\n}\nm.node, m.number.isRequired, m.number.isRequired;\nconst zt = ({ isDraggingSortable: o }) => {\n const { setNodeRef: c, isOver: d } = nt({\n id: \"trash-zone\"\n });\n return o ? /* @__PURE__ */ p(\n N,\n {\n ref: c,\n sx: {\n position: \"fixed\",\n bottom: 20,\n left: \"50%\",\n transform: \"translateX(-50%)\",\n width: 250,\n height: 50,\n p: 2,\n borderRadius: \"8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: d ? \"#d32f2f\" : \"#ef5350\",\n color: \"white\",\n zIndex: 3e3,\n transition: \"background-color 0.2s\"\n },\n children: [\n /* @__PURE__ */ e(W, { icon: On, style: { marginRight: \"10px\" } }),\n /* @__PURE__ */ e(S, { variant: \"body1\", children: d ? \"Release to Delete\" : \"Drag Here to Delete\" })\n ]\n }\n ) : null;\n};\nzt.propTypes = {\n isDraggingSortable: m.any\n};\nconst Wt = ({ activeComponent: o, onUpdate: c, onDeselect: d, mobileQueries: b }) => {\n if (!o)\n return /* @__PURE__ */ p(\n xe,\n {\n sx: {\n p: 1,\n backgroundColor: \"#f5f5f5\",\n textAlign: \"center\"\n },\n children: [\n /* @__PURE__ */ e(S, { variant: \"subtitle1\", sx: { fontWeight: \"bold\", mb: 1, color: \"#073149\" }, children: \"Component Configuration\" }),\n /* @__PURE__ */ e(ot, { sx: { mb: 1 } }),\n /* @__PURE__ */ p(S, { variant: \"body1\", children: [\n \"To add or edit \",\n /* @__PURE__ */ e(\"b\", { children: \"Section Title\" }),\n \" or \",\n /* @__PURE__ */ e(\"b\", { children: \"Search Bar Query Name\" }),\n \":\"\n ] }),\n /* @__PURE__ */ p(N, { sx: { display: \"flex\", alignItems: \"center\", justifyContent: \"center\", mb: 1 }, children: [\n /* @__PURE__ */ e(S, { variant: \"body1\", color: \"primary\", children: \"Right-Click\" }),\n /* @__PURE__ */ e(S, { variant: \"body1\", sx: { ml: 1 }, children: \"on the selected component card\" })\n ] }),\n /* @__PURE__ */ e(S, { variant: \"caption\", color: \"textSecondary\", children: \"This will open the menu to access the **Configuration Panel**.\" })\n ]\n }\n );\n if (o.type === \"SEARCH_BAR\") {\n const E = b.map((u) => u.code);\n if (o.type === \"SEARCH_BAR\")\n return /* @__PURE__ */ p(xe, { sx: { p: 2, height: \"100%\" }, children: [\n /* @__PURE__ */ e(S, { variant: \"h6\", sx: { mb: 2 }, children: \"Search Bar Configuration\" }),\n /* @__PURE__ */ e(\n mn,\n {\n disablePortal: !0,\n id: \"query-name-autocomplete\",\n options: E,\n size: \"small\",\n fullWidth: !0,\n sx: { mb: 2 },\n value: o.queryName || null,\n onChange: (u, y) => {\n c(o.id, \"queryName\", y || \"\");\n },\n renderInput: (u) => /* @__PURE__ */ e(Qe, { ...u, label: \"Query Code\", variant: \"outlined\", placeholder: \"Select or search query code\" })\n }\n ),\n /* @__PURE__ */ e(Ge, { onClick: d, variant: \"outlined\", color: \"gray\", children: \"Close\" })\n ] });\n }\n return o.type === \"SECTION\" ? /* @__PURE__ */ p(xe, { sx: { p: 2, height: \"100%\" }, children: [\n /* @__PURE__ */ e(S, { variant: \"h6\", sx: { mb: 2 }, children: \"Section Configuration\" }),\n /* @__PURE__ */ e(\n Qe,\n {\n label: \"Section Title\",\n variant: \"outlined\",\n fullWidth: !0,\n value: o.title || \"\",\n onChange: (E) => c(o.id, \"title\", E.target.value),\n sx: { mb: 2 }\n }\n ),\n /* @__PURE__ */ e(Ge, { onClick: d, variant: \"outlined\", color: \"gray\", children: \"Close\" })\n ] }) : null;\n};\nWt.propTypes = {\n activeComponent: m.any,\n onUpdate: m.any,\n onDeselect: m.any,\n mobileQueries: m.any\n};\nfunction st({ svg: o }) {\n const [c, d] = k(\"\");\n return Ke(() => {\n if (o) {\n const u = new DOMParser().parseFromString(o, \"image/svg+xml\").documentElement;\n if (!u.getAttribute(\"viewBox\")) {\n const F = u.getAttribute(\"width\") || \"512\", Q = u.getAttribute(\"height\") || \"512\";\n u.setAttribute(\"viewBox\", `0 0 ${F} ${Q}`);\n }\n u.removeAttribute(\"width\"), u.removeAttribute(\"height\"), u.setAttribute(\"style\", \"width: 100%; height: 100%;\");\n const R = new XMLSerializer().serializeToString(u);\n d(R);\n }\n }, [o]), /* @__PURE__ */ e(\n fn,\n {\n size: 2,\n sx: {\n alignItems: \"center\",\n alignSelf: \"center\",\n height: \"40px\",\n width: \"40px\",\n display: \"flex\",\n justifyContent: \"center\",\n textAlign: \"center\",\n backgroundColor: \"\",\n borderRadius: \"3%\",\n transition: \"background-color 0.3s ease\",\n \"&:hover\": {\n backgroundColor: \"#e0e0e0\",\n cursor: \"pointer\"\n },\n overflow: \"hidden\"\n },\n children: /* @__PURE__ */ e(\"div\", { dangerouslySetInnerHTML: { __html: c } })\n }\n );\n}\nst.propTypes = {\n svg: m.string.isRequired\n};\nconst Ee = (o, c = \"36px\") => {\n let d = null;\n if (typeof o == \"object\" && o !== null ? o.type === \"svg\" && typeof o.content == \"string\" ? d = o.content : typeof o.svg == \"string\" && (d = o.svg) : typeof o == \"string\" && (d = o), typeof d == \"string\" && d.includes(\"<svg\")) {\n const b = d.match(/<svg[\\s\\S]*<\\/svg>/i);\n b && (d = b[0]);\n }\n return d ? /* @__PURE__ */ e(\n N,\n {\n sx: {\n height: c,\n width: c,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n },\n children: /* @__PURE__ */ e(st, { svg: d })\n }\n ) : /* @__PURE__ */ e(\n N,\n {\n sx: {\n fontSize: \"1.2rem\",\n color: \"#b0bec5\",\n border: \"1px solid\",\n borderRadius: \"50%\",\n height: \"36px\",\n width: \"36px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginBottom: \"4px\"\n },\n children: \"?\"\n }\n );\n}, et = ({ feature: o, isGroupMember: c = !1 }) => /* @__PURE__ */ p(\n N,\n {\n sx: {\n width: \"fit-content\",\n p: \"10px\",\n pl: c ? \"20px\" : \"10px\",\n backgroundColor: \"#fff\",\n border: \"1px solid #e0e0e0\",\n borderRadius: \"4px\",\n boxShadow: \"0 1px 2px rgba(0, 0, 0, 0.05)\",\n cursor: \"grab\",\n display: \"flex\",\n alignItems: \"center\",\n transition: \"all 0.1s\",\n mt: \"4px\",\n \"&:hover\": {\n backgroundColor: \"#f5f5f5\",\n borderColor: \"#b0bec5\"\n }\n },\n children: [\n ((b, E) => {\n const u = Ee(o.icon, \"18px\");\n return u && u.type === N ? K.cloneElement(u, {\n sx: {\n ...u.props.sx,\n height: \"18px\",\n width: \"18px\",\n marginRight: \"8px\"\n }\n }) : /* @__PURE__ */ e(N, { sx: { mr: \"8px\", display: \"flex\", alignItems: \"center\" }, children: Ee(b, E) });\n })(o.icon, \"18px\"),\n /* @__PURE__ */ e(S, { variant: \"body2\", sx: { fontWeight: \"normal\", color: \"#333\" }, children: o == null ? void 0 : o.name })\n ]\n }\n);\net.propTypes = {\n feature: m.any,\n isGroupMember: m.any\n};\nconst tt = ({ item: o, COMPONENT_TYPES: c, activeGroupId: d, onGroupToggle: b }) => {\n const E = d === o.uuid, u = (y) => {\n y.stopPropagation();\n };\n return o.type !== \"GROUP\" ? /* @__PURE__ */ e(we, { id: o.uuid, componentType: c.FEATURE, dragData: o, children: /* @__PURE__ */ e(v, { item: !0, xs: 12, children: /* @__PURE__ */ e(et, { feature: o }) }, o.id) }, o.uuid) : /* @__PURE__ */ p(\n Ye,\n {\n sx: {\n m: 0,\n \"&:before\": { display: \"none\" },\n boxShadow: \"none\",\n border: \"1px solid #e0e0e0\",\n mb: 1,\n borderRadius: \"4px!important\"\n },\n expanded: E,\n onChange: () => b(o.uuid),\n disableGutters: !0,\n children: [\n /* @__PURE__ */ e(\n Je,\n {\n expandIcon: /* @__PURE__ */ e(N, { sx: { p: 1 }, onMouseDown: u, onTouchStart: u, children: /* @__PURE__ */ e(\n X,\n {\n iconName: \"faChevronDown\",\n style: {\n fontSize: \"1rem\",\n color: \"#073149\",\n transform: E ? \"rotate(360deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s\"\n }\n }\n ) }),\n sx: {\n minHeight: \"15px\",\n backgroundColor: \"#e3f2fd\",\n borderBottom: \"1px solid #bbdefb\",\n cursor: \"grab\",\n \"&:hover\": { backgroundColor: \"#c5e3f8\" },\n \"& .MuiAccordionSummary-content\": { margin: \"0\" },\n p: \"0 10px\"\n },\n children: /* @__PURE__ */ p(N, { sx: { display: \"flex\", alignItems: \"center\", width: \"100%\" }, children: [\n /* @__PURE__ */ e(\n we,\n {\n id: o.uuid,\n componentType: c.GROUP,\n dragData: o,\n children: /* @__PURE__ */ e(\n N,\n {\n component: \"span\",\n sx: { cursor: \"grab\", mr: 1, px: 0.5, \"&:hover\": { color: \"#007bff\" } },\n onClick: (y) => y.stopPropagation(),\n onMouseDown: (y) => y.stopPropagation(),\n onTouchStart: (y) => y.stopPropagation(),\n children: /* @__PURE__ */ e(X, { iconName: \"faBars\", style: { fontSize: \"0.8rem\", color: \"#073149\" } })\n }\n )\n },\n `drag-handle-${o.uuid}`\n ),\n /* @__PURE__ */ p(S, { variant: \"subtitle2\", sx: { fontWeight: \"bold\", color: \"#073149\", flexGrow: 1 }, children: [\n o.name,\n \" (\",\n o.menus.length,\n \")\"\n ] })\n ] })\n }\n ),\n /* @__PURE__ */ e(Xe, { sx: { p: \"8px\", pt: 1, backgroundColor: \"#f9f9f9\" }, children: /* @__PURE__ */ e(v, { container: !0, spacing: 0.5, children: o.menus.map((y) => /* @__PURE__ */ e(\n we,\n {\n id: y.uuid,\n componentType: c.FEATURE,\n dragData: y,\n children: /* @__PURE__ */ e(v, { item: !0, xs: 12, children: /* @__PURE__ */ e(et, { feature: y, isGroupMember: !0 }) }, y.id)\n },\n y.uuid\n )) }) })\n ]\n },\n o.uuid\n );\n};\ntt.propTypes = {\n item: m.any,\n COMPONENT_TYPES: m.any,\n activeGroupId: m.any,\n onGroupToggle: m.any\n};\nexport {\n cr as default\n};\n//# sourceMappingURL=AddMenuConfiguration-QWfpcnuP.js.map\n"],"names":["useCombinedRefs","_len","refs","_key","useMemo","node","ref","canUseDOM","isWindow","element","elementString","isNode","getWindow","target","_target$ownerDocument","_target$ownerDocument2","isDocument","Document","isHTMLElement","isSVGElement","getOwnerDocument","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","useEvent","handler","handlerRef","useRef","useCallback","args","useInterval","intervalRef","set","listener","duration","clear","useLatestValue","value","dependencies","valueRef","useLazyMemo","callback","newValue","useNodeRef","onChange","onChangeHandler","setNodeRef","usePrevious","ids","useUniqueId","prefix","id","createAdjustmentFn","modifier","object","adjustments","accumulator","adjustment","entries","key","valueAdjustment","add","subtract","hasViewportRelativeCoordinates","event","isKeyboardEvent","KeyboardEvent","isTouchEvent","TouchEvent","getEventCoordinates","x","y","CSS","transform","scaleX","scaleY","_ref","property","easing","SELECTOR","findFirstFocusableNode","hiddenStyles","HiddenText","React","LiveRegion","announcement","ariaLiveType","visuallyHidden","useAnnouncement","setAnnouncement","useState","DndMonitorContext","createContext","useDndMonitor","registerListener","useContext","useDndMonitorProvider","listeners","type","_listener$type","defaultScreenReaderInstructions","defaultAnnouncements","active","_ref2","over","_ref3","_ref4","Accessibility","announcements","container","hiddenTextDescribedById","screenReaderInstructions","announce","liveRegionId","mounted","setMounted","_ref5","_ref6","markup","createPortal","Action","noop","defaultCoordinates","distanceBetween","p1","p2","getRelativeTransformOrigin","rect","eventCoordinates","transformOrigin","sortCollisionsAsc","a","b","sortCollisionsDesc","getFirstCollision","collisions","firstCollision","centerOfRectangle","left","top","closestCenter","collisionRect","droppableRects","droppableContainers","centerRect","droppableContainer","distBetween","getIntersectionRatio","entry","right","bottom","width","height","targetArea","entryArea","intersectionArea","intersectionRatio","rectIntersection","adjustScale","rect1","rect2","getRectDelta","createRectAdjustmentFn","acc","getAdjustedRect","parseTransform","transformArray","inverseTransform","parsedTransform","translateX","translateY","w","h","defaultOptions","getClientRect","options","getTransformAgnosticClientRect","getWindowClientRect","isFixed","computedStyle","isScrollable","overflowRegex","getScrollableAncestors","limit","scrollParents","findScrollableAncestors","getFirstScrollableAncestor","firstScrollableAncestor","getScrollableElement","getScrollXCoordinate","getScrollYCoordinate","getScrollCoordinates","Direction","isDocumentScrollingElement","getScrollPosition","scrollingContainer","minScroll","dimensions","maxScroll","isTop","isLeft","isBottom","isRight","defaultThreshold","getScrollDirectionAndSpeed","scrollContainer","scrollContainerRect","acceleration","thresholdPercentage","direction","speed","threshold","getScrollElementRect","innerWidth","innerHeight","getScrollOffsets","scrollableAncestors","getScrollXOffset","getScrollYOffset","scrollIntoViewIfNeeded","measure","properties","Rect","scrollOffsets","axis","keys","getScrollOffset","currentOffsets","scrollOffsetsDeltla","Listeners","_this$target","eventName","_this$target2","getEventListenerTarget","EventTarget","hasExceededDistance","delta","measurement","dx","dy","EventName","preventDefault","stopPropagation","KeyboardCode","defaultKeyboardCodes","defaultKeyboardCoordinateGetter","currentCoordinates","KeyboardSensor","props","activeNode","onStart","context","keyboardCodes","coordinateGetter","scrollBehavior","code","newCoordinates","coordinatesDelta","scrollDelta","scrollElementRect","clampedCoordinates","canScrollX","canScrollY","newScrollCoordinates","canScrollToNewCoordinates","coordinates","onMove","onEnd","onCancel","onActivation","activator","isDistanceConstraint","constraint","isDelayConstraint","AbstractPointerSensor","events","listenerTarget","_getEventCoordinates","activationConstraint","bypassActivationConstraint","offset","onPending","initialCoordinates","_getEventCoordinates2","activated","onAbort","_this$document$getSel","PointerSensor","events$1","MouseButton","MouseSensor","events$2","TouchSensor","touches","AutoScrollActivator","TraversalOrder","useAutoScroller","canScroll","draggingRect","enabled","interval","order","pointerCoordinates","scrollableAncestorRects","scrollIntent","useScrollIntent","setAutoScrollInterval","clearAutoScrollInterval","scrollSpeed","scrollDirection","scrollContainerRef","autoScroll","scrollLeft","scrollTop","sortedScrollableAncestors","index","defaultScrollIntent","disabled","previousDelta","previousIntent","useCachedNode","draggableNodes","draggableNode","cachedNode","useCombineActivators","sensors","getSyntheticHandler","sensor","Sensor","sensorActivators","MeasuringStrategy","MeasuringFrequency","defaultValue","useDroppableMeasuring","containers","dragging","config","queue","setQueue","frequency","strategy","containersRef","isDisabled","disabledRef","measureDroppableContainers","timeoutId","previousValue","map","useInitialValue","computeFn","useInitialRect","useMutationObserver","handleMutations","mutationObserver","MutationObserver","useResizeObserver","handleResize","resizeObserver","ResizeObserver","defaultMeasure","useRect","fallbackRect","setRect","measureRect","currentRect","newRect","records","record","useRectDelta","initialRect","defaultValue$1","useScrollableAncestors","previousNode","ancestors","useScrollOffsets","elements","scrollCoordinates","setScrollCoordinates","prevElements","handleScroll","scrollingElement","previousElements","cleanup","scrollableElement","useScrollOffsetsDelta","initialScrollOffsets","hasScrollOffsets","useSensorSetup","teardownFns","teardown","useSyntheticListeners","useWindowRect","defaultValue$2","useRects","firstElement","windowRect","rects","setRects","measureRects","getMeasurableNode","firstChild","useDragOverlayMeasuring","handleNodeChange","nodeRef","setRef","defaultSensors","defaultData","defaultMeasuringConfiguration","DroppableContainersMap","_super$get","_this$get$node$curren","_this$get","defaultPublicContext","defaultInternalContext","InternalContext","PublicContext","getInitialState","reducer","state","action","RestoreFocus","activatorEvent","previousActivatorEvent","previousActiveId","activatorNode","focusableNode","applyModifiers","modifiers","useMeasuringConfiguration","useLayoutShiftScrollCompensation","initialized","rectDelta","ActiveDraggableContext","Status","DndContext","memo","_sensorContext$curren","_dragOverlay$nodeRef$","_dragOverlay$rect","_over$rect","accessibility","children","collisionDetection","measuring","store","useReducer","dispatch","dispatchMonitorEvent","registerMonitorListener","status","setStatus","isInitialized","activeId","translate","activeRects","_node$data","activeRef","activeSensor","setActiveSensor","setActivatorEvent","latestProps","draggableDescribedById","enabledDroppableContainers","measuringConfiguration","measuringScheduled","activationCoordinates","autoScrollOptions","getAutoScrollerOptions","initialActiveNodeRect","activeNodeRect","containerNodeRect","sensorContext","overNode","dragOverlay","draggingNode","draggingNodeRect","usesDragOverlay","nodeRectDelta","modifiedTranslate","scrollAdjustment","activeNodeScrollDelta","scrollAdjustedTranslate","overId","setOver","appliedTranslate","activeSensorRef","instantiateSensor","sensorInstance","onDragAbort","onDragPending","onDragStart","unstable_batchedUpdates","createHandler","cancelDrop","bindActivatorToSensorInstantiator","nativeEvent","activeDraggableNode","activationContext","activators","onDragMove","onDragOver","overContainer","publicContext","internalContext","activeSensorDisablesAutoscroll","autoScrollGloballyDisabled","NullContext","defaultRole","ID_PREFIX","useDraggable","data","attributes","ariaDescribedById","role","roleDescription","tabIndex","isDragging","setActivatorNodeRef","dataRef","memoizedAttributes","useDndContext","ID_PREFIX$1","defaultResizeObserverConfig","useDroppable","resizeObserverConfig","previous","resizeObserverConnected","callbackId","resizeObserverDisabled","updateMeasurementsFor","resizeObserverTimeout","newElement","previousElement","AnimationManager","animation","clonedChildren","setClonedChildren","setElement","previousChildren","cloneElement","defaultTransform","NullifiedContextProvider","baseStyles","defaultTransition","PositionedOverlay","forwardRef","as","className","style","transition","scaleAdjustedTransform","styles","defaultDropAnimationSideEffects","originalStyles","defaultKeyframeResolver","initial","final","defaultDropAnimationConfiguration","useDropAnimation","activeDraggable","measurableNode","createDefaultDropAnimation","sideEffects","keyframes","rest","scale","finalTransform","animationKeyframes","firstKeyframe","lastKeyframe","resolve","useKey","DragOverlay","dropAnimationConfig","wrapperElement","zIndex","modifiedTransform","dropAnimation","arrayMove","array","from","to","newArray","getSortedRects","items","isValidIndex","itemsEqual","i","normalizeDisabled","rectSortingStrategy","activeIndex","overIndex","newRects","oldRect","defaultScale$1","verticalListSortingStrategy","_rects$activeIndex","fallbackActiveRect","overIndexRect","itemGap","getItemGap$1","clientRects","previousRect","nextRect","Context","SortableContext","userDefinedItems","disabledProp","containerId","useDragOverlay","item","previousItemsRef","itemsHaveChanged","disableTransforms","contextValue","defaultNewIndexGetter","defaultAnimateLayoutChanges","isSorting","wasDragging","newIndex","previousItems","previousContainerId","transitionProperty","disabledTransition","defaultAttributes","useDerivedTransform","derivedTransform","setDerivedtransform","previousIndex","current","useSortable","animateLayoutChanges","userDefinedAttributes","localDisabled","customData","getNewIndex","localStrategy","globalDisabled","sortedRects","globalStrategy","normalizeLocalDisabled","itemsAfterCurrentSortable","isOver","setDroppableNodeRef","setDraggableNodeRef","displaceItem","shouldDisplaceDragSource","dragSourceDisplacement","shouldAnimateLayoutChanges","getTransition","_localDisabled$dragga","_localDisabled$droppa","Gn","hn","Dn","o","c","d","E","u","rt","R","K","Un","Mt","Ft","F","it","p","U","e","W","kt","S","m","at","Q","ee","de","T","te","A","ne","j","ae","ue","nt","De","Ue","ye","be","P","Ut","Dt","_t","Pt","Fn","M","Gt","Nn","Mn","_n","kn","f","se","k","$","Re","G","H","q","Se","Be","L","ze","Ce","pe","B","fe","Y","Ie","Pe","Ae","Te","Cn","In","vn","Rn","wn","En","An","Ve","ln","cn","Tt","Ze","Nt","Bt","dn","xe","un","Tn","ot","cr","ht","gt","yn","Fe","bn","xn","t","gn","Ke","n","r","J","ct","ve","ie","s","ge","l","C","Z","lt","We","he","z","Oe","Ht","me","He","dt","ut","Le","Lt","jt","$t","le","qt","pt","re","je","Ne","Me","oe","Zt","Vt","Qt","Yt","xt","yt","bt","St","Ct","It","vt","Rt","wt","Et","g","I","O","_","D","ke","qe","_e","ce","V","ft","Jt","N","Xt","$e","v","Ee","mt","Kt","en","tn","nn","rn","on","At","sn","Ge","st","Ot","Sn","we","X","zt","Qe","pn","Ye","Je","Xe","tt","Wt","an","Pn","On","mn","fn","et"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|