@coreui/data-grid 0.1.0-rc.0 → 0.3.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/dist/css/data-grid.css +156 -38
- package/dist/css/data-grid.css.map +1 -1
- package/dist/css/data-grid.min.css +2 -2
- package/dist/css/data-grid.min.css.map +1 -1
- package/dist/css/data-grid.standalone.css +1066 -0
- package/dist/css/data-grid.standalone.css.map +1 -0
- package/dist/css/data-grid.standalone.min.css +5 -0
- package/dist/css/data-grid.standalone.min.css.map +1 -0
- package/dist/js/clipboard.cjs +56 -0
- package/dist/js/clipboard.cjs.map +1 -0
- package/dist/js/clipboard.mjs +54 -0
- package/dist/js/clipboard.mjs.map +1 -0
- package/dist/js/csv.cjs +36 -59
- package/dist/js/csv.cjs.map +1 -1
- package/dist/js/csv.mjs +35 -55
- package/dist/js/csv.mjs.map +1 -1
- package/dist/js/data-grid.esm.js +14108 -9331
- package/dist/js/data-grid.esm.js.map +1 -1
- package/dist/js/data-grid.esm.min.js +6 -6
- package/dist/js/data-grid.esm.min.js.map +1 -1
- package/dist/js/data-grid.js +14408 -9634
- package/dist/js/data-grid.js.map +1 -1
- package/dist/js/data-grid.lite.esm.js +10507 -0
- package/dist/js/data-grid.lite.esm.js.map +1 -0
- package/dist/js/data-grid.lite.esm.min.js +8 -0
- package/dist/js/data-grid.lite.esm.min.js.map +1 -0
- package/dist/js/data-grid.lite.js +10520 -0
- package/dist/js/data-grid.lite.js.map +1 -0
- package/dist/js/data-grid.lite.min.js +8 -0
- package/dist/js/data-grid.lite.min.js.map +1 -0
- package/dist/js/data-grid.lite.mjs +10507 -0
- package/dist/js/data-grid.lite.mjs.map +1 -0
- package/dist/js/data-grid.min.js +6 -6
- package/dist/js/data-grid.min.js.map +1 -1
- package/dist/js/data-grid.mjs +14108 -9331
- package/dist/js/data-grid.mjs.map +1 -1
- package/dist/js/direction.cjs +26 -0
- package/dist/js/direction.cjs.map +1 -0
- package/dist/js/direction.mjs +24 -0
- package/dist/js/direction.mjs.map +1 -0
- package/dist/js/drag.cjs +467 -0
- package/dist/js/drag.cjs.map +1 -0
- package/dist/js/drag.mjs +464 -0
- package/dist/js/drag.mjs.map +1 -0
- package/dist/js/export-table-BdabEbJG.mjs +26 -0
- package/dist/js/export-table-BdabEbJG.mjs.map +1 -0
- package/dist/js/export-table-D762wrZ1.cjs +55 -0
- package/dist/js/export-table-D762wrZ1.cjs.map +1 -0
- package/dist/js/filters.cjs +89 -132
- package/dist/js/filters.cjs.map +1 -1
- package/dist/js/filters.mjs +88 -128
- package/dist/js/filters.mjs.map +1 -1
- package/dist/js/labels.cjs +65 -70
- package/dist/js/labels.cjs.map +1 -1
- package/dist/js/labels.mjs +64 -66
- package/dist/js/labels.mjs.map +1 -1
- package/dist/js/print.cjs +66 -0
- package/dist/js/print.cjs.map +1 -0
- package/dist/js/print.mjs +64 -0
- package/dist/js/print.mjs.map +1 -0
- package/dist/js/validate.cjs +43 -0
- package/dist/js/validate.cjs.map +1 -0
- package/dist/js/validate.mjs +42 -0
- package/dist/js/validate.mjs.map +1 -0
- package/dist/js/xlsx.cjs +240 -0
- package/dist/js/xlsx.cjs.map +1 -0
- package/dist/js/xlsx.mjs +238 -0
- package/dist/js/xlsx.mjs.map +1 -0
- package/dist/types/base-component.d.ts +28 -18
- package/dist/types/data-grid.d.ts +26 -13
- package/dist/types/dom/data.d.ts +15 -0
- package/dist/types/dom/event-handler.d.ts +21 -10
- package/dist/types/dom/manipulator.d.ts +15 -8
- package/dist/types/engine/active-cell.d.ts +1 -0
- package/dist/types/engine/data-source.d.ts +1 -1
- package/dist/types/engine/features-lite.d.ts +25 -0
- package/dist/types/engine/features.d.ts +35 -0
- package/dist/types/engine/table.d.ts +3 -3
- package/dist/types/engine/validate.d.mts +1 -0
- package/dist/types/engine/validate.d.ts +20 -0
- package/dist/types/engine/virtualizer.d.ts +2 -0
- package/dist/types/icons.d.ts +6 -4
- package/dist/types/index-lite.d.mts +1 -0
- package/dist/types/index-lite.d.ts +19 -0
- package/dist/types/index.d.ts +11 -2
- package/dist/types/types.d.ts +53 -31
- package/dist/types/ui/body.d.ts +6 -3
- package/dist/types/ui/header.d.ts +3 -2
- package/dist/types/ui/loading.d.ts +1 -1
- package/dist/types/ui/pinning.d.ts +1 -1
- package/dist/types/ui/toolbar.d.ts +10 -2
- package/dist/types/util/clipboard.d.mts +1 -0
- package/dist/types/util/clipboard.d.ts +29 -0
- package/dist/types/util/config.d.ts +27 -10
- package/dist/types/util/csv.d.ts +5 -5
- package/dist/types/util/direction.d.mts +1 -0
- package/dist/types/util/direction.d.ts +17 -0
- package/dist/types/util/drag.d.mts +1 -0
- package/dist/types/util/drag.d.ts +48 -0
- package/dist/types/util/export-table.d.ts +47 -0
- package/dist/types/util/index.d.ts +66 -10
- package/dist/types/util/print.d.mts +1 -0
- package/dist/types/util/print.d.ts +32 -0
- package/dist/types/util/sanitizer.d.ts +15 -11
- package/dist/types/util/xlsx.d.mts +1 -0
- package/dist/types/util/xlsx.d.ts +17 -0
- package/dist/types/util/zip.d.ts +11 -0
- package/package.json +101 -10
- package/scss/_base.scss +13 -0
- package/scss/_config.scss +14 -0
- package/scss/_functions.scss +1 -0
- package/scss/_mixins.scss +1 -0
- package/scss/base/_buttons.scss +113 -0
- package/scss/base/_forms.scss +157 -0
- package/scss/base/_helpers.scss +24 -0
- package/scss/base/_pagination.scss +100 -0
- package/scss/base/_reboot.scss +93 -0
- package/scss/base/_root.scss +85 -0
- package/scss/base/_spinner.scss +45 -0
- package/scss/base/_table.scss +78 -0
- package/scss/components/_data-grid.scss +807 -0
- package/scss/data-grid.scss +7 -555
- package/scss/data-grid.standalone.scss +16 -0
- package/scss/functions/_defaults.scss +25 -0
- package/scss/mixins/_tokens.scss +12 -0
- package/src/{base-component.js → base-component.ts} +21 -17
- package/src/data-grid.ts +523 -201
- package/src/dom/{data.js → data.ts} +13 -10
- package/src/dom/event-handler.ts +380 -0
- package/src/dom/{manipulator.js → manipulator.ts} +11 -11
- package/src/engine/active-cell.ts +10 -3
- package/src/engine/data-source.ts +7 -3
- package/src/engine/features-lite.ts +47 -0
- package/src/engine/features.ts +68 -0
- package/src/engine/table.ts +86 -45
- package/src/engine/validate.ts +64 -0
- package/src/engine/virtualizer.ts +17 -1
- package/src/icons.ts +11 -5
- package/src/index-lite.ts +85 -0
- package/src/index.ts +30 -2
- package/src/labels.ts +6 -4
- package/src/types.ts +87 -32
- package/src/ui/body.ts +73 -17
- package/src/ui/header.ts +51 -26
- package/src/ui/loading.ts +2 -2
- package/src/ui/pinning.ts +16 -16
- package/src/ui/toolbar.ts +27 -3
- package/src/util/clipboard.ts +112 -0
- package/src/util/{config.js → config.ts} +25 -11
- package/src/util/csv.ts +11 -30
- package/src/util/direction.ts +37 -0
- package/src/util/drag.ts +832 -0
- package/src/util/export-table.ts +86 -0
- package/src/util/{index.js → index.ts} +55 -35
- package/src/util/print.ts +125 -0
- package/src/util/{sanitizer.js → sanitizer.ts} +17 -13
- package/src/util/xlsx.ts +183 -0
- package/src/util/zip.ts +170 -0
- package/src/base-component.d.ts +0 -19
- package/src/dom/event-handler.d.ts +0 -11
- package/src/dom/event-handler.js +0 -331
- package/src/dom/manipulator.d.ts +0 -9
- package/src/util/config.d.ts +0 -11
- package/src/util/index.d.ts +0 -10
- package/src/util/sanitizer.d.ts +0 -11
package/dist/js/data-grid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-grid.js","sources":["../../src/dom/data.js","../../src/util/index.js","../../src/dom/event-handler.js","../../src/dom/manipulator.js","../../src/util/config.js","../../src/base-component.js","../../src/engine/active-cell.ts","../../src/engine/data-source.ts","../../src/engine/scheduler.ts","../../../../node_modules/@tanstack/table-core/build/lib/index.mjs","../../src/filters.ts","../../src/ui/toolbar.ts","../../src/engine/table.ts","../../../../node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js","../../../../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../../../../node_modules/@tanstack/virtual-core/dist/esm/index.js","../../src/engine/virtualizer.ts","../../src/icons.ts","../../src/labels.ts","../../src/ui/pinning.ts","../../src/ui/body.ts","../../src/ui/editor.ts","../../src/ui/header.ts","../../src/ui/loading.ts","../../src/ui/filter-menu.ts","../../src/ui/menu.ts","../../src/ui/pagination.ts","../../src/ui/column-chooser.ts","../../src/ui/tooltip.ts","../../src/util/csv.ts","../../src/util/debounce.ts","../../src/util/sanitizer.js","../../src/data-grid.ts"],"sourcesContent":["// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/dom/data.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI dom/data.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/util/index.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI util/index.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0]\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-coreui-no-jquery')) {\n return window.jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n defineJQueryPlugin,\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getjQuery,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/dom/event-handler.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI dom/event-handler.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index.js'\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n // Local addition over the coreui-pro source: HTML5 drag & drop events used\n // by the data grid's column reordering.\n 'drag',\n 'dragstart',\n 'dragend',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'drop',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'input',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.coreui.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n\n let jQueryEvent = null\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n const evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/dom/manipulator.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI dom/manipulator.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-coreui-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-coreui-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const coreuiKeys = Object.keys(element.dataset).filter(key => key.startsWith('coreui') && !key.startsWith('coreuiConfig'))\n\n for (const key of coreuiKeys) {\n let pureKey = key.replace(/^coreui/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-coreui-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/util/config.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI util/config.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/base-component.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI base-component.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This component is a modified version of the Bootstrap's base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '0.1.0'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n // Private\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `coreui.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n",null,null,null,"/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nfunction createColumnHelper() {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function' ? {\n ...column,\n accessorFn: accessor\n } : {\n ...column,\n accessorKey: accessor\n };\n },\n display: column => column,\n group: column => column\n };\n}\n\n// Is this type a tuple?\n\n// If this type is a tuple, what indices are allowed?\n\n///\n\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {\n //\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return {\n ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction isNumberArray(d) {\n return Array.isArray(d) && d.every(val => typeof val === 'number');\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return depArgs => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\nfunction getMemoOptions(tableOptions, debugLevel, key, onChange) {\n return {\n debug: () => {\n var _tableOptions$debugAl;\n return (_tableOptions$debugAl = tableOptions == null ? void 0 : tableOptions.debugAll) != null ? _tableOptions$debugAl : tableOptions[debugLevel];\n },\n key: process.env.NODE_ENV === 'development' && key,\n onChange\n };\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n const cell = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(() => [table, column, row, cell], (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n }), getMemoOptions(table.options, 'debugCells', 'cell.getContext'))\n };\n table._features.forEach(feature => {\n feature.createCell == null || feature.createCell(cell, column, row, table);\n }, {});\n return cell;\n}\n\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n const defaultColumn = table._getDefaultColumnDef();\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef\n };\n const accessorKey = resolvedColumnDef.accessorKey;\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? typeof String.prototype.replaceAll === 'function' ? accessorKey.replaceAll('.', '_') : accessorKey.replace(/\\./g, '_') : undefined) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = originalRow => {\n let result = originalRow;\n for (const key of accessorKey.split('.')) {\n var _result;\n result = (_result = result) == null ? void 0 : _result[key];\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n }\n }\n return result;\n };\n } else {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n }\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);\n }\n throw new Error();\n }\n let column = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getFlatColumns')),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n return [column];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getLeafColumns'))\n };\n for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\n\n // Yes, we have to convert table to unknown, because we know more than the compiler here.\n return column;\n}\n\nconst debug = 'debugHeaders';\n//\n\nfunction createHeader(table, column, options) {\n var _options$id;\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n leafHeaders.push(h);\n };\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n table._features.forEach(feature => {\n feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, getMemoOptions(table.options, debug, 'getHeaderGroups'));\n table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, getMemoOptions(table.options, debug, 'getCenterHeaderGroups'));\n table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, getMemoOptions(table.options, debug, 'getLeftHeaderGroups'));\n table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, getMemoOptions(table.options, debug, 'getRightHeaderGroups'));\n\n // Footer Groups\n\n table.getFooterGroups = memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getFooterGroups'));\n table.getLeftFooterGroups = memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getLeftFooterGroups'));\n table.getCenterFooterGroups = memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getCenterFooterGroups'));\n table.getRightFooterGroups = memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getRightFooterGroups'));\n\n // Flat Headers\n\n table.getFlatHeaders = memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getFlatHeaders'));\n table.getLeftFlatHeaders = memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeftFlatHeaders'));\n table.getCenterFlatHeaders = memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getCenterFlatHeaders'));\n table.getRightFlatHeaders = memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getRightFlatHeaders'));\n\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, getMemoOptions(table.options, debug, 'getCenterLeafHeaders'));\n table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, getMemoOptions(table.options, debug, 'getLeftLeafHeaders'));\n table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, getMemoOptions(table.options, debug, 'getRightLeafHeaders'));\n table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeafHeaders'));\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0;\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n findMaxDepth(allColumns);\n let headerGroups = [];\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: []\n };\n\n // The parent columns we're going to scan next\n const pendingParentHeaders = [];\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,\n depth,\n index: pendingParentHeaders.length\n });\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup);\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header);\n }\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse();\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n return row._uniqueValuesCache[columnId];\n }\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);\n return row._uniqueValuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, getMemoOptions(table.options, 'debugRows', 'getAllCells')),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, getMemoOptions(table.options, 'debugRows', 'getAllCellsByColumnId'))\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n feature == null || feature.createRow == null || feature.createRow(row, table);\n }\n return row;\n};\n\n//\n\nconst ColumnFaceting = {\n createColumn: (column, table) => {\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _filterValue$toString, _row$getValue;\n const search = filterValue == null || (_filterValue$toString = filterValue.toString()) == null ? void 0 : _filterValue$toString.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val);\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\nequals.autoRemove = val => testFalsey(val);\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\nweakEquals.autoRemove = val => testFalsey(val);\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n return [min, max];\n};\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);\n\n// Export\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n// Utils\n\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\n\nconst ColumnFiltering = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : // @ts-ignore\n (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n };\n column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) != null ? _table$getState$colum2 : -1;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousFilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousFilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n },\n createRow: (row, _table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n const values = leafRows.map(row => row.getValue(columnId));\n if (!isNumberArray(values)) {\n return;\n }\n if (values.length === 1) {\n return values[0];\n }\n const mid = Math.floor(values.length / 2);\n const nums = values.sort((a, b) => a - b);\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;\n};\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\n\nconst ColumnGrouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGrouping) != null ? _table$options$enable : true) && (!!column.accessorFn || !!column.columnDef.getGroupingValue);\n };\n column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst ColumnOrdering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createColumn: (column, table) => {\n column.getIndex = memo(position => [_getVisibleLeafColumns(table, position)], columns => columns.findIndex(d => d.id === column.id), getMemoOptions(table.options, 'debugColumns', 'getIndex'));\n column.getIsFirstColumn = position => {\n var _columns$;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;\n };\n column.getIsLastColumn = position => {\n var _columns;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;\n };\n },\n createTable: table => {\n table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn'));\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst ColumnPinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n };\n },\n createRow: (row, table) => {\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells'));\n row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells'));\n row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells'));\n },\n createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns'));\n table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns'));\n table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns'));\n }\n};\n\nfunction safelyAccessDocument(_document) {\n return _document || (typeof document !== 'undefined' ? document : null);\n}\n\n//\n\n//\n\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n };\n column.getStart = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(0, column.getIndex(position)).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getStart'));\n column.getAfter = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(column.getIndex(position) + 1).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getAfter'));\n column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = _contextDocument => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const contextDocument = safelyAccessDocument(_contextDocument);\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n contextDocument == null || contextDocument.removeEventListener('mousemove', mouseEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n contextDocument == null || contextDocument.removeEventListener('touchmove', touchEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n contextDocument == null || contextDocument.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n contextDocument == null || contextDocument.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n };\n },\n createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst ColumnVisibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _ref, _table$getState$colum;\n const childColumns = column.columns;\n return (_ref = childColumns.length ? childColumns.some(c => c.getIsVisible()) : (_table$getState$colum = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum[column.id]) != null ? _ref : true;\n };\n column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, getMemoOptions(table.options, 'debugRows', '_getAllVisibleCells'));\n row.getVisibleCells = memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], getMemoOptions(table.options, 'debugRows', 'getVisibleCells'));\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, getMemoOptions(table.options, 'debugColumns', key));\n };\n table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nfunction _getVisibleLeafColumns(table, position) {\n return !position ? table.getVisibleLeafColumns() : position === 'center' ? table.getCenterVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n}\n\n//\n\nconst GlobalFaceting = {\n createTable: table => {\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\n\n//\n\nconst GlobalFiltering = {\n getInitialState: state => {\n return {\n globalFilter: undefined,\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getCanGlobalFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2, _table$options$getCol;\n return ((_column$columnDef$ena = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGlobalFilter) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n };\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.getGlobalFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[globalFilterFn]) != null ? _table$options$filter : filterFns[globalFilterFn];\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n }\n};\n\n//\n\nconst RowExpanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst RowPagination = {\n getInitialState: state => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n //deprecated\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, getMemoOptions(table.options, 'debugTable', 'getPageOptions'));\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.firstPage = () => {\n return table.setPageIndex(0);\n };\n table.lastPage = () => {\n return table.setPageIndex(table.getPageCount() - 1);\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getRowCount() / table.getState().pagination.pageSize);\n };\n table.getRowCount = () => {\n var _table$options$rowCou;\n return (_table$options$rowCou = table.options.rowCount) != null ? _table$options$rowCou : table.getPrePaginationRowModel().rows.length;\n };\n }\n};\n\n//\n\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst RowPinning = {\n getInitialState: state => {\n return {\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref => {\n let {\n id\n } = _ref;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref3;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref3 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref3 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _ref4, _visiblePinnedRowIds$;\n const position = row.getIsPinned();\n if (!position) return -1;\n const visiblePinnedRowIds = (_ref4 = position === 'top' ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map(_ref5 => {\n let {\n id\n } = _ref5;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n },\n createTable: table => {\n table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n };\n table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, 'top'), getMemoOptions(table.options, 'debugRows', 'getTopRows'));\n table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, 'bottom'), getMemoOptions(table.options, 'debugRows', 'getBottomRows'));\n table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);\n return allRows.filter(d => !topAndBottom.has(d.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterRows'));\n }\n};\n\n//\n\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n };\n },\n createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getSelectedRowModel'));\n table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredSelectedRowModel'));\n table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedSelectedRowModel'));\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId);\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0;\n};\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n};\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n return String(a);\n }\n if (typeof a === 'string') {\n return a;\n }\n return '';\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);\n\n // While\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort();\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n if (bb > aa) {\n return -1;\n }\n continue;\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n }\n\n // Both are numbers\n if (an > bn) {\n return 1;\n }\n if (bn > an) {\n return -1;\n }\n }\n return a.length - b.length;\n}\n\n// Exports\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\n\nconst RowSorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\n\nconst builtInFeatures = [Headers, ColumnVisibility, ColumnOrdering, ColumnPinning, ColumnFaceting, ColumnFiltering, GlobalFaceting,\n//depends on ColumnFaceting\nGlobalFiltering,\n//depends on ColumnFiltering\nRowSorting, ColumnGrouping,\n//depends on RowSorting\nRowExpanding, RowPagination, RowPinning, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$_features, _options$initialState;\n if (process.env.NODE_ENV !== 'production' && (options.debugAll || options.debugTable)) {\n console.info('Creating Table Instance...');\n }\n const _features = [...builtInFeatures, ...((_options$_features = options._features) != null ? _options$_features : [])];\n let table = {\n _features\n };\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n return {\n ...defaultOptions,\n ...options\n };\n };\n const coreInitialState = {};\n let initialState = {\n ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features,\n options: {\n ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n if (!queuedTimeout) {\n queuedTimeout = true;\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, getMemoOptions(options, 'debugColumns', '_getDefaultColumnDef')),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n const groupingColumnDef = columnDef;\n column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n return recurseColumns(columnDefs);\n }, getMemoOptions(options, 'debugColumns', 'getAllColumns')),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumns')),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumnsById')),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, getMemoOptions(options, 'debugColumns', 'getAllLeafColumns')),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`);\n }\n return column;\n }\n };\n Object.assign(table, coreInstance);\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n const accessRows = function (originalRows, depth, parentRow) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row);\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row;\n // Push table row into parent\n rows.push(row);\n\n // Get the original subrows\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n row.originalSubRows = table.options.getSubRows(originalRows[i], i);\n\n // Then recursively access them\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n return rows;\n };\n rowModel.rows = accessRows(data);\n return rowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel;\n }\n return expandRows(rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel'));\n}\nfunction expandRows(rowModel) {\n const expandedRows = [];\n const handleRow = row => {\n var _row$subRows;\n expandedRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return undefined;\n const uniqueValues = facetedRowModel.flatRows.flatMap(flatRow => {\n var _flatRow$getUniqueVal;\n return (_flatRow$getUniqueVal = flatRow.getUniqueValues(columnId)) != null ? _flatRow$getUniqueVal : [];\n }).map(Number).filter(value => !Number.isNaN(value));\n if (!uniqueValues.length) return;\n let facetedMinValue = uniqueValues[0];\n let facetedMaxValue = uniqueValues[uniqueValues.length - 1];\n for (const value of uniqueValues) {\n if (value < facetedMinValue) facetedMinValue = value;else if (value > facetedMaxValue) facetedMaxValue = value;\n }\n return [facetedMinValue, facetedMaxValue];\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedMinMaxValues'));\n}\n\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n var _table$options$maxLea;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n let row = rowsToFilter[i];\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.columnFilters = row.columnFilters;\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedRowModel'));\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return new Map();\n let facetedUniqueValues = new Map();\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n }\n return facetedUniqueValues;\n }, getMemoOptions(table.options, 'debugTable', `getFacetedUniqueValues_${columnId}`));\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n return rowModel;\n }\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n const column = table.getColumn(d.id);\n if (!column) {\n return;\n }\n const filterFn = column.getFilterFn();\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);\n }\n return;\n }\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = (columnFilters != null ? columnFilters : []).map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n let currentColumnFilter;\n let currentGlobalFilter;\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id;\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id;\n // Tag the row with the first truthy global filter state\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n rowModel.rows.forEach(row => {\n row.depth = 0;\n row.parentId = undefined;\n });\n return rowModel;\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {};\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);\n }\n return row;\n });\n }\n const columnId = existingGrouping[depth];\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId);\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = `${columnId}:${groupingValue}`;\n id = parentId ? `${parentId}>${id}` : id;\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id);\n subRows.forEach(subRow => {\n subRow.parentId = id;\n });\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n return row._valuesCache[columnId];\n }\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId);\n const aggregateFn = column == null ? void 0 : column.getAggregationFn();\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }));\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`;\n const previous = map.get(resKey);\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n previous.push(row);\n }\n return map;\n }, groupMap);\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n paginatedRowModel.flatRows = [];\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel'));\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n const sortingState = table.getState().sorting;\n const sortedFlatRows = [];\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort => {\n var _table$getColumn;\n return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();\n });\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n if (!column) return;\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const sortUndefined = columnInfo.sortUndefined;\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1;\n if (sortUndefined === 'last') return aUndefined ? 1 : -1;\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));\n}\n\nexport { ColumnFaceting, ColumnFiltering, ColumnGrouping, ColumnOrdering, ColumnPinning, ColumnSizing, ColumnVisibility, GlobalFaceting, GlobalFiltering, Headers, RowExpanding, RowPagination, RowPinning, RowSelection, RowSorting, _getVisibleLeafColumns, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getMemoOptions, getPaginationRowModel, getSortedRowModel, isFunction, isNumberArray, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.mjs.map\n",null,null,null,"function createLazyMeasurementsView(count, flat, getItemKey) {\n const cache = new Array(count);\n return new Proxy(cache, {\n get(target, prop, receiver) {\n if (typeof prop === \"string\") {\n const c = prop.charCodeAt(0);\n if (c >= 48 && c <= 57) {\n const i = +prop;\n if (Number.isInteger(i) && i >= 0 && i < count) {\n let v = target[i];\n if (!v) {\n const s = flat[i * 2];\n v = target[i] = {\n index: i,\n key: getItemKey(i),\n start: s,\n size: flat[i * 2 + 1],\n end: s + flat[i * 2 + 1],\n lane: 0\n };\n }\n return v;\n }\n }\n if (prop === \"length\") return count;\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nexport {\n createLazyMeasurementsView\n};\n//# sourceMappingURL=lazy-measurements.js.map\n","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a;\n const debugEnabled = process.env.NODE_ENV !== \"production\" && !!opts.key && !!((_a = opts.debug) == null ? void 0 : _a.call(opts));\n let depTime = 0;\n if (debugEnabled) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime = 0;\n if (debugEnabled) resultTime = Date.now();\n result = fn(...newDeps);\n if (debugEnabled) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { createLazyMeasurementsView } from \"./lazy-measurements.js\";\nimport { memo, notUndefined, approxEqual, debounce } from \"./utils.js\";\nlet _isIOSResult;\nconst isIOSWebKit = () => {\n if (_isIOSResult !== void 0) return _isIOSResult;\n if (typeof navigator === \"undefined\") return _isIOSResult = false;\n if (/iP(hone|od|ad)/.test(navigator.userAgent)) return _isIOSResult = true;\n const mtp = navigator.maxTouchPoints;\n return _isIOSResult = navigator.platform === \"MacIntel\" && mtp !== void 0 && mtp > 0;\n};\nconst _resetIOSDetectionForTests = () => {\n _isIOSResult = void 0;\n};\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const len = end - start + 1;\n const arr = new Array(len);\n for (let i = 0; i < len; i++) {\n arr[i] = start + i;\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeOffset = (instance, cb, readOffset) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n let offset = 0;\n const fallback = registerScrollendEvent ? null : debounce(\n targetWindow,\n () => cb(offset, false),\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = readOffset(element);\n fallback == null ? void 0 : fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeElementOffset = (instance, cb) => observeOffset(instance, cb, (el) => {\n const { horizontal, isRtl } = instance.options;\n return horizontal ? el.scrollLeft * (isRtl && -1 || 1) : el.scrollTop;\n});\nconst observeWindowOffset = (instance, cb) => observeOffset(\n instance,\n cb,\n (win) => instance.options.horizontal ? win.scrollX : win.scrollY\n);\nconst measureElement = (element, entry, instance) => {\n if (instance.options.useCachedMeasurements) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n return instance.itemSizeCache.get(key) ?? instance.options.estimateSize(index);\n }\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n if (!entry) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n const cachedSize = instance.itemSizeCache.get(key);\n if (cachedSize !== void 0) {\n return cachedSize;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst scrollWithAdjustments = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: offset + adjustments,\n behavior\n });\n};\nconst windowScroll = scrollWithAdjustments;\nconst elementScroll = scrollWithAdjustments;\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollState = null;\n this.measurementsCache = [];\n this._flatMeasurements = null;\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.itemSizeCacheVersion = 0;\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMin = null;\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.pendingScrollAnchor = null;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this._iosDeferredAdjustment = 0;\n this._iosTouching = false;\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._intendedScrollOffset = null;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.now = () => {\n var _a, _b, _c;\n return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now();\n };\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n const node = entry.target;\n const index = this.indexFromElement(node);\n if (!node.isConnected) {\n this.observer.unobserve(node);\n for (const [cacheKey, cachedNode] of this.elementsCache) {\n if (cachedNode === node) {\n this.elementsCache.delete(cacheKey);\n break;\n }\n }\n return;\n }\n if (this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(\n index,\n this.options.measureElement(node, entry, this)\n );\n }\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n var _a, _b;\n const merged = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n anchorTo: \"start\",\n followOnAppend: false,\n scrollEndThreshold: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n laneAssignmentMode: \"estimate\",\n useCachedMeasurements: false\n };\n for (const key in opts2) {\n const v = opts2[key];\n if (v !== void 0) merged[key] = v;\n }\n const prevOptions = this.options;\n let anchor = null;\n let followOnAppend = null;\n let edgeKeysChanged = false;\n if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === \"end\" && this.scrollElement !== null) {\n const prevCount = prevOptions.count;\n const nextCount = merged.count;\n const measurements = this.getMeasurements();\n const prevFirstKey = prevCount > 0 ? ((_a = measurements[0]) == null ? void 0 : _a.key) ?? prevOptions.getItemKey(0) : null;\n const prevLastKey = prevCount > 0 ? ((_b = measurements[prevCount - 1]) == null ? void 0 : _b.key) ?? prevOptions.getItemKey(prevCount - 1) : null;\n const didCountChange = nextCount !== prevCount;\n const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);\n if (didEdgeKeysChange) {\n edgeKeysChanged = true;\n const item = prevCount > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? measurements[0] : null;\n if (item) {\n anchor = [item.key, this.getScrollOffset() - item.start];\n }\n const behavior = merged.followOnAppend === true ? \"auto\" : merged.followOnAppend || null;\n if (behavior && nextCount > prevCount && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {\n followOnAppend = behavior;\n }\n }\n }\n this.options = merged;\n if (edgeKeysChanged) {\n this.pendingMin = 0;\n this.itemSizeCacheVersion++;\n }\n let anchorResolved = false;\n let anchorDelta = 0;\n if (anchor && this.scrollOffset !== null) {\n const [anchorKey, anchorOffset] = anchor;\n const newMeasurements = this.getMeasurements();\n const { count, getItemKey } = this.options;\n let idx = 0;\n while (idx < count && getItemKey(idx) !== anchorKey) {\n idx++;\n }\n if (idx < count) {\n const anchorItem = newMeasurements[idx];\n if (anchorItem) {\n const newOffset = anchorItem.start + anchorOffset;\n if (newOffset !== this.scrollOffset) {\n anchorDelta = newOffset - this.scrollOffset;\n this.scrollOffset = newOffset;\n anchorResolved = true;\n }\n }\n }\n }\n if (anchorResolved || followOnAppend) {\n this.pendingScrollAnchor = [\n anchorResolved ? anchor[0] : null,\n anchorResolved ? anchor[1] : 0,\n followOnAppend,\n anchorDelta\n ];\n }\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n if (this.rafId != null && this.targetWindow) {\n this.targetWindow.cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.scrollState = null;\n this._iosDeferredAdjustment = 0;\n this._iosTouching = false;\n this._iosJustTouchEnded = false;\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n if (isScrolling && this._intendedScrollOffset === null && offset === this.scrollOffset) {\n return;\n }\n if (this._intendedScrollOffset !== null && Math.abs(offset - this._intendedScrollOffset) < 1.5) {\n offset = this._intendedScrollOffset;\n }\n this._intendedScrollOffset = null;\n this.scrollAdjustments = 0;\n const prevOffset = this.getScrollOffset();\n this.scrollDirection = isScrolling ? prevOffset === offset ? this.scrollDirection : prevOffset < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this._flushIosDeferredIfReady();\n if (this.scrollState) {\n this.scheduleScrollReconcile();\n }\n this.maybeNotify();\n })\n );\n if (\"addEventListener\" in this.scrollElement) {\n const scrollEl = this.scrollElement;\n const onTouchStart = () => {\n this._iosTouching = true;\n this._iosJustTouchEnded = false;\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n };\n const onTouchEnd = () => {\n this._iosTouching = false;\n if (!isIOSWebKit() || this.targetWindow == null) {\n return;\n }\n this._iosJustTouchEnded = true;\n this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => {\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._flushIosDeferredIfReady();\n }, 150);\n };\n scrollEl.addEventListener(\n \"touchstart\",\n onTouchStart,\n addEventListenerOptions\n );\n scrollEl.addEventListener(\n \"touchend\",\n onTouchEnd,\n addEventListenerOptions\n );\n this.unsubs.push(() => {\n scrollEl.removeEventListener(\"touchstart\", onTouchStart);\n scrollEl.removeEventListener(\"touchend\", onTouchEnd);\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n });\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n const anchor = this.pendingScrollAnchor;\n this.pendingScrollAnchor = null;\n if (anchor && this.scrollElement && this.options.enabled) {\n const [key, _offset, followOnAppend, anchorDelta] = anchor;\n if (key !== null && !followOnAppend) {\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n if (anchorDelta !== 0) {\n this._iosDeferredAdjustment += anchorDelta;\n }\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n }\n if (followOnAppend) {\n this.scrollToEnd({ behavior: followOnAppend });\n }\n }\n };\n this._flushIosDeferredIfReady = () => {\n if (this._iosDeferredAdjustment === 0) return;\n if (this.isScrolling) return;\n if (this._iosTouching) return;\n if (this._iosJustTouchEnded) return;\n const cur = this.getScrollOffset();\n const max = this.getMaxScrollOffset();\n if (cur < 0 || cur > max) return;\n const delta = this._iosDeferredAdjustment;\n this._iosDeferredAdjustment = 0;\n this._scrollToOffset(cur, {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n };\n this.rafId = null;\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes,\n this.options.laneAssignmentMode,\n this.options.gap\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode, gap) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMin = null;\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode,\n gap\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCacheVersion],\n ({\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode,\n gap\n }, _itemSizeCacheVersion) => {\n const itemSizeCache = this.itemSizeCache;\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMin = null;\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMin ?? 0;\n this.pendingMin = null;\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n if (lanes === 1) {\n const need = count * 2;\n let flat = this._flatMeasurements;\n if (!flat || flat.length < need) {\n const next = new Float64Array(need);\n if (flat && min > 0) next.set(flat.subarray(0, min * 2));\n flat = next;\n this._flatMeasurements = flat;\n }\n let runningStart;\n if (min === 0) {\n runningStart = paddingStart + scrollMargin;\n } else {\n const prevIdx = min - 1;\n runningStart = flat[prevIdx * 2] + flat[prevIdx * 2 + 1] + gap;\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n flat[i * 2] = runningStart;\n flat[i * 2 + 1] = size;\n runningStart += size + gap;\n }\n const view = createLazyMeasurementsView(count, flat, getItemKey);\n this.measurementsCache = view;\n return view;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n const laneEnds = new Float64Array(lanes);\n let filledLanes = 0;\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n if (laneLastIndex[item.lane] === void 0) filledLanes++;\n laneLastIndex[item.lane] = m;\n laneEnds[item.lane] = item.end;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n const shouldCacheLane = laneAssignmentMode === \"estimate\" || itemSizeCache.has(key);\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + gap : paddingStart + scrollMargin;\n } else if (filledLanes === lanes) {\n let bestLane = 0;\n let bestEnd = laneEnds[0];\n let bestIdx = laneLastIndex[0];\n for (let l = 1; l < lanes; l++) {\n const e = laneEnds[l];\n if (e < bestEnd || e === bestEnd && laneLastIndex[l] < bestIdx) {\n bestLane = l;\n bestEnd = e;\n bestIdx = laneLastIndex[l];\n }\n }\n lane = bestLane;\n start = bestEnd + gap;\n if (shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n } else {\n lane = i % this.options.lanes;\n start = paddingStart + scrollMargin;\n if (shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n if (laneLastIndex[lane] === void 0) filledLanes++;\n laneLastIndex[lane] = i;\n laneEnds[lane] = end;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n if (measurements.length === 0 || outerSize === 0) {\n this.range = null;\n return null;\n }\n this.range = calculateRangeImpl(\n measurements,\n outerSize,\n scrollOffset,\n lanes,\n // Pass the typed array so binary search + forward-walk can read\n // start/end directly from Float64Array, skipping the Proxy traps.\n lanes === 1 && this._flatMeasurements != null ? this._flatMeasurements : null\n );\n return this.range;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this.shouldMeasureDuringScroll = (index) => {\n var _a;\n if (!this.scrollState || this.scrollState.behavior !== \"smooth\") {\n return true;\n }\n const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index);\n if (scrollIndex !== void 0 && this.range) {\n const bufferSize = Math.max(\n this.options.overscan,\n Math.ceil((this.range.endIndex - this.range.startIndex) / 2)\n );\n const minIndex = Math.max(0, scrollIndex - bufferSize);\n const maxIndex = Math.min(\n this.options.count - 1,\n scrollIndex + bufferSize\n );\n return index >= minIndex && index <= maxIndex;\n }\n return true;\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key2) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key2);\n }\n });\n return;\n }\n const index = this.indexFromElement(node);\n const key = this.options.getItemKey(index);\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(index, this.options.measureElement(node, void 0, this));\n }\n };\n this.resizeItem = (index, size) => {\n var _a, _b;\n if (index < 0 || index >= this.options.count) return;\n let cachedSize;\n let itemStart;\n let key;\n const flat = this._flatMeasurements;\n if (this.options.lanes === 1 && flat !== null) {\n key = this.options.getItemKey(index);\n itemStart = flat[index * 2];\n cachedSize = flat[index * 2 + 1];\n } else {\n const item = this.measurementsCache[index];\n if (!item) return;\n key = item.key;\n itemStart = item.start;\n cachedSize = item.size;\n }\n const itemSize = this.itemSizeCache.get(key) ?? cachedSize;\n const delta = size - itemSize;\n if (delta !== 0) {\n const wasAtEnd = this.options.anchorTo === \"end\" && ((_a = this.scrollState) == null ? void 0 : _a.behavior) !== \"smooth\" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;\n const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0;\n const shouldAdjustScroll = ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== \"smooth\" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(\n // The callback expects a VirtualItem; build one lazily only\n // when the consumer actually supplied a custom predicate.\n this.measurementsCache[index] ?? {\n index,\n key,\n start: itemStart,\n size: cachedSize,\n end: itemStart + cachedSize,\n lane: 0\n },\n delta,\n this\n ) : (\n // Default: adjust when the resize is an above-viewport item.\n // First measurement (!has(key)): always adjust — the item\n // has never been sized, so the estimate→actual delta must\n // be compensated regardless of scroll direction.\n // Re-measurement (has(key)): skip during backward scroll\n // to avoid the \"items jump while scrolling up\" cascade.\n itemStart < this.getScrollOffset() + this.scrollAdjustments && (!this.itemSizeCache.has(key) || this.scrollDirection !== \"backward\")\n ));\n if (this.pendingMin === null || index < this.pendingMin) {\n this.pendingMin = index;\n }\n this.itemSizeCache.set(key, size);\n this.itemSizeCacheVersion++;\n if (wasAtEnd) {\n this.applyScrollAdjustment(this.getTotalSize() - prevTotalSize);\n } else if (shouldAdjustScroll) {\n this.applyScrollAdjustment(delta);\n }\n this.notify(false);\n }\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n const flat = this._flatMeasurements;\n const useFlat = this.options.lanes === 1 && flat != null;\n const idx = findNearestBinarySearch(\n 0,\n measurements.length - 1,\n useFlat ? (i) => flat[i * 2] : (i) => notUndefined(measurements[i]).start,\n offset\n );\n return notUndefined(measurements[idx]);\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getVirtualDistanceFromEnd = () => {\n return Math.max(\n this.getTotalSize() - this.getSize() - this.getScrollOffset(),\n 0\n );\n };\n this.getDistanceFromEnd = () => {\n return Math.max(this.getMaxScrollOffset() - this.getScrollOffset(), 0);\n };\n this.isAtEnd = (threshold = this.options.scrollEndThreshold) => {\n return this.getDistanceFromEnd() <= threshold;\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n const item = this.measurementsCache[index];\n if (!item) return;\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior = \"auto\" } = {}) => {\n const offset = this.getOffsetForAlignment(toOffset, align);\n const now = this.now();\n this.scrollState = {\n index: null,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToIndex = (index, {\n align: initialAlign = \"auto\",\n behavior = \"auto\"\n } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const offsetInfo = this.getOffsetForIndex(index, initialAlign);\n if (!offsetInfo) {\n return;\n }\n const [offset, align] = offsetInfo;\n const now = this.now();\n this.scrollState = {\n index,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollBy = (delta, { behavior = \"auto\" } = {}) => {\n const offset = this.getScrollOffset() + delta;\n const now = this.now();\n this.scrollState = {\n index: null,\n align: \"start\",\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToEnd = ({ behavior = \"auto\" } = {}) => {\n if (this.options.count > 0) {\n this.scrollToIndex(this.options.count - 1, {\n align: \"end\",\n behavior\n });\n return;\n }\n this.scrollToOffset(Math.max(this.getTotalSize() - this.getSize(), 0), {\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n const lastIdx = measurements.length - 1;\n const flat = this._flatMeasurements;\n if (flat != null) {\n end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1];\n } else {\n end = ((_a = measurements[lastIdx]) == null ? void 0 : _a.end) ?? 0;\n }\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this.takeSnapshot = () => {\n const snapshot = [];\n if (this.itemSizeCache.size === 0) return snapshot;\n const m = this.getMeasurements();\n for (const item of m) {\n if (item && this.itemSizeCache.has(item.key)) {\n snapshot.push({\n index: item.index,\n key: item.key,\n start: item.start,\n size: item.size,\n end: item.end,\n lane: item.lane\n });\n }\n }\n return snapshot;\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this._intendedScrollOffset = offset + (adjustments ?? 0);\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.pendingMin = null;\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.itemSizeCacheVersion++;\n this.notify(false);\n };\n this.setOptions(opts);\n }\n applyScrollAdjustment(delta, behavior) {\n if (delta === 0) return;\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n this._iosDeferredAdjustment += delta;\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior\n });\n if (this.scrollOffset !== null) {\n this.scrollOffset += this.scrollAdjustments;\n this.scrollAdjustments = 0;\n }\n }\n }\n scheduleScrollReconcile() {\n if (!this.targetWindow) {\n this.scrollState = null;\n return;\n }\n if (this.rafId != null) return;\n this.rafId = this.targetWindow.requestAnimationFrame(() => {\n this.rafId = null;\n this.reconcileScroll();\n });\n }\n reconcileScroll() {\n if (!this.scrollState) return;\n const el = this.scrollElement;\n if (!el) return;\n const MAX_RECONCILE_MS = 5e3;\n if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {\n this.scrollState = null;\n return;\n }\n const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;\n const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;\n const STABLE_FRAMES = 1;\n const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;\n if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {\n this.scrollState.stableFrames++;\n if (this.scrollState.stableFrames >= STABLE_FRAMES) {\n if (this.getScrollOffset() !== targetOffset) {\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: \"auto\"\n });\n }\n this.scrollState = null;\n return;\n }\n } else {\n this.scrollState.stableFrames = 0;\n if (targetChanged) {\n const viewport = this.getSize() || 600;\n const distance = Math.abs(targetOffset - this.getScrollOffset());\n const keepSmooth = this.scrollState.behavior === \"smooth\" && distance > viewport;\n this.scrollState.lastTargetOffset = targetOffset;\n if (!keepSmooth) {\n this.scrollState.behavior = \"auto\";\n }\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: keepSmooth ? \"smooth\" : \"auto\"\n });\n }\n }\n this.scheduleScrollReconcile();\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction findNearestBinarySearchFlat(flat, high, value) {\n let low = 0;\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = flat[middle * 2];\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n return low > 0 ? low - 1 : 0;\n}\nfunction calculateRangeImpl(measurements, outerSize, scrollOffset, lanes, flat) {\n const lastIndex = measurements.length - 1;\n if (measurements.length <= lanes) {\n return { startIndex: 0, endIndex: lastIndex };\n }\n if (lanes === 1 && flat !== null) {\n const startIndex2 = findNearestBinarySearchFlat(\n flat,\n lastIndex,\n scrollOffset\n );\n let endIndex2 = startIndex2;\n const limit = scrollOffset + outerSize;\n while (endIndex2 < lastIndex && flat[endIndex2 * 2] + flat[endIndex2 * 2 + 1] < limit) {\n endIndex2++;\n }\n return { startIndex: startIndex2, endIndex: endIndex2 };\n }\n const getStart = (index) => measurements[index].start;\n let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset);\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n _resetIOSDetectionForTests,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/util/sanitizer.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI util/sanitizer.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\n// js-docs-start svg-allow-list\nexport const SVGAllowlist = {\n ...DefaultAllowlist,\n svg: ['xmlns', 'version', 'baseprofile', 'width', 'height', 'viewbox', 'preserveaspectratio', 'aria-hidden', 'role', 'focusable', 'fill', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin'],\n g: ['id', 'class', 'transform', 'style'],\n path: ['id', 'class', 'd', 'fill', 'fill-opacity', 'fill-rule', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-opacity'],\n circle: ['id', 'class', 'cx', 'cy', 'r', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n rect: ['id', 'class', 'x', 'y', 'width', 'height', 'rx', 'ry', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n ellipse: ['id', 'class', 'cx', 'cy', 'rx', 'ry', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n line: ['id', 'class', 'x1', 'y1', 'x2', 'y2', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-opacity'],\n polygon: ['id', 'class', 'points', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n polyline: ['id', 'class', 'points', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n text: ['id', 'class', 'x', 'y', 'dx', 'dy', 'text-anchor', 'font-family', 'font-size', 'font-weight', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n tspan: ['id', 'class', 'x', 'y', 'dx', 'dy', 'text-anchor', 'font-family', 'font-size', 'font-weight', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n defs: [],\n symbol: ['id', 'class', 'viewbox', 'preserveaspectratio'],\n use: ['id', 'class', 'x', 'y', 'width', 'height', 'href'],\n image: ['id', 'class', 'x', 'y', 'width', 'height', 'href', 'preserveaspectratio', 'xlink:href'],\n pattern: ['id', 'class', 'x', 'y', 'width', 'height', 'patternunits', 'patterncontentunits', 'patterntransform', 'preserveaspectratio'],\n lineargradient: ['id', 'class', 'gradientunits', 'x1', 'y1', 'x2', 'y2', 'spreadmethod', 'gradienttransform'],\n radialgradient: ['id', 'class', 'gradientunits', 'cx', 'cy', 'r', 'fx', 'fy', 'spreadmethod', 'gradienttransform'],\n mask: ['id', 'class', 'x', 'y', 'width', 'height', 'maskunits', 'maskcontentunits', 'masktransform'],\n clippath: ['id', 'class', 'clippathunits'],\n marker: ['id', 'class', 'markerunits', 'markerwidth', 'markerheight', 'orient', 'preserveaspectratio', 'viewbox', 'refx', 'refy'],\n title: [],\n desc: []\n}\n// js-docs-end svg-allow-list\n\nconst ESCAPE_HTML_MAP = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n}\n\nexport function escapeHtml(unsafeText) {\n return String(unsafeText).replace(/[&<>\"']/g, character => ESCAPE_HTML_MAP[character])\n}\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n\n continue\n }\n\n const attributeList = [].concat(...element.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || [])\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n",null],"names":["memo","createHeader","debounce","FOCUSABLE_SELECTOR","CLASS_NAME_SELECT_CELL","CLASS_NAME_FOOTER"],"mappings":"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","x_google_ignoreList":[9,13,14,15]}
|
|
1
|
+
{"version":3,"file":"data-grid.js","names":["Data","SELECTOR_RESIZER","memo","debounce","debounce","FOCUSABLE_SELECTOR","CLASS_NAME_HANDLE_CELL","CLASS_NAME_SELECT_CELL","CLASS_NAME_FOOTER","DataGrid","includesStringFilterFn","alphanumericSortFn","datetimeSortFn","textSortFn","includesStringFilterFn","alphanumericSortFn","datetimeSortFn","textSortFn","DataGridBase"],"sources":["../../../../node_modules/@tanstack/store/dist/alien.js","../../../../node_modules/@tanstack/store/dist/atom.js","../../../../node_modules/@tanstack/store/dist/shallow.js","../../src/dom/data.ts","../../src/util/index.ts","../../src/dom/event-handler.ts","../../src/dom/manipulator.ts","../../src/util/config.ts","../../src/base-component.ts","../../src/engine/active-cell.ts","../../src/engine/data-source.ts","../../src/util/clipboard.ts","../../src/util/print.ts","../../src/util/drag.ts","../../src/engine/scheduler.ts","../../../../node_modules/@tanstack/table-core/dist/utils.js","../../../../node_modules/@tanstack/table-core/dist/core/cells/coreCellsFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/core/cells/coreCellsFeature.js","../../../../node_modules/@tanstack/table-core/dist/core/headers/constructHeader.js","../../../../node_modules/@tanstack/table-core/dist/features/column-pinning/columnPinningFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/features/column-visibility/columnVisibilityFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/core/headers/buildHeaderGroups.js","../../../../node_modules/@tanstack/table-core/dist/core/columns/constructColumn.js","../../../../node_modules/@tanstack/table-core/dist/features/column-ordering/columnOrderingFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/core/columns/coreColumnsFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/core/columns/coreColumnsFeature.js","../../../../node_modules/@tanstack/table-core/dist/core/headers/coreHeadersFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/core/headers/coreHeadersFeature.js","../../../../node_modules/@tanstack/table-core/dist/core/rows/constructRow.js","../../../../node_modules/@tanstack/table-core/dist/features/row-sorting/sortFns.js","../../../../node_modules/@tanstack/table-core/dist/features/cell-selection/cellSelectionGeometry.js","../../../../node_modules/@tanstack/table-core/dist/features/cell-selection/cellSelectionFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/features/row-expanding/rowExpandingFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/features/row-pagination/rowPaginationFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/features/row-sorting/rowSortingFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/core/row-models/createCoreRowModel.js","../../../../node_modules/@tanstack/table-core/dist/core/row-models/coreRowModelsFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/core/row-models/coreRowModelsFeature.js","../../../../node_modules/@tanstack/table-core/dist/core/cells/constructCell.js","../../../../node_modules/@tanstack/table-core/dist/core/rows/coreRowsFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/core/rows/coreRowsFeature.js","../../../../node_modules/@tanstack/table-core/dist/core/table/coreTablesFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/core/table/coreTablesFeature.js","../../../../node_modules/@tanstack/table-core/dist/core/coreFeatures.js","../../../../node_modules/@tanstack/table-core/dist/helpers/tableFeatures.js","../../../../node_modules/@tanstack/table-core/dist/core/reactivity/coreReactivityFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/core/table/constructTable.js","../../../../node_modules/@tanstack/table-core/dist/features/cell-selection/cellSelectionFeature.js","../../../../node_modules/@tanstack/table-core/dist/features/column-faceting/columnFacetingFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/features/column-faceting/columnFacetingFeature.js","../../../../node_modules/@tanstack/table-core/dist/features/column-filtering/columnFilteringFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/features/column-filtering/columnFilteringFeature.js","../../../../node_modules/@tanstack/table-core/dist/features/column-ordering/columnOrderingFeature.js","../../../../node_modules/@tanstack/table-core/dist/features/column-pinning/columnPinningFeature.js","../../../../node_modules/@tanstack/table-core/dist/features/column-sizing/columnSizingFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/features/column-resizing/columnResizingFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/features/column-resizing/columnResizingFeature.js","../../../../node_modules/@tanstack/table-core/dist/features/column-sizing/columnSizingFeature.js","../../../../node_modules/@tanstack/table-core/dist/features/column-visibility/columnVisibilityFeature.js","../../../../node_modules/@tanstack/table-core/dist/features/column-filtering/filterFns.js","../../../../node_modules/@tanstack/table-core/dist/features/global-filtering/globalFilteringFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/features/global-filtering/globalFilteringFeature.js","../../../../node_modules/@tanstack/table-core/dist/features/row-pagination/rowPaginationFeature.js","../../../../node_modules/@tanstack/table-core/dist/features/row-selection/rowSelectionFeature.utils.js","../../../../node_modules/@tanstack/table-core/dist/features/row-selection/rowSelectionFeature.js","../../../../node_modules/@tanstack/table-core/dist/features/row-sorting/rowSortingFeature.js","../../../../node_modules/@tanstack/table-core/dist/features/column-filtering/filterRowsUtils.js","../../../../node_modules/@tanstack/table-core/dist/features/column-faceting/createFacetedRowModel.js","../../../../node_modules/@tanstack/table-core/dist/features/column-faceting/createFacetedUniqueValues.js","../../../../node_modules/@tanstack/table-core/dist/features/column-filtering/createFilteredRowModel.js","../../../../node_modules/@tanstack/table-core/dist/features/row-expanding/createExpandedRowModel.js","../../../../node_modules/@tanstack/table-core/dist/features/row-pagination/createPaginatedRowModel.js","../../../../node_modules/@tanstack/table-core/dist/features/row-sorting/createSortedRowModel.js","../../src/filters.ts","../../src/util/direction.ts","../../src/ui/toolbar.ts","../../src/engine/validate.ts","../../src/engine/table.ts","../../../../node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js","../../../../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../../../../node_modules/@tanstack/virtual-core/dist/esm/index.js","../../src/engine/virtualizer.ts","../../src/icons.ts","../../src/labels.ts","../../src/ui/pinning.ts","../../src/ui/body.ts","../../src/ui/editor.ts","../../src/ui/header.ts","../../src/ui/loading.ts","../../src/ui/filter-menu.ts","../../src/ui/menu.ts","../../src/ui/pagination.ts","../../src/ui/column-chooser.ts","../../src/ui/tooltip.ts","../../src/util/export-table.ts","../../src/util/csv.ts","../../src/util/debounce.ts","../../src/util/sanitizer.ts","../../src/data-grid.ts","../../../../node_modules/@tanstack/table-core/dist/store-reactivity-bindings.js","../../src/engine/features.ts","../../src/engine/features-lite.ts","../../src/index.ts"],"sourcesContent":["//#region src/alien.ts\nlet ReactiveFlags = /* @__PURE__ */ function(ReactiveFlags) {\n\tReactiveFlags[ReactiveFlags[\"None\"] = 0] = \"None\";\n\tReactiveFlags[ReactiveFlags[\"Mutable\"] = 1] = \"Mutable\";\n\tReactiveFlags[ReactiveFlags[\"Watching\"] = 2] = \"Watching\";\n\tReactiveFlags[ReactiveFlags[\"RecursedCheck\"] = 4] = \"RecursedCheck\";\n\tReactiveFlags[ReactiveFlags[\"Recursed\"] = 8] = \"Recursed\";\n\tReactiveFlags[ReactiveFlags[\"Dirty\"] = 16] = \"Dirty\";\n\tReactiveFlags[ReactiveFlags[\"Pending\"] = 32] = \"Pending\";\n\treturn ReactiveFlags;\n}({});\n/* @__NO_SIDE_EFFECTS__ */\nfunction createReactiveSystem({ update, notify, unwatched }) {\n\treturn {\n\t\tlink,\n\t\tunlink,\n\t\tpropagate,\n\t\tcheckDirty,\n\t\tshallowPropagate\n\t};\n\tfunction link(dep, sub, version) {\n\t\tconst prevDep = sub.depsTail;\n\t\tif (prevDep !== void 0 && prevDep.dep === dep) return;\n\t\tconst nextDep = prevDep !== void 0 ? prevDep.nextDep : sub.deps;\n\t\tif (nextDep !== void 0 && nextDep.dep === dep) {\n\t\t\tnextDep.version = version;\n\t\t\tsub.depsTail = nextDep;\n\t\t\treturn;\n\t\t}\n\t\tconst prevSub = dep.subsTail;\n\t\tif (prevSub !== void 0 && prevSub.version === version && prevSub.sub === sub) return;\n\t\tconst newLink = sub.depsTail = dep.subsTail = {\n\t\t\tversion,\n\t\t\tdep,\n\t\t\tsub,\n\t\t\tprevDep,\n\t\t\tnextDep,\n\t\t\tprevSub,\n\t\t\tnextSub: void 0\n\t\t};\n\t\tif (nextDep !== void 0) nextDep.prevDep = newLink;\n\t\tif (prevDep !== void 0) prevDep.nextDep = newLink;\n\t\telse sub.deps = newLink;\n\t\tif (prevSub !== void 0) prevSub.nextSub = newLink;\n\t\telse dep.subs = newLink;\n\t}\n\tfunction unlink(link, sub = link.sub) {\n\t\tconst dep = link.dep;\n\t\tconst prevDep = link.prevDep;\n\t\tconst nextDep = link.nextDep;\n\t\tconst nextSub = link.nextSub;\n\t\tconst prevSub = link.prevSub;\n\t\tif (nextDep !== void 0) nextDep.prevDep = prevDep;\n\t\telse sub.depsTail = prevDep;\n\t\tif (prevDep !== void 0) prevDep.nextDep = nextDep;\n\t\telse sub.deps = nextDep;\n\t\tif (nextSub !== void 0) nextSub.prevSub = prevSub;\n\t\telse dep.subsTail = prevSub;\n\t\tif (prevSub !== void 0) prevSub.nextSub = nextSub;\n\t\telse if ((dep.subs = nextSub) === void 0) unwatched(dep);\n\t\treturn nextDep;\n\t}\n\tfunction propagate(link) {\n\t\tlet next = link.nextSub;\n\t\tlet stack;\n\t\ttop: do {\n\t\t\tconst sub = link.sub;\n\t\t\tlet flags = sub.flags;\n\t\t\tif (!(flags & (ReactiveFlags.RecursedCheck | ReactiveFlags.Recursed | ReactiveFlags.Dirty | ReactiveFlags.Pending))) sub.flags = flags | ReactiveFlags.Pending;\n\t\t\telse if (!(flags & (ReactiveFlags.RecursedCheck | ReactiveFlags.Recursed))) flags = ReactiveFlags.None;\n\t\t\telse if (!(flags & ReactiveFlags.RecursedCheck)) sub.flags = flags & ~ReactiveFlags.Recursed | ReactiveFlags.Pending;\n\t\t\telse if (!(flags & (ReactiveFlags.Dirty | ReactiveFlags.Pending)) && isValidLink(link, sub)) {\n\t\t\t\tsub.flags = flags | (ReactiveFlags.Recursed | ReactiveFlags.Pending);\n\t\t\t\tflags &= ReactiveFlags.Mutable;\n\t\t\t} else flags = ReactiveFlags.None;\n\t\t\tif (flags & ReactiveFlags.Watching) notify(sub);\n\t\t\tif (flags & ReactiveFlags.Mutable) {\n\t\t\t\tconst subSubs = sub.subs;\n\t\t\t\tif (subSubs !== void 0) {\n\t\t\t\t\tconst nextSub = (link = subSubs).nextSub;\n\t\t\t\t\tif (nextSub !== void 0) {\n\t\t\t\t\t\tstack = {\n\t\t\t\t\t\t\tvalue: next,\n\t\t\t\t\t\t\tprev: stack\n\t\t\t\t\t\t};\n\t\t\t\t\t\tnext = nextSub;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ((link = next) !== void 0) {\n\t\t\t\tnext = link.nextSub;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\twhile (stack !== void 0) {\n\t\t\t\tlink = stack.value;\n\t\t\t\tstack = stack.prev;\n\t\t\t\tif (link !== void 0) {\n\t\t\t\t\tnext = link.nextSub;\n\t\t\t\t\tcontinue top;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t} while (true);\n\t}\n\tfunction checkDirty(link, sub) {\n\t\tlet stack;\n\t\tlet checkDepth = 0;\n\t\tlet dirty = false;\n\t\ttop: do {\n\t\t\tconst dep = link.dep;\n\t\t\tconst flags = dep.flags;\n\t\t\tif (sub.flags & ReactiveFlags.Dirty) dirty = true;\n\t\t\telse if ((flags & (ReactiveFlags.Mutable | ReactiveFlags.Dirty)) === (ReactiveFlags.Mutable | ReactiveFlags.Dirty)) {\n\t\t\t\tif (update(dep)) {\n\t\t\t\t\tconst subs = dep.subs;\n\t\t\t\t\tif (subs.nextSub !== void 0) shallowPropagate(subs);\n\t\t\t\t\tdirty = true;\n\t\t\t\t}\n\t\t\t} else if ((flags & (ReactiveFlags.Mutable | ReactiveFlags.Pending)) === (ReactiveFlags.Mutable | ReactiveFlags.Pending)) {\n\t\t\t\tif (link.nextSub !== void 0 || link.prevSub !== void 0) stack = {\n\t\t\t\t\tvalue: link,\n\t\t\t\t\tprev: stack\n\t\t\t\t};\n\t\t\t\tlink = dep.deps;\n\t\t\t\tsub = dep;\n\t\t\t\t++checkDepth;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!dirty) {\n\t\t\t\tconst nextDep = link.nextDep;\n\t\t\t\tif (nextDep !== void 0) {\n\t\t\t\t\tlink = nextDep;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (checkDepth--) {\n\t\t\t\tconst firstSub = sub.subs;\n\t\t\t\tconst hasMultipleSubs = firstSub.nextSub !== void 0;\n\t\t\t\tif (hasMultipleSubs) {\n\t\t\t\t\tlink = stack.value;\n\t\t\t\t\tstack = stack.prev;\n\t\t\t\t} else link = firstSub;\n\t\t\t\tif (dirty) {\n\t\t\t\t\tif (update(sub)) {\n\t\t\t\t\t\tif (hasMultipleSubs) shallowPropagate(firstSub);\n\t\t\t\t\t\tsub = link.sub;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tdirty = false;\n\t\t\t\t} else sub.flags &= ~ReactiveFlags.Pending;\n\t\t\t\tsub = link.sub;\n\t\t\t\tconst nextDep = link.nextDep;\n\t\t\t\tif (nextDep !== void 0) {\n\t\t\t\t\tlink = nextDep;\n\t\t\t\t\tcontinue top;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn dirty;\n\t\t} while (true);\n\t}\n\tfunction shallowPropagate(link) {\n\t\tdo {\n\t\t\tconst sub = link.sub;\n\t\t\tconst flags = sub.flags;\n\t\t\tif ((flags & (ReactiveFlags.Pending | ReactiveFlags.Dirty)) === ReactiveFlags.Pending) {\n\t\t\t\tsub.flags = flags | ReactiveFlags.Dirty;\n\t\t\t\tif ((flags & (ReactiveFlags.Watching | ReactiveFlags.RecursedCheck)) === ReactiveFlags.Watching) notify(sub);\n\t\t\t}\n\t\t} while ((link = link.nextSub) !== void 0);\n\t}\n\tfunction isValidLink(checkLink, sub) {\n\t\tlet link = sub.depsTail;\n\t\twhile (link !== void 0) {\n\t\t\tif (link === checkLink) return true;\n\t\t\tlink = link.prevDep;\n\t\t}\n\t\treturn false;\n\t}\n}\n\n//#endregion\nexport { ReactiveFlags, createReactiveSystem };\n//# sourceMappingURL=alien.js.map","import { ReactiveFlags, createReactiveSystem } from \"./alien.js\";\n\n//#region src/atom.ts\nfunction toObserver(nextHandler, errorHandler, completionHandler) {\n\tconst isObserver = typeof nextHandler === \"object\";\n\tconst self = isObserver ? nextHandler : void 0;\n\treturn {\n\t\tnext: (isObserver ? nextHandler.next : nextHandler)?.bind(self),\n\t\terror: (isObserver ? nextHandler.error : errorHandler)?.bind(self),\n\t\tcomplete: (isObserver ? nextHandler.complete : completionHandler)?.bind(self)\n\t};\n}\nconst queuedEffects = [];\nlet cycle = 0;\nconst { link, unlink, propagate, checkDirty, shallowPropagate } = /* @__PURE__ */ createReactiveSystem({\n\tupdate(atom) {\n\t\treturn atom._update();\n\t},\n\tnotify(effect) {\n\t\tqueuedEffects[queuedEffectsLength++] = effect;\n\t\teffect.flags &= ~ReactiveFlags.Watching;\n\t},\n\tunwatched(atom) {\n\t\tif (atom.depsTail !== void 0) {\n\t\t\tatom.depsTail = void 0;\n\t\t\tatom.flags = ReactiveFlags.Mutable | ReactiveFlags.Dirty;\n\t\t\tpurgeDeps(atom);\n\t\t}\n\t}\n});\nlet notifyIndex = 0;\nlet queuedEffectsLength = 0;\nlet activeSub;\nlet batchDepth = 0;\nfunction batch(fn) {\n\ttry {\n\t\t++batchDepth;\n\t\tfn();\n\t} finally {\n\t\tif (!--batchDepth) flush();\n\t}\n}\nfunction purgeDeps(sub) {\n\tconst depsTail = sub.depsTail;\n\tlet dep = depsTail !== void 0 ? depsTail.nextDep : sub.deps;\n\twhile (dep !== void 0) dep = unlink(dep, sub);\n}\nfunction flush() {\n\tif (batchDepth > 0) return;\n\twhile (notifyIndex < queuedEffectsLength) {\n\t\tconst effect = queuedEffects[notifyIndex];\n\t\tqueuedEffects[notifyIndex++] = void 0;\n\t\teffect.notify();\n\t}\n\tnotifyIndex = 0;\n\tqueuedEffectsLength = 0;\n}\nfunction createAsyncAtom(getValue, options) {\n\tconst ref = {};\n\tconst atom = createAtom(() => {\n\t\tgetValue().then((data) => {\n\t\t\tconst internalAtom = ref.current;\n\t\t\tif (internalAtom._update({\n\t\t\t\tstatus: \"done\",\n\t\t\t\tdata\n\t\t\t})) {\n\t\t\t\tconst subs = internalAtom.subs;\n\t\t\t\tif (subs !== void 0) {\n\t\t\t\t\tpropagate(subs);\n\t\t\t\t\tshallowPropagate(subs);\n\t\t\t\t\tflush();\n\t\t\t\t}\n\t\t\t}\n\t\t}, (error) => {\n\t\t\tconst internalAtom = ref.current;\n\t\t\tif (internalAtom._update({\n\t\t\t\tstatus: \"error\",\n\t\t\t\terror\n\t\t\t})) {\n\t\t\t\tconst subs = internalAtom.subs;\n\t\t\t\tif (subs !== void 0) {\n\t\t\t\t\tpropagate(subs);\n\t\t\t\t\tshallowPropagate(subs);\n\t\t\t\t\tflush();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn { status: \"pending\" };\n\t}, options);\n\tref.current = atom;\n\treturn atom;\n}\nfunction createAtom(valueOrFn, options) {\n\tconst isComputed = typeof valueOrFn === \"function\";\n\tconst getter = valueOrFn;\n\tconst atom = {\n\t\t_snapshot: isComputed ? void 0 : valueOrFn,\n\t\tsubs: void 0,\n\t\tsubsTail: void 0,\n\t\tdeps: void 0,\n\t\tdepsTail: void 0,\n\t\tflags: isComputed ? ReactiveFlags.None : ReactiveFlags.Mutable,\n\t\tget() {\n\t\t\tif (activeSub !== void 0) link(atom, activeSub, cycle);\n\t\t\treturn atom._snapshot;\n\t\t},\n\t\tsubscribe(observerOrFn) {\n\t\t\tconst obs = toObserver(observerOrFn);\n\t\t\tconst observed = { current: false };\n\t\t\tconst e = effect(() => {\n\t\t\t\tatom.get();\n\t\t\t\tif (!observed.current) observed.current = true;\n\t\t\t\telse obs.next?.(atom._snapshot);\n\t\t\t});\n\t\t\treturn { unsubscribe: () => {\n\t\t\t\te.stop();\n\t\t\t} };\n\t\t},\n\t\t_update(getValue) {\n\t\t\tconst prevSub = activeSub;\n\t\t\tconst compare = options?.compare ?? Object.is;\n\t\t\tif (isComputed) {\n\t\t\t\tactiveSub = atom;\n\t\t\t\t++cycle;\n\t\t\t\tatom.depsTail = void 0;\n\t\t\t} else if (getValue === void 0) return false;\n\t\t\tif (isComputed) atom.flags = ReactiveFlags.Mutable | ReactiveFlags.RecursedCheck;\n\t\t\ttry {\n\t\t\t\tconst oldValue = atom._snapshot;\n\t\t\t\tconst newValue = typeof getValue === \"function\" ? getValue(oldValue) : getValue === void 0 && isComputed ? getter(oldValue) : getValue;\n\t\t\t\tif (oldValue === void 0 || !compare(oldValue, newValue)) {\n\t\t\t\t\tatom._snapshot = newValue;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t} finally {\n\t\t\t\tactiveSub = prevSub;\n\t\t\t\tif (isComputed) atom.flags &= ~ReactiveFlags.RecursedCheck;\n\t\t\t\tpurgeDeps(atom);\n\t\t\t}\n\t\t}\n\t};\n\tif (isComputed) {\n\t\tatom.flags = ReactiveFlags.Mutable | ReactiveFlags.Dirty;\n\t\tatom.get = function() {\n\t\t\tconst flags = atom.flags;\n\t\t\tif (flags & ReactiveFlags.Dirty || flags & ReactiveFlags.Pending && checkDirty(atom.deps, atom)) {\n\t\t\t\tif (atom._update()) {\n\t\t\t\t\tconst subs = atom.subs;\n\t\t\t\t\tif (subs !== void 0) shallowPropagate(subs);\n\t\t\t\t}\n\t\t\t} else if (flags & ReactiveFlags.Pending) atom.flags = flags & ~ReactiveFlags.Pending;\n\t\t\tif (activeSub !== void 0) link(atom, activeSub, cycle);\n\t\t\treturn atom._snapshot;\n\t\t};\n\t} else atom.set = function(valueOrFn) {\n\t\tif (atom._update(valueOrFn)) {\n\t\t\tconst subs = atom.subs;\n\t\t\tif (subs !== void 0) {\n\t\t\t\tpropagate(subs);\n\t\t\t\tshallowPropagate(subs);\n\t\t\t\tflush();\n\t\t\t}\n\t\t}\n\t};\n\treturn atom;\n}\nfunction effect(fn) {\n\tconst run = () => {\n\t\tconst prevSub = activeSub;\n\t\tactiveSub = effectObj;\n\t\t++cycle;\n\t\teffectObj.depsTail = void 0;\n\t\teffectObj.flags = ReactiveFlags.Watching | ReactiveFlags.RecursedCheck;\n\t\ttry {\n\t\t\treturn fn();\n\t\t} finally {\n\t\t\tactiveSub = prevSub;\n\t\t\teffectObj.flags &= ~ReactiveFlags.RecursedCheck;\n\t\t\tpurgeDeps(effectObj);\n\t\t}\n\t};\n\tconst effectObj = {\n\t\tdeps: void 0,\n\t\tdepsTail: void 0,\n\t\tsubs: void 0,\n\t\tsubsTail: void 0,\n\t\tflags: ReactiveFlags.Watching | ReactiveFlags.RecursedCheck,\n\t\tnotify() {\n\t\t\tconst flags = this.flags;\n\t\t\tif (flags & ReactiveFlags.Dirty || flags & ReactiveFlags.Pending && checkDirty(this.deps, this)) run();\n\t\t\telse this.flags = ReactiveFlags.Watching;\n\t\t},\n\t\tstop() {\n\t\t\tthis.flags = ReactiveFlags.None;\n\t\t\tthis.depsTail = void 0;\n\t\t\tpurgeDeps(this);\n\t\t}\n\t};\n\trun();\n\treturn effectObj;\n}\n\n//#endregion\nexport { batch, createAsyncAtom, createAtom, flush, toObserver };\n//# sourceMappingURL=atom.js.map","//#region src/shallow.ts\nfunction shallow(objA, objB) {\n\tif (Object.is(objA, objB)) return true;\n\tif (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) return false;\n\tif (objA instanceof Map && objB instanceof Map) {\n\t\tif (objA.size !== objB.size) return false;\n\t\tfor (const [k, v] of objA) if (!objB.has(k) || !Object.is(v, objB.get(k))) return false;\n\t\treturn true;\n\t}\n\tif (objA instanceof Set && objB instanceof Set) {\n\t\tif (objA.size !== objB.size) return false;\n\t\tfor (const v of objA) if (!objB.has(v)) return false;\n\t\treturn true;\n\t}\n\tif (objA instanceof Date && objB instanceof Date) {\n\t\tif (objA.getTime() !== objB.getTime()) return false;\n\t\treturn true;\n\t}\n\tconst keysA = getOwnKeys(objA);\n\tif (keysA.length !== getOwnKeys(objB).length) return false;\n\tfor (let i = 0; i < keysA.length; i++) if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) return false;\n\treturn true;\n}\nfunction getOwnKeys(obj) {\n\treturn Object.keys(obj).concat(Object.getOwnPropertySymbols(obj));\n}\n\n//#endregion\nexport { shallow };\n//# sourceMappingURL=shallow.js.map","// Vendored from https://github.com/coreui/coreui-pro/blob/e9355580e/js/src/dom/data.ts — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI dom/data.ts\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map<Element, Map<string, unknown>>()\n\nexport default {\n set(element: Element, key: string, instance: unknown): void {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)!\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n // Callers pass the result of getElement(), which can be null; Map.has(null)\n // is simply false at runtime, so the parameter is widened without adding a\n // guard that would change the emitted code.\n get(element: Element | null, key: string): any {\n if (elementMap.has(element as Element)) {\n return elementMap.get(element as Element)!.get(key) || null\n }\n\n return null\n },\n\n remove(element: Element, key: string): void {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)!\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","// Vendored from https://github.com/coreui/coreui-pro/blob/e9355580e/js/src/util/index.ts — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI util/index.ts\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/index.ts\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Types\n */\n\n// The jQuery bridge is untyped on purpose: jQuery is optional at runtime and we\n// only ever touch `.jquery`, index 0, and the plugin registration surface.\ntype JQueryLike = { jquery?: unknown, [index: number]: HTMLElement }\ntype JQueryStatic = ((selector: unknown) => any) & Record<string, any> & { fn: Record<string, any> }\ntype JQueryPlugin = { NAME: string, jQueryInterface: (...args: any[]) => unknown }\n\ndeclare global {\n interface Window {\n jQuery?: JQueryStatic\n }\n}\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = (selector: string): string => {\n // The `window.CSS` checks guard against ancient browsers, so check them as\n // untyped values instead of letting tsc call them always-defined\n if (selector && (window as any).CSS && (window as any).CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id: string) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = (object: unknown): string => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)![1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = (prefix: string): string => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = (element: Element | null): number => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = (element: Element): void => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = (object: unknown): object is Element => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n if (typeof (object as JQueryLike).jquery !== 'undefined') {\n object = (object as JQueryLike)[0]\n }\n\n return typeof (object as Element).nodeType !== 'undefined'\n}\n\nconst getElement = (object: unknown): HTMLElement | null => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return (object as unknown as JQueryLike).jquery ? (object as unknown as JQueryLike)[0] : object as HTMLElement\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = (element: unknown): boolean => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = (element: Element | null | undefined): boolean => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof (element as HTMLInputElement).disabled !== 'undefined') {\n return (element as HTMLInputElement).disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = (element: Node): ShadowRoot | null => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = (): void => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = (element: HTMLElement): void => {\n element.offsetHeight // eslint-disable-line @typescript-eslint/no-unused-expressions\n}\n\nconst getjQuery = (): JQueryStatic | null => {\n if (window.jQuery && !document.body.hasAttribute('data-coreui-no-jquery')) {\n return window.jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks: Array<() => void> = []\n\nconst onDOMContentLoaded = (callback: () => void): void => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = (): boolean => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = (plugin: JQueryPlugin): void => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = <T = any>(possibleCallback: T | ((...functionArgs: any[]) => T), args: any[] = [], defaultValue: T | ((...functionArgs: any[]) => T) = possibleCallback): T => {\n return typeof possibleCallback === 'function' ? (possibleCallback as (...functionArgs: any[]) => T).call(...args as [any, ...any[]]) : defaultValue as T\n}\n\nconst executeAfterTransition = (callback: () => void, transitionElement: Element, waitForTransition = true): void => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }: Event): void => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n// `isCycleAllowed` is optional here where upstream requires it: our callers\n// omit it, and adding the argument to match would change the emitted code.\nconst getNextActiveElement = <T>(list: T[], activeElement: T, shouldGetNext: boolean, isCycleAllowed?: boolean): T => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n defineJQueryPlugin,\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getjQuery,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","// Vendored from https://github.com/coreui/coreui-pro/blob/e9355580e/js/src/dom/event-handler.ts — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI dom/event-handler.ts\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's dom/event-handler.ts\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index.js'\n\n/**\n * Types\n */\n\ntype CoreUIEvent = Event & Record<string, any>\n\ntype EventCallable = (this: any, event: CoreUIEvent) => any\n\ninterface WrappedHandler {\n (this: Element, event: Event): any\n oneOff?: boolean\n uidEvent?: string | number\n callable?: EventCallable\n delegationSelector?: string | null\n handlerTypeEvent?: string\n}\n\ninterface NormalizedParameters {\n isDelegated: boolean\n callable: EventCallable\n typeEvent: string\n handlerTypeEvent: string\n}\n\ntype ElementEvents = Record<string, Record<string, WrappedHandler>>\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry: Record<string | number, ElementEvents> = {} // Events storage\nlet uidEvent = 1\nconst customEvents: Record<string, string> = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'beforeinput',\n 'copy',\n 'cut',\n 'paste',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n // Local addition over the coreui-pro source: HTML5 drag & drop events used\n // by the data grid's column reordering.\n 'drag',\n 'dragstart',\n 'dragend',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'drop',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'input',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element: any, uid?: string): string | number {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element: Element & { uidEvent?: string | number }): ElementEvents {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\n// `mouseenter` and `mouseleave` ride on `mouseover` and `mouseout`, which also fire when\n// the pointer moves between descendants of the listening element. Drop those events, so the\n// handler only sees the pointer entering or leaving `delegateTarget` itself.\n// `Node.contains()` is inclusive, so this also covers `relatedTarget === delegateTarget`.\nfunction isMouseEventWithinTarget(event: CoreUIEvent): boolean {\n const { delegateTarget, relatedTarget } = event\n\n return Boolean(relatedTarget && delegateTarget.contains(relatedTarget))\n}\n\nfunction bootstrapHandler(element: Element, fn: EventCallable, handlerTypeEvent: string): WrappedHandler {\n const isCustomMouseEvent = handlerTypeEvent in customEvents\n\n return function handler(event: Event) {\n const coreuiEvent = hydrateObj(event, { delegateTarget: element })\n\n if (isCustomMouseEvent && isMouseEventWithinTarget(coreuiEvent)) {\n return\n }\n\n if ((handler as WrappedHandler).oneOff) {\n EventHandler.off(element, handlerTypeEvent, fn)\n }\n\n return fn.apply(element, [coreuiEvent])\n } as WrappedHandler\n}\n\nfunction bootstrapDelegationHandler(element: Element, selector: string, fn: EventCallable, handlerTypeEvent: string): WrappedHandler {\n const isCustomMouseEvent = handlerTypeEvent in customEvents\n\n return function handler(this: Element, event: Event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = (target as Node).parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n const coreuiEvent = hydrateObj(event, { delegateTarget: target })\n\n if (isCustomMouseEvent && isMouseEventWithinTarget(coreuiEvent)) {\n return\n }\n\n if ((handler as WrappedHandler).oneOff) {\n EventHandler.off(element, handlerTypeEvent, selector, fn)\n }\n\n return fn.apply(target, [coreuiEvent])\n }\n }\n } as WrappedHandler\n}\n\nfunction findHandler(events: Record<string, WrappedHandler>, callable: EventCallable, handlerTypeEvent: string, delegationSelector: string | null = null): WrappedHandler | undefined {\n return Object.values(events)\n .find(event => event.callable === callable && event.handlerTypeEvent === handlerTypeEvent && event.delegationSelector === delegationSelector)\n}\n\n// `typeEvent` is the DOM event type the listener is registered under. `handlerTypeEvent` is\n// the type the caller asked for. The two differ only for `mouseenter` and `mouseleave`, which\n// the registry must keep apart from the `mouseover` and `mouseout` listeners they share.\nfunction normalizeParameters(originalTypeEvent: string, handler?: string | EventCallable, delegationFunction?: EventCallable): NormalizedParameters {\n const isDelegated = typeof handler === 'string'\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = (isDelegated ? delegationFunction : (handler || delegationFunction)) as EventCallable\n // Strip the namespace to get the plain event ('click.coreui.button' --> 'click')\n const baseTypeEvent = originalTypeEvent.replace(stripNameRegex, '')\n let typeEvent = customEvents[baseTypeEvent] || baseTypeEvent\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n const handlerTypeEvent = baseTypeEvent in customEvents ? baseTypeEvent : typeEvent\n\n return {\n isDelegated, callable, typeEvent, handlerTypeEvent\n }\n}\n\nfunction addHandler(element: Element, originalTypeEvent: string, handler?: string | EventCallable, delegationFunction?: EventCallable, oneOff?: boolean): void {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const { isDelegated, callable, typeEvent, handlerTypeEvent } = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, handlerTypeEvent, isDelegated ? (handler as string) : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler as string, callable, handlerTypeEvent) :\n bootstrapHandler(element, callable, handlerTypeEvent)\n\n fn.delegationSelector = isDelegated ? (handler as string) : null\n fn.callable = callable\n fn.handlerTypeEvent = handlerTypeEvent\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element: Element, events: ElementEvents, typeEvent: string, handler: WrappedHandler): void {\n element.removeEventListener(typeEvent, handler, Boolean(handler.delegationSelector))\n delete events[typeEvent][handler.uidEvent!]\n}\n\nfunction removeNamespacedHandlers(element: Element, events: ElementEvents, typeEvent: string, namespace: string): void {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event)\n }\n }\n}\n\nfunction getTypeEvent(event: string): string {\n // allow to get the native events from namespaced events ('click.coreui.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element: EventTarget | null, event: string, handler?: string | EventCallable, delegationFunction?: EventCallable): void {\n addHandler(element as Element, event, handler, delegationFunction, false)\n },\n\n one(element: EventTarget | null, event: string, handler?: string | EventCallable, delegationFunction?: EventCallable): void {\n addHandler(element as Element, event, handler, delegationFunction, true)\n },\n\n off(element: EventTarget | null, originalTypeEvent: string, handler?: string | EventCallable, delegationFunction?: EventCallable): void {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const { isDelegated, callable, typeEvent, handlerTypeEvent } = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n // The caller gave a namespace when neither event type matches what they passed in.\n // `handlerTypeEvent` must take part, or plain `mouseenter` looks namespaced next to `mouseover`.\n const inNamespace = typeEvent !== originalTypeEvent && handlerTypeEvent !== originalTypeEvent\n const events = getElementEvents(element as Element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n const fn = findHandler(storeElementEvent, callable, handlerTypeEvent, isDelegated ? (handler as string) : null)\n\n if (fn) {\n removeHandler(element as Element, events, typeEvent, fn)\n }\n\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element as Element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (event.handlerTypeEvent === handlerTypeEvent && (!inNamespace || originalTypeEvent.includes(handlerKey))) {\n removeHandler(element as Element, events, typeEvent, event)\n }\n }\n },\n\n trigger(element: EventTarget | null, event: string, args?: Record<string, unknown>): CoreUIEvent | null {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n\n let jQueryEvent = null\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n const evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nfunction hydrateObj<T extends object>(obj: T, meta: Record<string, unknown> = {}): T & Record<string, any> {\n for (const [key, value] of Object.entries(meta)) {\n try {\n (obj as Record<string, unknown>)[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\nexport type { CoreUIEvent, EventCallable }\n","// Vendored from https://github.com/coreui/coreui-pro/blob/e9355580e/js/src/dom/manipulator.ts — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI dom/manipulator.ts\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's dom/manipulator.ts\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value: string | null | undefined): unknown {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key: string): string {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element: Element, key: string, value: unknown): void {\n element.setAttribute(`data-coreui-${normalizeDataKey(key)}`, value as string)\n },\n\n removeDataAttribute(element: Element, key: string): void {\n element.removeAttribute(`data-coreui-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element: HTMLElement | null): Record<string, unknown> {\n if (!element) {\n return {}\n }\n\n const attributes: Record<string, unknown> = {}\n const coreuiKeys = Object.keys(element.dataset).filter(key => key.startsWith('coreui') && !key.startsWith('coreuiConfig'))\n\n for (const key of coreuiKeys) {\n let pureKey = key.replace(/^coreui/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element: Element, key: string): unknown {\n return normalizeData(element.getAttribute(`data-coreui-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","// Vendored from https://github.com/coreui/coreui-pro/blob/e9355580e/js/src/util/config.ts — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI util/config.ts\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/config.ts\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Types\n */\n\n// Deliberately loose: the config object is assembled from data attributes and\n// user input, and each component narrows it with its own exported config type.\ntype ComponentConfig = Record<string, any>\n\n/**\n * Class definition\n */\n\nclass Config {\n // Type `this.constructor` so the static members (Default, DefaultType, NAME)\n // are reachable from instance methods without a cast. Declaration-only, so it\n // emits no runtime code.\n declare ['constructor']: typeof Config\n\n // Getters\n static get Default(): ComponentConfig {\n return {}\n }\n\n static get DefaultType(): ComponentConfig {\n return {}\n }\n\n static get NAME(): string {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config?: ComponentConfig | null): ComponentConfig {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config: ComponentConfig): ComponentConfig {\n return config\n }\n\n _mergeConfigObj(config?: ComponentConfig | null, element?: Element): ComponentConfig {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element as HTMLElement) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config: ComponentConfig, configTypes: ComponentConfig = this.constructor.DefaultType): void {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\nexport type { ComponentConfig }\n","// Vendored from https://github.com/coreui/coreui-pro/blob/e9355580e/js/src/base-component.ts — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI base-component.ts\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This component is a modified version of the Bootstrap's base-component.ts\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config, { type ComponentConfig } from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '0.1.0'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n declare ['constructor']: typeof BaseComponent\n protected declare _element: HTMLElement\n protected declare _config: ComponentConfig\n\n constructor(element?: string | Element | null, config?: ComponentConfig | null) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element as HTMLElement\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose(): void {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n (this as Record<string, any>)[propertyName] = null\n }\n }\n\n // Private\n _queueCallback(callback: () => void, element: Element, isAnimated = true): void {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n override _getConfig(config?: ComponentConfig | null): ComponentConfig {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance<T extends typeof BaseComponent>(this: T, element?: string | Element | null): InstanceType<T> | null {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance<T extends typeof BaseComponent>(this: T, element?: string | Element | null, config: ComponentConfig | null = {}): InstanceType<T> {\n return this.getInstance(element) || (new this(element, typeof config === 'object' ? config : null) as InstanceType<T>)\n }\n\n static get VERSION(): string {\n return VERSION\n }\n\n static get DATA_KEY(): string {\n return `coreui.${this.NAME}`\n }\n\n static get EVENT_KEY(): string {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name: string): string {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid engine/active-cell.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\n// The cellNavigation substrate: one grid-owned active cell (roving tabindex).\n// rowIndex is an index into the current row model (page-local under\n// pagination); -1 addresses the header label row. Focus is derived from this\n// state, never from the DOM - the body applies it after every render pass.\n\nexport interface ActiveCell {\n rowIndex: number\n columnId: string\n}\n\nexport interface ActiveCellContext {\n // Visible leaf column ids in visual order (pinning + order + visibility).\n columnIds: string[]\n rowCount: number\n // Rows per PageUp/PageDown step: visible viewport rows (virtualized) or the\n // page size (paginated).\n pageStep: number\n paginated: boolean\n // Writing direction of the grid. Arrow keys are physical, column order is\n // logical, so under RTL the two horizontal keys trade places.\n rtl?: boolean\n}\n\nexport interface NavigationResult {\n cell: ActiveCell\n pageDelta?: -1 | 1\n}\n\nconst HEADER_ROW_INDEX = -1\n\nconst clampColumn = (columnId: string, columnIds: string[]): string | null => {\n if (columnIds.includes(columnId)) {\n return columnId\n }\n\n return columnIds.length > 0 ? columnIds[0] : null\n}\n\n// Nulls the cell when the grid has no addressable cells; otherwise snaps it\n// back into the current column set and row range.\nexport const clampActiveCell = (cell: ActiveCell | null, context: ActiveCellContext): ActiveCell | null => {\n if (!cell) {\n return null\n }\n\n const columnId = clampColumn(cell.columnId, context.columnIds)\n if (columnId === null) {\n return null\n }\n\n const maxRow = context.rowCount - 1\n const rowIndex = cell.rowIndex < 0 ?\n HEADER_ROW_INDEX :\n Math.max(0, Math.min(cell.rowIndex, Math.max(maxRow, 0)))\n\n if (rowIndex >= 0 && maxRow < 0) {\n return { rowIndex: HEADER_ROW_INDEX, columnId }\n }\n\n return { rowIndex, columnId }\n}\n\n// The APG key decision table - a pure function so every edition asserts\n// identical outcomes. Returns null for keys the grid does not handle.\nexport const resolveNavigation = (\n key: string,\n ctrlKey: boolean,\n current: ActiveCell,\n context: ActiveCellContext\n): NavigationResult | null => {\n const { columnIds, rowCount, pageStep, paginated, rtl } = context\n const columnIndex = columnIds.indexOf(current.columnId)\n if (columnIndex === -1 || columnIds.length === 0) {\n return null\n }\n\n const lastRow = rowCount - 1\n const lastColumn = columnIds.length - 1\n const cell = (rowIndex: number, index: number): NavigationResult => ({\n cell: { rowIndex, columnId: columnIds[index] }\n })\n\n switch (key) {\n case 'ArrowLeft': {\n return rtl ?\n cell(current.rowIndex, Math.min(columnIndex + 1, lastColumn)) :\n cell(current.rowIndex, Math.max(columnIndex - 1, 0))\n }\n\n case 'ArrowRight': {\n return rtl ?\n cell(current.rowIndex, Math.max(columnIndex - 1, 0)) :\n cell(current.rowIndex, Math.min(columnIndex + 1, lastColumn))\n }\n\n case 'ArrowUp': {\n return cell(Math.max(current.rowIndex - 1, HEADER_ROW_INDEX), columnIndex)\n }\n\n case 'ArrowDown': {\n return cell(Math.min(current.rowIndex + 1, lastRow), columnIndex)\n }\n\n case 'Home': {\n if (ctrlKey) {\n return cell(rowCount > 0 ? 0 : HEADER_ROW_INDEX, 0)\n }\n\n return cell(current.rowIndex, 0)\n }\n\n case 'End': {\n if (ctrlKey) {\n return cell(rowCount > 0 ? lastRow : HEADER_ROW_INDEX, lastColumn)\n }\n\n return cell(current.rowIndex, lastColumn)\n }\n\n case 'PageUp': {\n if (paginated && current.rowIndex === 0) {\n return { ...cell(0, columnIndex), pageDelta: -1 }\n }\n\n return cell(Math.max(current.rowIndex - pageStep, 0), columnIndex)\n }\n\n case 'PageDown': {\n if (paginated && current.rowIndex === lastRow) {\n return { ...cell(lastRow, columnIndex), pageDelta: 1 }\n }\n\n return cell(Math.min(current.rowIndex + pageStep, lastRow), columnIndex)\n }\n\n default: {\n return null\n }\n }\n}\n\nexport interface ActiveCellManager {\n get: () => ActiveCell | null\n // Stores the cell; focus: true marks a pending focus request the next\n // render pass consumes (set false for pointer-driven activation, where the\n // browser already moved focus).\n set: (cell: ActiveCell, options?: { focus?: boolean }) => void\n clamp: (context: ActiveCellContext) => void\n reset: () => void\n consumeFocusRequest: () => boolean\n}\n\nexport const createActiveCellManager = (onChange: () => void): ActiveCellManager => {\n let current: ActiveCell | null = null\n let focusRequested = false\n\n return {\n get: () => current,\n set(cell, options = {}) {\n const changed = !current || current.rowIndex !== cell.rowIndex || current.columnId !== cell.columnId\n current = cell\n if (options.focus) {\n focusRequested = true\n }\n\n if (changed || options.focus) {\n onChange()\n }\n },\n clamp(context) {\n const next = clampActiveCell(current, context)\n const changed = Boolean(current) !== Boolean(next) ||\n (current && next && (current.rowIndex !== next.rowIndex || current.columnId !== next.columnId))\n current = next\n if (changed) {\n onChange()\n }\n },\n reset() {\n if (current) {\n current = null\n focusRequested = false\n onChange()\n }\n },\n consumeFocusRequest() {\n if (!focusRequested) {\n return false\n }\n\n focusRequested = false\n return true\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid engine/data-source.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport type { DataGridDataRequest, DataGridDataResponse } from '../types'\n\nconst FETCH_DEBOUNCE_MS = 100\n\nexport interface GridDataSourceContext {\n getRequest: () => DataGridDataRequest\n onError: (error: unknown) => void\n // The request is handed back so an appending consumer can tell a first page\n // (replace) from a follow-up one (append) without re-reading table state,\n // which may already have moved on.\n onLoad: (response: DataGridDataResponse, request: DataGridDataRequest) => void\n onLoadingChange: (loading: boolean) => void\n provider: (request: DataGridDataRequest) => Promise<DataGridDataResponse>\n}\n\nexport interface GridDataSource {\n load: () => void\n dispose: () => void\n}\n\nexport const createDataSource = (context: GridDataSourceContext): GridDataSource => {\n let requestId = 0\n let timeout: ReturnType<typeof setTimeout> | undefined\n\n return {\n load() {\n clearTimeout(timeout)\n // Invalidate at call time, not when the debounce fires - an older\n // in-flight response must not render inside the debounce window.\n const id = ++requestId\n timeout = setTimeout(async () => {\n context.onLoadingChange(true)\n\n try {\n const request = context.getRequest()\n const response = await context.provider(request)\n if (id !== requestId) {\n return\n }\n\n context.onLoad(response, request)\n } catch (error) {\n if (id !== requestId) {\n return\n }\n\n context.onError(error)\n } finally {\n if (id === requestId) {\n context.onLoadingChange(false)\n }\n }\n }, FETCH_DEBOUNCE_MS)\n },\n dispose() {\n clearTimeout(timeout)\n requestId++\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid util/clipboard.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport type { DataGridItem } from '../types'\n\n// table-core resolves the selection to index rectangles and leaves the text to\n// userland, \"since the delimiter, the null representation, and any quoting\n// rules are application decisions\". This is that decision, made once for all\n// four editions: TSV, because that is what spreadsheets paste as columns.\n\nconst DELIMITER = '\\t'\nconst ROW_SEPARATOR = '\\n'\n// Disjoint regions are separated the way a spreadsheet shows a gap.\nconst REGION_SEPARATOR = '\\n\\n'\n\nexport interface ClipboardBounds {\n maxColumnIndex: number\n maxRowIndex: number\n minColumnIndex: number\n minRowIndex: number\n}\n\nexport interface ClipboardRow {\n getValue: (columnId: string) => unknown\n original: DataGridItem\n}\n\nexport interface ClipboardTable {\n getCellSelectionBounds: () => ClipboardBounds[]\n getRowModel: () => { rows: ClipboardRow[] }\n}\n\n// The grid's own visible columns, in display order — the same order the\n// selection's column indexes address.\nexport interface ClipboardColumn {\n id: string\n formatter?: (value: unknown, item: DataGridItem) => string\n}\n\n// A tab or a newline inside a value would break the grid the paste target\n// rebuilds, so a value carrying either is quoted the way TSV consumers expect.\nconst escape = (text: string): string =>\n (/[\\t\\n\"]/.test(text) ? `\"${text.replace(/\"/g, '\"\"')}\"` : text)\n\nexport const serializeCellSelection = (table: ClipboardTable, columns: ClipboardColumn[]): string => {\n const { rows } = table.getRowModel()\n\n return table\n .getCellSelectionBounds()\n .map(bounds => {\n const lines: string[] = []\n for (let rowIndex = bounds.minRowIndex; rowIndex <= bounds.maxRowIndex; rowIndex++) {\n const row = rows[rowIndex]\n if (!row) {\n continue\n }\n\n const cells: string[] = []\n for (let columnIndex = bounds.minColumnIndex; columnIndex <= bounds.maxColumnIndex; columnIndex++) {\n const column = columns[columnIndex]\n if (!column) {\n continue\n }\n\n const value = row.getValue(column.id)\n // The formatter is what the cell displays; a copied date should\n // paste as the date the user is looking at, not its raw value.\n cells.push(escape(column.formatter ? column.formatter(value, row.original) : String(value ?? '')))\n }\n\n lines.push(cells.join(DELIMITER))\n }\n\n return lines.join(ROW_SEPARATOR)\n })\n .filter(region => region !== '')\n .join(REGION_SEPARATOR)\n}\n\nexport const copyCellSelection = async (table: ClipboardTable, columns: ClipboardColumn[]): Promise<string> => {\n const text = serializeCellSelection(table, columns)\n if (text === '') {\n return text\n }\n\n try {\n await navigator.clipboard.writeText(text)\n } catch {\n // Denied permission, an insecure context, or a browser without the async\n // clipboard: fall back to the selection-and-execCommand route, which only\n // works inside the user gesture that asked for the copy — which is exactly\n // where this runs.\n const textarea = document.createElement('textarea')\n textarea.value = text\n textarea.setAttribute('aria-hidden', 'true')\n textarea.style.position = 'fixed'\n textarea.style.opacity = '0'\n document.body.append(textarea)\n textarea.select()\n try {\n document.execCommand('copy')\n } finally {\n textarea.remove()\n }\n }\n\n return text\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid util/print.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport type { DataGridItem } from '../types'\n\n// Printing a virtualized grid straight from the DOM would print the twenty\n// rows that happen to be in the window, and a paginated one would print the\n// current page. Neither is what anyone means by \"print this table\", so the\n// grid renders a plain, complete table into the document, prints that, and\n// throws it away. The print stylesheet hides everything else on the page.\n\nconst CLASS_NAME_PRINT_ROOT = 'data-grid-print-root'\n\nexport interface PrintColumn {\n id: string\n label: string\n formatter?: (value: unknown, item: DataGridItem) => string\n}\n\nexport interface PrintRow {\n getValue: (columnId: string) => unknown\n original: DataGridItem\n}\n\nexport interface PrintTable {\n // The rows BEFORE pagination: the whole result of the user's sorting and\n // filtering, which is the table they think they are printing.\n getSortedRowModel?: () => { rows: PrintRow[] }\n getFilteredRowModel?: () => { rows: PrintRow[] }\n getCoreRowModel: () => { rows: PrintRow[] }\n}\n\nexport interface PrintOptions {\n // Printed above the table. Omitted entirely when not set.\n title?: string\n}\n\n// The widest row model the registered features expose — feature sets without\n// sorting or filtering fall back to the core one.\nconst printRows = (table: PrintTable): PrintRow[] => {\n if (typeof table.getSortedRowModel === 'function') {\n return table.getSortedRowModel().rows\n }\n\n if (typeof table.getFilteredRowModel === 'function') {\n return table.getFilteredRowModel().rows\n }\n\n return table.getCoreRowModel().rows\n}\n\nexport const createPrintTable = (\n table: PrintTable,\n columns: PrintColumn[],\n options: PrintOptions = {}\n): HTMLElement => {\n const root = document.createElement('div')\n root.className = CLASS_NAME_PRINT_ROOT\n\n if (options.title) {\n const heading = document.createElement('h1')\n heading.textContent = options.title\n root.append(heading)\n }\n\n const tableElement = document.createElement('table')\n tableElement.classList.add('table')\n\n const head = document.createElement('thead')\n const headRow = document.createElement('tr')\n for (const column of columns) {\n const cell = document.createElement('th')\n cell.scope = 'col'\n cell.textContent = column.label\n headRow.append(cell)\n }\n\n head.append(headRow)\n\n const body = document.createElement('tbody')\n for (const row of printRows(table)) {\n const rowElement = document.createElement('tr')\n for (const column of columns) {\n const cell = document.createElement('td')\n const value = row.getValue(column.id)\n // textContent, never innerHTML: a custom cell renderer's markup is not\n // reachable here, and the printed page must not become an injection\n // surface for the data.\n cell.textContent = column.formatter ? column.formatter(value, row.original) : String(value ?? '')\n rowElement.append(cell)\n }\n\n body.append(rowElement)\n }\n\n tableElement.append(head, body)\n root.append(tableElement)\n\n return root\n}\n\nexport const printGrid = (table: PrintTable, columns: PrintColumn[], options: PrintOptions = {}): void => {\n const root = createPrintTable(table, columns, options)\n document.body.append(root)\n\n // afterprint fires on every browser we support; the finally is the safety\n // net for a print dialog that never opens (a headless or blocked context),\n // where leaving the clone in the document would be worse than a flicker.\n const cleanup = () => {\n root.remove()\n window.removeEventListener('afterprint', cleanup)\n }\n\n window.addEventListener('afterprint', cleanup)\n\n try {\n window.print()\n } finally {\n cleanup()\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid util/drag.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\n// The one drag implementation behind every reorder in the grid: column drag\n// (axis 'x', over the header) and row drag (axis 'y', over the body). It is\n// headless in the sense that matters — it never reads the table, only what the\n// consumer resolves for it — and pointer-based rather than HTML5 drag events,\n// which cannot render a drop indicator, cannot auto-scroll, and behave\n// differently on touch.\n//\n// The invariant that keeps it cheap: pointermove writes to the DOM directly.\n// Nothing here goes through component state, change detection or a signal, so\n// a drag costs no re-renders in any of the four editions.\n\nconst CLASS_NAME_GHOST = 'data-grid-drag-ghost'\nconst CLASS_NAME_INDICATOR = 'data-grid-drop-indicator'\nconst CLASS_NAME_DRAGGING = 'data-grid-dragging'\nconst CLASS_NAME_DRAG_ACTIVE = 'data-grid-drag-active'\nconst CLASS_NAME_PREVIEW = 'data-grid-drag-preview'\nconst CLASS_NAME_GHOST_SETTLE = 'data-grid-drag-ghost-settle'\n\n// A press has to travel this far before it becomes a drag — otherwise a click\n// on a sortable header would never sort.\nconst DRAG_THRESHOLD = 4\n// How far past a zone boundary the pointer must travel before the slot flips.\n// Swaps fire on ENTRY into a neighbour's zone, and without this band a hand\n// tremor exactly on the boundary would re-animate back and forth.\nconst DRAG_HYSTERESIS = 3\n// How close to the scroll element's edge the pointer starts auto-scrolling,\n// and the fastest it scrolls when pinned to that edge.\nconst EDGE_SIZE = 48\nconst EDGE_MAX_SPEED = 18\n// The ghost trails the pointer by this much, in px.\nconst GHOST_OFFSET = 12\n// Removal fallback for the settling ghost — a context where the transition\n// never runs (reduced motion, a hidden tab) must not leak the element.\nconst GHOST_SETTLE_FALLBACK_MS = 400\n\nexport type DragAxis = 'x' | 'y'\n\nexport interface DragHit {\n id: string\n element: HTMLElement\n}\n\nexport interface DragDrop {\n id: string\n // The source lands after the target rather than before it — which side of\n // the target's midpoint the pointer was released on.\n after: boolean\n}\n\nexport interface DragControllerOptions {\n axis: DragAxis\n root: HTMLElement\n // Delegation selector for the element a drag may start from.\n handle: string\n // Called with the handle and the element actually pressed. Returning null\n // vetoes the drag: a press on a resize handle, a column the author marked\n // immovable, a grid whose reordering is off.\n resolveSource: (handle: HTMLElement, target: HTMLElement) => DragHit | null\n items: DragItems\n // Vetoes a slot: the source itself, or an item the reorder may not cross\n // (a column in another pinned region).\n canDrop: (sourceId: string, targetId: string) => boolean\n getScrollElement: () => HTMLElement | null\n // The ghost's caption. Defaults to the source's collapsed text, which is the\n // label for a header cell but every cell run together for a row.\n ghostLabel?: (source: DragHit) => string\n // The live preview: the items between the source and the drop slot slide\n // aside and the source slides into the gap, so the grid shows the layout the\n // drop will produce instead of only pointing at it. Transforms only, so\n // nothing reflows and the real order still changes once, on drop. Replaces\n // the drop-indicator line, which only renders when this is off.\n preview?: boolean\n onDrop: (sourceId: string, drop: DragDrop) => void\n}\n\n// The reorderable items, in display order along the drag's axis. This is both\n// what the pointer is hit-tested against and what the live preview slides.\nexport interface DragItems {\n getOrderedIds: () => string[]\n // Every element that travels with that id: a column's header and body cells,\n // or simply the row.\n getElements: (id: string) => HTMLElement[]\n}\n\nexport interface DragController {\n dispose: () => void\n}\n\nconst collapse = (text: string): string => text.replace(/\\s+/g, ' ').trim()\n\n// Which slot the source lands in, expressed in the CURRENT order — the same\n// arithmetic the drop itself does, so the preview cannot disagree with it.\nconst destinationIndex = (from: number, target: number, after: boolean): number =>\n (target > from ? (after ? target : target - 1) : (after ? target + 1 : target))\n\nconst swallowClick = (event: Event) => {\n event.preventDefault()\n event.stopPropagation()\n}\n\nconst disarmSwallowClick = () => {\n document.removeEventListener('click', swallowClick, { capture: true })\n}\n\n// Server-side rendering reaches here through Angular, whose ngAfterViewInit and\n// ngOnDestroy both run during prerender. There is no pointer to track without a\n// document, so hand back an inert controller instead of touching one.\nconst INERT_CONTROLLER: DragController = { dispose() {} }\n\nexport const createDragController = (options: DragControllerOptions): DragController => {\n if (typeof document === 'undefined') {\n return INERT_CONTROLLER\n }\n\n const { axis, root } = options\n const horizontal = axis === 'x'\n\n let sourceHit: DragHit | null = null\n let dragging = false\n // +1 while the axis runs the way the coordinates do, -1 under RTL, where the\n // logical column order runs against increasing x. Negating the axis keeps\n // every comparison below — the zone tiling, the hysteresis band, both edge\n // clamps, `index > fromIndex` — written once, for one direction. Only the\n // three places that touch pixels again convert back: the indicator's side,\n // the preview transform and the settling ghost.\n //\n // Read from the grid's own computed direction rather than the document's: a\n // grid can sit in an RTL subtree of an LTR page, which is exactly the case\n // the vendored isRTL() cannot see.\n let axisSign = 1\n let origin = { x: 0, y: 0 }\n let pointer = { x: 0, y: 0 }\n let drop: DragDrop | null = null\n let ghost: HTMLElement | null = null\n let indicator: HTMLElement | null = null\n let scrollFrame = 0\n let pointerId = -1\n let previewKey = ''\n // The zone that produced the current drop, padded by the hysteresis band.\n let sticky: { lo: number; hi: number } | null = null\n // The transform currently applied to each item — the preview diffs against\n // it, and a layout captured mid-preview (a row revealed by auto-scroll) is\n // corrected back through it.\n const previewDeltas = new Map<string, number>()\n // Every id that still carries the transition class. Mid-drag un-shifts keep\n // the class so the slide BACK animates too; it only comes off at the end.\n const previewClassed = new Set<string>()\n // Each item's start in the scroll container's CONTENT coordinates — a space\n // no transform and no scroll can move. Captured at drag start, when nothing\n // is transformed yet, so the values are exact.\n const contentStarts = new Map<string, number>()\n const contentSizes = new Map<string, number>()\n\n // A rect's logical start: its leading edge along the axis, in the negated\n // space when the axis is negated, so the span stays [start, start + size].\n const logicalStart = (rect: DOMRect): number => {\n if (!horizontal) {\n return rect.top\n }\n\n return axisSign === 1 ? rect.left : -rect.right\n }\n\n const logicalPointer = (): number => (horizontal ? pointer.x * axisSign : pointer.y)\n\n const stopAutoScroll = () => {\n if (scrollFrame) {\n cancelAnimationFrame(scrollFrame)\n scrollFrame = 0\n }\n }\n\n const autoScroll = () => {\n scrollFrame = 0\n const scrollElement = options.getScrollElement()\n if (!scrollElement || !dragging) {\n return\n }\n\n const rect = scrollElement.getBoundingClientRect()\n const position = horizontal ? pointer.x : pointer.y\n const start = horizontal ? rect.left : rect.top\n const end = horizontal ? rect.right : rect.bottom\n\n // Speed ramps with how far into the edge zone the pointer sits, so the\n // list creeps at the boundary and races when pinned to the edge.\n let delta = 0\n if (position < start + EDGE_SIZE) {\n delta = -EDGE_MAX_SPEED * Math.min(1, (start + EDGE_SIZE - position) / EDGE_SIZE)\n } else if (position > end - EDGE_SIZE) {\n delta = EDGE_MAX_SPEED * Math.min(1, (position - (end - EDGE_SIZE)) / EDGE_SIZE)\n }\n\n if (delta !== 0) {\n if (horizontal) {\n scrollElement.scrollLeft += delta\n } else {\n scrollElement.scrollTop += delta\n }\n\n // Scrolling moved the content under a stationary pointer, and no\n // pointermove will fire to say so.\n updateTarget()\n scrollFrame = requestAnimationFrame(autoScroll)\n }\n }\n\n // The ghost trails the pointer instead of sitting under it, so the cell the\n // hit test resolves stays visible.\n const moveGhost = () => {\n if (ghost) {\n ghost.style.transform = `translate(${pointer.x + GHOST_OFFSET}px, ${pointer.y + GHOST_OFFSET}px)`\n }\n }\n\n const hideIndicator = () => {\n if (indicator) {\n indicator.hidden = true\n }\n }\n\n const showIndicator = (target: HTMLElement, after: boolean) => {\n if (!indicator) {\n return\n }\n\n const rect = target.getBoundingClientRect()\n const rootRect = root.getBoundingClientRect()\n indicator.hidden = false\n if (horizontal) {\n // `after` is logical; which pixel edge that is flips with the axis.\n const trailing = after === (axisSign === 1)\n indicator.style.left = `${trailing ? rect.right : rect.left}px`\n indicator.style.top = `${rootRect.top}px`\n indicator.style.height = `${rootRect.height}px`\n } else {\n indicator.style.left = `${rootRect.left}px`\n indicator.style.top = `${after ? rect.bottom : rect.top}px`\n indicator.style.width = `${rootRect.width}px`\n }\n }\n\n const startDrag = () => {\n dragging = true\n axisSign = horizontal && getComputedStyle(root).direction === 'rtl' ? -1 : 1\n // Chrome focuses a button on mousedown (a press on a header lands on the\n // sort button), and tearing a FOCUSED element out of the DOM — which the\n // drop's header re-append does — makes the browser reset the scroller it\n // lived in: releasing a drag with the viewport scrolled right snapped it\n // back to the left. A drag has no use for focus; drop it the moment the\n // press becomes one. Sub-threshold presses never get here, so click-to-\n // sort keeps its focus behavior.\n const active = document.activeElement\n if (active instanceof HTMLElement && root.contains(active)) {\n active.blur()\n }\n\n root.classList.add(CLASS_NAME_DRAG_ACTIVE)\n sourceHit!.element.classList.add(CLASS_NAME_DRAGGING)\n\n const rect = sourceHit!.element.getBoundingClientRect()\n ghost = document.createElement('div')\n ghost.className = CLASS_NAME_GHOST\n ghost.setAttribute('aria-hidden', 'true')\n ghost.style.width = `${rect.width}px`\n ghost.style.height = `${rect.height}px`\n ghost.textContent = options.ghostLabel ?\n options.ghostLabel(sourceHit!) :\n collapse(sourceHit!.element.textContent ?? '')\n\n // With the live preview on, the sliding items ARE the drop indicator; a\n // line has no stable place to stand, because it would be measured against\n // cells that are themselves mid-transition. The line only exists for\n // consumers that turned the preview off.\n if (!options.preview) {\n indicator = document.createElement('div')\n indicator.className = `${CLASS_NAME_INDICATOR} ${CLASS_NAME_INDICATOR}-${axis}`\n indicator.setAttribute('aria-hidden', 'true')\n indicator.hidden = true\n root.append(indicator)\n }\n\n root.append(ghost)\n moveGhost()\n captureLayout()\n }\n\n // Where the container's content coordinate 0 currently sits on screen. The\n // one live measurement the hit test needs — everything else is arithmetic on\n // the snapshot, so mid-transition rects can never feed back into the slot.\n //\n // This is the whole reason the hit test is neither document.elementFromPoint\n // nor rect-minus-delta reconstruction: the preview MOVES the cells under the\n // pointer, and a rect measured mid-transition contains only part of its\n // delta, so both models handed back zones shifted by the unfinished\n // remainder of the animation. Dragging with the direction of travel, that\n // shifted zone swallowed the next item's first half and the slot flipped\n // back and forth until the transition settled.\n const contentOrigin = (): number => {\n const scrollElement = options.getScrollElement()\n if (!scrollElement) {\n return 0\n }\n\n const rect = scrollElement.getBoundingClientRect()\n // scrollLeft stays a physical axis in every engine (RTL just runs it\n // negative), so it enters the negated space through the sign.\n return horizontal ?\n logicalStart(rect) - (axisSign * scrollElement.scrollLeft) :\n rect.top - scrollElement.scrollTop\n }\n\n const captureItem = (id: string, origin: number): boolean => {\n const element = options.items.getElements(id)[0]\n if (!element) {\n return false\n }\n\n const rect = element.getBoundingClientRect()\n // Corrected by the applied delta for items first seen mid-preview (a row\n // revealed by auto-scroll); at drag start every delta is zero.\n const start = logicalStart(rect) - (previewDeltas.get(id) ?? 0)\n contentStarts.set(id, start - origin)\n contentSizes.set(id, horizontal ? rect.width : rect.height)\n return true\n }\n\n const captureLayout = () => {\n contentStarts.clear()\n contentSizes.clear()\n const origin = contentOrigin()\n for (const id of options.items.getOrderedIds()) {\n captureItem(id, origin)\n }\n }\n\n const updateTarget = () => {\n const position = logicalPointer()\n const origin = contentOrigin()\n\n const zones: Array<{ id: string; start: number; size: number }> = []\n for (const id of options.items.getOrderedIds()) {\n if (!contentStarts.has(id) && !captureItem(id, origin)) {\n continue\n }\n\n zones.push({ id, start: origin + contentStarts.get(id)!, size: contentSizes.get(id)! })\n }\n\n let hit: { id: string; after: boolean } | null = null\n const lastZone = zones[zones.length - 1]\n const fromIndex = zones.findIndex(zone => zone.id === sourceHit!.id)\n\n if (lastZone && position > lastZone.start + lastZone.size) {\n // Past the end there is no zone to be inside, but the intent could not\n // be clearer: after the last item the source may land on. Same at the\n // start edge below.\n sticky = null\n for (let index = zones.length - 1; index >= 0; index--) {\n if (options.canDrop(sourceHit!.id, zones[index].id)) {\n hit = { id: zones[index].id, after: true }\n break\n }\n }\n } else if (lastZone && position < zones[0].start) {\n sticky = null\n for (const zone of zones) {\n if (options.canDrop(sourceHit!.id, zone.id)) {\n hit = { id: zone.id, after: false }\n break\n }\n }\n } else if (drop && sticky && position >= sticky.lo - DRAG_HYSTERESIS && position <= sticky.hi + DRAG_HYSTERESIS) {\n // Still inside (or barely past) the zone that produced the current\n // drop — keep it, so boundary jitter cannot re-animate.\n hit = drop\n } else {\n for (let index = 0; index < zones.length; index++) {\n const zone = zones[index]\n const previous = zones[index - 1]\n const following = zones[index + 1]\n // Zones TILE the axis: real tables have collapsed borders between the\n // cells, and those few pixels belong to no rect. A pointer crossing\n // such a gap used to hit nothing, which cleared the preview and\n // re-applied it on the far side — replaying the slide right at the\n // boundary. Each gap is split down its middle instead.\n const lo = previous ? (previous.start + previous.size + zone.start) / 2 : zone.start\n const hi = following ? (zone.start + zone.size + following.start) / 2 : zone.start + zone.size\n if (position < lo || position > hi) {\n continue\n }\n\n if (options.canDrop(sourceHit!.id, zone.id)) {\n // Entering a neighbour's zone displaces it AT ONCE — the swap fires\n // at the boundary, not at the neighbour's midpoint, which is the\n // feel MUI and AG have and what a drag reads as: \"I am past it, so\n // it moves\". The release then just commits whatever the preview\n // shows.\n hit = {\n id: zone.id,\n after: fromIndex === -1 ? position > zone.start + (zone.size / 2) : index > fromIndex\n }\n sticky = { lo, hi }\n }\n\n break\n }\n }\n\n if (!hit) {\n drop = null\n sticky = null\n hideIndicator()\n applyPreview()\n return\n }\n\n drop = hit\n showIndicator(options.items.getElements(hit.id)[0], hit.after)\n applyPreview()\n }\n\n const clearPreview = () => {\n for (const id of previewClassed) {\n for (const element of options.items.getElements(id)) {\n element.style.transform = ''\n element.classList.remove(CLASS_NAME_PREVIEW)\n }\n }\n\n previewKey = ''\n previewDeltas.clear()\n previewClassed.clear()\n }\n\n const clearLayout = () => {\n contentStarts.clear()\n contentSizes.clear()\n }\n\n const applyPreview = () => {\n if (!options.preview || !sourceHit) {\n return\n }\n\n const ids = options.items.getOrderedIds()\n const from = ids.indexOf(sourceHit.id)\n const target = drop ? ids.indexOf(drop.id) : -1\n const to = from === -1 || target === -1 ? from : destinationIndex(from, target, drop!.after)\n\n // Keyed on the DESTINATION SLOT, not on the hit: two hits that resolve to\n // the same slot (the clamp past the end vs the last zone, jitter inside\n // the hysteresis band) must not rewrite anything. A clear-and-reapply of\n // identical transforms next to a forced layout read restarts the running\n // transition from zero — the mid-drag replay this file has already paid\n // for once.\n const key = String(to)\n if (key === previewKey) {\n return\n }\n\n previewKey = key\n\n const next = new Map<string, number>()\n if (from !== -1 && to !== from) {\n // Sizes come from the drag-start snapshot: no DOM reads may happen in\n // here, or they would flush layout between the transform writes below.\n const sizeOf = (index: number): number => contentSizes.get(ids[index]) ?? 0\n const forward = to > from\n const first = forward ? from + 1 : to\n const last = forward ? to : from - 1\n const sourceSize = sizeOf(from)\n let travelled = 0\n\n for (let index = first; index <= last; index++) {\n travelled += sizeOf(index)\n next.set(ids[index], forward ? -sourceSize : sourceSize)\n }\n\n // The source moves by the combined size of everything it passed, so no\n // gap opens anywhere and the axis keeps its total extent.\n next.set(ids[from], forward ? travelled : -travelled)\n }\n\n // Only elements whose delta actually changed are touched; everything else\n // keeps its running transition undisturbed. An un-shift keeps the\n // transition class, so sliding back home animates exactly like sliding\n // aside did — the class only comes off when the drag ends.\n for (const id of previewDeltas.keys()) {\n if (!next.has(id)) {\n for (const element of options.items.getElements(id)) {\n element.style.transform = ''\n }\n }\n }\n\n for (const [id, delta] of next) {\n if (previewDeltas.get(id) === delta) {\n continue\n }\n\n for (const element of options.items.getElements(id)) {\n element.style.transform = horizontal ?\n `translateX(${axisSign * delta}px)` :\n `translateY(${delta}px)`\n element.classList.add(CLASS_NAME_PREVIEW)\n }\n\n previewClassed.add(id)\n }\n\n previewDeltas.clear()\n for (const [id, delta] of next) {\n previewDeltas.set(id, delta)\n }\n }\n\n // The gesture's closing beat: instead of vanishing at the pointer, the\n // ghost flies to where the item landed (or back home on cancel) and fades\n // out there. Purely cosmetic — the commit below never waits for it.\n const settleGhost = (x: number, y: number) => {\n if (!ghost) {\n return\n }\n\n const element = ghost\n // Taken out of cleanup's hands; it removes itself when the flight ends.\n ghost = null\n element.classList.add(CLASS_NAME_GHOST_SETTLE)\n element.style.transform = `translate(${x}px, ${y}px)`\n element.style.opacity = '0'\n\n let settled = false\n const finish = () => {\n if (!settled) {\n settled = true\n element.remove()\n }\n }\n\n element.addEventListener('transitionend', finish)\n setTimeout(finish, GHOST_SETTLE_FALLBACK_MS)\n }\n\n // Where the ghost should land: the source's current visual position for a\n // commit (the preview already put it in its slot), its untransformed home\n // for a cancel (the preview is about to slide everything back there).\n const settleTarget = (committed: boolean): { x: number; y: number } | null => {\n if (!sourceHit) {\n return null\n }\n\n const rect = sourceHit.element.getBoundingClientRect()\n if (committed) {\n return { x: rect.left, y: rect.top }\n }\n\n const delta = previewDeltas.get(sourceHit.id) ?? 0\n return horizontal ?\n { x: rect.left - (axisSign * delta), y: rect.top } :\n { x: rect.left, y: rect.top - delta }\n }\n\n const cleanup = () => {\n clearPreview()\n clearLayout()\n stopAutoScroll()\n root.classList.remove(CLASS_NAME_DRAG_ACTIVE)\n sourceHit?.element.classList.remove(CLASS_NAME_DRAGGING)\n ghost?.remove()\n indicator?.remove()\n ghost = null\n indicator = null\n sourceHit = null\n dragging = false\n drop = null\n sticky = null\n pointerId = -1\n document.removeEventListener('pointermove', onPointerMove)\n document.removeEventListener('pointerup', onPointerUp)\n document.removeEventListener('pointercancel', cancel)\n document.removeEventListener('keydown', onKeydown)\n }\n\n function cancel() {\n if (dragging) {\n const home = settleTarget(false)\n if (home) {\n settleGhost(home.x, home.y)\n }\n }\n\n cleanup()\n }\n\n function onKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault()\n cancel()\n }\n }\n\n function onPointerMove(event: PointerEvent) {\n if (event.pointerId !== pointerId || !sourceHit) {\n return\n }\n\n pointer = { x: event.clientX, y: event.clientY }\n\n if (!dragging) {\n const travelled = Math.max(Math.abs(pointer.x - origin.x), Math.abs(pointer.y - origin.y))\n if (travelled < DRAG_THRESHOLD) {\n return\n }\n\n startDrag()\n }\n\n // Suppresses the text selection a pointer drag would otherwise paint\n // across the header or the rows.\n event.preventDefault()\n moveGhost()\n updateTarget()\n\n if (!scrollFrame) {\n scrollFrame = requestAnimationFrame(autoScroll)\n }\n }\n\n function onPointerUp(event: PointerEvent) {\n if (event.pointerId !== pointerId) {\n return\n }\n\n const sourceId = sourceHit?.id\n const source = sourceHit?.element\n const pending = drop\n const wasDragging = dragging\n if (wasDragging) {\n const committed = Boolean(pending && pending.id !== sourceId)\n const landing = settleTarget(committed)\n if (landing) {\n settleGhost(landing.x, landing.y)\n }\n }\n\n cleanup()\n\n if (!wasDragging) {\n return\n }\n\n // A drag that ends on the element it started from is still followed by a\n // click there — which on a header cell would toggle the sort. Swallow\n // exactly that one. Releasing anywhere else fires the click on the common\n // ancestor instead (never the sort button), so arming there would only\n // risk eating an unrelated click; the 0 ms disarm covers the rest.\n if (source?.contains(event.target as Node)) {\n document.addEventListener('click', swallowClick, { capture: true, once: true })\n setTimeout(disarmSwallowClick, 0)\n }\n\n if (sourceId && pending && pending.id !== sourceId) {\n options.onDrop(sourceId, pending)\n }\n }\n\n const onPointerDown = (event: PointerEvent) => {\n // Primary button / single touch only — a right-click or a second finger\n // must not start a reorder.\n if (!event.isPrimary || (event.pointerType === 'mouse' && event.button !== 0) || sourceHit) {\n return\n }\n\n const element = (event.target as HTMLElement | null)?.closest<HTMLElement>(options.handle)\n if (!element) {\n return\n }\n\n const hit = options.resolveSource(element, event.target as HTMLElement)\n if (!hit) {\n return\n }\n\n sourceHit = hit\n pointerId = event.pointerId\n origin = { x: event.clientX, y: event.clientY }\n pointer = origin\n\n document.addEventListener('pointermove', onPointerMove)\n document.addEventListener('pointerup', onPointerUp)\n document.addEventListener('pointercancel', cancel)\n document.addEventListener('keydown', onKeydown)\n }\n\n root.addEventListener('pointerdown', onPointerDown)\n\n return {\n dispose() {\n root.removeEventListener('pointerdown', onPointerDown)\n disarmSwallowClick()\n cleanup()\n }\n }\n}\n\nconst SELECTOR_DRAGGABLE_COLUMN = 'th[data-coreui-draggable]'\nconst SELECTOR_RESIZER = '[data-coreui-resizer]'\n// Spacer and empty rows have a single colSpan cell, so a positional lookup\n// would land on the wrong thing.\nconst SELECTOR_PREVIEW_ROWS = 'thead tr, tbody tr:not(.data-grid-spacer):not(.data-grid-empty)'\n\n// A column's cells are found by POSITION, not by a data attribute: the body\n// only marks `data-coreui-column` when cellNavigation is on, while the header\n// always does — so the header cell's index is the reliable way in, and it\n// already accounts for the leading handle and select columns.\nconst columnItems = (root: HTMLElement): DragItems => ({\n getOrderedIds: () =>\n [...root.querySelectorAll<HTMLTableCellElement>('thead tr:first-child th[data-coreui-column]')]\n .map(cell => cell.dataset.coreuiColumn ?? ''),\n getElements(id) {\n const header = root.querySelector<HTMLTableCellElement>(`thead th[data-coreui-column=\"${id}\"]`)\n if (!header) {\n return []\n }\n\n const { cellIndex } = header\n const elements: HTMLElement[] = []\n for (const row of root.querySelectorAll<HTMLTableRowElement>(SELECTOR_PREVIEW_ROWS)) {\n const cell = row.children[cellIndex] as HTMLElement | undefined\n if (cell) {\n elements.push(cell)\n }\n }\n\n return elements\n }\n})\n\nexport interface ColumnDragOptions {\n root: HTMLElement\n getScrollElement: () => HTMLElement | null\n // Vetoes a target: the source itself, or a column in another pinned region —\n // reordering never crosses a pinning boundary.\n canDrop: (sourceKey: string, targetKey: string) => boolean\n onReorder: (sourceKey: string, targetKey: string, after: boolean) => void\n}\n\n// The column half of the wiring, shared so each edition's adapter is the four\n// lines that resolve its own table rather than a copy of the drag setup.\nexport const createColumnDragController = (options: ColumnDragOptions): DragController =>\n createDragController({\n axis: 'x',\n root: options.root,\n handle: SELECTOR_DRAGGABLE_COLUMN,\n getScrollElement: options.getScrollElement,\n resolveSource(element, target) {\n // A press on the resize handle is a resize, not a reorder.\n if (target.closest(SELECTOR_RESIZER)) {\n return null\n }\n\n const id = element.dataset.coreuiColumn\n return id ? { id, element } : null\n },\n items: columnItems(options.root),\n // Only a column the header marks as draggable is a slot, on top of the\n // consumer's own veto — an immovable column is not somewhere to land.\n canDrop: (sourceId, targetId) =>\n sourceId !== targetId &&\n Boolean(options.root.querySelector(`th[data-coreui-column=\"${targetId}\"][data-coreui-draggable]`)) &&\n options.canDrop(sourceId, targetId),\n preview: true,\n onDrop: (sourceKey, drop) => options.onReorder(sourceKey, drop.id, drop.after)\n })\n\nconst SELECTOR_ROW_HANDLE = '[data-coreui-row-handle]'\nconst SELECTOR_ROW = 'tr[data-coreui-index]'\n\nconst rowItems = (root: HTMLElement): DragItems => ({\n getOrderedIds: () =>\n [...root.querySelectorAll<HTMLElement>(`tbody ${SELECTOR_ROW}`)].map(row => row.dataset.coreuiIndex ?? ''),\n getElements(id) {\n const row = root.querySelector<HTMLElement>(`tbody tr[data-coreui-index=\"${id}\"]`)\n return row ? [row] : []\n }\n})\n\nexport interface RowDragOptions {\n root: HTMLElement\n getScrollElement: () => HTMLElement | null\n onReorder: (sourceIndex: number, targetIndex: number, after: boolean) => void\n}\n\n// The row half. Unlike columns, the whole row travels but only the grip cell\n// starts the drag — a row is covered in interactive content (checkboxes,\n// editors, custom cells) that a whole-row handle would swallow.\nexport const createRowDragController = (options: RowDragOptions): DragController =>\n createDragController({\n axis: 'y',\n root: options.root,\n handle: SELECTOR_ROW_HANDLE,\n getScrollElement: options.getScrollElement,\n resolveSource(handle) {\n const row = handle.closest<HTMLElement>(SELECTOR_ROW)\n const id = row?.dataset.coreuiIndex\n return row && id ? { id, element: row } : null\n },\n items: rowItems(options.root),\n canDrop: (sourceId, targetId) => sourceId !== targetId,\n // The row's own text is every cell run together; the first data cell reads\n // as the row's name in practice.\n // The row's own text is every cell run together, so the ghost carries the\n // first DATA cell instead — found by skipping the leading handle and\n // select cells rather than by data-coreui-column, which the body only\n // carries when cellNavigation is on (without it the ghost came up empty).\n ghostLabel: source =>\n collapse(\n source.element.querySelector(\n 'td:not(.data-grid-row-handle-cell):not(.data-grid-select-cell)'\n )?.textContent ?? ''\n ),\n preview: true,\n onDrop: (sourceId, drop) => options.onReorder(Number(sourceId), Number(drop.id), drop.after)\n })\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid engine/scheduler.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nexport interface Scheduler {\n schedule: () => void\n dispose: () => void\n}\n\nexport const createScheduler = (flush: () => void): Scheduler => {\n let scheduled = false\n let disposed = false\n\n const run = () => {\n scheduled = false\n if (!disposed) {\n flush()\n }\n }\n\n return {\n schedule() {\n if (scheduled || disposed) {\n return\n }\n\n scheduled = true\n if (typeof window.requestAnimationFrame === 'function') {\n window.requestAnimationFrame(run)\n return\n }\n\n setTimeout(run, 16)\n },\n dispose() {\n disposed = true\n }\n }\n}\n","//#region src/utils.ts\n/**\n* Applies a TanStack updater to a value.\n*\n* If the updater is a function it is called with the previous value; otherwise the updater value is returned directly.\n*/\nfunction functionalUpdate(updater, input) {\n\treturn typeof updater === \"function\" ? updater(input) : updater;\n}\n/**\n* Clones table state values while preserving non-plain objects.\n*\n* Plain objects and arrays are copied recursively so state updates can avoid mutating existing references.\n*/\nfunction cloneState(value) {\n\tif (Array.isArray(value)) return value.map(cloneState);\n\tif (value && typeof value === \"object\") {\n\t\tconst proto = Object.getPrototypeOf(value);\n\t\tif (proto !== Object.prototype && proto !== null) return value;\n\t\tconst copy = proto === null ? makeObjectMap() : {};\n\t\tconst keys = Object.keys(value);\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key = keys[i];\n\t\t\tObject.defineProperty(copy, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: cloneState(value[key]),\n\t\t\t\twritable: true\n\t\t\t});\n\t\t}\n\t\treturn copy;\n\t}\n\treturn value;\n}\n/**\n* Copies prototype-instance own properties without carrying over lazy memo\n* closures or the per-row cell cache, both of which are bound to the source\n* instance (cached cells reference the source row).\n*/\nfunction copyInstancePropertiesWithoutMemos(target, source) {\n\tconst keys = Object.keys(source);\n\tconst targetRecord = target;\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key = keys[i];\n\t\tif (!key.startsWith(\"_memo_\") && key !== \"_cellsCache\") targetRecord[key] = source[key];\n\t}\n\treturn target;\n}\n/**\n* Creates an object intended only for string-keyed dictionary lookups.\n*\n* The null prototype keeps user-controlled ids such as `__proto__` and\n* `hasOwnProperty` as plain data keys.\n*/\nfunction makeObjectMap() {\n\treturn Object.create(null);\n}\n/**\n* Checks whether an object owns a key, including null-prototype dictionaries.\n*/\nfunction hasOwn(obj, key) {\n\treturn Object.prototype.hasOwnProperty.call(obj, key);\n}\n/**\n* Creates a table state updater for a single state slice.\n*\n* The updater writes through the table base atom for the slice and supports both value and functional updater forms.\n*/\nfunction makeStateUpdater(key, instance) {\n\treturn (updater) => {\n\t\t(instance.options.atoms?.[key] ?? instance.baseAtoms[key]).set((old) => functionalUpdate(updater, old));\n\t};\n}\n/**\n* Returns whether a value is a function.\n*/\nfunction isFunction(d) {\n\treturn d instanceof Function;\n}\n/**\n* Flattens a tree of nodes by recursively reading child nodes.\n*\n* The original nodes are preserved in depth-first order.\n*/\nfunction flattenBy(arr, getChildren) {\n\tconst flat = [];\n\tconst recurse = (subArr) => {\n\t\tsubArr.forEach((item) => {\n\t\t\tflat.push(item);\n\t\t\tconst children = getChildren(item);\n\t\t\tif (children.length) recurse(children);\n\t\t});\n\t};\n\trecurse(arr);\n\treturn flat;\n}\n/**\n* Creates a dependency-tracked memoized function for table internals.\n*\n* The memo recomputes only when its dependency tuple changes and can emit debug timing information.\n*/\nconst memo = ({ fn, memoDeps, onAfterCompare, onAfterUpdate, onBeforeCompare, onBeforeUpdate }) => {\n\tlet deps = [];\n\tlet result;\n\tconst memoizedFn = (depArgs) => {\n\t\tonBeforeCompare?.();\n\t\tconst newDeps = memoDeps?.(depArgs);\n\t\tlet depsChanged = !newDeps || newDeps.length !== deps?.length;\n\t\tif (!depsChanged && newDeps) {\n\t\t\tfor (let i = 0; i < newDeps.length; i++) if (newDeps[i] !== deps[i]) {\n\t\t\t\tdepsChanged = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tonAfterCompare?.(depsChanged);\n\t\tif (!depsChanged) return result;\n\t\tdeps = newDeps;\n\t\tonBeforeUpdate?.();\n\t\tresult = fn(...newDeps ?? []);\n\t\tonAfterUpdate?.(result);\n\t\treturn result;\n\t};\n\treturn memoizedFn;\n};\n/**\n* Wraps a callback so that its first invocation is skipped.\n*\n* Row-model `onAfterUpdate` hooks schedule auto-resets when their inputs\n* change. The initial computation of a row model is not a change, so state\n* resets must not fire for it — otherwise merely reading a row model on mount\n* would wipe initial or controlled state.\n*/\nfunction skipFirstRun(fn) {\n\tlet hasRun = false;\n\treturn () => {\n\t\tif (!hasRun) {\n\t\t\thasRun = true;\n\t\t\treturn;\n\t\t}\n\t\tfn();\n\t};\n}\nconst pad = (str, num) => {\n\tstr = String(str);\n\twhile (str.length < num) str = \" \" + str;\n\treturn str;\n};\n/**\n* Creates a table-aware memoized function.\n*\n* This wraps `memo` with table debug options and feature metadata so row models and derived APIs can share consistent diagnostics.\n*/\nfunction tableMemo({ feature, fnName, objectId, onAfterUpdate, table, ...memoOptions }) {\n\tlet startCalcTime;\n\tlet endCalcTime;\n\tlet runCount = 0;\n\tlet debug;\n\tif (process.env.NODE_ENV === \"development\") {\n\t\tconst { debugAll } = table.options;\n\t\tconst { parentName } = getFunctionNameInfo(fnName, \".\");\n\t\tconst debugByParent = table.options[`debug${(parentName != \"table\" ? parentName + \"s\" : parentName).replace(parentName, parentName.charAt(0).toUpperCase() + parentName.slice(1))}`];\n\t\tconst debugByFeature = feature ? table.options[`debug${feature.charAt(0).toUpperCase() + feature.slice(1)}`] : false;\n\t\tdebug = debugAll || debugByParent || debugByFeature;\n\t}\n\tfunction logTime(time, depsChanged) {\n\t\tconst runType = runCount === 0 ? \"(1st run)\" : depsChanged ? \"(rerun #\" + runCount + \")\" : \"(cache)\";\n\t\trunCount++;\n\t\tconsole.groupCollapsed(`%c⏱ ${pad(`${time.toFixed(1)} ms`, 12)} %c${runType}%c ${fnName}%c ${objectId ? `(${fnName.split(\".\")[0]}Id: ${objectId})` : \"\"}`, `font-size: .6rem; font-weight: bold; ${depsChanged ? `color: hsl(\n ${Math.max(0, Math.min(120 - Math.log10(time) * 60, 120))}deg 100% 31%);` : \"\"} `, `color: ${runCount < 2 ? \"#FF00FF\" : \"#FF1493\"}`, \"color: #666\", \"color: #87CEEB\");\n\t\tconsole.info({\n\t\t\tfeature,\n\t\t\tstate: table.store.state,\n\t\t\tdeps: memoOptions.memoDeps?.toString()\n\t\t});\n\t\tconsole.trace();\n\t\tconsole.groupEnd();\n\t}\n\tconst onAfterUpdateHandler = () => {\n\t\tif (!onAfterUpdate) return;\n\t\tconst { schedule, untrack } = table._reactivity;\n\t\tschedule(() => untrack(() => onAfterUpdate()));\n\t};\n\tconst debugOptions = process.env.NODE_ENV === \"development\" ? {\n\t\tonBeforeCompare: () => {},\n\t\tonAfterCompare: (depsChanged) => {},\n\t\tonBeforeUpdate: () => {\n\t\t\tif (debug) startCalcTime = performance.now();\n\t\t},\n\t\tonAfterUpdate: () => {\n\t\t\tif (debug) {\n\t\t\t\tendCalcTime = performance.now();\n\t\t\t\tlogTime(Math.round((endCalcTime - startCalcTime) * 100) / 100, true);\n\t\t\t}\n\t\t\tonAfterUpdateHandler();\n\t\t}\n\t} : { onAfterUpdate: () => {\n\t\tonAfterUpdateHandler();\n\t} };\n\treturn memo({\n\t\t...memoOptions,\n\t\t...debugOptions\n\t});\n}\n/**\n* Assumes that a function name is in the format of `parentName_fnKey` and returns the `fnKey` and `fnName` in the format of `parentName.fnKey`.\n*/\nfunction getFunctionNameInfo(staticFnName, splitBy = \"_\") {\n\tconst [parentName, fnKey] = staticFnName.split(splitBy);\n\treturn {\n\t\tfnKey,\n\t\tfnName: `${parentName}.${fnKey}`,\n\t\tparentName\n\t};\n}\n/**\n* Assigns Table API methods directly to the table instance.\n* Unlike row/cell/column/header, the table is a singleton so methods are assigned directly.\n*/\nfunction assignTableAPIs(feature, table, apis) {\n\tfor (const [staticFnName, { fn, memoDeps }] of Object.entries(apis)) {\n\t\tconst { fnKey, fnName } = getFunctionNameInfo(staticFnName);\n\t\ttable[fnKey] = memoDeps ? tableMemo({\n\t\t\tmemoDeps,\n\t\t\tfn,\n\t\t\tfnName,\n\t\t\ttable,\n\t\t\tfeature\n\t\t}) : fn;\n\t}\n}\n/**\n* Assigns API methods to a prototype object for memory-efficient method sharing.\n* All instances created with this prototype will share the same method references.\n*\n* For memoized methods, the memo state is lazily created and stored on each instance.\n* This provides the best of both worlds: shared method code + per-instance caching.\n*/\nfunction assignPrototypeAPIs(feature, prototype, table, apis) {\n\tfor (const [staticFnName, { fn, memoDeps }] of Object.entries(apis)) {\n\t\tconst { fnKey, fnName } = getFunctionNameInfo(staticFnName);\n\t\tif (memoDeps) {\n\t\t\tconst memoKey = `_memo_${fnKey}`;\n\t\t\tprototype[fnKey] = function(...args) {\n\t\t\t\tif (!this[memoKey]) {\n\t\t\t\t\tconst self = this;\n\t\t\t\t\tthis[memoKey] = tableMemo({\n\t\t\t\t\t\tmemoDeps: (depArgs) => memoDeps(self, depArgs),\n\t\t\t\t\t\tfn: (...deps) => fn(self, ...deps),\n\t\t\t\t\t\tfnName,\n\t\t\t\t\t\tobjectId: self.id,\n\t\t\t\t\t\ttable,\n\t\t\t\t\t\tfeature\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this[memoKey](...args);\n\t\t\t};\n\t\t} else prototype[fnKey] = function(...args) {\n\t\t\treturn fn(this, ...args);\n\t\t};\n\t}\n}\n/**\n* Looks to run the memoized function with the builder pattern on the object if it exists, otherwise fall back to the static method passed in.\n*/\nfunction callMemoOrStaticFn(obj, fnKey, staticFn, ...args) {\n\treturn obj[fnKey]?.(...args) ?? staticFn(obj, ...args);\n}\n\n//#endregion\nexport { assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, cloneState, copyInstancePropertiesWithoutMemos, flattenBy, functionalUpdate, getFunctionNameInfo, hasOwn, isFunction, makeObjectMap, makeStateUpdater, memo, skipFirstRun, tableMemo };","//#region src/core/cells/coreCellsFeature.utils.ts\n/**\n* Reads this cell's accessor value from its owning row and column.\n*\n* This is the standalone implementation behind `cell.getValue()`, useful when\n* importing static APIs instead of calling methods from the cell prototype.\n*\n* @example\n* ```ts\n* const value = cell_getValue(cell)\n* ```\n*/\nfunction cell_getValue(cell) {\n\treturn cell.row.getValue(cell.column.id);\n}\n/**\n* Reads the value that should be rendered for this cell.\n*\n* Nullish accessor values are replaced with `table.options.renderFallbackValue`,\n* matching the behavior of `cell.renderValue()`.\n*\n* @example\n* ```ts\n* const rendered = cell_renderValue(cell)\n* ```\n*/\nfunction cell_renderValue(cell) {\n\treturn cell.getValue() ?? cell.table.options.renderFallbackValue;\n}\n/**\n* Builds the render context passed to a column's `cell` template.\n*\n* The returned object includes stable references to the table, row, column, and\n* cell, plus bound `getValue` and `renderValue` helpers for render functions.\n*\n* @example\n* ```ts\n* const context = cell_getContext(cell)\n* ```\n*/\nfunction cell_getContext(cell) {\n\treturn {\n\t\ttable: cell.table,\n\t\tcolumn: cell.column,\n\t\trow: cell.row,\n\t\tcell,\n\t\tgetValue: () => cell.getValue(),\n\t\trenderValue: () => cell.renderValue()\n\t};\n}\n\n//#endregion\nexport { cell_getContext, cell_getValue, cell_renderValue };","import { assignPrototypeAPIs } from \"../../utils.js\";\nimport { cell_getContext, cell_getValue, cell_renderValue } from \"./coreCellsFeature.utils.js\";\n\n//#region src/core/cells/coreCellsFeature.ts\n/**\n* Core feature that adds cell value, render, and context APIs.\n*/\nconst coreCellsFeature = { assignCellPrototype: (prototype, table) => {\n\tassignPrototypeAPIs(\"coreCellsFeature\", prototype, table, {\n\t\tcell_getValue: { fn: (cell) => cell_getValue(cell) },\n\t\tcell_renderValue: { fn: (cell) => cell_renderValue(cell) },\n\t\tcell_getContext: {\n\t\t\tfn: (cell) => cell_getContext(cell),\n\t\t\tmemoDeps: (cell) => [cell]\n\t\t}\n\t});\n} };\n\n//#endregion\nexport { coreCellsFeature };","//#region src/core/headers/constructHeader.ts\n/**\n* Creates or retrieves the header prototype for a table.\n* The prototype is cached on the table and shared by all header instances.\n*/\nfunction getHeaderPrototype(table) {\n\tif (!table._headerPrototype) {\n\t\ttable._headerPrototype = { table };\n\t\tconst features = Object.values(table._features);\n\t\tfor (let i = 0; i < features.length; i++) features[i].assignHeaderPrototype?.(table._headerPrototype, table);\n\t}\n\treturn table._headerPrototype;\n}\n/**\n* Constructs a header instance from normalized table internals.\n*\n* This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n*/\nfunction constructHeader(table, column, options) {\n\tconst headerPrototype = getHeaderPrototype(table);\n\tconst header = Object.create(headerPrototype);\n\theader.colSpan = 0;\n\theader.column = column;\n\theader.depth = options.depth;\n\theader.headerGroup = null;\n\theader.id = options.id ?? column.id;\n\theader.index = options.index;\n\theader.isPlaceholder = !!options.isPlaceholder;\n\theader.placeholderId = options.placeholderId;\n\theader.rowSpan = 0;\n\theader.subHeaders = [];\n\tconst initFns = table._headerInstanceInitFns;\n\tfor (let i = 0; i < initFns.length; i++) initFns[i](header);\n\treturn header;\n}\n\n//#endregion\nexport { constructHeader };","import { callMemoOrStaticFn, cloneState } from \"../../utils.js\";\nimport { column_getIsVisible, row_getVisibleCells, row_getVisibleCellsByColumnId, table_getVisibleLeafColumns } from \"../column-visibility/columnVisibilityFeature.utils.js\";\nimport { buildHeaderGroups } from \"../../core/headers/buildHeaderGroups.js\";\n\n//#region src/features/column-pinning/columnPinningFeature.utils.ts\n/**\n* Creates the default column pinning state.\n*\n* Both pinning regions start empty. Reset APIs use this value when\n* `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const pinning = getDefaultColumnPinningState()\n* ```\n*/\nfunction getDefaultColumnPinningState() {\n\treturn {\n\t\tstart: [],\n\t\tend: []\n\t};\n}\n/**\n* Moves this column's leaf column ids into a pinning region.\n*\n* Pinning a group column pins all of its leaves. The leaf ids are first removed\n* from both regions, then appended to the requested `'start'` or `'end'`\n* region. Passing `false` unpins them back to the center.\n*\n* `start` and `end` are logical positions. In LTR languages/layouts, `start`\n* usually corresponds to left and `end` to right. In RTL languages/layouts,\n* `start` usually corresponds to right and `end` to left.\n*\n* @example\n* ```ts\n* column_pin(column, 'start')\n* ```\n*/\nfunction column_pin(column, position) {\n\tconst leafColumns = column.getLeafColumns();\n\tconst columnIds = [];\n\tfor (let i = 0; i < leafColumns.length; i++) {\n\t\tconst id = leafColumns[i].id;\n\t\tif (id) columnIds.push(id);\n\t}\n\ttable_setColumnPinning(column.table, (old) => {\n\t\tif (position === \"end\") return {\n\t\t\tstart: old.start.filter((d) => !columnIds.includes(d)),\n\t\t\tend: [...old.end.filter((d) => !columnIds.includes(d)), ...columnIds]\n\t\t};\n\t\tif (position === \"start\") return {\n\t\t\tstart: [...old.start.filter((d) => !columnIds.includes(d)), ...columnIds],\n\t\t\tend: old.end.filter((d) => !columnIds.includes(d))\n\t\t};\n\t\treturn {\n\t\t\tstart: old.start.filter((d) => !columnIds.includes(d)),\n\t\t\tend: old.end.filter((d) => !columnIds.includes(d))\n\t\t};\n\t});\n}\n/**\n* Checks whether this column or any of its leaf columns can be pinned.\n*\n* Column-level `enablePinning` and table `enableColumnPinning` both default to\n* `true`; at least one leaf column must allow pinning.\n*\n* @example\n* ```ts\n* const canPin = column_getCanPin(column)\n* ```\n*/\nfunction column_getCanPin(column) {\n\treturn column.getLeafColumns().some((leafColumn) => (leafColumn.columnDef.enablePinning ?? true) && (column.table.options.enableColumnPinning ?? true));\n}\n/**\n* Reads this column's current pinning region.\n*\n* Group columns report `'start'` or `'end'` when any leaf column is pinned in\n* that region. Unpinned columns return `false`.\n*\n* `start` and `end` are logical positions. In LTR languages/layouts, `start`\n* usually corresponds to left and `end` to right. In RTL languages/layouts,\n* `start` usually corresponds to right and `end` to left.\n*\n* @example\n* ```ts\n* const position = column_getIsPinned(column)\n* ```\n*/\nfunction column_getIsPinned(column) {\n\tconst leafColumns = column.getLeafColumns();\n\tconst { start, end } = column.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tfor (let i = 0; i < leafColumns.length; i++) if (start.includes(leafColumns[i].id)) return \"start\";\n\tfor (let i = 0; i < leafColumns.length; i++) if (end.includes(leafColumns[i].id)) return \"end\";\n\treturn false;\n}\n/**\n* Finds this column's index within its pinned region.\n*\n* Unpinned columns return `0`; pinned columns return their position in\n* `state.columnPinning.start` or `state.columnPinning.end`.\n*\n* @example\n* ```ts\n* const index = column_getPinnedIndex(column)\n* ```\n*/\nfunction column_getPinnedIndex(column) {\n\tconst position = column_getIsPinned(column);\n\treturn position ? column.table.atoms.columnPinning?.get()?.[position].indexOf(column.id) ?? -1 : 0;\n}\n/**\n* Collects visible cells whose columns are not pinned start or end.\n*\n* The result preserves the row's visible-cell order for center columns.\n*\n* @example\n* ```ts\n* const centerCells = row_getCenterVisibleCells(row)\n* ```\n*/\nfunction row_getCenterVisibleCells(row) {\n\tconst allCells = callMemoOrStaticFn(row, \"getVisibleCells\", row_getVisibleCells);\n\tconst { start, end } = row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tif (!start.length && !end.length) return allCells;\n\tconst startAndEnd = [...start, ...end];\n\treturn allCells.filter((d) => !startAndEnd.includes(d.column.id));\n}\n/**\n* Collects visible cells for columns pinned to the start region.\n*\n* Cells are returned in `state.columnPinning.start` order and are marked with\n* `cell.position = 'start'`.\n*\n* @example\n* ```ts\n* const startCells = row_getStartVisibleCells(row)\n* ```\n*/\nfunction row_getStartVisibleCells(row) {\n\tconst { start } = row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tif (!start.length) return [];\n\tconst allVisibleCells = callMemoOrStaticFn(row, \"getVisibleCellsByColumnId\", row_getVisibleCellsByColumnId);\n\tconst cells = [];\n\tfor (let i = 0; i < start.length; i++) {\n\t\tconst cell = allVisibleCells[start[i]];\n\t\tif (cell) {\n\t\t\tcell.position = \"start\";\n\t\t\tcells.push(cell);\n\t\t}\n\t}\n\treturn cells;\n}\n/**\n* Collects visible cells for columns pinned to the end region.\n*\n* Cells are returned in `state.columnPinning.end` order and are marked with\n* `cell.position = 'end'`.\n*\n* @example\n* ```ts\n* const endCells = row_getEndVisibleCells(row)\n* ```\n*/\nfunction row_getEndVisibleCells(row) {\n\tconst { end } = row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tif (!end.length) return [];\n\tconst allVisibleCells = callMemoOrStaticFn(row, \"getVisibleCellsByColumnId\", row_getVisibleCellsByColumnId);\n\tconst cells = [];\n\tfor (let i = 0; i < end.length; i++) {\n\t\tconst cell = allVisibleCells[end[i]];\n\t\tif (cell) {\n\t\t\tcell.position = \"end\";\n\t\t\tcells.push(cell);\n\t\t}\n\t}\n\treturn cells;\n}\n/**\n* Routes a column pinning updater through the table's pinning change handler.\n*\n* The updater may be a next `{ start, end }` state or a function of the\n* previous state, matching the instance `table.setColumnPinning` behavior.\n*\n* @example\n* ```ts\n* table_setColumnPinning(table, (old) => ({ ...old, start: ['select'] }))\n* ```\n*/\nfunction table_setColumnPinning(table, updater) {\n\ttable.options.onColumnPinningChange?.(updater);\n}\n/**\n* Resets `columnPinning` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.columnPinning` when it\n* exists. Passing `true` ignores initial state and resets to empty start/end\n* arrays.\n*\n* @example\n* ```ts\n* table_resetColumnPinning(table)\n* table_resetColumnPinning(table, true)\n* ```\n*/\nfunction table_resetColumnPinning(table, defaultState) {\n\ttable_setColumnPinning(table, defaultState ? getDefaultColumnPinningState() : cloneState(table.initialState.columnPinning ?? getDefaultColumnPinningState()));\n}\n/**\n* Checks whether any columns are pinned.\n*\n* Omit `position` to check both sides, or pass `'start'`/`'end'` to inspect a\n* single pinning region.\n*\n* @example\n* ```ts\n* const hasPinnedColumns = table_getIsSomeColumnsPinned(table)\n* ```\n*/\nfunction table_getIsSomeColumnsPinned(table, position) {\n\tconst pinningState = table.atoms.columnPinning?.get();\n\tif (!position) return Boolean(pinningState?.start.length || pinningState?.end.length);\n\treturn Boolean(pinningState?.[position].length);\n}\n/**\n* Builds header groups for visible columns pinned to the start region.\n*\n* The leaf columns are read in `state.columnPinning.start` order and then passed\n* through the same header-group builder as the unpinned table.\n*\n* @example\n* ```ts\n* const headerGroups = table_getStartHeaderGroups(table)\n* ```\n*/\nfunction table_getStartHeaderGroups(table) {\n\tconst allColumns = table.getAllColumns();\n\tconst leafColumnsById = table.getAllLeafColumnsById();\n\tconst { start } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tconst orderedLeafColumns = [];\n\tfor (let i = 0; i < start.length; i++) {\n\t\tconst column = leafColumnsById[start[i]];\n\t\tif (column && callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible)) orderedLeafColumns.push(column);\n\t}\n\treturn buildHeaderGroups(allColumns, orderedLeafColumns, table, \"start\");\n}\n/**\n* Builds header groups for visible columns pinned to the end region.\n*\n* The leaf columns are read in `state.columnPinning.end` order and then\n* passed through the same header-group builder as the unpinned table.\n*\n* @example\n* ```ts\n* const headerGroups = table_getEndHeaderGroups(table)\n* ```\n*/\nfunction table_getEndHeaderGroups(table) {\n\tconst allColumns = table.getAllColumns();\n\tconst leafColumnsById = table.getAllLeafColumnsById();\n\tconst { end } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tconst orderedLeafColumns = [];\n\tfor (let i = 0; i < end.length; i++) {\n\t\tconst column = leafColumnsById[end[i]];\n\t\tif (column && callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible)) orderedLeafColumns.push(column);\n\t}\n\treturn buildHeaderGroups(allColumns, orderedLeafColumns, table, \"end\");\n}\n/**\n* Builds header groups for visible columns that are not pinned.\n*\n* Start- and end-pinned column ids are removed from the visible leaf column\n* list before header groups are built for the center region.\n*\n* @example\n* ```ts\n* const headerGroups = table_getCenterHeaderGroups(table)\n* ```\n*/\nfunction table_getCenterHeaderGroups(table) {\n\tconst allColumns = table.getAllColumns();\n\tlet leafColumns = callMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns);\n\tconst { start, end } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tif (start.length || end.length) {\n\t\tconst startAndEnd = [...start, ...end];\n\t\tleafColumns = leafColumns.filter((column) => !startAndEnd.includes(column.id));\n\t}\n\treturn buildHeaderGroups(allColumns, leafColumns, table, \"center\");\n}\n/**\n* Builds footer groups for the start pinned region.\n*\n* Footer groups reuse the start header groups in reverse order.\n*\n* @example\n* ```ts\n* const footerGroups = table_getStartFooterGroups(table)\n* ```\n*/\nfunction table_getStartFooterGroups(table) {\n\treturn [...callMemoOrStaticFn(table, \"getStartHeaderGroups\", table_getStartHeaderGroups)].reverse();\n}\n/**\n* Builds footer groups for the end pinned region.\n*\n* Footer groups reuse the end header groups in reverse order.\n*\n* @example\n* ```ts\n* const footerGroups = table_getEndFooterGroups(table)\n* ```\n*/\nfunction table_getEndFooterGroups(table) {\n\treturn [...callMemoOrStaticFn(table, \"getEndHeaderGroups\", table_getEndHeaderGroups)].reverse();\n}\n/**\n* Builds footer groups for the center, unpinned region.\n*\n* Footer groups reuse the center header groups in reverse order.\n*\n* @example\n* ```ts\n* const footerGroups = table_getCenterFooterGroups(table)\n* ```\n*/\nfunction table_getCenterFooterGroups(table) {\n\treturn [...callMemoOrStaticFn(table, \"getCenterHeaderGroups\", table_getCenterHeaderGroups)].reverse();\n}\n/**\n* Flattens every header from the start pinned header groups.\n*\n* Parent headers and placeholder headers are included.\n*\n* @example\n* ```ts\n* const headers = table_getStartFlatHeaders(table)\n* ```\n*/\nfunction table_getStartFlatHeaders(table) {\n\tconst leftHeaderGroups = callMemoOrStaticFn(table, \"getStartHeaderGroups\", table_getStartHeaderGroups);\n\tconst result = [];\n\tfor (let i = 0; i < leftHeaderGroups.length; i++) {\n\t\tconst headers = leftHeaderGroups[i].headers;\n\t\tfor (let j = 0; j < headers.length; j++) result.push(headers[j]);\n\t}\n\treturn result;\n}\n/**\n* Flattens every header from the end pinned header groups.\n*\n* Parent headers and placeholder headers are included.\n*\n* @example\n* ```ts\n* const headers = table_getEndFlatHeaders(table)\n* ```\n*/\nfunction table_getEndFlatHeaders(table) {\n\tconst rightHeaderGroups = callMemoOrStaticFn(table, \"getEndHeaderGroups\", table_getEndHeaderGroups);\n\tconst result = [];\n\tfor (let i = 0; i < rightHeaderGroups.length; i++) {\n\t\tconst headers = rightHeaderGroups[i].headers;\n\t\tfor (let j = 0; j < headers.length; j++) result.push(headers[j]);\n\t}\n\treturn result;\n}\n/**\n* Flattens every header from the center header groups.\n*\n* Parent headers and placeholder headers are included.\n*\n* @example\n* ```ts\n* const headers = table_getCenterFlatHeaders(table)\n* ```\n*/\nfunction table_getCenterFlatHeaders(table) {\n\tconst centerHeaderGroups = callMemoOrStaticFn(table, \"getCenterHeaderGroups\", table_getCenterHeaderGroups);\n\tconst result = [];\n\tfor (let i = 0; i < centerHeaderGroups.length; i++) {\n\t\tconst headers = centerHeaderGroups[i].headers;\n\t\tfor (let j = 0; j < headers.length; j++) result.push(headers[j]);\n\t}\n\treturn result;\n}\n/**\n* Collects leaf headers for the start pinned region.\n*\n* Parent headers are filtered out from the start flat header list.\n*\n* @example\n* ```ts\n* const headers = table_getStartLeafHeaders(table)\n* ```\n*/\nfunction table_getStartLeafHeaders(table) {\n\treturn callMemoOrStaticFn(table, \"getStartFlatHeaders\", table_getStartFlatHeaders).filter((header) => !header.subHeaders.length);\n}\n/**\n* Collects leaf headers for the end pinned region.\n*\n* Parent headers are filtered out from the end flat header list.\n*\n* @example\n* ```ts\n* const headers = table_getEndLeafHeaders(table)\n* ```\n*/\nfunction table_getEndLeafHeaders(table) {\n\treturn callMemoOrStaticFn(table, \"getEndFlatHeaders\", table_getEndFlatHeaders).filter((header) => !header.subHeaders.length);\n}\n/**\n* Collects leaf headers for the center, unpinned region.\n*\n* Parent headers are filtered out from the center flat header list.\n*\n* @example\n* ```ts\n* const headers = table_getCenterLeafHeaders(table)\n* ```\n*/\nfunction table_getCenterLeafHeaders(table) {\n\treturn callMemoOrStaticFn(table, \"getCenterFlatHeaders\", table_getCenterFlatHeaders).filter((header) => !header.subHeaders.length);\n}\n/**\n* Resolves leaf columns pinned to the start region.\n*\n* The result follows `state.columnPinning.start` order and skips stale ids that\n* no longer correspond to a leaf column.\n*\n* @example\n* ```ts\n* const columns = table_getStartLeafColumns(table)\n* ```\n*/\nfunction table_getStartLeafColumns(table) {\n\tconst { start } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tconst leafColumnsById = table.getAllLeafColumnsById();\n\tconst result = [];\n\tfor (let i = 0; i < start.length; i++) {\n\t\tconst column = leafColumnsById[start[i]];\n\t\tif (column) result.push(column);\n\t}\n\treturn result;\n}\n/**\n* Resolves leaf columns pinned to the end region.\n*\n* The result follows `state.columnPinning.end` order and skips stale ids that\n* no longer correspond to a leaf column.\n*\n* @example\n* ```ts\n* const columns = table_getEndLeafColumns(table)\n* ```\n*/\nfunction table_getEndLeafColumns(table) {\n\tconst { end } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tconst leafColumnsById = table.getAllLeafColumnsById();\n\tconst result = [];\n\tfor (let i = 0; i < end.length; i++) {\n\t\tconst column = leafColumnsById[end[i]];\n\t\tif (column) result.push(column);\n\t}\n\treturn result;\n}\n/**\n* Resolves leaf columns that are not pinned to either logical side.\n*\n* Start- and end-pinned ids are removed from `table.getAllLeafColumns()`.\n*\n* @example\n* ```ts\n* const columns = table_getCenterLeafColumns(table)\n* ```\n*/\nfunction table_getCenterLeafColumns(table) {\n\tconst { start, end } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tif (!start.length && !end.length) return table.getAllLeafColumns();\n\tconst startAndEnd = [...start, ...end];\n\treturn table.getAllLeafColumns().filter((d) => !startAndEnd.includes(d.id));\n}\n/**\n* Resolves leaf columns for a requested pinning region.\n*\n* Pass `'start'`, `'center'`, or `'end'` for a partition, or pass `false` to\n* read all leaf columns without partitioning.\n*\n* @example\n* ```ts\n* const columns = table_getPinnedLeafColumns(table, 'center')\n* ```\n*/\nfunction table_getPinnedLeafColumns(table, position) {\n\treturn !position ? table.getAllLeafColumns() : position === \"start\" ? callMemoOrStaticFn(table, \"getStartLeafColumns\", table_getStartLeafColumns) : position === \"end\" ? callMemoOrStaticFn(table, \"getEndLeafColumns\", table_getEndLeafColumns) : callMemoOrStaticFn(table, \"getCenterLeafColumns\", table_getCenterLeafColumns);\n}\n/**\n* Resolves visible leaf columns pinned to the start region.\n*\n* Hidden pinned columns are filtered out after the start pin order is applied.\n*\n* @example\n* ```ts\n* const columns = table_getStartVisibleLeafColumns(table)\n* ```\n*/\nfunction table_getStartVisibleLeafColumns(table) {\n\treturn callMemoOrStaticFn(table, \"getStartLeafColumns\", table_getStartLeafColumns).filter((column) => callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Resolves visible leaf columns pinned to the end region.\n*\n* Hidden pinned columns are filtered out after the end pin order is applied.\n*\n* @example\n* ```ts\n* const columns = table_getEndVisibleLeafColumns(table)\n* ```\n*/\nfunction table_getEndVisibleLeafColumns(table) {\n\treturn callMemoOrStaticFn(table, \"getEndLeafColumns\", table_getEndLeafColumns).filter((column) => callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Resolves visible leaf columns that are not pinned.\n*\n* This is the center partition used by layouts that render pinned columns\n* separately from the scrollable middle region.\n*\n* @example\n* ```ts\n* const columns = table_getCenterVisibleLeafColumns(table)\n* ```\n*/\nfunction table_getCenterVisibleLeafColumns(table) {\n\treturn callMemoOrStaticFn(table, \"getCenterLeafColumns\", table_getCenterLeafColumns).filter((column) => callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Resolves visible leaf columns for a requested pinning region.\n*\n* Omit `position` to get all visible leaf columns, or pass `'start'`, `'center'`,\n* or `'end'` to get one partition.\n*\n* @example\n* ```ts\n* const columns = table_getPinnedVisibleLeafColumns(table, 'start')\n* ```\n*/\nfunction table_getPinnedVisibleLeafColumns(table, position) {\n\treturn !position ? callMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns) : position === \"start\" ? callMemoOrStaticFn(table, \"getStartVisibleLeafColumns\", table_getStartVisibleLeafColumns) : position === \"end\" ? callMemoOrStaticFn(table, \"getEndVisibleLeafColumns\", table_getEndVisibleLeafColumns) : callMemoOrStaticFn(table, \"getCenterVisibleLeafColumns\", table_getCenterVisibleLeafColumns);\n}\n\n//#endregion\nexport { column_getCanPin, column_getIsPinned, column_getPinnedIndex, column_pin, getDefaultColumnPinningState, row_getCenterVisibleCells, row_getEndVisibleCells, row_getStartVisibleCells, table_getCenterFlatHeaders, table_getCenterFooterGroups, table_getCenterHeaderGroups, table_getCenterLeafColumns, table_getCenterLeafHeaders, table_getCenterVisibleLeafColumns, table_getEndFlatHeaders, table_getEndFooterGroups, table_getEndHeaderGroups, table_getEndLeafColumns, table_getEndLeafHeaders, table_getEndVisibleLeafColumns, table_getIsSomeColumnsPinned, table_getPinnedLeafColumns, table_getPinnedVisibleLeafColumns, table_getStartFlatHeaders, table_getStartFooterGroups, table_getStartHeaderGroups, table_getStartLeafColumns, table_getStartLeafHeaders, table_getStartVisibleLeafColumns, table_resetColumnPinning, table_setColumnPinning };","import { callMemoOrStaticFn, cloneState, hasOwn, makeObjectMap } from \"../../utils.js\";\nimport { getDefaultColumnPinningState } from \"../column-pinning/columnPinningFeature.utils.js\";\n\n//#region src/features/column-visibility/columnVisibilityFeature.utils.ts\n/**\n* Creates the default column visibility state.\n*\n* The feature default is an empty object, where missing column ids are treated\n* as visible. Reset APIs use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const visibility = getDefaultColumnVisibilityState()\n* ```\n*/\nfunction getDefaultColumnVisibilityState() {\n\treturn makeObjectMap();\n}\n/**\n* Updates this column's visibility when hiding is allowed.\n*\n* Passing `visible` stores that value. Omitting it flips the column's current\n* visibility state. Group columns update their hideable leaf columns because\n* visibility state is keyed by leaf column ids. Columns that cannot hide stay\n* unchanged.\n*\n* @example\n* ```ts\n* column_toggleVisibility(column)\n* ```\n*/\nfunction column_toggleVisibility(column, visible) {\n\tif (column_getCanHide(column)) table_setColumnVisibility(column.table, (old) => {\n\t\tconst next = Object.assign(makeObjectMap(), old);\n\t\tconst nextVisible = visible ?? !callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible);\n\t\tconst leafColumns = column.getLeafColumns();\n\t\tfor (let i = 0; i < leafColumns.length; i++) {\n\t\t\tconst leafColumn = leafColumns[i];\n\t\t\tif (column_getCanHide(leafColumn)) next[leafColumn.id] = nextVisible;\n\t\t}\n\t\treturn next;\n\t});\n}\n/**\n* Checks whether this column is visible.\n*\n* Leaf columns read `state.columnVisibility[column.id]`, where missing entries\n* default to visible. Parent columns are visible when at least one child column\n* is visible.\n*\n* @example\n* ```ts\n* const visible = column_getIsVisible(column)\n* ```\n*/\nfunction column_getIsVisible(column) {\n\tconst columnVisibility = column.table.atoms.columnVisibility?.get();\n\tif (!columnVisibility) return true;\n\tconst childColumns = column.columns;\n\tif (childColumns.length) return childColumns.some((childColumn) => callMemoOrStaticFn(childColumn, \"getIsVisible\", column_getIsVisible));\n\treturn (hasOwn(columnVisibility, column.id) ? columnVisibility[column.id] : void 0) ?? true;\n}\n/**\n* Checks whether this column is allowed to be hidden.\n*\n* Both `columnDef.enableHiding` and table `enableHiding` default to `true`.\n*\n* @example\n* ```ts\n* const canHide = column_getCanHide(column)\n* ```\n*/\nfunction column_getCanHide(column) {\n\treturn (column.columnDef.enableHiding ?? true) && (column.table.options.enableHiding ?? true);\n}\n/**\n* Creates a checkbox-style handler that writes this column's visibility.\n*\n* The handler reads `event.target.checked`, so it is intended for visibility\n* controls whose checked state means \"visible\".\n*\n* @example\n* ```ts\n* const onChange = column_getToggleVisibilityHandler(column)\n* ```\n*/\nfunction column_getToggleVisibilityHandler(column) {\n\treturn (e) => {\n\t\tcolumn_toggleVisibility(column, e.target.checked);\n\t};\n}\n/**\n* Collects the cells from this row whose columns are visible.\n*\n* When column pinning is active, the result is ordered as start-pinned cells,\n* center cells, then end-pinned cells.\n*\n* @example\n* ```ts\n* const visibleCells = row_getVisibleCells(row)\n* ```\n*/\nfunction row_getVisibleCells(row) {\n\tconst allCells = row.getAllCells();\n\tconst visibleCells = [];\n\tfor (let i = 0; i < allCells.length; i++) {\n\t\tconst cell = allCells[i];\n\t\tif (callMemoOrStaticFn(cell.column, \"getIsVisible\", column_getIsVisible)) visibleCells.push(cell);\n\t}\n\tconst { start, end } = row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tif (!start.length && !end.length) return visibleCells;\n\tconst visibleCellsByColumnId = callMemoOrStaticFn(row, \"getVisibleCellsByColumnId\", row_getVisibleCellsByColumnId);\n\tconst startCells = [];\n\tfor (let i = 0; i < start.length; i++) {\n\t\tconst cell = visibleCellsByColumnId[start[i]];\n\t\tif (cell) startCells.push(cell);\n\t}\n\tconst endCells = [];\n\tfor (let i = 0; i < end.length; i++) {\n\t\tconst cell = visibleCellsByColumnId[end[i]];\n\t\tif (cell) endCells.push(cell);\n\t}\n\tconst centerCells = [];\n\tfor (let i = 0; i < visibleCells.length; i++) {\n\t\tconst cell = visibleCells[i];\n\t\tconst id = cell.column.id;\n\t\tif (!start.includes(id) && !end.includes(id)) centerCells.push(cell);\n\t}\n\treturn [\n\t\t...startCells,\n\t\t...centerCells,\n\t\t...endCells\n\t];\n}\n/**\n* Builds a lookup map of this row's visible cells keyed by column id.\n*\n* Hidden columns are omitted from the map.\n*\n* @example\n* ```ts\n* const visibleCellsById = row_getVisibleCellsByColumnId(row)\n* ```\n*/\nfunction row_getVisibleCellsByColumnId(row) {\n\tconst result = makeObjectMap();\n\tconst allCells = row.getAllCells();\n\tfor (let i = 0; i < allCells.length; i++) {\n\t\tconst cell = allCells[i];\n\t\tif (callMemoOrStaticFn(cell.column, \"getIsVisible\", column_getIsVisible)) result[cell.column.id] = cell;\n\t}\n\treturn result;\n}\n/**\n* Filters the flat column list down to visible columns.\n*\n* Parent/group columns are included when `column_getIsVisible` considers them\n* visible.\n*\n* @example\n* ```ts\n* const columns = table_getVisibleFlatColumns(table)\n* ```\n*/\nfunction table_getVisibleFlatColumns(table) {\n\treturn table.getAllFlatColumns().filter((column) => callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Filters leaf columns down to those currently visible.\n*\n* This is the column list most row rendering code uses before pinning-specific\n* partitioning.\n*\n* @example\n* ```ts\n* const columns = table_getVisibleLeafColumns(table)\n* ```\n*/\nfunction table_getVisibleLeafColumns(table) {\n\treturn table.getAllLeafColumns().filter((column) => callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Routes a column visibility updater through the table's visibility change handler.\n*\n* The updater may be a next visibility map or a function of the previous map,\n* matching the instance `table.setColumnVisibility` behavior.\n*\n* @example\n* ```ts\n* table_setColumnVisibility(table, (old) => ({ ...old, age: false }))\n* ```\n*/\nfunction table_setColumnVisibility(table, updater) {\n\ttable.options.onColumnVisibilityChange?.(updater);\n}\n/**\n* Resets `columnVisibility` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.columnVisibility` when\n* it exists. Passing `true` ignores initial state and resets to `{}`.\n*\n* @example\n* ```ts\n* table_resetColumnVisibility(table)\n* table_resetColumnVisibility(table, true)\n* ```\n*/\nfunction table_resetColumnVisibility(table, defaultState) {\n\ttable_setColumnVisibility(table, defaultState ? makeObjectMap() : Object.assign(makeObjectMap(), cloneState(table.initialState.columnVisibility ?? {})));\n}\n/**\n* Shows or hides every hideable leaf column.\n*\n* Columns that cannot hide stay visible when toggling all columns off.\n*\n* @example\n* ```ts\n* table_toggleAllColumnsVisible(table)\n* ```\n*/\nfunction table_toggleAllColumnsVisible(table, value) {\n\tvalue = value ?? !table_getIsAllColumnsVisible(table);\n\tconst visibility = makeObjectMap();\n\tconst leafColumns = table.getAllLeafColumns();\n\tfor (let i = 0; i < leafColumns.length; i++) {\n\t\tconst column = leafColumns[i];\n\t\tvisibility[column.id] = !value ? !column_getCanHide(column) : value;\n\t}\n\ttable_setColumnVisibility(table, visibility);\n}\n/**\n* Checks whether every leaf column is currently visible.\n*\n* Non-hideable columns are naturally visible because missing visibility entries\n* default to `true`.\n*\n* @example\n* ```ts\n* const allVisible = table_getIsAllColumnsVisible(table)\n* ```\n*/\nfunction table_getIsAllColumnsVisible(table) {\n\treturn !table.getAllLeafColumns().some((column) => !callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Checks whether at least one leaf column is currently visible.\n*\n* This is useful for tri-state \"show all columns\" controls.\n*\n* @example\n* ```ts\n* const someVisible = table_getIsSomeColumnsVisible(table)\n* ```\n*/\nfunction table_getIsSomeColumnsVisible(table) {\n\treturn table.getAllLeafColumns().some((column) => callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible));\n}\n/**\n* Creates a checkbox-style handler that shows or hides all columns.\n*\n* The handler reads `event.target.checked`, so it is intended for controls whose\n* checked state means \"all columns visible\".\n*\n* @example\n* ```ts\n* const onChange = table_getToggleAllColumnsVisibilityHandler(table)\n* ```\n*/\nfunction table_getToggleAllColumnsVisibilityHandler(table) {\n\treturn (e) => {\n\t\ttable_toggleAllColumnsVisible(table, e.target.checked);\n\t};\n}\n\n//#endregion\nexport { column_getCanHide, column_getIsVisible, column_getToggleVisibilityHandler, column_toggleVisibility, getDefaultColumnVisibilityState, row_getVisibleCells, row_getVisibleCellsByColumnId, table_getIsAllColumnsVisible, table_getIsSomeColumnsVisible, table_getToggleAllColumnsVisibilityHandler, table_getVisibleFlatColumns, table_getVisibleLeafColumns, table_resetColumnVisibility, table_setColumnVisibility, table_toggleAllColumnsVisible };","import { callMemoOrStaticFn } from \"../../utils.js\";\nimport { column_getIsVisible } from \"../../features/column-visibility/columnVisibilityFeature.utils.js\";\nimport { constructHeader } from \"./constructHeader.js\";\n\n//#region src/core/headers/buildHeaderGroups.ts\nfunction getMaxHeaderDepth(columns, depth = 1) {\n\tlet maxDepth = depth;\n\tfor (let i = 0; i < columns.length; i++) {\n\t\tconst column = columns[i];\n\t\tif (callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible) && column.columns.length) maxDepth = Math.max(maxDepth, getMaxHeaderDepth(column.columns, depth + 1));\n\t}\n\treturn maxDepth;\n}\nfunction formatHeaderGroupId(headerFamily, depth) {\n\treturn headerFamily ? `${headerFamily}_${depth}` : String(depth);\n}\nfunction formatHeaderId(headerFamily, depth, columnId, childHeaderId) {\n\tlet id = headerFamily ?? \"\";\n\tif (depth) id = id ? `${id}_${depth}` : String(depth);\n\tif (columnId) id = id ? `${id}_${columnId}` : columnId;\n\tif (childHeaderId) id = id ? `${id}_${childHeaderId}` : childHeaderId;\n\treturn id;\n}\nfunction countPendingHeadersForColumn(headers, column) {\n\tlet count = 0;\n\tfor (let i = 0; i < headers.length; i++) if (headers[i].column === column) count++;\n\treturn count;\n}\nfunction constructHeaderGroup(headersToGroup, depth, table, headerFamily, headerGroups, headerGroupInitFns) {\n\tconst headerGroup = {\n\t\tdepth,\n\t\tid: formatHeaderGroupId(headerFamily, depth),\n\t\theaders: []\n\t};\n\tconst pendingParentHeaders = [];\n\tfor (let i = 0; i < headersToGroup.length; i++) {\n\t\tif (!(i in headersToGroup)) continue;\n\t\tconst headerToGroup = headersToGroup[i];\n\t\tconst latestPendingParentHeader = pendingParentHeaders[pendingParentHeaders.length - 1];\n\t\tconst isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n\t\tlet column;\n\t\tlet isPlaceholder = false;\n\t\tif (isLeafHeader && headerToGroup.column.parent) column = headerToGroup.column.parent;\n\t\telse {\n\t\t\tcolumn = headerToGroup.column;\n\t\t\tisPlaceholder = true;\n\t\t}\n\t\tif (latestPendingParentHeader && latestPendingParentHeader.column === column) latestPendingParentHeader.subHeaders.push(headerToGroup);\n\t\telse {\n\t\t\tconst header = constructHeader(table, column, {\n\t\t\t\tid: formatHeaderId(headerFamily, depth, column.id, headerToGroup.id),\n\t\t\t\tisPlaceholder,\n\t\t\t\tplaceholderId: isPlaceholder ? String(countPendingHeadersForColumn(pendingParentHeaders, column)) : void 0,\n\t\t\t\tdepth,\n\t\t\t\tindex: pendingParentHeaders.length\n\t\t\t});\n\t\t\theader.subHeaders.push(headerToGroup);\n\t\t\tpendingParentHeaders.push(header);\n\t\t}\n\t\theaderGroup.headers.push(headerToGroup);\n\t\theaderToGroup.headerGroup = headerGroup;\n\t}\n\tfor (let i = 0; i < headerGroupInitFns.length; i++) headerGroupInitFns[i](headerGroup);\n\theaderGroups.push(headerGroup);\n\tif (depth > 0) constructHeaderGroup(pendingParentHeaders, depth - 1, table, headerFamily, headerGroups, headerGroupInitFns);\n}\nfunction updateHeaderSpans(headers) {\n\tfor (let i = 0; i < headers.length; i++) {\n\t\tconst header = headers[i];\n\t\tif (!callMemoOrStaticFn(header.column, \"getIsVisible\", column_getIsVisible)) continue;\n\t\tlet colSpan = 0;\n\t\tif (header.subHeaders.length) {\n\t\t\tupdateHeaderSpans(header.subHeaders);\n\t\t\tfor (let j = 0; j < header.subHeaders.length; j++) {\n\t\t\t\tconst child = header.subHeaders[j];\n\t\t\t\tif (!callMemoOrStaticFn(child.column, \"getIsVisible\", column_getIsVisible)) continue;\n\t\t\t\tcolSpan += child.colSpan;\n\t\t\t}\n\t\t} else colSpan = 1;\n\t\theader.colSpan = colSpan;\n\t\tif (header.isPlaceholder && header.subHeaders.length === 1 && header.subHeaders[0].column === header.column) {\n\t\t\tlet rowSpan = 1;\n\t\t\tlet chainChild = header.subHeaders[0];\n\t\t\twhile (chainChild) {\n\t\t\t\tchainChild.rowSpan = 0;\n\t\t\t\trowSpan++;\n\t\t\t\tchainChild = chainChild.subHeaders.length === 1 && chainChild.subHeaders[0].column === header.column ? chainChild.subHeaders[0] : void 0;\n\t\t\t}\n\t\t\theader.rowSpan = rowSpan;\n\t\t} else header.rowSpan = 1;\n\t}\n}\n/**\n* Builds the nested header group structure for a table.\n*\n* The result accounts for visible leaf columns, pinned column groups, and placeholder headers needed to render multi-level headers.\n*/\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n\tconst maxDepth = getMaxHeaderDepth(allColumns);\n\tconst headerGroups = [];\n\tconst headerGroupInitFns = table._headerGroupInstanceInitFns;\n\tconst bottomHeaders = new Array(columnsToGroup.length);\n\tfor (let i = 0; i < columnsToGroup.length; i++) {\n\t\tif (!(i in columnsToGroup)) continue;\n\t\tbottomHeaders[i] = constructHeader(table, columnsToGroup[i], {\n\t\t\tdepth: maxDepth,\n\t\t\tindex: i\n\t\t});\n\t}\n\tconstructHeaderGroup(bottomHeaders, maxDepth - 1, table, headerFamily, headerGroups, headerGroupInitFns);\n\theaderGroups.reverse();\n\tupdateHeaderSpans(headerGroups[0]?.headers ?? []);\n\treturn headerGroups;\n}\n\n//#endregion\nexport { buildHeaderGroups };","//#region src/core/columns/constructColumn.ts\n/**\n* Creates or retrieves the column prototype for a table.\n* The prototype is cached on the table and shared by all column instances.\n*/\nfunction getColumnPrototype(table) {\n\tif (!table._columnPrototype) {\n\t\ttable._columnPrototype = { table };\n\t\tconst features = Object.values(table._features);\n\t\tfor (let i = 0; i < features.length; i++) features[i].assignColumnPrototype?.(table._columnPrototype, table);\n\t}\n\treturn table._columnPrototype;\n}\n/**\n* Constructs a column instance from normalized table internals.\n*\n* This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n*/\nfunction constructColumn(table, columnDef, depth, parent) {\n\tconst resolvedColumnDef = {\n\t\t...table.getDefaultColumnDef(),\n\t\t...columnDef\n\t};\n\tconst accessorKey = resolvedColumnDef.accessorKey;\n\tconst accessorKeyString = accessorKey === void 0 ? void 0 : String(accessorKey);\n\tconst id = resolvedColumnDef.id ?? accessorKeyString?.replaceAll(\".\", \"_\") ?? (typeof resolvedColumnDef.header === \"string\" ? resolvedColumnDef.header : void 0);\n\tlet accessorFn;\n\tif (resolvedColumnDef.accessorFn) accessorFn = resolvedColumnDef.accessorFn;\n\telse if (accessorKey !== void 0) if (typeof accessorKey === \"string\" && accessorKey.includes(\".\")) {\n\t\tconst keys = accessorKey.split(\".\");\n\t\taccessorFn = (originalRow) => {\n\t\t\tlet result = originalRow;\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key = keys[i];\n\t\t\t\tresult = result?.[key];\n\t\t\t\tif (process.env.NODE_ENV === \"development\" && result === void 0) console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t} else accessorFn = (originalRow) => originalRow[resolvedColumnDef.accessorKey];\n\tif (!id) {\n\t\tif (process.env.NODE_ENV === \"development\") throw new Error(resolvedColumnDef.accessorFn ? `coreColumnsFeature require an id when using an accessorFn` : `coreColumnsFeature require an id when using a non-string header`);\n\t\tthrow new Error();\n\t}\n\tconst columnPrototype = getColumnPrototype(table);\n\tconst column = Object.create(columnPrototype);\n\tcolumn.accessorFn = accessorFn;\n\tcolumn.columnDef = resolvedColumnDef;\n\tcolumn.columns = [];\n\tcolumn.depth = depth;\n\tcolumn.id = `${String(id)}`;\n\tcolumn.parent = parent;\n\tconst initFns = table._columnInstanceInitFns;\n\tfor (let i = 0; i < initFns.length; i++) initFns[i](column);\n\treturn column;\n}\n\n//#endregion\nexport { constructColumn };","import { callMemoOrStaticFn, cloneState, makeObjectMap } from \"../../utils.js\";\nimport { table_getPinnedVisibleLeafColumns } from \"../column-pinning/columnPinningFeature.utils.js\";\n\n//#region src/features/column-ordering/columnOrderingFeature.utils.ts\n/**\n* Creates the default column order state.\n*\n* The feature default is an empty array, meaning leaf columns keep their natural\n* definition order. Reset APIs use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const order = getDefaultColumnOrderState()\n* ```\n*/\nfunction getDefaultColumnOrderState() {\n\treturn [];\n}\n/**\n* Builds column-id to index records for each visible pinning region.\n*\n* All four regions are built in one pass so a single memo entry serves every\n* `column_getIndex` lookup without per-column scans.\n*\n* @example\n* ```ts\n* const indexes = table_getColumnIndexes(table)\n* ```\n*/\nfunction table_getColumnIndexes(table) {\n\tconst buildIndexes = (columns) => {\n\t\tconst indexes = makeObjectMap();\n\t\tfor (let i = 0; i < columns.length; i++) indexes[columns[i].id] = i;\n\t\treturn indexes;\n\t};\n\treturn {\n\t\tall: buildIndexes(table_getPinnedVisibleLeafColumns(table)),\n\t\tcenter: buildIndexes(table_getPinnedVisibleLeafColumns(table, \"center\")),\n\t\tstart: buildIndexes(table_getPinnedVisibleLeafColumns(table, \"start\")),\n\t\tend: buildIndexes(table_getPinnedVisibleLeafColumns(table, \"end\"))\n\t};\n}\n/**\n* Finds this column's index within a visible pinning region.\n*\n* Pass `'start'`, `'center'`, or `'end'` to search that region; omit the\n* position to search the full visible leaf column list.\n*\n* @example\n* ```ts\n* const index = column_getIndex(column, 'center')\n* ```\n*/\nfunction column_getIndex(column, position) {\n\treturn callMemoOrStaticFn(column.table, \"getColumnIndexes\", table_getColumnIndexes)[position === \"start\" ? \"start\" : position === \"end\" ? \"end\" : position === \"center\" ? \"center\" : \"all\"][column.id] ?? -1;\n}\n/**\n* Checks whether this column is the first visible column in a pinning region.\n*\n* The same `position` semantics as `column_getIndex` apply.\n*\n* @example\n* ```ts\n* const isFirst = column_getIsFirstColumn(column, 'start')\n* ```\n*/\nfunction column_getIsFirstColumn(column, position) {\n\treturn table_getPinnedVisibleLeafColumns(column.table, position)[0]?.id === column.id;\n}\n/**\n* Checks whether this column is the last visible column in a pinning region.\n*\n* The same `position` semantics as `column_getIndex` apply.\n*\n* @example\n* ```ts\n* const isLast = column_getIsLastColumn(column, 'end')\n* ```\n*/\nfunction column_getIsLastColumn(column, position) {\n\tconst columns = table_getPinnedVisibleLeafColumns(column.table, position);\n\treturn columns[columns.length - 1]?.id === column.id;\n}\n/**\n* Routes a column order updater through the table's column-order change handler.\n*\n* The updater may be a next ordered id array or a function of the previous\n* array, matching the instance `table.setColumnOrder` behavior.\n*\n* @example\n* ```ts\n* table_setColumnOrder(table, ['firstName', 'lastName', 'age'])\n* ```\n*/\nfunction table_setColumnOrder(table, updater) {\n\ttable.options.onColumnOrderChange?.(updater);\n}\n/**\n* Resets `columnOrder` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.columnOrder` when it\n* exists. Passing `true` ignores initial state and resets to `[]`.\n*\n* @example\n* ```ts\n* table_resetColumnOrder(table)\n* table_resetColumnOrder(table, true)\n* ```\n*/\nfunction table_resetColumnOrder(table, defaultState) {\n\ttable_setColumnOrder(table, defaultState ? [] : cloneState(table.initialState.columnOrder ?? []));\n}\n/**\n* Creates the ordering function used to arrange leaf columns.\n*\n* The returned function applies `state.columnOrder`, preserves unspecified\n* columns in their original order, then delegates to grouping rules.\n*\n* @example\n* ```ts\n* const orderColumnsForTable = table_getOrderColumnsFn(table)\n* ```\n*/\nfunction table_getOrderColumnsFn(table) {\n\tconst columnOrder = table.atoms.columnOrder?.get();\n\treturn (columns) => {\n\t\tlet orderedColumns = [];\n\t\tif (!columnOrder?.length) orderedColumns = columns;\n\t\telse {\n\t\t\tconst remaining = /* @__PURE__ */ new Map();\n\t\t\tfor (let i = 0; i < columns.length; i++) {\n\t\t\t\tconst column = columns[i];\n\t\t\t\tremaining.set(column.id, column);\n\t\t\t}\n\t\t\tfor (let i = 0; i < columnOrder.length; i++) {\n\t\t\t\tconst id = columnOrder[i];\n\t\t\t\tconst column = remaining.get(id);\n\t\t\t\tif (column) {\n\t\t\t\t\torderedColumns.push(column);\n\t\t\t\t\tremaining.delete(id);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < columns.length; i++) {\n\t\t\t\tconst column = columns[i];\n\t\t\t\tif (remaining.has(column.id)) orderedColumns.push(column);\n\t\t\t}\n\t\t}\n\t\treturn orderColumns(table, orderedColumns);\n\t};\n}\n/**\n* Applies grouped-column placement rules to an already ordered leaf-column list.\n*\n* `groupedColumnMode: 'remove'` drops grouped columns from the list.\n* `groupedColumnMode: 'reorder'` moves grouped columns to the front in grouping\n* state order.\n*\n* @example\n* ```ts\n* const orderedColumns = orderColumns(table, leafColumns)\n* ```\n*/\nfunction orderColumns(table, leafColumns) {\n\tconst grouping = table.atoms.grouping?.get() ?? [];\n\tconst { groupedColumnMode } = table.options;\n\tif (!grouping.length || !groupedColumnMode) return leafColumns;\n\tconst nonGroupingColumns = leafColumns.filter((col) => !grouping.includes(col.id));\n\tif (groupedColumnMode === \"remove\") return nonGroupingColumns;\n\tconst leafColumnsById = /* @__PURE__ */ new Map();\n\tfor (let i = 0; i < leafColumns.length; i++) {\n\t\tconst col = leafColumns[i];\n\t\tleafColumnsById.set(col.id, col);\n\t}\n\tconst groupingColumns = [];\n\tfor (let i = 0; i < grouping.length; i++) {\n\t\tconst col = leafColumnsById.get(grouping[i]);\n\t\tif (col) groupingColumns.push(col);\n\t}\n\treturn [...groupingColumns, ...nonGroupingColumns];\n}\n\n//#endregion\nexport { column_getIndex, column_getIsFirstColumn, column_getIsLastColumn, getDefaultColumnOrderState, orderColumns, table_getColumnIndexes, table_getOrderColumnsFn, table_resetColumnOrder, table_setColumnOrder };","import { callMemoOrStaticFn, makeObjectMap } from \"../../utils.js\";\nimport { table_getOrderColumnsFn } from \"../../features/column-ordering/columnOrderingFeature.utils.js\";\nimport { constructColumn } from \"./constructColumn.js\";\n\n//#region src/core/columns/coreColumnsFeature.utils.ts\n/**\n* Flattens this column and every descendant column into a single array.\n*\n* Group columns appear before their child columns, which matches the normalized\n* column hierarchy produced during table construction.\n*\n* @example\n* ```ts\n* const flatColumns = column_getFlatColumns(column)\n* ```\n*/\nfunction column_getFlatColumns(column) {\n\treturn [column, ...column.columns.flatMap((col) => col.getFlatColumns())];\n}\n/**\n* Collects the terminal leaf columns below this column.\n*\n* Group columns return their ordered descendants. Non-group columns return an\n* array containing only the column itself.\n*\n* @example\n* ```ts\n* const leafColumns = column_getLeafColumns(column)\n* ```\n*/\nfunction column_getLeafColumns(column) {\n\tif (column.columns.length) {\n\t\tconst leafColumns = column.columns.flatMap((col) => col.getLeafColumns());\n\t\treturn callMemoOrStaticFn(column.table, \"getOrderColumns\", table_getOrderColumnsFn)(leafColumns);\n\t}\n\treturn [column];\n}\n/**\n* Merges built-in, feature, and user default column definitions.\n*\n* Built-in defaults provide a header and fallback cell renderer, feature\n* defaults can add feature-specific column options, and\n* `options.defaultColumn` wins last.\n*\n* @example\n* ```ts\n* const defaultColumn = table_getDefaultColumnDef(table)\n* ```\n*/\nfunction table_getDefaultColumnDef(table) {\n\treturn {\n\t\theader: (props) => {\n\t\t\tconst resolvedColumnDef = props.header.column.columnDef;\n\t\t\tif (resolvedColumnDef.accessorKey) return resolvedColumnDef.accessorKey;\n\t\t\tif (resolvedColumnDef.accessorFn) return resolvedColumnDef.id;\n\t\t\treturn null;\n\t\t},\n\t\tcell: (props) => props.renderValue()?.toString?.() ?? null,\n\t\t...Object.values(table._features).reduce((obj, feature) => {\n\t\t\treturn Object.assign(obj, feature.getDefaultColumnDef?.());\n\t\t}, {}),\n\t\t...table.options.defaultColumn\n\t};\n}\nfunction constructColumns(table, columnDefs, parent, depth = 0) {\n\tconst columns = new Array(columnDefs.length);\n\tfor (let i = 0; i < columnDefs.length; i++) {\n\t\tif (!(i in columnDefs)) continue;\n\t\tconst columnDef = columnDefs[i];\n\t\tconst column = constructColumn(table, columnDef, depth, parent);\n\t\tconst groupingColumnDef = columnDef;\n\t\tcolumn.columns = groupingColumnDef.columns ? constructColumns(table, groupingColumnDef.columns, column, depth + 1) : [];\n\t\tcolumns[i] = column;\n\t}\n\treturn columns;\n}\n/**\n* Normalizes `options.columns` into the table's nested column tree.\n*\n* Each column definition is constructed with its parent and depth, and group\n* column children are recursively constructed.\n*\n* @example\n* ```ts\n* const columns = table_getAllColumns(table)\n* ```\n*/\nfunction table_getAllColumns(table) {\n\treturn constructColumns(table, table.options.columns);\n}\n/**\n* Flattens every table column, including group columns and leaf columns.\n*\n* Use this when parent/group columns must be included in addition to data leaf\n* columns.\n*\n* @example\n* ```ts\n* const flatColumns = table_getAllFlatColumns(table)\n* ```\n*/\nfunction table_getAllFlatColumns(table) {\n\treturn table.getAllColumns().flatMap((column) => column.getFlatColumns());\n}\n/**\n* Builds an id lookup for every flat column in the table.\n*\n* Group columns and leaf columns are included. Later columns with the same id\n* replace earlier entries.\n*\n* @example\n* ```ts\n* const columnsById = table_getAllFlatColumnsById(table)\n* ```\n*/\nfunction table_getAllFlatColumnsById(table) {\n\tconst result = makeObjectMap();\n\tconst flatColumns = table.getAllFlatColumns();\n\tfor (let i = 0; i < flatColumns.length; i++) {\n\t\tconst column = flatColumns[i];\n\t\tresult[column.id] = column;\n\t}\n\treturn result;\n}\n/**\n* Collects all terminal leaf columns in their current table order.\n*\n* Column ordering features can reorder the collected leaves before the result\n* is returned.\n*\n* @example\n* ```ts\n* const leafColumns = table_getAllLeafColumns(table)\n* ```\n*/\nfunction table_getAllLeafColumns(table) {\n\tconst leafColumns = table.getAllColumns().flatMap((c) => c.getLeafColumns());\n\treturn callMemoOrStaticFn(table, \"getOrderColumns\", table_getOrderColumnsFn)(leafColumns);\n}\n/**\n* Builds an id lookup for terminal leaf columns only.\n*\n* Parent/group columns are excluded, making this lookup appropriate for row\n* cells and feature state keyed by data columns.\n*\n* @example\n* ```ts\n* const leavesById = table_getAllLeafColumnsById(table)\n* ```\n*/\nfunction table_getAllLeafColumnsById(table) {\n\tconst result = makeObjectMap();\n\tconst leafColumns = table.getAllLeafColumns();\n\tfor (let i = 0; i < leafColumns.length; i++) {\n\t\tconst column = leafColumns[i];\n\t\tresult[column.id] = column;\n\t}\n\treturn result;\n}\n/**\n* Looks up a column by id from the flat column map.\n*\n* The lookup can return group columns or leaf columns. In development, a\n* missing id logs a warning to help catch stale column references.\n*\n* @example\n* ```ts\n* const column = table_getColumn(table, 'firstName')\n* ```\n*/\nfunction table_getColumn(table, columnId) {\n\tconst column = table.getAllFlatColumnsById()[columnId];\n\tif (process.env.NODE_ENV === \"development\" && !column) console.warn(`[Table] Column with id '${columnId}' does not exist.`);\n\treturn column;\n}\n\n//#endregion\nexport { column_getFlatColumns, column_getLeafColumns, table_getAllColumns, table_getAllFlatColumns, table_getAllFlatColumnsById, table_getAllLeafColumns, table_getAllLeafColumnsById, table_getColumn, table_getDefaultColumnDef };","import { assignPrototypeAPIs, assignTableAPIs } from \"../../utils.js\";\nimport { column_getFlatColumns, column_getLeafColumns, table_getAllColumns, table_getAllFlatColumns, table_getAllFlatColumnsById, table_getAllLeafColumns, table_getAllLeafColumnsById, table_getColumn, table_getDefaultColumnDef } from \"./coreColumnsFeature.utils.js\";\n\n//#region src/core/columns/coreColumnsFeature.ts\n/**\n* Core feature that builds the column tree and exposes table/column APIs.\n*/\nconst coreColumnsFeature = {\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"coreColumnsFeature\", prototype, table, {\n\t\t\tcolumn_getFlatColumns: {\n\t\t\t\tfn: (column) => column_getFlatColumns(column),\n\t\t\t\tmemoDeps: (column) => [column.table.options.columns]\n\t\t\t},\n\t\t\tcolumn_getLeafColumns: {\n\t\t\t\tfn: (column) => column_getLeafColumns(column),\n\t\t\t\tmemoDeps: (column) => [\n\t\t\t\t\tcolumn.table.atoms.columnOrder?.get(),\n\t\t\t\t\tcolumn.table.atoms.grouping?.get(),\n\t\t\t\t\tcolumn.table.options.columns,\n\t\t\t\t\tcolumn.table.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t}\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"coreColumnsFeature\", table, {\n\t\t\ttable_getDefaultColumnDef: {\n\t\t\t\tfn: () => table_getDefaultColumnDef(table),\n\t\t\t\tmemoDeps: () => [table.options.defaultColumn]\n\t\t\t},\n\t\t\ttable_getAllColumns: {\n\t\t\t\tfn: () => table_getAllColumns(table),\n\t\t\t\tmemoDeps: () => [table.options.columns]\n\t\t\t},\n\t\t\ttable_getAllFlatColumns: {\n\t\t\t\tfn: () => table_getAllFlatColumns(table),\n\t\t\t\tmemoDeps: () => [table.options.columns]\n\t\t\t},\n\t\t\ttable_getAllFlatColumnsById: {\n\t\t\t\tfn: () => table_getAllFlatColumnsById(table),\n\t\t\t\tmemoDeps: () => [table.options.columns]\n\t\t\t},\n\t\t\ttable_getAllLeafColumns: {\n\t\t\t\tfn: () => table_getAllLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getAllLeafColumnsById: {\n\t\t\t\tfn: () => table_getAllLeafColumnsById(table),\n\t\t\t\tmemoDeps: () => [table.getAllLeafColumns()]\n\t\t\t},\n\t\t\ttable_getColumn: { fn: (columnId) => table_getColumn(table, columnId) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { coreColumnsFeature };","import { callMemoOrStaticFn } from \"../../utils.js\";\nimport { column_getIsVisible, table_getVisibleLeafColumns } from \"../../features/column-visibility/columnVisibilityFeature.utils.js\";\nimport { buildHeaderGroups } from \"./buildHeaderGroups.js\";\nimport { getDefaultColumnPinningState } from \"../../features/column-pinning/columnPinningFeature.utils.js\";\n\n//#region src/core/headers/coreHeadersFeature.utils.ts\nfunction collectLeafHeaders(header, leafHeaders) {\n\tfor (let i = 0; i < header.subHeaders.length; i++) collectLeafHeaders(header.subHeaders[i], leafHeaders);\n\tleafHeaders.push(header);\n}\n/**\n* Walks a header tree and collects all descendant leaf headers.\n*\n* The header itself is included after its descendants, matching the recursive\n* shape used by nested header groups.\n*\n* @example\n* ```ts\n* const leafHeaders = header_getLeafHeaders(header)\n* ```\n*/\nfunction header_getLeafHeaders(header) {\n\tconst leafHeaders = [];\n\tcollectLeafHeaders(header, leafHeaders);\n\treturn leafHeaders;\n}\n/**\n* Builds the render context passed to a column's `header` or `footer` template.\n*\n* The context contains the header, its column, and the owning table instance.\n*\n* @example\n* ```ts\n* const context = header_getContext(header)\n* ```\n*/\nfunction header_getContext(header) {\n\treturn {\n\t\tcolumn: header.column,\n\t\theader,\n\t\ttable: header.column.table\n\t};\n}\n/**\n* Builds visible header groups for the current column tree.\n*\n* Column visibility and pinning are applied before groups are built. When no\n* columns are pinned, the fast path skips pin partitioning.\n*\n* @example\n* ```ts\n* const headerGroups = table_getHeaderGroups(table)\n* ```\n*/\nfunction table_getHeaderGroups(table) {\n\tconst { start, end } = table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState();\n\tconst allColumns = table.getAllColumns();\n\tconst leafColumns = callMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns);\n\tif (!start.length && !end.length) return buildHeaderGroups(allColumns, leafColumns, table);\n\tconst leafColumnsById = table.getAllLeafColumnsById();\n\tconst leftColumns = [];\n\tfor (let i = 0; i < start.length; i++) {\n\t\tconst column = leafColumnsById[start[i]];\n\t\tif (column && callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible)) leftColumns.push(column);\n\t}\n\tconst rightColumns = [];\n\tfor (let i = 0; i < end.length; i++) {\n\t\tconst column = leafColumnsById[end[i]];\n\t\tif (column && callMemoOrStaticFn(column, \"getIsVisible\", column_getIsVisible)) rightColumns.push(column);\n\t}\n\tconst centerColumns = leafColumns.filter((column) => !start.includes(column.id) && !end.includes(column.id));\n\treturn buildHeaderGroups(allColumns, [\n\t\t...leftColumns,\n\t\t...centerColumns,\n\t\t...rightColumns\n\t], table);\n}\n/**\n* Builds footer groups by reversing the current header groups.\n*\n* Footer rendering uses the same header objects and grouping structure, but\n* renders them from leaf level back toward the root.\n*\n* @example\n* ```ts\n* const footerGroups = table_getFooterGroups(table)\n* ```\n*/\nfunction table_getFooterGroups(table) {\n\treturn [...table.getHeaderGroups()].reverse();\n}\n/**\n* Flattens every header from every header group into one array.\n*\n* The result includes parent headers and placeholder headers, in header-group\n* order from top to bottom.\n*\n* @example\n* ```ts\n* const flatHeaders = table_getFlatHeaders(table)\n* ```\n*/\nfunction table_getFlatHeaders(table) {\n\tconst headerGroups = table.getHeaderGroups();\n\tconst result = [];\n\tfor (let i = 0; i < headerGroups.length; i++) {\n\t\tconst headers = headerGroups[i].headers;\n\t\tfor (let j = 0; j < headers.length; j++) result.push(headers[j]);\n\t}\n\treturn result;\n}\n/**\n* Collects only the leaf headers from the current header tree.\n*\n* Parent/group headers are skipped, making the result suitable for rendering\n* one header per visible leaf column.\n*\n* @example\n* ```ts\n* const leafHeaders = table_getLeafHeaders(table)\n* ```\n*/\nfunction table_getLeafHeaders(table) {\n\tconst topHeaders = table.getHeaderGroups()[0]?.headers ?? [];\n\tconst result = [];\n\tfor (let i = 0; i < topHeaders.length; i++) {\n\t\tconst leafHeaders = topHeaders[i].getLeafHeaders();\n\t\tfor (let j = 0; j < leafHeaders.length; j++) result.push(leafHeaders[j]);\n\t}\n\treturn result;\n}\n\n//#endregion\nexport { header_getContext, header_getLeafHeaders, table_getFlatHeaders, table_getFooterGroups, table_getHeaderGroups, table_getLeafHeaders };","import { assignPrototypeAPIs, assignTableAPIs } from \"../../utils.js\";\nimport { header_getContext, header_getLeafHeaders, table_getFlatHeaders, table_getFooterGroups, table_getHeaderGroups, table_getLeafHeaders } from \"./coreHeadersFeature.utils.js\";\n\n//#region src/core/headers/coreHeadersFeature.ts\n/**\n* Core feature that builds header groups and exposes header context APIs.\n*/\nconst coreHeadersFeature = {\n\tassignHeaderPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"coreHeadersFeature\", prototype, table, {\n\t\t\theader_getLeafHeaders: {\n\t\t\t\tfn: (header) => header_getLeafHeaders(header),\n\t\t\t\tmemoDeps: (header) => [header.column.table.options.columns]\n\t\t\t},\n\t\t\theader_getContext: {\n\t\t\t\tfn: (header) => header_getContext(header),\n\t\t\t\tmemoDeps: (header) => [header.column.table.options.columns]\n\t\t\t}\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"coreHeadersFeature\", table, {\n\t\t\ttable_getHeaderGroups: {\n\t\t\t\tfn: () => table_getHeaderGroups(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getFooterGroups: {\n\t\t\t\tfn: () => table_getFooterGroups(table),\n\t\t\t\tmemoDeps: () => [table.getHeaderGroups()]\n\t\t\t},\n\t\t\ttable_getFlatHeaders: {\n\t\t\t\tfn: () => table_getFlatHeaders(table),\n\t\t\t\tmemoDeps: () => [table.getHeaderGroups()]\n\t\t\t},\n\t\t\ttable_getLeafHeaders: {\n\t\t\t\tfn: () => table_getLeafHeaders(table),\n\t\t\t\tmemoDeps: () => [table.getHeaderGroups()]\n\t\t\t}\n\t\t});\n\t}\n};\n\n//#endregion\nexport { coreHeadersFeature };","import { makeObjectMap } from \"../../utils.js\";\n\n//#region src/core/rows/constructRow.ts\n/**\n* Creates or retrieves the row prototype for a table.\n* The prototype is cached on the table and shared by all row instances.\n*/\nfunction getRowPrototype(table) {\n\tif (!table._rowPrototype) {\n\t\ttable._rowPrototype = { table };\n\t\tconst features = Object.values(table._features);\n\t\tfor (let i = 0; i < features.length; i++) features[i].assignRowPrototype?.(table._rowPrototype, table);\n\t}\n\treturn table._rowPrototype;\n}\n/**\n* Constructs a row instance from normalized table internals.\n*\n* This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n*/\nconst constructRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n\tconst rowPrototype = getRowPrototype(table);\n\tconst row = Object.create(rowPrototype);\n\trow._displayIndexCache = -1;\n\trow._uniqueValuesCache = makeObjectMap();\n\trow._valuesCache = makeObjectMap();\n\trow.depth = depth;\n\trow.id = id;\n\trow.index = rowIndex;\n\trow.original = original;\n\trow.parentId = parentId;\n\trow.subRows = subRows ?? [];\n\tconst initFns = table._rowInstanceInitFns;\n\tfor (let i = 0; i < initFns.length; i++) initFns[i](row);\n\treturn row;\n};\n\n//#endregion\nexport { constructRow };","//#region src/features/row-sorting/sortFns.ts\n/**\n* Regular expression used to split mixed text and numeric chunks.\n*\n* The alphanumeric sort functions use these chunks for natural sorting of\n* strings like `item2` before `item10`.\n*/\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\n/**\n* Builds a `SortFn` from a value-level comparator plus an optional\n* `resolveDataValue` normalizer.\n*\n* The `sort` comparator receives both rows' data values, each already passed\n* through `resolveDataValue` when one is defined. Keeping normalization in the\n* resolver means a variant of an existing sorting function only has to swap\n* the resolver, not re-implement the comparison.\n*\n* The definition is attached to the returned function, so a variant can be\n* created by spreading a built-in sorting function and overriding what\n* differs:\n*\n* ```ts\n* const stripDiacritics = (value: string) =>\n* value.normalize('NFD').replace(/\\p{Diacritic}/gu, '')\n*\n* const alphanumericIgnoreDiacritics = constructSortFn({\n* ...sortFn_alphanumeric,\n* resolveDataValue: (value) =>\n* stripDiacritics(sortFn_alphanumeric.resolveDataValue!(value)),\n* })\n* ```\n*/\nfunction constructSortFn(def) {\n\tconst sortFn = Object.assign((rowA, rowB, columnId) => {\n\t\tlet dataValueA = rowA.getValue(columnId);\n\t\tlet dataValueB = rowB.getValue(columnId);\n\t\tconst resolveDataValue = sortFn.resolveDataValue;\n\t\tif (resolveDataValue) {\n\t\t\tdataValueA = resolveDataValue(dataValueA);\n\t\t\tdataValueB = resolveDataValue(dataValueB);\n\t\t}\n\t\treturn sortFn.sort(dataValueA, dataValueB, rowA, rowB, columnId);\n\t}, def);\n\treturn sortFn;\n}\n/**\n* Sorts rows with the built-in alphanumeric strategy.\n*\n* This comparator returns ascending-order results; descending order is applied by the sorting row model.\n*/\nconst sortFn_alphanumeric = constructSortFn({\n\tresolveDataValue: (dataValue) => toString(dataValue).toLowerCase(),\n\tsort: (dataValueA, dataValueB) => compareAlphanumeric(dataValueA, dataValueB)\n});\n/**\n* Sorts rows with the built-in alphanumeric case sensitive strategy.\n*\n* This comparator returns ascending-order results; descending order is applied by the sorting row model.\n*/\nconst sortFn_alphanumericCaseSensitive = constructSortFn({\n\tresolveDataValue: (dataValue) => toString(dataValue),\n\tsort: (dataValueA, dataValueB) => compareAlphanumeric(dataValueA, dataValueB)\n});\n/**\n* Sorts rows with the built-in text strategy.\n*\n* This comparator returns ascending-order results; descending order is applied by the sorting row model.\n*/\nconst sortFn_text = constructSortFn({\n\tresolveDataValue: (dataValue) => toString(dataValue).toLowerCase(),\n\tsort: (dataValueA, dataValueB) => compareBasic(dataValueA, dataValueB)\n});\n/**\n* Sorts rows with the built-in text case sensitive strategy.\n*\n* This comparator returns ascending-order results; descending order is applied by the sorting row model.\n*/\nconst sortFn_textCaseSensitive = constructSortFn({\n\tresolveDataValue: (dataValue) => toString(dataValue),\n\tsort: (dataValueA, dataValueB) => compareBasic(dataValueA, dataValueB)\n});\n/**\n* Sorts rows with the built-in datetime strategy.\n*\n* This comparator returns ascending-order results; descending order is applied by the sorting row model.\n*/\nconst sortFn_datetime = constructSortFn({\n\tresolveDataValue: (dataValue) => toDateSortValue(dataValue),\n\tsort: (dataValueA, dataValueB) => dataValueA > dataValueB ? 1 : dataValueA < dataValueB ? -1 : 0\n});\n/**\n* Sorts rows with the built-in basic strategy.\n*\n* This comparator returns ascending-order results; descending order is applied by the sorting row model.\n*/\nconst sortFn_basic = constructSortFn({ sort: (dataValueA, dataValueB) => compareBasic(dataValueA, dataValueB) });\nfunction compareBasic(a, b) {\n\treturn a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toDateSortValue(value) {\n\treturn value instanceof Date ? value.getTime() : value;\n}\nfunction toString(a) {\n\tif (typeof a === \"number\") {\n\t\tif (isNaN(a) || a === Infinity || a === -Infinity) return \"\";\n\t\treturn String(a);\n\t}\n\tif (typeof a === \"string\") return a;\n\treturn \"\";\n}\nfunction compareAlphanumeric(aStr, bStr) {\n\tlet ai = 0;\n\tlet bi = 0;\n\tconst aLen = aStr.length;\n\tconst bLen = bStr.length;\n\twhile (ai < aLen && bi < bLen) {\n\t\tconst aIsNumeric = isDigit(aStr.charCodeAt(ai));\n\t\tconst bIsNumeric = isDigit(bStr.charCodeAt(bi));\n\t\tconst aEnd = findChunkEnd(aStr, ai, aIsNumeric);\n\t\tconst bEnd = findChunkEnd(bStr, bi, bIsNumeric);\n\t\tif (!aIsNumeric && !bIsNumeric) {\n\t\t\tconst stringComparison = compareStringChunks(aStr, ai, aEnd, bStr, bi, bEnd);\n\t\t\tif (stringComparison) return stringComparison;\n\t\t\tai = aEnd;\n\t\t\tbi = bEnd;\n\t\t\tcontinue;\n\t\t}\n\t\tif (aIsNumeric !== bIsNumeric) return aIsNumeric ? 1 : -1;\n\t\tconst numericComparison = compareNumericChunks(aStr, ai, aEnd, bStr, bi, bEnd);\n\t\tif (numericComparison) return numericComparison;\n\t\tai = aEnd;\n\t\tbi = bEnd;\n\t}\n\treturn countRemainingChunks(aStr, ai) - countRemainingChunks(bStr, bi);\n}\nfunction isDigit(charCode) {\n\treturn charCode >= 48 && charCode <= 57;\n}\nfunction findChunkEnd(str, start, isNumeric) {\n\tlet end = start + 1;\n\twhile (end < str.length && isDigit(str.charCodeAt(end)) === isNumeric) end++;\n\treturn end;\n}\nfunction compareStringChunks(aStr, aStart, aEnd, bStr, bStart, bEnd) {\n\tconst aLength = aEnd - aStart;\n\tconst bLength = bEnd - bStart;\n\tconst minLength = aLength < bLength ? aLength : bLength;\n\tfor (let i = 0; i < minLength; i++) {\n\t\tconst aCode = aStr.charCodeAt(aStart + i);\n\t\tconst bCode = bStr.charCodeAt(bStart + i);\n\t\tif (aCode > bCode) return 1;\n\t\tif (bCode > aCode) return -1;\n\t}\n\tif (aLength > bLength) return 1;\n\tif (bLength > aLength) return -1;\n\treturn 0;\n}\nfunction compareNumericChunks(aStr, aStart, aEnd, bStr, bStart, bEnd) {\n\tlet aSignificantStart = aStart;\n\twhile (aSignificantStart < aEnd && aStr.charCodeAt(aSignificantStart) === 48) aSignificantStart++;\n\tlet bSignificantStart = bStart;\n\twhile (bSignificantStart < bEnd && bStr.charCodeAt(bSignificantStart) === 48) bSignificantStart++;\n\tconst aSignificantLength = aEnd - aSignificantStart;\n\tconst bSignificantLength = bEnd - bSignificantStart;\n\tif (aSignificantLength === 0 && bSignificantLength === 0) return 0;\n\tif (aSignificantLength <= 15 && bSignificantLength <= 15) {\n\t\tconst an = parseSmallInt(aStr, aSignificantStart, aEnd);\n\t\tconst bn = parseSmallInt(bStr, bSignificantStart, bEnd);\n\t\tif (an > bn) return 1;\n\t\tif (bn > an) return -1;\n\t\treturn 0;\n\t}\n\tconst an = parseInt(aStr.slice(aStart, aEnd), 10);\n\tconst bn = parseInt(bStr.slice(bStart, bEnd), 10);\n\tif (an > bn) return 1;\n\tif (bn > an) return -1;\n\treturn 0;\n}\nfunction parseSmallInt(str, start, end) {\n\tlet result = 0;\n\tfor (let i = start; i < end; i++) result = result * 10 + str.charCodeAt(i) - 48;\n\treturn result;\n}\nfunction countRemainingChunks(str, start) {\n\tlet count = 0;\n\tlet index = start;\n\twhile (index < str.length) {\n\t\tcount++;\n\t\tindex = findChunkEnd(str, index, isDigit(str.charCodeAt(index)));\n\t}\n\treturn count;\n}\n/**\n* The built-in sorting function registry.\n*\n* Registering this full object opts out of tree-shaking: every built-in\n* sorting function ends up in your bundle. Prefer importing the `sortFn_*`\n* functions you actually use and registering just those in the `sortFns`\n* slot, or passing them directly to the `sortFn` column option.\n*\n* @deprecated Import individual `sortFn_*` functions instead for a smaller\n* bundle. This export still works and is not going away in v9, but built-in\n* name resolution (including `sortFn: 'auto'`) only finds functions you\n* register yourself.\n*/\nconst sortFns = {\n\talphanumeric: sortFn_alphanumeric,\n\talphanumericCaseSensitive: sortFn_alphanumericCaseSensitive,\n\tbasic: sortFn_basic,\n\tdatetime: sortFn_datetime,\n\ttext: sortFn_text,\n\ttextCaseSensitive: sortFn_textCaseSensitive\n};\n\n//#endregion\nexport { constructSortFn, reSplitAlphaNumeric, sortFn_alphanumeric, sortFn_alphanumericCaseSensitive, sortFn_basic, sortFn_datetime, sortFn_text, sortFn_textCaseSensitive, sortFns };","//#region src/features/cell-selection/cellSelectionGeometry.ts\nfunction compareBounds(a, b) {\n\treturn a.minRowIndex - b.minRowIndex || a.minColumnIndex - b.minColumnIndex || a.maxRowIndex - b.maxRowIndex || a.maxColumnIndex - b.maxColumnIndex;\n}\nfunction intersectCellSelectionBounds(a, b) {\n\tconst intersection = {\n\t\tminRowIndex: Math.max(a.minRowIndex, b.minRowIndex),\n\t\tmaxRowIndex: Math.min(a.maxRowIndex, b.maxRowIndex),\n\t\tminColumnIndex: Math.max(a.minColumnIndex, b.minColumnIndex),\n\t\tmaxColumnIndex: Math.min(a.maxColumnIndex, b.maxColumnIndex)\n\t};\n\treturn intersection.minRowIndex <= intersection.maxRowIndex && intersection.minColumnIndex <= intersection.maxColumnIndex ? intersection : void 0;\n}\nfunction subtractCellSelectionBounds(source, excluded) {\n\tconst intersection = intersectCellSelectionBounds(source, excluded);\n\tif (!intersection) return [source];\n\tconst result = [];\n\tif (source.minRowIndex < intersection.minRowIndex) result.push({\n\t\t...source,\n\t\tmaxRowIndex: intersection.minRowIndex - 1\n\t});\n\tif (intersection.maxRowIndex < source.maxRowIndex) result.push({\n\t\t...source,\n\t\tminRowIndex: intersection.maxRowIndex + 1\n\t});\n\tif (source.minColumnIndex < intersection.minColumnIndex) result.push({\n\t\tminRowIndex: intersection.minRowIndex,\n\t\tmaxRowIndex: intersection.maxRowIndex,\n\t\tminColumnIndex: source.minColumnIndex,\n\t\tmaxColumnIndex: intersection.minColumnIndex - 1\n\t});\n\tif (intersection.maxColumnIndex < source.maxColumnIndex) result.push({\n\t\tminRowIndex: intersection.minRowIndex,\n\t\tmaxRowIndex: intersection.maxRowIndex,\n\t\tminColumnIndex: intersection.maxColumnIndex + 1,\n\t\tmaxColumnIndex: source.maxColumnIndex\n\t});\n\treturn result;\n}\nfunction mergePair(a, b) {\n\tif (a.minRowIndex === b.minRowIndex && a.maxRowIndex === b.maxRowIndex && (a.maxColumnIndex + 1 === b.minColumnIndex || b.maxColumnIndex + 1 === a.minColumnIndex)) return {\n\t\tminRowIndex: a.minRowIndex,\n\t\tmaxRowIndex: a.maxRowIndex,\n\t\tminColumnIndex: Math.min(a.minColumnIndex, b.minColumnIndex),\n\t\tmaxColumnIndex: Math.max(a.maxColumnIndex, b.maxColumnIndex)\n\t};\n\tif (a.minColumnIndex === b.minColumnIndex && a.maxColumnIndex === b.maxColumnIndex && (a.maxRowIndex + 1 === b.minRowIndex || b.maxRowIndex + 1 === a.minRowIndex)) return {\n\t\tminRowIndex: Math.min(a.minRowIndex, b.minRowIndex),\n\t\tmaxRowIndex: Math.max(a.maxRowIndex, b.maxRowIndex),\n\t\tminColumnIndex: a.minColumnIndex,\n\t\tmaxColumnIndex: a.maxColumnIndex\n\t};\n}\nfunction mergeAdjacentCellSelectionBounds(input) {\n\tconst result = input.slice();\n\tfor (let i = 0; i < result.length; i++) for (let j = i + 1; j < result.length; j++) {\n\t\tconst merged = mergePair(result[i], result[j]);\n\t\tif (!merged) continue;\n\t\tresult.splice(j, 1);\n\t\tresult[i] = merged;\n\t\ti = -1;\n\t\tbreak;\n\t}\n\treturn result.sort(compareBounds);\n}\nfunction addCellSelectionBounds(selected, included) {\n\tlet fragments = [included];\n\tfor (const existing of selected) {\n\t\tfragments = fragments.flatMap((fragment) => subtractCellSelectionBounds(fragment, existing));\n\t\tif (!fragments.length) return selected.slice();\n\t}\n\treturn mergeAdjacentCellSelectionBounds([...selected, ...fragments]);\n}\n/**\n* Grows a rectangle until it fully contains every merged-cell rectangle it\n* touches.\n*\n* Merged cells make plain rectangles insufficient: a selection that clips part\n* of a merge must cover the whole merge, and covering it can bring the\n* rectangle into contact with further merges, so the expansion runs to a fixed\n* point. The loop is bounded by the merge count, since each pass that changes\n* the rectangle consumes at least one merge.\n*/\nfunction expandCellSelectionBounds(bounds, merges) {\n\tlet expanded = bounds;\n\tlet changed = true;\n\twhile (changed) {\n\t\tchanged = false;\n\t\tfor (const merge of merges) {\n\t\t\tif (!intersectCellSelectionBounds(expanded, merge)) continue;\n\t\t\tconst union = {\n\t\t\t\tminRowIndex: Math.min(expanded.minRowIndex, merge.minRowIndex),\n\t\t\t\tmaxRowIndex: Math.max(expanded.maxRowIndex, merge.maxRowIndex),\n\t\t\t\tminColumnIndex: Math.min(expanded.minColumnIndex, merge.minColumnIndex),\n\t\t\t\tmaxColumnIndex: Math.max(expanded.maxColumnIndex, merge.maxColumnIndex)\n\t\t\t};\n\t\t\tif (union.minRowIndex !== expanded.minRowIndex || union.maxRowIndex !== expanded.maxRowIndex || union.minColumnIndex !== expanded.minColumnIndex || union.maxColumnIndex !== expanded.maxColumnIndex) {\n\t\t\t\texpanded = union;\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t}\n\t}\n\treturn expanded;\n}\nfunction applyCellSelectionBoundsOperations(operations) {\n\tlet selected = [];\n\tfor (const operation of operations) {\n\t\tconst bounds = {\n\t\t\tminRowIndex: operation.minRowIndex,\n\t\t\tmaxRowIndex: operation.maxRowIndex,\n\t\t\tminColumnIndex: operation.minColumnIndex,\n\t\t\tmaxColumnIndex: operation.maxColumnIndex\n\t\t};\n\t\tif (operation.operation === \"exclude\") selected = mergeAdjacentCellSelectionBounds(selected.flatMap((bound) => subtractCellSelectionBounds(bound, bounds)));\n\t\telse selected = addCellSelectionBounds(selected, bounds);\n\t}\n\treturn selected.sort(compareBounds);\n}\n\n//#endregion\nexport { addCellSelectionBounds, applyCellSelectionBoundsOperations, expandCellSelectionBounds, intersectCellSelectionBounds, mergeAdjacentCellSelectionBounds, subtractCellSelectionBounds };","import { callMemoOrStaticFn, cloneState, makeObjectMap } from \"../../utils.js\";\nimport { table_getVisibleLeafColumns } from \"../column-visibility/columnVisibilityFeature.utils.js\";\nimport { applyCellSelectionBoundsOperations, expandCellSelectionBounds } from \"./cellSelectionGeometry.js\";\n\n//#region src/features/cell-selection/cellSelectionFeature.utils.ts\n/**\n* Creates the default cell selection state.\n*\n* The feature default is an empty selection. Reset APIs use this value when\n* `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const selection = getDefaultCellSelectionState()\n* ```\n*/\nfunction getDefaultCellSelectionState() {\n\treturn [];\n}\n/**\n* Routes a cell selection updater through the table's selection change handler.\n*\n* @example\n* ```ts\n* table_setCellSelection(table, (old) => old.slice(0, -1))\n* ```\n*/\nfunction table_setCellSelection(table, updater) {\n\ttable.options.onCellSelectionChange?.(updater);\n}\n/**\n* Resets `cellSelection` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.cellSelection` when it\n* exists. Passing `true` ignores initial state and resets to an empty selection.\n*\n* @example\n* ```ts\n* table_resetCellSelection(table, true)\n* ```\n*/\nfunction table_resetCellSelection(table, defaultState) {\n\ttable_setCellSelection(table, defaultState ? getDefaultCellSelectionState() : cloneState(table.initialState.cellSelection) ?? getDefaultCellSelectionState());\n}\n/**\n* Schedules a cell selection reset after `data` changes.\n*\n* Ranges are stored as row and column ids, so without this a data swap would\n* leave a selection pointing at rows that no longer exist, or silently\n* re-select cells whenever new data reuses ids. The reset runs when\n* `autoResetAll` or `autoResetCellSelection` allows it, defaulting to on.\n*\n* Resetting to `initialState.cellSelection` rather than to empty means the\n* first row-model computation is a no-op, matching `table_autoResetExpanded`.\n*\n* @example\n* ```ts\n* table_autoResetCellSelection(table)\n* ```\n*/\nfunction table_autoResetCellSelection(table) {\n\tif (!table.atoms.cellSelection) return;\n\tif (table.options.autoResetAll ?? table.options.autoResetCellSelection ?? true) table._reactivity.schedule(() => table_resetCellSelection(table));\n}\n/**\n* Returns the visible leaf columns in the order their cells actually render.\n*\n* This is deliberately not `getVisibleLeafColumns()`, which is\n* visibility-filtered but *not* pinning-reordered, and not `column_getIndex()`,\n* which indexes that same unpinned list. Cells render start-pinned first, then\n* center, then end (see `row_getVisibleCells`), so indexing a selection in the\n* unpinned order would make a dragged rectangle contiguous in index space but\n* visually scattered the moment a column is pinned.\n*\n* The pinning read is inlined rather than delegated to the column pinning\n* utils so this stays correct when that feature is absent, and so the ordering\n* provably matches `row_getVisibleCells`.\n*/\nfunction getDisplayOrderedColumns(table) {\n\tconst columns = callMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns);\n\tconst pinning = table.atoms.columnPinning?.get();\n\tif (!pinning || !pinning.start.length && !pinning.end.length) return columns;\n\tconst byId = makeObjectMap();\n\tfor (let i = 0; i < columns.length; i++) byId[columns[i].id] = columns[i];\n\tconst start = [];\n\tfor (let i = 0; i < pinning.start.length; i++) {\n\t\tconst column = byId[pinning.start[i]];\n\t\tif (column) start.push(column);\n\t}\n\tconst end = [];\n\tfor (let i = 0; i < pinning.end.length; i++) {\n\t\tconst column = byId[pinning.end[i]];\n\t\tif (column) end.push(column);\n\t}\n\tconst center = [];\n\tfor (let i = 0; i < columns.length; i++) {\n\t\tconst column = columns[i];\n\t\tif (!pinning.start.includes(column.id) && !pinning.end.includes(column.id)) center.push(column);\n\t}\n\treturn [\n\t\t...start,\n\t\t...center,\n\t\t...end\n\t];\n}\n/**\n* Builds a column id to render-order index map.\n*\n* Registered by this feature so the lookup stays memoized even when\n* `columnOrderingFeature` is absent, since that feature's `getColumnIndexes`\n* static rebuilds all four maps on every call, which would make per-cell reads\n* O(columns).\n*\n* @example\n* ```ts\n* const index = table_getCellSelectionColumnIndexes(table)[columnId]\n* ```\n*/\nfunction table_getCellSelectionColumnIndexes(table) {\n\tconst columns = getDisplayOrderedColumns(table);\n\tconst indexes = makeObjectMap();\n\tfor (let i = 0; i < columns.length; i++) indexes[columns[i].id] = i;\n\treturn indexes;\n}\nconst EMPTY_MERGE_BOUNDS = [];\nfunction probeCellSpanIndex(table) {\n\treturn table.getCellSpanIndex?.();\n}\n/**\n* Resolves the merged-cell rectangles of the rendered rows into selection's\n* own index space.\n*\n* The span index positions rows by their paginated render order while\n* selection positions them by pre-paginated display order, so each merge is\n* mapped through `row.getDisplayIndex()`. A merge whose rows do not map to a\n* contiguous display range is skipped defensively; it then behaves like\n* unmerged cells instead of corrupting the geometry.\n*\n* Returns an empty array when `cellSpanningFeature` is not registered, which\n* keeps every selection code path identical to the span-unaware behavior.\n*\n* @example\n* ```ts\n* const merges = table_getCellSelectionMergeBounds(table)\n* ```\n*/\nfunction table_getCellSelectionMergeBounds(table) {\n\tconst spanIndex = probeCellSpanIndex(table);\n\tif (!spanIndex) return EMPTY_MERGE_BOUNDS;\n\tconst columnIndexes = callMemoOrStaticFn(table, \"getCellSelectionColumnIndexes\", table_getCellSelectionColumnIndexes);\n\tconst merges = [];\n\tfor (const columnId in spanIndex.rowSpans) {\n\t\tconst columnIndex = columnIndexes[columnId];\n\t\tif (columnIndex === void 0) continue;\n\t\tconst spans = spanIndex.rowSpans[columnId];\n\t\tconst spanColumnIndex = spanIndex.columnIndexes[columnId];\n\t\tfor (let r = 0; r < spans.length; r++) {\n\t\t\tconst span = spans[r];\n\t\t\tif (span <= 1) continue;\n\t\t\tconst startRow = spanIndex.rows[r].getDisplayIndex();\n\t\t\tconst endRow = spanIndex.rows[r + span - 1].getDisplayIndex();\n\t\t\tif (startRow < 0 || endRow - startRow !== span - 1) continue;\n\t\t\tconst colSpan = spanColumnIndex === void 0 ? 1 : Math.max(spanIndex.colSpans[r]?.[spanColumnIndex] ?? 1, 1);\n\t\t\tmerges.push({\n\t\t\t\tminRowIndex: startRow,\n\t\t\t\tmaxRowIndex: endRow,\n\t\t\t\tminColumnIndex: columnIndex,\n\t\t\t\tmaxColumnIndex: columnIndex + colSpan - 1\n\t\t\t});\n\t\t}\n\t}\n\tif (spanIndex.colSpans.length) {\n\t\tconst columnIdBySpanIndex = [];\n\t\tfor (const columnId in spanIndex.columnIndexes) columnIdBySpanIndex[spanIndex.columnIndexes[columnId]] = columnId;\n\t\tfor (let r = 0; r < spanIndex.colSpans.length; r++) {\n\t\t\tconst rowColSpans = spanIndex.colSpans[r];\n\t\t\tif (!rowColSpans) continue;\n\t\t\tconst displayRow = spanIndex.rows[r]?.getDisplayIndex() ?? -1;\n\t\t\tif (displayRow < 0) continue;\n\t\t\tfor (let c = 0; c < rowColSpans.length; c++) {\n\t\t\t\tconst span = rowColSpans[c];\n\t\t\t\tif (span <= 1) continue;\n\t\t\t\tconst columnId = columnIdBySpanIndex[c];\n\t\t\t\tif (columnId === void 0) continue;\n\t\t\t\tconst vertical = spanIndex.rowSpans[columnId];\n\t\t\t\tif (vertical && vertical[r] !== 1) continue;\n\t\t\t\tconst columnIndex = columnIndexes[columnId];\n\t\t\t\tif (columnIndex === void 0) continue;\n\t\t\t\tmerges.push({\n\t\t\t\t\tminRowIndex: displayRow,\n\t\t\t\t\tmaxRowIndex: displayRow,\n\t\t\t\t\tminColumnIndex: columnIndex,\n\t\t\t\t\tmaxColumnIndex: columnIndex + span - 1\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\treturn merges;\n}\nfunction findMergeBoundsAt(merges, rowIndex, columnIndex) {\n\tfor (let i = 0; i < merges.length; i++) {\n\t\tconst merge = merges[i];\n\t\tif (rowIndex >= merge.minRowIndex && rowIndex <= merge.maxRowIndex && columnIndex >= merge.minColumnIndex && columnIndex <= merge.maxColumnIndex) return merge;\n\t}\n}\n/**\n* Resolves a row id to its display-order index, or `-1` when it no longer\n* identifies a row in the current order.\n*\n* Callers must have already called `table.getRowsInDisplayOrder()`, which is\n* what populates the display index cache each row reads.\n*/\nfunction resolveRowIndex(table, rows, rowId) {\n\tconst row = table.getPrePaginatedRowModel().rowsById[rowId] ?? table.getCoreRowModel().rowsById[rowId];\n\tif (!row) return -1;\n\tconst index = row.getDisplayIndex();\n\tif (index < 0 || index >= rows.length || rows[index]?.id !== rowId) return -1;\n\treturn index;\n}\n/**\n* Resolves ordered range operations into disjoint, positive display-order\n* index rectangles.\n*\n* This is the single cache every per-cell read goes through, so index lookups\n* happen once per invalidation rather than once per cell. A range whose corners\n* no longer resolve, for example because its anchor row was filtered out, is\n* omitted rather than clamped, so it contributes nothing while remaining in\n* state and returns intact when the filter clears.\n*\n* @example\n* ```ts\n* const bounds = table_getCellSelectionBounds(table)\n* ```\n*/\nfunction table_getCellSelectionBounds(table) {\n\tconst ranges = table.atoms.cellSelection?.get();\n\tif (!ranges?.length) return [];\n\tconst rows = table.getRowsInDisplayOrder();\n\tconst columnIndexes = callMemoOrStaticFn(table, \"getCellSelectionColumnIndexes\", table_getCellSelectionColumnIndexes);\n\tconst operations = [];\n\tfor (let i = 0; i < ranges.length; i++) {\n\t\tconst range = ranges[i];\n\t\tconst anchorRowIndex = resolveRowIndex(table, rows, range.anchorRowId);\n\t\tconst focusRowIndex = resolveRowIndex(table, rows, range.focusRowId);\n\t\tconst anchorColumnIndex = columnIndexes[range.anchorColumnId] ?? -1;\n\t\tconst focusColumnIndex = columnIndexes[range.focusColumnId] ?? -1;\n\t\tif (anchorRowIndex < 0 || focusRowIndex < 0 || anchorColumnIndex < 0 || focusColumnIndex < 0) continue;\n\t\toperations.push({\n\t\t\tminRowIndex: Math.min(anchorRowIndex, focusRowIndex),\n\t\t\tmaxRowIndex: Math.max(anchorRowIndex, focusRowIndex),\n\t\t\tminColumnIndex: Math.min(anchorColumnIndex, focusColumnIndex),\n\t\t\tmaxColumnIndex: Math.max(anchorColumnIndex, focusColumnIndex),\n\t\t\toperation: range.operation ?? \"include\"\n\t\t});\n\t}\n\tconst merges = callMemoOrStaticFn(table, \"getCellSelectionMergeBounds\", table_getCellSelectionMergeBounds);\n\tif (merges.length) for (let i = 0; i < operations.length; i++) {\n\t\tconst operation = operations[i];\n\t\tconst expanded = expandCellSelectionBounds(operation, merges);\n\t\toperation.minRowIndex = expanded.minRowIndex;\n\t\toperation.maxRowIndex = expanded.maxRowIndex;\n\t\toperation.minColumnIndex = expanded.minColumnIndex;\n\t\toperation.maxColumnIndex = expanded.maxColumnIndex;\n\t}\n\treturn applyCellSelectionBoundsOperations(operations);\n}\n/**\n* Tests whether an index pair falls inside any resolved rectangle.\n*/\nfunction isWithinBounds(bounds, rowIndex, columnIndex) {\n\tfor (let i = 0; i < bounds.length; i++) {\n\t\tconst bound = bounds[i];\n\t\tif (rowIndex >= bound.minRowIndex && rowIndex <= bound.maxRowIndex && columnIndex >= bound.minColumnIndex && columnIndex <= bound.maxColumnIndex) return true;\n\t}\n\treturn false;\n}\n/**\n* Checks whether this cell can currently be selected.\n*\n* A column def opting out with `enableCellSelection: false` wins over the table\n* option, matching how the other per-column enable flags resolve.\n*\n* @example\n* ```ts\n* const canSelect = cell_getCanSelect(cell)\n* ```\n*/\nfunction cell_getCanSelect(cell) {\n\tif (cell.column.columnDef.enableCellSelection === false) return false;\n\tconst enabled = cell.table.options.enableCellSelection;\n\tif (typeof enabled === \"function\") return enabled(cell);\n\treturn enabled ?? true;\n}\n/**\n* Resolves a cell to the coordinates every selection read needs.\n*\n* Shared by `getIsSelected` and `getSelectionEdges` so a render pass resolves\n* each cell once. Resolving in both meant every cell paid for the bounds memo,\n* the display index, and the column index map twice over.\n*\n* Returns `null` when the cell cannot participate in a selection at all.\n*/\nfunction resolveCellPosition(cell) {\n\tconst table = cell.table;\n\tconst bounds = callMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds);\n\tif (!bounds.length) return null;\n\tif (!callMemoOrStaticFn(cell, \"getCanSelect\", cell_getCanSelect)) return null;\n\tconst rowIndex = cell.row.getDisplayIndex();\n\tif (rowIndex < 0) return null;\n\tconst columnIndex = callMemoOrStaticFn(table, \"getCellSelectionColumnIndexes\", table_getCellSelectionColumnIndexes)[cell.column.id] ?? -1;\n\tif (columnIndex < 0) return null;\n\treturn {\n\t\tbounds,\n\t\trowIndex,\n\t\tcolumnIndex\n\t};\n}\n/**\n* Checks whether this cell falls inside the final positive selection.\n*\n* Deliberately not memoized. Registering this through `assignPrototypeAPIs`\n* with `memoDeps` would allocate a memo closure and dependency array per cell,\n* which costs more than the handful of integer comparisons it would save.\n*\n* @example\n* ```ts\n* const isSelected = cell_getIsSelected(cell)\n* ```\n*/\nfunction cell_getIsSelected(cell) {\n\tconst position = resolveCellPosition(cell);\n\tif (!position) return false;\n\treturn isWithinBounds(position.bounds, position.rowIndex, position.columnIndex);\n}\n/**\n* Checks whether this cell is the active cell.\n*\n* @example\n* ```ts\n* const isFocused = cell_getIsFocused(cell)\n* ```\n*/\nfunction cell_getIsFocused(cell) {\n\tconst ranges = cell.table.atoms.cellSelection?.get();\n\tconst active = ranges?.[ranges.length - 1];\n\tif (!active) return false;\n\treturn active.anchorRowId === cell.row.id && active.anchorColumnId === cell.column.id;\n}\n/**\n* Returns `0` for the focused cell and `-1` otherwise, for roving tabindex.\n*\n* @example\n* ```ts\n* const tabIndex = cell_getTabIndex(cell)\n* ```\n*/\nfunction cell_getTabIndex(cell) {\n\treturn callMemoOrStaticFn(cell, \"getIsFocused\", cell_getIsFocused) ? 0 : -1;\n}\n/**\n* Returns which sides of this cell sit on the outer boundary of the selection.\n*\n* A side is an edge when the neighbouring cell in that direction is not itself\n* covered by a range, which is what lets a consumer draw a single outline\n* around an arbitrary union of rectangles.\n*\n* @example\n* ```ts\n* const { top, right, bottom, left } = cell_getSelectionEdges(cell)\n* ```\n*/\nfunction cell_getSelectionEdges(cell) {\n\tconst none = {\n\t\ttop: false,\n\t\tright: false,\n\t\tbottom: false,\n\t\tleft: false\n\t};\n\tconst position = resolveCellPosition(cell);\n\tif (!position) return none;\n\tconst { bounds, rowIndex, columnIndex } = position;\n\tif (!isWithinBounds(bounds, rowIndex, columnIndex)) return none;\n\tconst merges = callMemoOrStaticFn(cell.table, \"getCellSelectionMergeBounds\", table_getCellSelectionMergeBounds);\n\tconst merge = merges.length ? findMergeBoundsAt(merges, rowIndex, columnIndex) : void 0;\n\tif (!merge) return {\n\t\ttop: !isWithinBounds(bounds, rowIndex - 1, columnIndex),\n\t\tright: !isWithinBounds(bounds, rowIndex, columnIndex + 1),\n\t\tbottom: !isWithinBounds(bounds, rowIndex + 1, columnIndex),\n\t\tleft: !isWithinBounds(bounds, rowIndex, columnIndex - 1)\n\t};\n\treturn {\n\t\ttop: isStripOutside(bounds, merge.minRowIndex - 1, merge.minColumnIndex, merge.maxColumnIndex, true),\n\t\tright: isStripOutside(bounds, merge.maxColumnIndex + 1, merge.minRowIndex, merge.maxRowIndex, false),\n\t\tbottom: isStripOutside(bounds, merge.maxRowIndex + 1, merge.minColumnIndex, merge.maxColumnIndex, true),\n\t\tleft: isStripOutside(bounds, merge.minColumnIndex - 1, merge.minRowIndex, merge.maxRowIndex, false)\n\t};\n}\nfunction isStripOutside(bounds, fixedIndex, from, to, fixedIsRow) {\n\tfor (let i = from; i <= to; i++) if (!isWithinBounds(bounds, fixedIsRow ? fixedIndex : i, fixedIsRow ? i : fixedIndex)) return true;\n\treturn false;\n}\n/**\n* Returns the active cell, i.e. the anchor of the most recent operation.\n*\n* Focus is derived rather than stored: in spreadsheet semantics, dragging from\n* A1 to C5 leaves the active cell at A1, so the active range's anchor already\n* is the active cell.\n*\n* @example\n* ```ts\n* const cell = table_getFocusedCell(table)\n* ```\n*/\nfunction table_getFocusedCell(table) {\n\tconst ranges = table.atoms.cellSelection?.get();\n\tconst active = ranges?.[ranges.length - 1];\n\tif (!active) return void 0;\n\treturn (table.getPrePaginatedRowModel().rowsById[active.anchorRowId] ?? table.getCoreRowModel().rowsById[active.anchorRowId])?.getAllCellsByColumnId()[active.anchorColumnId];\n}\n/**\n* Collapses the selection to a single cell at the given coordinates.\n*\n* @example\n* ```ts\n* table_setFocusedCell(table, '3', 'firstName')\n* ```\n*/\nfunction table_setFocusedCell(table, rowId, columnId) {\n\ttable_selectCellRange(table, {\n\t\tanchorRowId: rowId,\n\t\tanchorColumnId: columnId,\n\t\tfocusRowId: rowId,\n\t\tfocusColumnId: columnId\n\t});\n}\n/**\n* Selects a rectangle using replace, include, or exclude semantics.\n*\n* @example\n* ```ts\n* table_selectCellRange(table, range, { mode: 'exclude' })\n* ```\n*/\nfunction table_selectCellRange(table, range, opts) {\n\tconst mode = opts?.mode ?? (opts?.additive ? \"include\" : \"replace\");\n\tconst { operation: _operation, ...coordinates } = range;\n\tconst nextRange = mode === \"exclude\" ? {\n\t\t...coordinates,\n\t\toperation: \"exclude\"\n\t} : coordinates;\n\ttable_setCellSelection(table, (old) => mode === \"replace\" ? [nextRange] : [...old, nextRange]);\n}\n/**\n* Returns the visible leaf columns that permit selection, in display order.\n*\n* A column-level opt-out is enough to exclude a column here; a per-cell\n* predicate is not consulted, since navigation and select-all work in column\n* space rather than cell space.\n*/\nfunction getSelectableColumns(table) {\n\tconst columns = getDisplayOrderedColumns(table);\n\tif (table.options.enableCellSelection === false) return [];\n\treturn columns.filter((column) => column.columnDef.enableCellSelection !== false);\n}\n/**\n* Selects every selectable cell in the table as one range.\n*\n* @example\n* ```ts\n* table_selectAllCells(table)\n* ```\n*/\nfunction table_selectAllCells(table) {\n\tconst rows = table.getRowsInDisplayOrder();\n\tconst columns = getSelectableColumns(table);\n\tif (!rows.length || !columns.length) return;\n\ttable_selectCellRange(table, {\n\t\tanchorRowId: rows[0].id,\n\t\tanchorColumnId: columns[0].id,\n\t\tfocusRowId: rows[rows.length - 1].id,\n\t\tfocusColumnId: columns[columns.length - 1].id\n\t});\n}\n/**\n* Resolves a direction into row and column deltas.\n*/\nfunction getDirectionDelta(direction) {\n\tswitch (direction) {\n\t\tcase \"up\": return {\n\t\t\trowDelta: -1,\n\t\t\tcolumnDelta: 0\n\t\t};\n\t\tcase \"down\": return {\n\t\t\trowDelta: 1,\n\t\t\tcolumnDelta: 0\n\t\t};\n\t\tcase \"left\": return {\n\t\t\trowDelta: 0,\n\t\t\tcolumnDelta: -1\n\t\t};\n\t\tdefault: return {\n\t\t\trowDelta: 0,\n\t\t\tcolumnDelta: 1\n\t\t};\n\t}\n}\n/**\n* Steps one cell in a direction from a starting coordinate.\n*\n* Columns that cannot be selected are skipped over rather than landed on, so\n* arrow navigation never parks on an opted-out column. Returns `null` when the\n* step would leave the grid or find no selectable column.\n*/\nfunction stepCoordinate(table, rowId, columnId, direction) {\n\tconst rows = table.getRowModel().rows;\n\tconst columns = getDisplayOrderedColumns(table);\n\tif (!rows.length || !columns.length) return null;\n\tconst { rowDelta, columnDelta } = getDirectionDelta(direction);\n\tconst rowIndex = rows.findIndex((row) => row.id === rowId);\n\tconst columnIndex = columns.findIndex((column) => column.id === columnId);\n\tif (rowIndex < 0 || columnIndex < 0) return null;\n\tconst merges = callMemoOrStaticFn(table, \"getCellSelectionMergeBounds\", table_getCellSelectionMergeBounds);\n\tlet fromRowIndex = rows[rowIndex].getDisplayIndex();\n\tlet fromColumnIndex = columnIndex;\n\tif (merges.length) {\n\t\tconst startMerge = findMergeBoundsAt(merges, rowIndex, columnIndex);\n\t\tif (startMerge) {\n\t\t\tif (rowDelta > 0) fromRowIndex = startMerge.maxRowIndex;\n\t\t\tif (rowDelta < 0) fromRowIndex = startMerge.minRowIndex;\n\t\t\tif (columnDelta > 0) fromColumnIndex = startMerge.maxColumnIndex;\n\t\t\tif (columnDelta < 0) fromColumnIndex = startMerge.minColumnIndex;\n\t\t}\n\t}\n\tlet nextRowIndex = rowIndex + rowDelta;\n\tif (rowDelta && fromRowIndex !== rows[rowIndex].getDisplayIndex()) {\n\t\tconst edgeRowIndex = rows.findIndex((row) => row.getDisplayIndex() === fromRowIndex);\n\t\tif (edgeRowIndex < 0) return null;\n\t\tnextRowIndex = edgeRowIndex + rowDelta;\n\t}\n\tif (nextRowIndex < 0 || nextRowIndex >= rows.length) return null;\n\tconst selectableColumnIds = new Set(getSelectableColumns(table).map((column) => column.id));\n\tif (!selectableColumnIds.size) return null;\n\tlet nextColumnIndex = fromColumnIndex;\n\tif (columnDelta) do\n\t\tnextColumnIndex += columnDelta;\n\twhile (nextColumnIndex >= 0 && nextColumnIndex < columns.length && !selectableColumnIds.has(columns[nextColumnIndex].id));\n\telse if (!selectableColumnIds.has(columnId)) for (let distance = 1; distance < columns.length; distance++) {\n\t\tconst before = columns[columnIndex - distance];\n\t\tconst after = columns[columnIndex + distance];\n\t\tif (before && selectableColumnIds.has(before.id)) {\n\t\t\tnextColumnIndex = columnIndex - distance;\n\t\t\tbreak;\n\t\t}\n\t\tif (after && selectableColumnIds.has(after.id)) {\n\t\t\tnextColumnIndex = columnIndex + distance;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (nextColumnIndex < 0 || nextColumnIndex >= columns.length || !selectableColumnIds.has(columns[nextColumnIndex].id)) return null;\n\tlet landingRowIndex = nextRowIndex;\n\tlet landingColumnIndex = nextColumnIndex;\n\tif (merges.length) {\n\t\tconst landingMerge = findMergeBoundsAt(merges, rows[nextRowIndex].getDisplayIndex(), nextColumnIndex);\n\t\tif (landingMerge) {\n\t\t\tlandingRowIndex = rows.findIndex((row) => row.getDisplayIndex() === landingMerge.minRowIndex);\n\t\t\tif (landingRowIndex < 0) return null;\n\t\t\tlandingColumnIndex = landingMerge.minColumnIndex;\n\t\t}\n\t}\n\tconst landingRow = rows[landingRowIndex];\n\tconst landingColumn = columns[landingColumnIndex];\n\tif (!landingRow || !landingColumn) return null;\n\treturn {\n\t\trowId: landingRow.id,\n\t\tcolumnId: landingColumn.id\n\t};\n}\n/**\n* Moves the selection one step in a direction, collapsing it to a single cell.\n*\n* With nothing selected, this selects the first selectable cell so keyboard\n* navigation has somewhere to start.\n*\n* @example\n* ```ts\n* table_moveCellSelection(table, 'down')\n* ```\n*/\nfunction table_moveCellSelection(table, direction) {\n\tconst ranges = table.atoms.cellSelection?.get();\n\tconst active = ranges?.[ranges.length - 1];\n\tif (!active) {\n\t\tconst rows = table.getRowModel().rows;\n\t\tconst columns = getSelectableColumns(table);\n\t\tif (!rows.length || !columns.length) return;\n\t\ttable_setFocusedCell(table, rows[0].id, columns[0].id);\n\t\treturn;\n\t}\n\tconst next = stepCoordinate(table, active.anchorRowId, active.anchorColumnId, direction);\n\tif (!next) return;\n\ttable_setFocusedCell(table, next.rowId, next.columnId);\n}\n/**\n* Extends the active range one step in a direction, keeping its anchor fixed.\n*\n* @example\n* ```ts\n* table_extendCellSelection(table, 'right')\n* ```\n*/\nfunction table_extendCellSelection(table, direction) {\n\tconst ranges = table.atoms.cellSelection?.get();\n\tconst active = ranges?.[ranges.length - 1];\n\tif (!active) {\n\t\ttable_moveCellSelection(table, direction);\n\t\treturn;\n\t}\n\tconst next = stepCoordinate(table, active.focusRowId, active.focusColumnId, direction);\n\tif (!next) return;\n\ttable_setCellSelection(table, (old) => {\n\t\tif (!old.length) return old;\n\t\tconst nextRanges = old.slice(0, -1);\n\t\tnextRanges.push({\n\t\t\t...old[old.length - 1],\n\t\t\tfocusRowId: next.rowId,\n\t\t\tfocusColumnId: next.columnId\n\t\t});\n\t\treturn nextRanges;\n\t});\n}\n/**\n* Walks each final positive region, invoking a visitor per selectable cell.\n*\n* Every expansion API shares this so the per-cell enable predicate is applied\n* in exactly one place.\n*/\nfunction forEachSelectedCell(table, visit, skipCovered = false) {\n\tconst bounds = callMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds);\n\tif (!bounds.length) return;\n\tconst rows = table.getRowsInDisplayOrder();\n\tconst columns = getDisplayOrderedColumns(table);\n\tfor (let i = 0; i < bounds.length; i++) {\n\t\tconst bound = bounds[i];\n\t\tfor (let rowIndex = bound.minRowIndex; rowIndex <= bound.maxRowIndex; rowIndex++) {\n\t\t\tconst row = rows[rowIndex];\n\t\t\tif (!row) continue;\n\t\t\tconst cellsByColumnId = row.getAllCellsByColumnId();\n\t\t\tfor (let columnIndex = bound.minColumnIndex; columnIndex <= bound.maxColumnIndex; columnIndex++) {\n\t\t\t\tconst column = columns[columnIndex];\n\t\t\t\tif (!column) continue;\n\t\t\t\tconst cell = cellsByColumnId[column.id];\n\t\t\t\tif (!cell) continue;\n\t\t\t\tif (!callMemoOrStaticFn(cell, \"getCanSelect\", cell_getCanSelect)) continue;\n\t\t\t\tif (skipCovered && cell.getIsCovered?.()) continue;\n\t\t\t\tvisit(cell, i, rowIndex - bound.minRowIndex, columnIndex - bound.minColumnIndex);\n\t\t\t}\n\t\t}\n\t}\n}\n/**\n* Returns the ids of all selected cells, in row-major order.\n*\n* Cells covered by overlapping ranges are returned once, at their first\n* occurrence.\n*\n* @example\n* ```ts\n* const ids = table_getSelectedCellIds(table)\n* ```\n*/\nfunction table_getSelectedCellIds(table) {\n\tconst ids = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tforEachSelectedCell(table, (cell) => {\n\t\tif (seen.has(cell.id)) return;\n\t\tseen.add(cell.id);\n\t\tids.push(cell.id);\n\t}, true);\n\treturn ids;\n}\n/**\n* Returns each final positive region's values as a row-major grid.\n*\n* This is the raw material for clipboard export. Serializing it to text is left\n* to userland, since the delimiter, the null representation, and whether values\n* containing delimiters get quoted are all application decisions.\n*\n* @example\n* ```ts\n* const [firstRange] = table_getSelectedCellRangesData(table)\n* ```\n*/\nfunction table_getSelectedCellRangesData(table) {\n\tconst grids = [];\n\tforEachSelectedCell(table, (cell, rangeIndex, rowOffset) => {\n\t\tconst grid = grids[rangeIndex] ??= [];\n\t\t(grid[rowOffset] ??= []).push(cell.getValue());\n\t});\n\treturn grids;\n}\n/**\n* Returns the number of selected cells.\n*\n* Uses rectangle arithmetic over the normalized, disjoint positive regions.\n* A per-cell `enableCellSelection` predicate requires enumeration.\n*\n* @example\n* ```ts\n* const count = table_getSelectedCellCount(table)\n* ```\n*/\nfunction table_getSelectedCellCount(table) {\n\tif (table.options.enableCellSelection === false) return 0;\n\tconst bounds = callMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds);\n\tif (!bounds.length) return 0;\n\tconst merges = callMemoOrStaticFn(table, \"getCellSelectionMergeBounds\", table_getCellSelectionMergeBounds);\n\tif (typeof table.options.enableCellSelection === \"function\" || merges.length) {\n\t\tconst ids = /* @__PURE__ */ new Set();\n\t\tforEachSelectedCell(table, (cell) => ids.add(cell.id), true);\n\t\treturn ids.size;\n\t}\n\tconst columns = getDisplayOrderedColumns(table);\n\tlet count = 0;\n\tfor (const bound of bounds) {\n\t\tlet selectableColumns = 0;\n\t\tfor (let columnIndex = bound.minColumnIndex; columnIndex <= bound.maxColumnIndex; columnIndex++) {\n\t\t\tconst column = columns[columnIndex];\n\t\t\tif (!column) continue;\n\t\t\tif (column.columnDef.enableCellSelection !== false) selectableColumns++;\n\t\t}\n\t\tcount += (bound.maxRowIndex - bound.minRowIndex + 1) * selectableColumns;\n\t}\n\treturn count;\n}\n/**\n* Returns the ids of all rows intersected by the selection.\n*\n* @example\n* ```ts\n* const rowIds = table_getCellSelectionRowIds(table)\n* ```\n*/\nfunction table_getCellSelectionRowIds(table) {\n\tconst bounds = callMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds);\n\tif (!bounds.length) return [];\n\tconst rows = table.getRowsInDisplayOrder();\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst ids = [];\n\tfor (let i = 0; i < bounds.length; i++) {\n\t\tconst bound = bounds[i];\n\t\tfor (let index = bound.minRowIndex; index <= bound.maxRowIndex; index++) {\n\t\t\tconst row = rows[index];\n\t\t\tif (!row || seen.has(row.id)) continue;\n\t\t\tseen.add(row.id);\n\t\t\tids.push(row.id);\n\t\t}\n\t}\n\treturn ids;\n}\n/**\n* Returns the ids of all columns intersected by the selection.\n*\n* @example\n* ```ts\n* const columnIds = table_getCellSelectionColumnIds(table)\n* ```\n*/\nfunction table_getCellSelectionColumnIds(table) {\n\tconst bounds = callMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds);\n\tif (!bounds.length) return [];\n\tconst columns = getDisplayOrderedColumns(table);\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst ids = [];\n\tfor (let i = 0; i < bounds.length; i++) {\n\t\tconst bound = bounds[i];\n\t\tfor (let index = bound.minColumnIndex; index <= bound.maxColumnIndex; index++) {\n\t\t\tconst column = columns[index];\n\t\t\tif (!column || seen.has(column.id)) continue;\n\t\t\tif (column.columnDef.enableCellSelection === false) continue;\n\t\t\tseen.add(column.id);\n\t\t\tids.push(column.id);\n\t\t}\n\t}\n\treturn ids;\n}\n/**\n* Creates a handler that begins a selection at this cell.\n*\n* Follows `header_getResizeHandler`: the enable check is resolved once outside\n* the returned closure and guarded again inside it, the document is injectable\n* for SSR and cross-document rendering, and the document-level `mouseup`\n* listener is attached here so a drag released outside the table still ends.\n*\n* @example\n* ```tsx\n* <td onMouseDown={cell.getSelectionStartHandler()} />\n* ```\n*/\nfunction cell_getSelectionStartHandler(cell, _contextDocument) {\n\tconst canSelect = cell_getCanSelect(cell);\n\treturn (e) => {\n\t\tif (!canSelect) return;\n\t\tconst table = cell.table;\n\t\tconst options = table.options;\n\t\tconst contextDocument = _contextDocument ?? (typeof document !== \"undefined\" ? document : null);\n\t\tconst isRangeEvent = options.enableCellRangeSelection !== false && (options.isCellRangeSelectionEvent?.(e) ?? false);\n\t\tconst isMultiRangeEvent = options.enableMultiCellRangeSelection !== false && (options.isMultiCellRangeSelectionEvent?.(e) ?? false);\n\t\tif (options.enableCellSelectionDrag !== false && options.enableCellRangeSelection !== false && contextDocument) {\n\t\t\ttable._isSelectingCells = true;\n\t\t\tconst upHandler = () => {\n\t\t\t\tcontextDocument.removeEventListener(\"mouseup\", upHandler);\n\t\t\t\ttable._isSelectingCells = false;\n\t\t\t};\n\t\t\tcontextDocument.addEventListener(\"mouseup\", upHandler);\n\t\t}\n\t\tconst rowId = cell.row.id;\n\t\tconst columnId = cell.column.id;\n\t\tconst shouldExclude = isMultiRangeEvent && callMemoOrStaticFn(cell, \"getIsSelected\", cell_getIsSelected);\n\t\ttable_setCellSelection(table, (old) => {\n\t\t\tconst active = old[old.length - 1];\n\t\t\tif (isRangeEvent && active) {\n\t\t\t\tconst ranges = old.slice(0, -1);\n\t\t\t\tranges.push({\n\t\t\t\t\t...active,\n\t\t\t\t\tfocusRowId: rowId,\n\t\t\t\t\tfocusColumnId: columnId\n\t\t\t\t});\n\t\t\t\treturn ranges;\n\t\t\t}\n\t\t\tconst range = {\n\t\t\t\tanchorRowId: rowId,\n\t\t\t\tanchorColumnId: columnId,\n\t\t\t\tfocusRowId: rowId,\n\t\t\t\tfocusColumnId: columnId,\n\t\t\t\t...shouldExclude ? { operation: \"exclude\" } : {}\n\t\t\t};\n\t\t\treturn isMultiRangeEvent ? [...old, range] : [range];\n\t\t});\n\t};\n}\n/**\n* Creates a handler that extends the active range to this cell during a drag.\n*\n* No rAF coalescing is needed here, unlike the resize handler: `mouseenter`\n* fires once per cell boundary crossed rather than continuously, and deferring\n* it by a frame would only delay the highlight.\n*\n* @example\n* ```tsx\n* <td onMouseEnter={cell.getSelectionExtendHandler()} />\n* ```\n*/\nfunction cell_getSelectionExtendHandler(cell) {\n\tconst canSelect = cell_getCanSelect(cell);\n\treturn (_e) => {\n\t\tif (!canSelect) return;\n\t\tconst table = cell.table;\n\t\tif (!table._isSelectingCells) return;\n\t\tconst ranges = table.atoms.cellSelection?.get();\n\t\tconst active = ranges?.[ranges.length - 1];\n\t\tif (!active) return;\n\t\tconst rowId = cell.row.id;\n\t\tconst columnId = cell.column.id;\n\t\tif (active.focusRowId === rowId && active.focusColumnId === columnId) return;\n\t\ttable_setCellSelection(table, (old) => {\n\t\t\tif (!old.length) return old;\n\t\t\tconst next = old.slice(0, -1);\n\t\t\tnext.push({\n\t\t\t\t...old[old.length - 1],\n\t\t\t\tfocusRowId: rowId,\n\t\t\t\tfocusColumnId: columnId\n\t\t\t});\n\t\t\treturn next;\n\t\t});\n\t};\n}\n\n//#endregion\nexport { cell_getCanSelect, cell_getIsFocused, cell_getIsSelected, cell_getSelectionEdges, cell_getSelectionExtendHandler, cell_getSelectionStartHandler, cell_getTabIndex, getDefaultCellSelectionState, table_autoResetCellSelection, table_extendCellSelection, table_getCellSelectionBounds, table_getCellSelectionColumnIds, table_getCellSelectionColumnIndexes, table_getCellSelectionMergeBounds, table_getCellSelectionRowIds, table_getFocusedCell, table_getSelectedCellCount, table_getSelectedCellIds, table_getSelectedCellRangesData, table_moveCellSelection, table_resetCellSelection, table_selectAllCells, table_selectCellRange, table_setCellSelection, table_setFocusedCell };","import { cloneState, hasOwn, makeObjectMap } from \"../../utils.js\";\n\n//#region src/features/row-expanding/rowExpandingFeature.utils.ts\n/**\n* Creates the default expanded state.\n*\n* The feature default is an empty map, meaning no rows are expanded. Reset APIs\n* use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const expanded = getDefaultExpandedState()\n* ```\n*/\nfunction getDefaultExpandedState() {\n\treturn makeObjectMap();\n}\n/**\n* Schedules an expanded-state reset after row-structure changes.\n*\n* The reset runs when `autoResetAll`, `autoResetExpanded`, or the default\n* client-side expanding behavior allows it. Manual expanding opts out unless\n* the reset options explicitly opt back in.\n*\n* @example\n* ```ts\n* table_autoResetExpanded(table)\n* ```\n*/\nfunction table_autoResetExpanded(table) {\n\tif (!table.atoms.expanded) return;\n\tif (table.options.autoResetAll ?? table.options.autoResetExpanded ?? !table.options.manualExpanding) table._reactivity.schedule(() => table_resetExpanded(table));\n}\n/**\n* Routes an expanded-state updater through the table's expanded change handler.\n*\n* The updater may be `true`, a row-id map, or a function of the previous\n* expanded state, matching the instance `table.setExpanded` behavior.\n*\n* @example\n* ```ts\n* table_setExpanded(table, (old) => ({ ...old, [rowId]: true }))\n* ```\n*/\nfunction table_setExpanded(table, updater) {\n\ttable.options.onExpandedChange?.(updater);\n}\n/**\n* Expands or collapses every row.\n*\n* Passing `true` stores the special expanded-all state. Passing `false` stores\n* an empty map. Omitting the value toggles based on whether all rows are\n* currently expanded.\n*\n* The call is a no-op (no `onExpandedChange`) when no row can expand or when\n* the requested state matches the current state exactly.\n*\n* @example\n* ```ts\n* table_toggleAllRowsExpanded(table)\n* ```\n*/\nfunction table_toggleAllRowsExpanded(table, expanded) {\n\tconst currentExpanded = table.atoms.expanded?.get() ?? {};\n\tif (expanded ?? !table_getIsAllRowsExpanded(table)) {\n\t\tif (currentExpanded === true) return;\n\t\tif (!table_getCanSomeRowsExpand(table)) return;\n\t\ttable_setExpanded(table, true);\n\t} else {\n\t\tif (currentExpanded !== true && !Object.keys(currentExpanded).length) return;\n\t\ttable_setExpanded(table, makeObjectMap());\n\t}\n}\n/**\n* Resets `expanded` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.expanded` when it\n* exists. Passing `true` ignores initial state and resets to `{}`.\n*\n* @example\n* ```ts\n* table_resetExpanded(table)\n* table_resetExpanded(table, true)\n* ```\n*/\nfunction table_resetExpanded(table, defaultState) {\n\tconst initialExpanded = table.initialState.expanded;\n\ttable_setExpanded(table, defaultState ? makeObjectMap() : initialExpanded === true ? true : Object.assign(makeObjectMap(), cloneState(initialExpanded ?? {})));\n}\n/**\n* Checks whether at least one pre-paginated row can expand.\n*\n* Pagination is intentionally ignored so controls can reflect expandable rows\n* that may not be on the current page.\n*\n* @example\n* ```ts\n* const canExpand = table_getCanSomeRowsExpand(table)\n* ```\n*/\nfunction table_getCanSomeRowsExpand(table) {\n\treturn table.getPrePaginatedRowModel().flatRows.some((row) => row_getCanExpand(row));\n}\n/**\n* Creates an event handler that toggles all rows expanded.\n*\n* @example\n* ```ts\n* const onClick = table_getToggleAllRowsExpandedHandler(table)\n* ```\n*/\nfunction table_getToggleAllRowsExpandedHandler(table) {\n\treturn (_e) => {\n\t\ttable_toggleAllRowsExpanded(table);\n\t};\n}\n/**\n* Checks whether any row is expanded.\n*\n* The special expanded-all value `true` counts as some rows expanded.\n*\n* @example\n* ```ts\n* const someExpanded = table_getIsSomeRowsExpanded(table)\n* ```\n*/\nfunction table_getIsSomeRowsExpanded(table) {\n\tconst expanded = table.atoms.expanded?.get() ?? {};\n\treturn expanded === true || Object.values(expanded).some(Boolean);\n}\n/**\n* Checks whether every expandable row in the current row model is expanded.\n*\n* The special expanded-all value `true` returns true immediately. Empty\n* expanded state returns false. Rows that cannot expand are ignored, so a\n* materialized expanded-all map (which only contains expandable row ids)\n* still counts as all rows expanded.\n*\n* @example\n* ```ts\n* const allExpanded = table_getIsAllRowsExpanded(table)\n* ```\n*/\nfunction table_getIsAllRowsExpanded(table) {\n\tconst expanded = table.atoms.expanded?.get() ?? {};\n\tif (expanded === true) return true;\n\tif (!Object.keys(expanded).length) return false;\n\tconst expandableRows = table.getRowModel().flatRows.filter((row) => row_getCanExpand(row));\n\tif (!expandableRows.length) return false;\n\tif (expandableRows.some((row) => !row_getIsExpanded(row))) return false;\n\treturn true;\n}\n/**\n* Computes the deepest expanded row id depth.\n*\n* Row ids are split on `.`; expanded-all state scans the current row model's\n* expandable rows, while explicit expanded state scans its expanded id keys.\n*\n* @example\n* ```ts\n* const depth = table_getExpandedDepth(table)\n* ```\n*/\nfunction table_getExpandedDepth(table) {\n\tlet maxDepth = 0;\n\tconst expanded = table.atoms.expanded?.get();\n\t(expanded === true ? Object.values(table.getRowModel().rowsById).filter((row) => row_getCanExpand(row)).map((row) => row.id) : Object.keys(expanded ?? {})).forEach((id) => {\n\t\tconst splitId = id.split(\".\");\n\t\tmaxDepth = Math.max(maxDepth, splitId.length);\n\t});\n\treturn maxDepth;\n}\n/**\n* Expands or collapses this row.\n*\n* Omitting `expanded` toggles the row. If the current state is expanded-all,\n* the function first materializes that state into a row-id map (containing\n* only expandable row ids) before applying the row-specific change.\n*\n* The call is a no-op (no `onExpandedChange`) when the requested state matches\n* the current state, or when expanding a row that cannot expand. Collapsing is\n* always allowed so stale expanded ids can be cleaned up.\n*\n* @example\n* ```ts\n* row_toggleExpanded(row)\n* ```\n*/\nfunction row_toggleExpanded(row, expanded) {\n\tconst currentExpanded = row.table.atoms.expanded?.get() ?? {};\n\tconst currentExists = currentExpanded === true || isExpandedRowId(currentExpanded, row.id);\n\tconst targetExpanded = expanded ?? !currentExists;\n\tif (targetExpanded === currentExists) return;\n\tif (targetExpanded && !row_getCanExpand(row)) return;\n\ttable_setExpanded(row.table, (old) => {\n\t\tconst exists = old === true ? true : isExpandedRowId(old, row.id);\n\t\tlet oldExpanded = makeObjectMap();\n\t\tif (old === true) Object.values(row.table.getRowModel().rowsById).forEach((rowModelRow) => {\n\t\t\tif (row_getCanExpand(rowModelRow)) oldExpanded[rowModelRow.id] = true;\n\t\t});\n\t\telse oldExpanded = Object.assign(makeObjectMap(), old);\n\t\tif (!exists && targetExpanded) {\n\t\t\toldExpanded[row.id] = true;\n\t\t\treturn oldExpanded;\n\t\t}\n\t\tif (exists && !targetExpanded) {\n\t\t\tconst rest = makeObjectMap();\n\t\t\tconst rowIds = Object.keys(oldExpanded);\n\t\t\tfor (let i = 0; i < rowIds.length; i++) {\n\t\t\t\tconst rowId = rowIds[i];\n\t\t\t\tif (rowId !== row.id && oldExpanded[rowId]) rest[rowId] = true;\n\t\t\t}\n\t\t\treturn rest;\n\t\t}\n\t\treturn old;\n\t});\n}\n/**\n* Checks whether this row is expanded.\n*\n* `options.getIsRowExpanded` can override state-derived behavior. Otherwise\n* the row is expanded when expanded state is `true` or contains this row id.\n*\n* @example\n* ```ts\n* const expanded = row_getIsExpanded(row)\n* ```\n*/\nfunction row_getIsExpanded(row) {\n\tconst expanded = row.table.atoms.expanded?.get() ?? {};\n\treturn !!(row.table.options.getIsRowExpanded?.(row) ?? (expanded === true || isExpandedRowId(expanded, row.id)));\n}\nfunction isExpandedRowId(expanded, rowId) {\n\treturn !!(expanded && expanded !== true && hasOwn(expanded, rowId) && expanded[rowId]);\n}\n/**\n* Checks whether this row can be expanded.\n*\n* `options.getRowCanExpand` wins when provided. Otherwise rows can expand when\n* expanding is enabled and the row has subRows.\n*\n* @example\n* ```ts\n* const canExpand = row_getCanExpand(row)\n* ```\n*/\nfunction row_getCanExpand(row) {\n\treturn row.table.options.getRowCanExpand?.(row) ?? ((row.table.options.enableExpanding ?? true) && !!row.subRows.length);\n}\n/**\n* Checks whether every ancestor of this row is expanded.\n*\n* The current row is not considered; only its parent chain is walked.\n*\n* @example\n* ```ts\n* const parentsExpanded = row_getIsAllParentsExpanded(row)\n* ```\n*/\nfunction row_getIsAllParentsExpanded(row) {\n\tlet isFullyExpanded = true;\n\tlet currentRow = row;\n\twhile (isFullyExpanded && currentRow.parentId) {\n\t\tcurrentRow = row.table.getRow(currentRow.parentId, true);\n\t\tisFullyExpanded = row_getIsExpanded(currentRow);\n\t}\n\treturn isFullyExpanded;\n}\n/**\n* Creates a row control handler that toggles this row's expanded state.\n*\n* The handler is a no-op when the row cannot expand.\n*\n* @example\n* ```ts\n* const onClick = row_getToggleExpandedHandler(row)\n* ```\n*/\nfunction row_getToggleExpandedHandler(row) {\n\tconst canExpand = row_getCanExpand(row);\n\treturn () => {\n\t\tif (!canExpand) return;\n\t\trow_toggleExpanded(row);\n\t};\n}\n\n//#endregion\nexport { getDefaultExpandedState, row_getCanExpand, row_getIsAllParentsExpanded, row_getIsExpanded, row_getToggleExpandedHandler, row_toggleExpanded, table_autoResetExpanded, table_getCanSomeRowsExpand, table_getExpandedDepth, table_getIsAllRowsExpanded, table_getIsSomeRowsExpanded, table_getToggleAllRowsExpandedHandler, table_resetExpanded, table_setExpanded, table_toggleAllRowsExpanded };","import { cloneState, functionalUpdate } from \"../../utils.js\";\n\n//#region src/features/row-pagination/rowPaginationFeature.utils.ts\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\n/**\n* Creates the default pagination state used by the pagination feature.\n*\n* The feature default starts at the first page with a page size of 10. Reset\n* APIs use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const pagination = getDefaultPaginationState()\n* ```\n*/\nfunction getDefaultPaginationState() {\n\treturn {\n\t\tpageIndex: defaultPageIndex,\n\t\tpageSize: defaultPageSize\n\t};\n}\n/**\n* Resets the page index when a page-altering change should return to page 0.\n*\n* The reset runs when `autoResetAll`, `autoResetPageIndex`, or the default\n* client-side pagination behavior allows it. Manual pagination opts out unless\n* the reset options explicitly opt back in.\n*\n* @example\n* ```ts\n* table_autoResetPageIndex(table)\n* ```\n*/\nfunction table_autoResetPageIndex(table) {\n\tif (table.options.autoResetAll ?? table.options.autoResetPageIndex ?? !table.options.manualPagination) table_resetPageIndex(table, true);\n}\n/**\n* Routes a pagination updater through the table's pagination change handler.\n*\n* The updater may be a next state object or a function of the previous\n* `PaginationState`; controlled state and external atoms observe the same\n* updater path as the instance API.\n*\n* @example\n* ```ts\n* table_setPagination(table, (old) => old)\n* ```\n*/\nfunction table_setPagination(table, updater) {\n\tconst safeUpdater = (old) => {\n\t\treturn functionalUpdate(updater, old);\n\t};\n\treturn table.options.onPaginationChange?.(safeUpdater);\n}\n/**\n* Resets `pagination` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.pagination` when it\n* exists. Passing `true` ignores initial state and resets to\n* `{ pageIndex: 0, pageSize: 10 }`.\n*\n* @example\n* ```ts\n* table_resetPagination(table)\n* table_resetPagination(table, true)\n* ```\n*/\nfunction table_resetPagination(table, defaultState) {\n\ttable_setPagination(table, defaultState ? getDefaultPaginationState() : cloneState(table.initialState.pagination ?? getDefaultPaginationState()));\n}\n/**\n* Updates `pagination.pageIndex` and clamps it to the known page range.\n*\n* Unknown page counts (`undefined` or `-1`) allow any non-negative page index.\n* Known page counts clamp the index between `0` and `pageCount - 1`.\n*\n* @example\n* ```ts\n* table_setPageIndex(table, (old) => old)\n* ```\n*/\nfunction table_setPageIndex(table, updater) {\n\ttable_setPagination(table, (old) => {\n\t\tlet pageIndex = functionalUpdate(updater, old.pageIndex);\n\t\tconst maxPageIndex = typeof table.options.pageCount === \"undefined\" || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n\t\tpageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n\t\treturn {\n\t\t\t...old,\n\t\t\tpageIndex\n\t\t};\n\t});\n}\n/**\n* Resets only `pagination.pageIndex`.\n*\n* With no argument, the reset uses `table.initialState.pagination?.pageIndex`\n* or `0`. Passing `true` always resets the page index to `0`.\n*\n* @example\n* ```ts\n* table_resetPageIndex(table)\n* table_resetPageIndex(table, true)\n* ```\n*/\nfunction table_resetPageIndex(table, defaultState) {\n\tconst currentPageIndex = table.atoms.pagination?.get()?.pageIndex ?? defaultPageIndex;\n\tconst newPageIndex = defaultState ? defaultPageIndex : table.initialState.pagination?.pageIndex ?? defaultPageIndex;\n\tif (newPageIndex === currentPageIndex) return;\n\ttable_setPageIndex(table, newPageIndex);\n}\n/**\n* Resets only `pagination.pageSize`.\n*\n* With no argument, the reset uses `table.initialState.pagination?.pageSize`\n* or `10`. Passing `true` always resets the page size to `10`.\n*\n* @example\n* ```ts\n* table_resetPageSize(table)\n* table_resetPageSize(table, true)\n* ```\n*/\nfunction table_resetPageSize(table, defaultState) {\n\tconst currentPageSize = table.atoms.pagination?.get()?.pageSize ?? defaultPageSize;\n\tconst newPageSize = defaultState ? defaultPageSize : table.initialState.pagination?.pageSize ?? defaultPageSize;\n\tif (newPageSize === currentPageSize) return;\n\ttable_setPageSize(table, newPageSize);\n}\n/**\n* Updates `pagination.pageSize` while preserving the current top row.\n*\n* The new size is clamped to at least `1`, and `pageIndex` is recalculated so\n* the row that was previously at the top of the page remains in view.\n*\n* @example\n* ```ts\n* table_setPageSize(table, (old) => old)\n* ```\n*/\nfunction table_setPageSize(table, updater) {\n\ttable_setPagination(table, (old) => {\n\t\tconst pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n\t\tconst topRowIndex = old.pageSize * old.pageIndex;\n\t\tconst pageIndex = Math.floor(topRowIndex / pageSize);\n\t\treturn {\n\t\t\t...old,\n\t\t\tpageIndex,\n\t\t\tpageSize\n\t\t};\n\t});\n}\n/**\n* Builds the zero-based page indexes available for the current page count.\n*\n* Unknown or empty page counts return an empty array; otherwise the result is\n* `[0, 1, ...pageCount - 1]`.\n*\n* @example\n* ```ts\n* const pageIndexes = table_getPageOptions(table)\n* ```\n*/\nfunction table_getPageOptions(table) {\n\tconst pageCount = table_getPageCount(table);\n\tlet pageOptions = [];\n\tif (pageCount && pageCount > 0) pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n\treturn pageOptions;\n}\n/**\n* Checks whether the current page index can move backward.\n*\n* The first page is page index `0`, so only positive page indexes can navigate\n* to a previous page.\n*\n* @example\n* ```ts\n* const canGoBack = table_getCanPreviousPage(table)\n* ```\n*/\nfunction table_getCanPreviousPage(table) {\n\treturn (table.atoms.pagination?.get()?.pageIndex ?? 0) > 0;\n}\n/**\n* Checks whether the current page index can move forward.\n*\n* A `pageCount` of `-1` means the caller does not know the total page count, so\n* this returns `true`. A page count of `0` returns `false`.\n*\n* @example\n* ```ts\n* const canGoForward = table_getCanNextPage(table)\n* ```\n*/\nfunction table_getCanNextPage(table) {\n\tconst pageIndex = table.atoms.pagination?.get()?.pageIndex ?? defaultPageIndex;\n\tconst pageCount = table_getPageCount(table);\n\tif (pageCount === -1) return true;\n\tif (pageCount === 0) return false;\n\treturn pageIndex < pageCount - 1;\n}\n/**\n* Moves the table to the previous page.\n*\n* This delegates to `table_setPageIndex` so pagination state ownership and\n* updater semantics remain consistent.\n*\n* @example\n* ```ts\n* table_previousPage(table)\n* ```\n*/\nfunction table_previousPage(table) {\n\treturn table_setPageIndex(table, (old) => old - 1);\n}\n/**\n* Moves the table to the next page.\n*\n* This delegates to `table_setPageIndex` so pagination state ownership and\n* updater semantics remain consistent.\n*\n* @example\n* ```ts\n* table_nextPage(table)\n* ```\n*/\nfunction table_nextPage(table) {\n\treturn table_setPageIndex(table, (old) => {\n\t\treturn old + 1;\n\t});\n}\n/**\n* Moves the table to the first page.\n*\n* This is a convenience wrapper around `table_setPageIndex(table, 0)`.\n*\n* @example\n* ```ts\n* table_firstPage(table)\n* ```\n*/\nfunction table_firstPage(table) {\n\treturn table_setPageIndex(table, 0);\n}\n/**\n* Moves the table to the last known page.\n*\n* The target page is derived from `table_getPageCount(table) - 1`.\n*\n* @example\n* ```ts\n* table_lastPage(table)\n* ```\n*/\nfunction table_lastPage(table) {\n\treturn table_setPageIndex(table, table_getPageCount(table) - 1);\n}\n/**\n* Resolves the number of pages for the current pagination state.\n*\n* `options.pageCount` wins for manual pagination. Otherwise the value is\n* calculated from `table_getRowCount(table)` and the current `pageSize`.\n*\n* @example\n* ```ts\n* const pages = table_getPageCount(table)\n* ```\n*/\nfunction table_getPageCount(table) {\n\treturn table.options.pageCount ?? Math.ceil(table_getRowCount(table) / (table.atoms.pagination?.get()?.pageSize ?? defaultPageSize));\n}\n/**\n* Resolves the total row count used for pagination math.\n*\n* `options.rowCount` wins for manual pagination. Otherwise the count comes\n* from the pre-paginated row model so filtering, grouping, sorting, and\n* expansion are reflected before the page slice is applied.\n*\n* @example\n* ```ts\n* const rows = table_getRowCount(table)\n* ```\n*/\nfunction table_getRowCount(table) {\n\treturn table.options.rowCount ?? table.getPrePaginatedRowModel().rows.length;\n}\n\n//#endregion\nexport { getDefaultPaginationState, table_autoResetPageIndex, table_firstPage, table_getCanNextPage, table_getCanPreviousPage, table_getPageCount, table_getPageOptions, table_getRowCount, table_lastPage, table_nextPage, table_previousPage, table_resetPageIndex, table_resetPageSize, table_resetPagination, table_setPageIndex, table_setPageSize, table_setPagination };","import { cloneState, isFunction } from \"../../utils.js\";\nimport { reSplitAlphaNumeric, sortFn_basic } from \"./sortFns.js\";\n\n//#region src/features/row-sorting/rowSortingFeature.utils.ts\n/**\n* Creates the default sorting state.\n*\n* The feature default is an empty array, meaning no columns are sorted. Reset\n* APIs use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const sorting = getDefaultSortingState()\n* ```\n*/\nfunction getDefaultSortingState() {\n\treturn [];\n}\n/**\n* Routes a sorting updater through the table's sorting change handler.\n*\n* The updater may be a next `SortingState` array or a function of the previous\n* sorting state, matching the instance `table.setSorting` behavior.\n*\n* @example\n* ```ts\n* table_setSorting(table, (old) => [...old, { id: 'age', desc: true }])\n* ```\n*/\nfunction table_setSorting(table, updater) {\n\ttable.options.onSortingChange?.(updater);\n}\n/**\n* Resets `sorting` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.sorting` when it\n* exists. Passing `true` ignores initial state and resets to `[]`.\n*\n* @example\n* ```ts\n* table_resetSorting(table)\n* table_resetSorting(table, true)\n* ```\n*/\nfunction table_resetSorting(table, defaultState) {\n\ttable_setSorting(table, defaultState ? [] : cloneState(table.initialState.sorting ?? []));\n}\n/**\n* Resets sorting after the table data changes when explicitly enabled.\n*\n* Unlike other auto-reset behaviors, sorting is preserved by default. An\n* explicit `autoResetAll` value takes precedence over `autoResetSorting`.\n*\n* @example\n* ```ts\n* table_autoResetSorting(table)\n* ```\n*/\nfunction table_autoResetSorting(table) {\n\tif (!table.atoms.sorting) return;\n\tif (table.options.autoResetAll ?? table.options.autoResetSorting ?? false) table_resetSorting(table);\n}\n/**\n* Chooses a built-in sorting function from sampled filtered row values.\n*\n* Date-like values use `datetime`, mixed text/numeric strings use\n* `alphanumeric`, plain strings use `text`, and unknown values fall back to\n* `basic`.\n*\n* @example\n* ```ts\n* const sortFn = column_getAutoSortFn(column)\n* ```\n*/\nfunction column_getAutoSortFn(column) {\n\tconst sortFns = column.table._rowModelFns.sortFns;\n\tconst firstRows = column.table.getFilteredRowModel().flatRows.slice(0, 10);\n\tlet sortFnName;\n\tlet isString = false;\n\tfor (let i = 0; i < firstRows.length; i++) {\n\t\tconst value = firstRows[i].getValue(column.id);\n\t\tif (Object.prototype.toString.call(value) === \"[object Date]\") {\n\t\t\tsortFnName = \"datetime\";\n\t\t\tbreak;\n\t\t}\n\t\tif (typeof value === \"string\") {\n\t\t\tisString = true;\n\t\t\tif (value.split(reSplitAlphaNumeric).length > 1) {\n\t\t\t\tsortFnName = \"alphanumeric\";\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif (!sortFnName && isString) sortFnName = \"text\";\n\tif (sortFnName) {\n\t\tlet sortFn = sortFns?.[sortFnName];\n\t\tif (!sortFn) {\n\t\t\tif (process.env.NODE_ENV === \"development\") console.warn(`sortFn '${sortFnName}' (auto) for column '${column.id}' is not registered`);\n\t\t\tif (sortFnName === \"alphanumeric\") sortFn = sortFns?.text;\n\t\t}\n\t\tif (sortFn) return sortFn;\n\t}\n\treturn sortFn_basic;\n}\n/**\n* Chooses the default first sort direction from sampled filtered row values.\n*\n* The first non-nullish value among the sampled rows decides: string columns\n* start ascending so alphabetical order is natural; other value types (or\n* columns with no non-nullish sample) start descending. Sampling past leading\n* nullish values keeps the toggle cycle stable when sorting or a data swap\n* moves an empty value into the first row.\n*\n* @example\n* ```ts\n* const direction = column_getAutoSortDir(column)\n* ```\n*/\nfunction column_getAutoSortDir(column) {\n\tconst firstRows = column.table.getFilteredRowModel().flatRows.slice(0, 10);\n\tfor (let i = 0; i < firstRows.length; i++) {\n\t\tconst value = firstRows[i].getValue(column.id);\n\t\tif (value == null) continue;\n\t\treturn typeof value === \"string\" ? \"asc\" : \"desc\";\n\t}\n\treturn \"desc\";\n}\n/**\n* Resolves the sorting function configured for a column.\n*\n* Function-valued `columnDef.sortFn` is returned directly, `'auto'` delegates\n* to `column_getAutoSortFn`, and string values are looked up in the table's\n* sorting function registry before falling back to `basic`.\n*\n* @example\n* ```ts\n* const sortFn = column_getSortFn(column)\n* ```\n*/\nfunction column_getSortFn(column) {\n\tconst sortFns = column.table._rowModelFns.sortFns;\n\tif (isFunction(column.columnDef.sortFn)) return column.columnDef.sortFn;\n\tif (column.columnDef.sortFn === \"auto\") return column_getAutoSortFn(column);\n\tconst sortFn = sortFns?.[column.columnDef.sortFn];\n\tif (process.env.NODE_ENV === \"development\" && !sortFn) console.warn(`sortFn '${String(column.columnDef.sortFn)}' for column '${column.id}' is not registered`);\n\treturn sortFn ?? sortFn_basic;\n}\n/**\n* Applies the next sorting state for this column.\n*\n* The toggle can add, replace, flip, or remove this column's sort entry. Multi\n* sorting respects `enableMultiSort`, `enableMultiRemove`,\n* `maxMultiSortColCount`, and the `multi` argument.\n*\n* @example\n* ```ts\n* column_toggleSorting(column, undefined, true)\n* ```\n*/\nfunction column_toggleSorting(column, desc, multi) {\n\tconst nextSortingOrder = column_getNextSortingOrder(column, multi && column_getCanMultiSort(column));\n\tconst hasManualValue = typeof desc !== \"undefined\";\n\ttable_setSorting(column.table, (old) => {\n\t\tconst existingIndex = old.findIndex((d) => d.id === column.id);\n\t\tconst existingSorting = existingIndex === -1 ? void 0 : old[existingIndex];\n\t\tlet newSorting = [];\n\t\tlet sortAction;\n\t\tconst nextDesc = hasManualValue ? desc : nextSortingOrder === \"desc\";\n\t\tconst isMultiMode = !!(old.length && column_getCanMultiSort(column) && multi);\n\t\tif (isMultiMode) if (existingSorting) sortAction = \"toggle\";\n\t\telse sortAction = \"add\";\n\t\telse if (existingSorting) sortAction = \"toggle\";\n\t\telse sortAction = \"replace\";\n\t\tif (sortAction === \"toggle\") {\n\t\t\tif (!hasManualValue) {\n\t\t\t\tif (!nextSortingOrder) sortAction = \"remove\";\n\t\t\t}\n\t\t}\n\t\tif (sortAction === \"add\") {\n\t\t\tnewSorting = [...old, {\n\t\t\t\tid: column.id,\n\t\t\t\tdesc: nextDesc\n\t\t\t}];\n\t\t\tnewSorting.splice(0, newSorting.length - (column.table.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER));\n\t\t} else if (sortAction === \"toggle\") newSorting = isMultiMode ? old.map((d) => {\n\t\t\tif (d.id === column.id) return {\n\t\t\t\t...d,\n\t\t\t\tdesc: nextDesc\n\t\t\t};\n\t\t\treturn d;\n\t\t}) : [{\n\t\t\tid: column.id,\n\t\t\tdesc: nextDesc\n\t\t}];\n\t\telse if (sortAction === \"remove\") newSorting = isMultiMode ? old.filter((d) => d.id !== column.id) : [];\n\t\telse newSorting = [{\n\t\t\tid: column.id,\n\t\t\tdesc: nextDesc\n\t\t}];\n\t\treturn newSorting;\n\t});\n}\n/**\n* Resolves the first direction used when this column begins sorting.\n*\n* Column-level `sortDescFirst` wins, then table-level `sortDescFirst`, then the\n* auto direction inferred from sampled values.\n*\n* @example\n* ```ts\n* const firstDirection = column_getFirstSortDir(column)\n* ```\n*/\nfunction column_getFirstSortDir(column) {\n\treturn column.columnDef.sortDescFirst ?? column.table.options.sortDescFirst ?? column_getAutoSortDir(column) === \"desc\" ? \"desc\" : \"asc\";\n}\n/**\n* Resolves the next sort order for this column's toggle cycle.\n*\n* The cycle starts with the first sort direction, flips between `asc` and\n* `desc`, and can return `false` when sorting removal is enabled.\n*\n* @example\n* ```ts\n* const nextOrder = column_getNextSortingOrder(column)\n* ```\n*/\nfunction column_getNextSortingOrder(column, multi) {\n\tconst firstSortDirection = column_getFirstSortDir(column);\n\tconst isSorted = column_getIsSorted(column);\n\tif (!isSorted) return firstSortDirection;\n\tif (isSorted !== firstSortDirection && (column.table.options.enableSortingRemoval ?? true) && (multi ? column.table.options.enableMultiRemove ?? true : true)) return false;\n\treturn isSorted === \"desc\" ? \"asc\" : \"desc\";\n}\n/**\n* Checks whether this accessor column can participate in sorting.\n*\n* The column must have an accessor and sorting must be enabled by both the\n* column definition and table options.\n*\n* @example\n* ```ts\n* const canSort = column_getCanSort(column)\n* ```\n*/\nfunction column_getCanSort(column) {\n\treturn (column.columnDef.enableSorting ?? true) && (column.table.options.enableSorting ?? true) && !!column.accessorFn;\n}\n/**\n* Checks whether this column can be added to a multi-sort state.\n*\n* Column-level `enableMultiSort` wins over table-level `enableMultiSort`; if\n* neither is set, accessor columns can multi-sort by default.\n*\n* @example\n* ```ts\n* const canMultiSort = column_getCanMultiSort(column)\n* ```\n*/\nfunction column_getCanMultiSort(column) {\n\treturn column.columnDef.enableMultiSort ?? column.table.options.enableMultiSort ?? !!column.accessorFn;\n}\n/**\n* Reads this column's current sort direction.\n*\n* The result is `false` when the column is not sorted, otherwise `'asc'` or\n* `'desc'` based on the column's entry in `state.sorting`.\n*\n* @example\n* ```ts\n* const direction = column_getIsSorted(column)\n* ```\n*/\nfunction column_getIsSorted(column) {\n\tconst columnSort = column.table.atoms.sorting?.get()?.find((d) => d.id === column.id);\n\treturn !columnSort ? false : columnSort.desc ? \"desc\" : \"asc\";\n}\n/**\n* Finds this column's position in the ordered `state.sorting` array.\n*\n* The result is `-1` when the column is not sorted.\n*\n* @example\n* ```ts\n* const index = column_getSortIndex(column)\n* ```\n*/\nfunction column_getSortIndex(column) {\n\treturn column.table.atoms.sorting?.get()?.findIndex((d) => d.id === column.id) ?? -1;\n}\n/**\n* Removes this column from the sorting state.\n*\n* Other sorted columns are preserved, including their relative order.\n*\n* @example\n* ```ts\n* column_clearSorting(column)\n* ```\n*/\nfunction column_clearSorting(column) {\n\ttable_setSorting(column.table, (old) => old.length ? old.filter((d) => d.id !== column.id) : []);\n}\n/**\n* Creates a header event handler that toggles this column's sorting.\n*\n* The handler ignores events when the column cannot sort, and asks\n* `options.isMultiSortEvent` whether the event should add to a multi-sort.\n*\n* @example\n* ```ts\n* const onClick = column_getToggleSortingHandler(column)\n* ```\n*/\nfunction column_getToggleSortingHandler(column) {\n\tconst canSort = column_getCanSort(column);\n\treturn (e) => {\n\t\tif (!canSort) return;\n\t\tcolumn_toggleSorting(column, void 0, column_getCanMultiSort(column) ? column.table.options.isMultiSortEvent?.(e) : false);\n\t};\n}\n\n//#endregion\nexport { column_clearSorting, column_getAutoSortDir, column_getAutoSortFn, column_getCanMultiSort, column_getCanSort, column_getFirstSortDir, column_getIsSorted, column_getNextSortingOrder, column_getSortFn, column_getSortIndex, column_getToggleSortingHandler, column_toggleSorting, getDefaultSortingState, table_autoResetSorting, table_resetSorting, table_setSorting };","import { makeObjectMap, skipFirstRun, tableMemo } from \"../../utils.js\";\nimport { constructRow } from \"../rows/constructRow.js\";\nimport { table_autoResetCellSelection } from \"../../features/cell-selection/cellSelectionFeature.utils.js\";\nimport { table_autoResetExpanded } from \"../../features/row-expanding/rowExpandingFeature.utils.js\";\nimport { table_autoResetPageIndex } from \"../../features/row-pagination/rowPaginationFeature.utils.js\";\nimport { table_autoResetSorting } from \"../../features/row-sorting/rowSortingFeature.utils.js\";\n\n//#region src/core/row-models/createCoreRowModel.ts\n/**\n* Creates a memoized core row model factory.\n*\n* The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n*/\nfunction createCoreRowModel() {\n\treturn (table) => {\n\t\treturn tableMemo({\n\t\t\tfeature: \"coreRowModelsFeature\",\n\t\t\ttable,\n\t\t\tfnName: \"table.getCoreRowModel\",\n\t\t\tmemoDeps: () => [table.options.data],\n\t\t\tfn: () => _createCoreRowModel(table, table.options.data),\n\t\t\tonAfterUpdate: skipFirstRun(() => {\n\t\t\t\ttable_autoResetExpanded(table);\n\t\t\t\ttable_autoResetPageIndex(table);\n\t\t\t\ttable_autoResetSorting(table);\n\t\t\t\ttable_autoResetCellSelection(table);\n\t\t\t})\n\t\t});\n\t};\n}\nfunction accessRows(table, rowModel, originalRows, depth = 0, parentRow) {\n\tconst rows = [];\n\tfor (let i = 0; i < originalRows.length; i++) {\n\t\tconst originalRow = originalRows[i];\n\t\tconst row = constructRow(table, table.getRowId(originalRow, i, parentRow), originalRow, i, depth, void 0, parentRow?.id);\n\t\trowModel.flatRows.push(row);\n\t\trowModel.rowsById[row.id] = row;\n\t\trows.push(row);\n\t\tif (table.options.getSubRows) {\n\t\t\trow.originalSubRows = table.options.getSubRows(originalRow, i);\n\t\t\tif (row.originalSubRows?.length) row.subRows = accessRows(table, rowModel, row.originalSubRows, depth + 1, row);\n\t\t}\n\t}\n\treturn rows;\n}\nfunction _createCoreRowModel(table, data) {\n\tconst rowModel = {\n\t\trows: [],\n\t\tflatRows: [],\n\t\trowsById: makeObjectMap()\n\t};\n\trowModel.rows = accessRows(table, rowModel, data);\n\treturn rowModel;\n}\n\n//#endregion\nexport { createCoreRowModel };","import { createCoreRowModel } from \"./createCoreRowModel.js\";\n\n//#region src/core/row-models/coreRowModelsFeature.utils.ts\n/**\n* Resolves the table's unmodified core row model.\n*\n* The factory is created once per table, either from the `coreRowModel` slot on the `features` option\n* or the built-in `createCoreRowModel()`, then reused for later calls.\n*\n* @example\n* ```ts\n* const coreRows = table_getCoreRowModel(table)\n* ```\n*/\nfunction table_getCoreRowModel(table) {\n\tif (!table._rowModels.coreRowModel) table._rowModels.coreRowModel = table.options.features.coreRowModel?.(table) ?? createCoreRowModel()(table);\n\treturn table._rowModels.coreRowModel();\n}\n/**\n* Reads the row model immediately before column/global filtering.\n*\n* Filtering is the first derived row-model stage, so this currently aliases\n* `table.getCoreRowModel()`.\n*\n* @example\n* ```ts\n* const rowsBeforeFiltering = table_getPreFilteredRowModel(table)\n* ```\n*/\nfunction table_getPreFilteredRowModel(table) {\n\treturn table.getCoreRowModel();\n}\n/**\n* Resolves the row model after column and global filtering.\n*\n* When `manualFiltering` is enabled, or no filtered row-model factory was\n* registered, this returns the pre-filtered row model because filtering is\n* expected to happen outside the table.\n*\n* @example\n* ```ts\n* const filteredRows = table_getFilteredRowModel(table)\n* ```\n*/\nfunction table_getFilteredRowModel(table) {\n\tif (!table._rowModels.filteredRowModel) table._rowModels.filteredRowModel = table.options.features.filteredRowModel?.(table);\n\tif (table.options.manualFiltering || !table._rowModels.filteredRowModel) return table.getPreFilteredRowModel();\n\treturn table._rowModels.filteredRowModel();\n}\n/**\n* Reads the row model immediately before grouping.\n*\n* Grouping runs after filtering, so this aliases `table.getFilteredRowModel()`.\n*\n* @example\n* ```ts\n* const rowsBeforeGrouping = table_getPreGroupedRowModel(table)\n* ```\n*/\nfunction table_getPreGroupedRowModel(table) {\n\treturn table.getFilteredRowModel();\n}\n/**\n* Resolves the row model after grouping has produced grouped rows.\n*\n* When `manualGrouping` is enabled, or no grouped row-model factory was\n* registered, this returns the pre-grouped row model unchanged.\n*\n* @example\n* ```ts\n* const groupedRows = table_getGroupedRowModel(table)\n* ```\n*/\nfunction table_getGroupedRowModel(table) {\n\tif (!table._rowModels.groupedRowModel) table._rowModels.groupedRowModel = table.options.features.groupedRowModel?.(table);\n\tif (table.options.manualGrouping || !table._rowModels.groupedRowModel) return table.getPreGroupedRowModel();\n\treturn table._rowModels.groupedRowModel();\n}\n/**\n* Reads the row model immediately before sorting.\n*\n* Sorting runs after grouping, so this aliases `table.getGroupedRowModel()`.\n*\n* @example\n* ```ts\n* const rowsBeforeSorting = table_getPreSortedRowModel(table)\n* ```\n*/\nfunction table_getPreSortedRowModel(table) {\n\treturn table.getGroupedRowModel();\n}\n/**\n* Resolves the row model after sorting has been applied.\n*\n* When `manualSorting` is enabled, or no sorted row-model factory was\n* registered, this returns the pre-sorted row model because sorted data is\n* expected to be supplied by the caller.\n*\n* @example\n* ```ts\n* const sortedRows = table_getSortedRowModel(table)\n* ```\n*/\nfunction table_getSortedRowModel(table) {\n\tif (!table._rowModels.sortedRowModel) table._rowModels.sortedRowModel = table.options.features.sortedRowModel?.(table);\n\tif (table.options.manualSorting || !table._rowModels.sortedRowModel) return table.getPreSortedRowModel();\n\treturn table._rowModels.sortedRowModel();\n}\n/**\n* Reads the row model immediately before row expansion.\n*\n* Expansion runs after sorting, so this aliases `table.getSortedRowModel()`.\n*\n* @example\n* ```ts\n* const rowsBeforeExpansion = table_getPreExpandedRowModel(table)\n* ```\n*/\nfunction table_getPreExpandedRowModel(table) {\n\treturn table.getSortedRowModel();\n}\n/**\n* Resolves the row model after expanded rows have been flattened into view.\n*\n* When `manualExpanding` is enabled, or no expanded row-model factory was\n* registered, this returns the pre-expanded row model unchanged.\n*\n* @example\n* ```ts\n* const expandedRows = table_getExpandedRowModel(table)\n* ```\n*/\nfunction table_getExpandedRowModel(table) {\n\tif (!table._rowModels.expandedRowModel) table._rowModels.expandedRowModel = table.options.features.expandedRowModel?.(table);\n\tif (table.options.manualExpanding || !table._rowModels.expandedRowModel) return table.getPreExpandedRowModel();\n\treturn table._rowModels.expandedRowModel();\n}\n/**\n* Reads the row model immediately before pagination.\n*\n* Pagination is the final built-in row-model stage, so this aliases\n* `table.getExpandedRowModel()`.\n*\n* @example\n* ```ts\n* const rowsBeforePagination = table_getPrePaginatedRowModel(table)\n* ```\n*/\nfunction table_getPrePaginatedRowModel(table) {\n\treturn table.getExpandedRowModel();\n}\n/**\n* Resolves the row model after pagination has sliced rows for the current page.\n*\n* When `manualPagination` is enabled, or no paginated row-model factory was\n* registered, this returns the pre-paginated row model because pagination is\n* expected to happen before data reaches the table.\n*\n* @example\n* ```ts\n* const pageRows = table_getPaginatedRowModel(table)\n* ```\n*/\nfunction table_getPaginatedRowModel(table) {\n\tif (!table._rowModels.paginatedRowModel) table._rowModels.paginatedRowModel = table.options.features.paginatedRowModel?.(table);\n\tif (table.options.manualPagination || !table._rowModels.paginatedRowModel) return table.getPrePaginatedRowModel();\n\treturn table._rowModels.paginatedRowModel();\n}\n/**\n* Resolves the final row model consumed by renderers.\n*\n* This is the end of the built-in row-model pipeline: core -> filtering ->\n* grouping -> sorting -> expanding -> pagination.\n*\n* @example\n* ```ts\n* const visibleRows = table_getRowModel(table)\n* ```\n*/\nfunction table_getRowModel(table) {\n\treturn table.getPaginatedRowModel();\n}\n\n//#endregion\nexport { table_getCoreRowModel, table_getExpandedRowModel, table_getFilteredRowModel, table_getGroupedRowModel, table_getPaginatedRowModel, table_getPreExpandedRowModel, table_getPreFilteredRowModel, table_getPreGroupedRowModel, table_getPrePaginatedRowModel, table_getPreSortedRowModel, table_getRowModel, table_getSortedRowModel };","import { assignTableAPIs } from \"../../utils.js\";\nimport { table_getCoreRowModel, table_getExpandedRowModel, table_getFilteredRowModel, table_getGroupedRowModel, table_getPaginatedRowModel, table_getPreExpandedRowModel, table_getPreFilteredRowModel, table_getPreGroupedRowModel, table_getPrePaginatedRowModel, table_getPreSortedRowModel, table_getRowModel, table_getSortedRowModel } from \"./coreRowModelsFeature.utils.js\";\n\n//#region src/core/row-models/coreRowModelsFeature.ts\n/**\n* Core feature that wires table row-model accessors and row-model caches.\n*/\nconst coreRowModelsFeature = { constructTableAPIs: (table) => {\n\tassignTableAPIs(\"coreRowModelsFeature\", table, {\n\t\ttable_getCoreRowModel: { fn: () => table_getCoreRowModel(table) },\n\t\ttable_getPreFilteredRowModel: { fn: () => table_getPreFilteredRowModel(table) },\n\t\ttable_getFilteredRowModel: { fn: () => table_getFilteredRowModel(table) },\n\t\ttable_getPreGroupedRowModel: { fn: () => table_getPreGroupedRowModel(table) },\n\t\ttable_getGroupedRowModel: { fn: () => table_getGroupedRowModel(table) },\n\t\ttable_getPreSortedRowModel: { fn: () => table_getPreSortedRowModel(table) },\n\t\ttable_getSortedRowModel: { fn: () => table_getSortedRowModel(table) },\n\t\ttable_getPreExpandedRowModel: { fn: () => table_getPreExpandedRowModel(table) },\n\t\ttable_getExpandedRowModel: { fn: () => table_getExpandedRowModel(table) },\n\t\ttable_getPrePaginatedRowModel: { fn: () => table_getPrePaginatedRowModel(table) },\n\t\ttable_getPaginatedRowModel: { fn: () => table_getPaginatedRowModel(table) },\n\t\ttable_getRowModel: { fn: () => table_getRowModel(table) }\n\t});\n} };\n\n//#endregion\nexport { coreRowModelsFeature };","//#region src/core/cells/constructCell.ts\n/**\n* Creates or retrieves the cell prototype for a table.\n* The prototype is cached on the table and shared by all cell instances.\n*/\nfunction getCellPrototype(table) {\n\tif (!table._cellPrototype) {\n\t\ttable._cellPrototype = { table };\n\t\tconst features = Object.values(table._features);\n\t\tfor (let i = 0; i < features.length; i++) features[i].assignCellPrototype?.(table._cellPrototype, table);\n\t}\n\treturn table._cellPrototype;\n}\n/**\n* Constructs a cell instance from normalized table internals.\n*\n* This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n*/\nfunction constructCell(column, row, table) {\n\tconst cellPrototype = getCellPrototype(table);\n\tconst cell = Object.create(cellPrototype);\n\tcell.column = column;\n\tcell.id = `${row.id}_${column.id}`;\n\tcell.row = row;\n\tconst initFns = table._cellInstanceInitFns;\n\tfor (let i = 0; i < initFns.length; i++) initFns[i](cell);\n\treturn cell;\n}\n\n//#endregion\nexport { constructCell };","import { flattenBy, hasOwn, makeObjectMap } from \"../../utils.js\";\nimport { constructCell } from \"../cells/constructCell.js\";\n\n//#region src/core/rows/coreRowsFeature.utils.ts\n/**\n* Returns this row's zero-based position in the current pre-pagination row\n* model. Rows outside that model return `-1`.\n*/\nfunction row_getDisplayIndex(row) {\n\tconst rows = row.table.getRowsInDisplayOrder();\n\tconst displayIndex = row._displayIndexCache;\n\treturn rows[displayIndex] === row ? displayIndex : -1;\n}\n/**\n* Returns the rows in the current display order after assigning their\n* zero-based display indexes.\n*\n* When expanded rows bypass pagination, expanded descendants are inserted into\n* the returned order even though they are absent from the pre-pagination row\n* model.\n*/\nfunction table_getRowsInDisplayOrder(table) {\n\tconst rows = table.getPrePaginatedRowModel().rows;\n\tif (table.options.paginateExpandedRows === false) {\n\t\tconst displayRows = [];\n\t\tconst handleRow = (row) => {\n\t\t\trow._displayIndexCache = displayRows.length;\n\t\t\tdisplayRows.push(row);\n\t\t\tif (row.subRows.length && row.getIsExpanded?.()) row.subRows.forEach(handleRow);\n\t\t};\n\t\trows.forEach(handleRow);\n\t\treturn displayRows;\n\t}\n\tfor (let i = 0; i < rows.length; i++) rows[i]._displayIndexCache = i;\n\treturn rows;\n}\n/**\n* Reads and caches this row's value for a column.\n*\n* The value is produced by the column accessor. Missing columns or display\n* columns without an accessor return `undefined`.\n*\n* @example\n* ```ts\n* const firstName = row_getValue(row, 'firstName')\n* ```\n*/\nfunction row_getValue(row, columnId) {\n\tif (hasOwn(row._valuesCache, columnId)) return row._valuesCache[columnId];\n\tconst column = row.table.getColumn(columnId);\n\tif (!column?.accessorFn) return;\n\trow._valuesCache[columnId] = column.accessorFn(row.original, row.index);\n\treturn row._valuesCache[columnId];\n}\n/**\n* Reads and caches the values used by faceting/grouping for a column.\n*\n* If the column defines `getUniqueValues`, that result is used. Otherwise the\n* row's accessor value is wrapped in a single-item array.\n*\n* @example\n* ```ts\n* const values = row_getUniqueValues(row, 'tags')\n* ```\n*/\nfunction row_getUniqueValues(row, columnId) {\n\tif (hasOwn(row._uniqueValuesCache, columnId)) return row._uniqueValuesCache[columnId];\n\tconst column = row.table.getColumn(columnId);\n\tif (!column?.accessorFn) return;\n\tif (!column.columnDef.getUniqueValues) {\n\t\trow._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n\t\treturn row._uniqueValuesCache[columnId];\n\t}\n\trow._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, row.index);\n\treturn row._uniqueValuesCache[columnId];\n}\n/**\n* Returns a renderable row value for a column.\n*\n* If the accessor value is nullish, the table's `renderFallbackValue` is used\n* instead.\n*\n* @example\n* ```ts\n* const value = row_renderValue(row, 'firstName')\n* ```\n*/\nfunction row_renderValue(row, columnId) {\n\treturn row.getValue(columnId) ?? row.table.options.renderFallbackValue;\n}\n/**\n* Flattens this row's descendant tree into leaf rows.\n*\n* The row itself is not included; only nested `subRows` are walked.\n*\n* @example\n* ```ts\n* const descendants = row_getLeafRows(row)\n* ```\n*/\nfunction row_getLeafRows(row) {\n\treturn flattenBy(row.subRows, (d) => d.subRows);\n}\n/**\n* Returns the deepest structural row depth in the core row model.\n* Root rows are depth `0`, their direct sub-rows are depth `1`, and so on.\n*/\nfunction table_getMaxSubRowDepth(table) {\n\tconst rows = table.getCoreRowModel().flatRows;\n\tlet maxDepth = 0;\n\tfor (let i = 0; i < rows.length; i++) maxDepth = Math.max(maxDepth, rows[i].depth);\n\treturn maxDepth;\n}\n/**\n* Looks up this row's direct parent, if it has one.\n*\n* Parent lookup prefers the core row model for structural parents, then falls\n* back to the pre-pagination row model for generated parent rows.\n*\n* @example\n* ```ts\n* const parent = row_getParentRow(row)\n* ```\n*/\nfunction row_getParentRow(row) {\n\tif (!row.parentId) return;\n\treturn row.table.getCoreRowModel().rowsById[row.parentId] ?? row.table.getRow(row.parentId, true);\n}\n/**\n* Collects this row's ancestor chain from root to direct parent.\n*\n* The current row is not included. Rows without a parent return an empty array.\n*\n* @example\n* ```ts\n* const ancestors = row_getParentRows(row)\n* ```\n*/\nfunction row_getParentRows(row) {\n\tconst parentRows = [];\n\tlet currentRow = row;\n\twhile (true) {\n\t\tconst parentRow = currentRow.getParentRow();\n\t\tif (!parentRow) break;\n\t\tparentRows.push(parentRow);\n\t\tcurrentRow = parentRow;\n\t}\n\treturn parentRows.reverse();\n}\n/**\n* Constructs one cell for each leaf column in this row.\n*\n* The result follows `table.getAllLeafColumns()` order and includes hidden\n* columns; visibility-specific APIs filter this list later.\n*\n* @example\n* ```ts\n* const cells = row_getAllCells(row)\n* ```\n*/\nfunction row_getAllCells(row) {\n\tconst columns = row.table.getAllLeafColumns();\n\tlet cache = row._cellsCache;\n\tif (!cache) cache = row._cellsCache = /* @__PURE__ */ new WeakMap();\n\tconst cells = new Array(columns.length);\n\tfor (let i = 0; i < columns.length; i++) {\n\t\tconst column = columns[i];\n\t\tlet cell = cache.get(column);\n\t\tif (!cell) {\n\t\t\tcell = constructCell(column, row, row.table);\n\t\t\tcache.set(column, cell);\n\t\t}\n\t\tcells[i] = cell;\n\t}\n\treturn cells;\n}\n/**\n* Builds a lookup map of this row's cells keyed by column id.\n*\n* This is the static implementation behind `row.getAllCellsByColumnId()`.\n*\n* @example\n* ```ts\n* const cellsById = row_getAllCellsByColumnId(row)\n* ```\n*/\nfunction row_getAllCellsByColumnId(row) {\n\tconst result = makeObjectMap();\n\tconst cells = row.getAllCells();\n\tfor (let i = 0; i < cells.length; i++) {\n\t\tconst cell = cells[i];\n\t\tresult[cell.column.id] = cell;\n\t}\n\treturn result;\n}\n/**\n* Resolves the stable id for a row.\n*\n* `options.getRowId` wins when provided. Otherwise root rows use their index\n* and child rows append their index to the parent id, such as `0.2`.\n*\n* @example\n* ```ts\n* const id = table_getRowId(originalRow, table, index, parentRow)\n* ```\n*/\nfunction table_getRowId(originalRow, table, index, parent) {\n\treturn table.options.getRowId?.(originalRow, index, parent) ?? (parent ? `${parent.id}.${index}` : String(index));\n}\n/**\n* Looks up a row by id from the current or full row model.\n*\n* By default this searches `table.getRowModel()`. Passing `searchAll` searches\n* the pre-pagination model first, then falls back to the core model.\n*\n* @example\n* ```ts\n* const row = table_getRow(table, rowId, true)\n* ```\n*/\nfunction table_getRow(table, rowId, searchAll) {\n\tlet row = (searchAll ? table.getPrePaginatedRowModel() : table.getRowModel()).rowsById[rowId];\n\tif (!row) {\n\t\trow = table.getCoreRowModel().rowsById[rowId];\n\t\tif (!row) {\n\t\t\tif (process.env.NODE_ENV === \"development\") throw new Error(`getRow could not find row with ID: ${rowId}`);\n\t\t\tthrow new Error();\n\t\t}\n\t}\n\treturn row;\n}\n\n//#endregion\nexport { row_getAllCells, row_getAllCellsByColumnId, row_getDisplayIndex, row_getLeafRows, row_getParentRow, row_getParentRows, row_getUniqueValues, row_getValue, row_renderValue, table_getMaxSubRowDepth, table_getRow, table_getRowId, table_getRowsInDisplayOrder };","import { assignPrototypeAPIs, assignTableAPIs } from \"../../utils.js\";\nimport { row_getAllCells, row_getAllCellsByColumnId, row_getDisplayIndex, row_getLeafRows, row_getParentRow, row_getParentRows, row_getUniqueValues, row_getValue, row_renderValue, table_getMaxSubRowDepth, table_getRow, table_getRowId, table_getRowsInDisplayOrder } from \"./coreRowsFeature.utils.js\";\n\n//#region src/core/rows/coreRowsFeature.ts\n/**\n* Core feature that creates row APIs for values, cells, and tree traversal.\n*/\nconst coreRowsFeature = {\n\tassignRowPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"coreRowsFeature\", prototype, table, {\n\t\t\trow_getDisplayIndex: { fn: (row) => row_getDisplayIndex(row) },\n\t\t\trow_getAllCellsByColumnId: {\n\t\t\t\tfn: (row) => row_getAllCellsByColumnId(row),\n\t\t\t\tmemoDeps: (row) => [row.getAllCells()]\n\t\t\t},\n\t\t\trow_getAllCells: {\n\t\t\t\tfn: (row) => row_getAllCells(row),\n\t\t\t\tmemoDeps: (row) => [row.table.getAllLeafColumns()]\n\t\t\t},\n\t\t\trow_getLeafRows: {\n\t\t\t\tfn: (row) => row_getLeafRows(row),\n\t\t\t\tmemoDeps: (row) => [row.subRows]\n\t\t\t},\n\t\t\trow_getParentRow: { fn: (row) => row_getParentRow(row) },\n\t\t\trow_getParentRows: { fn: (row) => row_getParentRows(row) },\n\t\t\trow_getUniqueValues: { fn: (row, columnId) => row_getUniqueValues(row, columnId) },\n\t\t\trow_getValue: { fn: (row, columnId) => row_getValue(row, columnId) },\n\t\t\trow_renderValue: { fn: (row, columnId) => row_renderValue(row, columnId) }\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"coreRowsFeature\", table, {\n\t\t\ttable_getRowsInDisplayOrder: {\n\t\t\t\tfn: () => table_getRowsInDisplayOrder(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.getPrePaginatedRowModel().rows,\n\t\t\t\t\ttable.options.paginateExpandedRows,\n\t\t\t\t\ttable.options.paginateExpandedRows === false ? table.atoms.expanded?.get() : void 0\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getRowId: { fn: (originalRow, index, parent) => table_getRowId(originalRow, table, index, parent) },\n\t\t\ttable_getRow: { fn: (id, searchAll) => table_getRow(table, id, searchAll) },\n\t\t\ttable_getMaxSubRowDepth: {\n\t\t\t\tfn: () => table_getMaxSubRowDepth(table),\n\t\t\t\tmemoDeps: () => [table.getCoreRowModel()]\n\t\t\t}\n\t\t});\n\t}\n};\n\n//#endregion\nexport { coreRowsFeature };","import { cloneState, functionalUpdate } from \"../../utils.js\";\n\n//#region src/core/table/coreTablesFeature.utils.ts\n/**\n* Synchronizes externally controlled state slices into the table's base atoms.\n*\n* This keeps `options.state` values mirrored in the atom graph so derived\n* atoms, stores, and table APIs read a consistent snapshot.\n*\n* Adapters that update options during their host's render phase pass the\n* state snapshot captured by the committed render as `capturedState` — the\n* shared options object may already hold values from a newer render that\n* never commits. Pass `null` to publish nothing (a captured \"no controlled\n* state\"); omitting the argument reads the current `table.options.state`\n* instead. An optional `compare` suppresses semantically unchanged slice\n* writes; the default remains reference equality.\n*\n* @example\n* ```ts\n* table_syncExternalStateToBaseAtoms(table)\n* table_syncExternalStateToBaseAtoms(table, capturedState ?? null, shallow)\n* ```\n*/\nfunction table_syncExternalStateToBaseAtoms(table, capturedState, compare = (currentState, externalState) => currentState === externalState) {\n\tconst state = capturedState === void 0 ? table.options.state : capturedState;\n\ttable._reactivity.batch(() => {\n\t\tif (state) for (const key in state) {\n\t\t\tconst baseAtom = table.baseAtoms[key];\n\t\t\tif (!baseAtom) continue;\n\t\t\tconst rawExternalState = state[key];\n\t\t\tconst externalState = rawExternalState === void 0 ? table.initialState[key] : rawExternalState;\n\t\t\tif (!compare(table._reactivity.untrack(() => baseAtom.get()), externalState)) baseAtom.set(() => externalState);\n\t\t}\n\t});\n}\n/**\n* Publishes captured controlled state after a host framework commits.\n*\n* Render-phase adapters stage options without synchronizing base atoms, then\n* pass the state captured by the committed render here. The commit signal also\n* invalidates ownership changes when no base atom was written.\n*/\nfunction table_publishExternalState(table, state, compare = (currentState, externalState) => currentState === externalState) {\n\ttable._reactivity.batch(() => {\n\t\ttable_syncExternalStateToBaseAtoms(table, state, compare);\n\t\ttable._reactivity.commit?.();\n\t});\n}\n/**\n* Resets all internal table base atoms to `table.initialState`, then clears\n* transient instance data through registered feature reset hooks.\n*\n* This resets internally owned state slices in a single reactivity batch. Use\n* feature-specific reset APIs when a slice may be externally owned.\n*\n* @example\n* ```ts\n* table_reset(table)\n* ```\n*/\nfunction table_reset(table) {\n\tconst snap = cloneState(table.initialState);\n\ttable._reactivity.batch(() => {\n\t\tconst keys = Object.keys(snap);\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key = keys[i];\n\t\t\ttable.baseAtoms[key].set(snap[key]);\n\t\t}\n\t});\n\tconst features = Object.values(table._features);\n\tfor (let i = 0; i < features.length; i++) features[i].resetTableInstanceData?.(table);\n}\n/**\n* Merges new table options with the current resolved options.\n*\n* If `options.mergeOptions` is provided, it owns the merge behavior; otherwise\n* options are shallow-merged. Static options that should never change after\n* initialization are restored on a fresh object so framework merge helpers may\n* return readonly getter/proxy objects.\n*\n* @example\n* ```ts\n* const options = table_mergeOptions(table, nextOptions)\n* ```\n*/\nfunction table_mergeOptions(table, newOptions) {\n\tconst { features, atoms, initialState } = table.options;\n\tif (!table.options.mergeOptions) return {\n\t\t...table.options,\n\t\t...newOptions,\n\t\tfeatures,\n\t\tatoms,\n\t\tinitialState\n\t};\n\tconst mergedOptions = table.options.mergeOptions(table.options, newOptions);\n\tconst descriptors = { ...Object.getOwnPropertyDescriptors(mergedOptions) };\n\treturn Object.defineProperties(Object.create(Object.getPrototypeOf(mergedOptions)), {\n\t\t...descriptors,\n\t\tfeatures: {\n\t\t\tvalue: features,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t},\n\t\tatoms: {\n\t\t\tvalue: atoms,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t},\n\t\tinitialState: {\n\t\t\tvalue: initialState,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t}\n\t});\n}\n/**\n* Updates the table options object.\n*\n* The updater receives the current resolved options and the merged result is\n* immediately assigned to the table instance.\n*\n* @example\n* ```ts\n* table_setOptions(table, (old) => old)\n* table_setOptions(table, (old) => old, { syncExternalState: false })\n* ```\n*/\nfunction table_setOptions(table, updater, options) {\n\tconst mergedOptions = table_mergeOptions(table, functionalUpdate(updater, table.options));\n\tif (table.optionsStore) table.optionsStore.set(() => mergedOptions);\n\telse table.options = mergedOptions;\n\tif (options?.syncExternalState !== false) table_publishExternalState(table, mergedOptions.state ?? null);\n}\n\n//#endregion\nexport { table_mergeOptions, table_publishExternalState, table_reset, table_setOptions, table_syncExternalStateToBaseAtoms };","import { assignTableAPIs } from \"../../utils.js\";\nimport { table_reset, table_setOptions } from \"./coreTablesFeature.utils.js\";\n\n//#region src/core/table/coreTablesFeature.ts\n/**\n* Core feature that adds base table instance APIs such as reset and setOptions.\n*/\nconst coreTablesFeature = { constructTableAPIs: (table) => {\n\tassignTableAPIs(\"coreTablesFeature\", table, {\n\t\ttable_reset: { fn: () => table_reset(table) },\n\t\ttable_setOptions: { fn: (updater) => table_setOptions(table, updater) }\n\t});\n} };\n\n//#endregion\nexport { coreTablesFeature };","import { coreCellsFeature } from \"./cells/coreCellsFeature.js\";\nimport { coreColumnsFeature } from \"./columns/coreColumnsFeature.js\";\nimport { coreHeadersFeature } from \"./headers/coreHeadersFeature.js\";\nimport { coreRowModelsFeature } from \"./row-models/coreRowModelsFeature.js\";\nimport { coreRowsFeature } from \"./rows/coreRowsFeature.js\";\nimport { coreTablesFeature } from \"./table/coreTablesFeature.js\";\n\n//#region src/core/coreFeatures.ts\n/**\n* The built-in core feature set required by every table.\n*\n* These features provide table, column, row, header, cell, and core row-model behavior before optional feature plugins are added.\n*/\nconst coreFeatures = {\n\tcoreCellsFeature,\n\tcoreColumnsFeature,\n\tcoreHeadersFeature,\n\tcoreRowModelsFeature,\n\tcoreRowsFeature,\n\tcoreTablesFeature\n};\n\n//#endregion\nexport { coreFeatures };","//#region src/helpers/tableFeatures.ts\n/**\n* A helper function to help define the features that are to be imported and applied to a table instance.\n* Use this utility to make it easier to have the correct type inference for the features that are being imported.\n* **Note:** It is recommended to use this utility statically outside of a component.\n*\n* Alongside feature modules, this object carries everything else that is\n* statically stitched into the table:\n*\n* - Row model factories (`sortedRowModel`, `filteredRowModel`, etc.)\n* - Row model function registries (`sortFns`, `filterFns`, `aggregationFns`),\n* whose keys become the valid string values for `sortFn`, `filterFn`,\n* `globalFilterFn`, and `aggregationFn` with full inference\n* - Type-only `tableMeta`/`columnMeta` slots for declaring per-table meta types\n* instead of using global declaration merging. The values are phantom\n* (ignored and stripped at runtime); only their types are used.\n* @example\n* ```\n* import {\n* columnFilteringFeature,\n* createFilteredRowModel,\n* createSortedRowModel,\n* filterFn_includesString,\n* rowSortingFeature,\n* sortFn_alphanumeric,\n* sortFn_text,\n* tableFeatures,\n* } from '@tanstack/react-table'\n* const features = tableFeatures({\n* columnFilteringFeature,\n* rowSortingFeature,\n* filteredRowModel: createFilteredRowModel(),\n* sortedRowModel: createSortedRowModel(),\n* filterFns: { includesString: filterFn_includesString, myCustomFilterFn },\n* sortFns: { alphanumeric: sortFn_alphanumeric, text: sortFn_text },\n* tableMeta: {} as { updateData: (rowIndex: number, columnId: string, value: unknown) => void },\n* columnMeta: {} as { align?: 'left' | 'right' },\n* });\n* const table = useTable({ features, columns, data });\n* ```\n*/\nfunction tableFeatures(features) {\n\treturn features;\n}\n\n//#endregion\nexport { tableFeatures };","//#region src/core/reactivity/coreReactivityFeature.utils.ts\n/**\n* Bridges atom instances to the `Store`/`ReadonlyStore` API by exposing\n* a `state` getter backed by `atom.get()`, and wiring `setState` for\n* writable atoms.\n*\n* @example\n* ```ts\n* const store = atomToStore(atom)\n* ```\n*/\nfunction atomToStore(atom) {\n\tconst store = atom;\n\tObject.defineProperty(atom, \"state\", { get() {\n\t\treturn atom.get();\n\t} });\n\tif (\"set\" in atom) store.setState = atom.set.bind(atom);\n\treturn store;\n}\n\n//#endregion\nexport { atomToStore };","import { cloneState, hasOwn } from \"../../utils.js\";\nimport { table_syncExternalStateToBaseAtoms } from \"./coreTablesFeature.utils.js\";\nimport { coreFeatures } from \"../coreFeatures.js\";\nimport { atomToStore } from \"../reactivity/coreReactivityFeature.utils.js\";\nimport { shallow } from \"@tanstack/store\";\n\n//#region src/core/table/constructTable.ts\n/**\n* Builds the initial table state from registered features and user initial state.\n*\n* Each feature contributes its default state before user-provided `initialState` values are merged in.\n*/\nfunction getInitialTableState(features, initialState = {}) {\n\tObject.values(features).forEach((feature) => {\n\t\tinitialState = feature.getInitialState?.(initialState) ?? initialState;\n\t});\n\treturn cloneState(initialState);\n}\n/**\n* Constructs a table instance from normalized table internals.\n*\n* This wires core properties, feature prototype APIs, and instance data used by table rendering and row-model operations.\n*/\nfunction constructTable(tableOptions) {\n\tconst _reactivity = tableOptions.features.coreReactivityFeature;\n\tconst { aggregationFns, columnMeta: _columnMeta, coreRowModel, expandedRowModel, facetedMinMaxValues, facetedRowModel, facetedUniqueValues, filterFns, filterMeta: _filterMeta, filteredRowModel, groupedRowModel, paginatedRowModel, sortFns, sortedRowModel, tableMeta: _tableMeta, ...features } = tableOptions.features;\n\tconst table = {\n\t\t_cellInstanceInitFns: [],\n\t\t_columnInstanceInitFns: [],\n\t\t_features: {\n\t\t\t...coreFeatures,\n\t\t\t...features\n\t\t},\n\t\t_headerGroupInstanceInitFns: [],\n\t\t_headerInstanceInitFns: [],\n\t\t_reactivity,\n\t\t_rowInstanceInitFns: [],\n\t\t_rowModelFns: {\n\t\t\taggregationFns,\n\t\t\tfilterFns,\n\t\t\tsortFns\n\t\t},\n\t\t_rowModels: {},\n\t\tatoms: {},\n\t\tbaseAtoms: {}\n\t};\n\tconst featuresList = Object.values(table._features);\n\tconst mergedOptions = {\n\t\t...featuresList.reduce((obj, feature) => {\n\t\t\treturn Object.assign(obj, feature.getDefaultTableOptions?.(table));\n\t\t}, {}),\n\t\t...tableOptions\n\t};\n\tif (_reactivity.wrapExternalAtoms && mergedOptions.atoms) for (const [atomKey, _atom] of Object.entries(mergedOptions.atoms)) {\n\t\tconst atom = _atom;\n\t\tconst wrappedAtom = _reactivity.createWritableAtom(atom.get(), { debugName: `externalAtom/${atomKey}` });\n\t\tmergedOptions.atoms[atomKey] = wrappedAtom;\n\t\tlet syncExternal = false;\n\t\tconst syncAtomToWrappedSub = atom.subscribe((value) => {\n\t\t\tif (syncExternal) return;\n\t\t\twrappedAtom.set(value);\n\t\t});\n\t\tconst syncWrappedToAtomSub = wrappedAtom.subscribe((value) => {\n\t\t\tsyncExternal = true;\n\t\t\tatom.set(value);\n\t\t\tsyncExternal = false;\n\t\t});\n\t\t_reactivity.addSubscription(syncAtomToWrappedSub);\n\t\t_reactivity.addSubscription(syncWrappedToAtomSub);\n\t}\n\tif (_reactivity.createOptionsStore) {\n\t\ttable.optionsStore = _reactivity.createWritableAtom(mergedOptions, { debugName: \"table/optionsStore\" });\n\t\tObject.defineProperty(table, \"options\", {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tget() {\n\t\t\t\treturn table.optionsStore.get();\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\ttable.optionsStore.set(() => value);\n\t\t\t}\n\t\t});\n\t} else table.options = mergedOptions;\n\ttable.initialState = getInitialTableState(table._features, table.options.initialState);\n\tconst stateKeys = Object.keys(table.initialState);\n\tfor (let i = 0; i < stateKeys.length; i++) {\n\t\tconst key = stateKeys[i];\n\t\ttable.baseAtoms[key] = _reactivity.createWritableAtom(table.initialState[key], { debugName: `table/baseAtoms/${key}` });\n\t\ttable.atoms[key] = _reactivity.createReadonlyAtom(() => {\n\t\t\tconst options = table.options;\n\t\t\tconst externalAtom = options.atoms?.[key];\n\t\t\tconst reactiveState = externalAtom ? externalAtom.get() : table.baseAtoms[key].get();\n\t\t\tif (externalAtom) return reactiveState;\n\t\t\tconst controlledState = options.state;\n\t\t\tif (controlledState && hasOwn(controlledState, key)) {\n\t\t\t\tconst controlledValue = controlledState[key];\n\t\t\t\treturn controlledValue === void 0 ? table.initialState[key] : controlledValue;\n\t\t\t}\n\t\t\treturn reactiveState;\n\t\t}, { debugName: `table/atoms/${key}` });\n\t}\n\ttable_syncExternalStateToBaseAtoms(table);\n\ttable.store = atomToStore(_reactivity.createReadonlyAtom(() => {\n\t\tconst snapshot = {};\n\t\tfor (let i = 0; i < stateKeys.length; i++) {\n\t\t\tconst key = stateKeys[i];\n\t\t\tsnapshot[key] = table.atoms[key].get();\n\t\t}\n\t\treturn snapshot;\n\t}, {\n\t\tcompare: shallow,\n\t\tdebugName: \"table/store\"\n\t}));\n\tfor (let i = 0; i < featuresList.length; i++) {\n\t\tconst feature = featuresList[i];\n\t\tfeature.initTableInstanceData?.(table);\n\t\tif (feature.initCellInstanceData) table._cellInstanceInitFns.push(feature.initCellInstanceData.bind(feature));\n\t\tif (feature.initColumnInstanceData) table._columnInstanceInitFns.push(feature.initColumnInstanceData.bind(feature));\n\t\tif (feature.initHeaderGroupInstanceData) table._headerGroupInstanceInitFns.push(feature.initHeaderGroupInstanceData.bind(feature));\n\t\tif (feature.initHeaderInstanceData) table._headerInstanceInitFns.push(feature.initHeaderInstanceData.bind(feature));\n\t\tif (feature.initRowInstanceData) table._rowInstanceInitFns.push(feature.initRowInstanceData.bind(feature));\n\t\tfeature.constructTableAPIs?.(table);\n\t}\n\tif (process.env.NODE_ENV === \"development\" && (tableOptions.debugAll || tableOptions.debugTable)) {\n\t\tconst features = Object.keys(table._features);\n\t\tconst rowModels = Object.entries({\n\t\t\tcoreRowModel,\n\t\t\tfilteredRowModel,\n\t\t\tgroupedRowModel,\n\t\t\tsortedRowModel,\n\t\t\texpandedRowModel,\n\t\t\tpaginatedRowModel,\n\t\t\tfacetedRowModel,\n\t\t\tfacetedMinMaxValues,\n\t\t\tfacetedUniqueValues\n\t\t}).filter(([, factory]) => factory).map(([key]) => key);\n\t\tconst states = Object.keys(table.initialState);\n\t\tconsole.log(`Constructing Table Instance\n\n Features: ${features.join(\"\\n \")}\n\n Row Models: ${rowModels.length ? rowModels.join(\"\\n \") : \"(none)\"}\n\n States: ${states.join(\"\\n \")}\\n`, { table });\n\t}\n\treturn table;\n}\n\n//#endregion\nexport { constructTable, getInitialTableState };","import { assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, makeStateUpdater } from \"../../utils.js\";\nimport { cell_getCanSelect, cell_getIsFocused, cell_getIsSelected, cell_getSelectionEdges, cell_getSelectionExtendHandler, cell_getSelectionStartHandler, cell_getTabIndex, getDefaultCellSelectionState, table_autoResetCellSelection, table_extendCellSelection, table_getCellSelectionBounds, table_getCellSelectionColumnIds, table_getCellSelectionColumnIndexes, table_getCellSelectionMergeBounds, table_getCellSelectionRowIds, table_getFocusedCell, table_getSelectedCellCount, table_getSelectedCellIds, table_getSelectedCellRangesData, table_moveCellSelection, table_resetCellSelection, table_selectAllCells, table_selectCellRange, table_setCellSelection, table_setFocusedCell } from \"./cellSelectionFeature.utils.js\";\n\n//#region src/features/cell-selection/cellSelectionFeature.ts\n/**\n* Feature that adds spreadsheet-style cell range selection state and APIs.\n*/\nconst cellSelectionFeature = {\n\tinitTableInstanceData: (table) => {\n\t\ttable._isSelectingCells = false;\n\t},\n\tresetTableInstanceData: (table) => {\n\t\ttable._isSelectingCells = false;\n\t},\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\tcellSelection: getDefaultCellSelectionState(),\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn {\n\t\t\tonCellSelectionChange: makeStateUpdater(\"cellSelection\", table),\n\t\t\tautoResetCellSelection: true,\n\t\t\tenableCellSelection: true,\n\t\t\tenableCellRangeSelection: true,\n\t\t\tenableMultiCellRangeSelection: true,\n\t\t\tenableCellSelectionDrag: true,\n\t\t\tisCellRangeSelectionEvent: (event) => {\n\t\t\t\tconst rangeEvent = event;\n\t\t\t\treturn Boolean(rangeEvent.shiftKey || rangeEvent.nativeEvent?.shiftKey);\n\t\t\t},\n\t\t\tisMultiCellRangeSelectionEvent: (event) => {\n\t\t\t\tconst multiEvent = event;\n\t\t\t\treturn Boolean(multiEvent.ctrlKey || multiEvent.metaKey || multiEvent.nativeEvent?.ctrlKey || multiEvent.nativeEvent?.metaKey);\n\t\t\t}\n\t\t};\n\t},\n\tassignCellPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"cellSelectionFeature\", prototype, table, {\n\t\t\tcell_getCanSelect: { fn: (cell) => cell_getCanSelect(cell) },\n\t\t\tcell_getIsSelected: { fn: (cell) => cell_getIsSelected(cell) },\n\t\t\tcell_getIsFocused: { fn: (cell) => cell_getIsFocused(cell) },\n\t\t\tcell_getTabIndex: { fn: (cell) => cell_getTabIndex(cell) },\n\t\t\tcell_getSelectionEdges: { fn: (cell) => cell_getSelectionEdges(cell) },\n\t\t\tcell_getSelectionStartHandler: { fn: (cell, contextDocument) => cell_getSelectionStartHandler(cell, contextDocument) },\n\t\t\tcell_getSelectionExtendHandler: { fn: (cell) => cell_getSelectionExtendHandler(cell) }\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"cellSelectionFeature\", table, {\n\t\t\ttable_setCellSelection: { fn: (updater) => table_setCellSelection(table, updater) },\n\t\t\ttable_resetCellSelection: { fn: (defaultState) => table_resetCellSelection(table, defaultState) },\n\t\t\ttable_autoResetCellSelection: { fn: () => table_autoResetCellSelection(table) },\n\t\t\ttable_getCellSelectionColumnIndexes: {\n\t\t\t\tfn: () => table_getCellSelectionColumnIndexes(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getCellSelectionMergeBounds: {\n\t\t\t\tfn: () => table_getCellSelectionMergeBounds(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.getCellSpanIndex?.(),\n\t\t\t\t\ttable.getRowsInDisplayOrder(),\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getCellSelectionColumnIndexes\", table_getCellSelectionColumnIndexes)\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getCellSelectionBounds: {\n\t\t\t\tfn: () => table_getCellSelectionBounds(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.cellSelection?.get(),\n\t\t\t\t\ttable.getRowsInDisplayOrder(),\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getCellSelectionColumnIndexes\", table_getCellSelectionColumnIndexes),\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getCellSelectionMergeBounds\", table_getCellSelectionMergeBounds)\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_selectCellRange: { fn: (range, opts) => table_selectCellRange(table, range, opts) },\n\t\t\ttable_selectAllCells: { fn: () => table_selectAllCells(table) },\n\t\t\ttable_setFocusedCell: { fn: (rowId, columnId) => table_setFocusedCell(table, rowId, columnId) },\n\t\t\ttable_getFocusedCell: { fn: () => table_getFocusedCell(table) },\n\t\t\ttable_moveCellSelection: { fn: (direction) => table_moveCellSelection(table, direction) },\n\t\t\ttable_extendCellSelection: { fn: (direction) => table_extendCellSelection(table, direction) },\n\t\t\ttable_getSelectedCellIds: {\n\t\t\t\tfn: () => table_getSelectedCellIds(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds),\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getCellSelectionMergeBounds\", table_getCellSelectionMergeBounds),\n\t\t\t\t\ttable.getRowsInDisplayOrder(),\n\t\t\t\t\ttable.options.enableCellSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getSelectedCellRangesData: {\n\t\t\t\tfn: () => table_getSelectedCellRangesData(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds),\n\t\t\t\t\ttable.getRowsInDisplayOrder(),\n\t\t\t\t\ttable.options.enableCellSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getSelectedCellCount: {\n\t\t\t\tfn: () => table_getSelectedCellCount(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds),\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getCellSelectionMergeBounds\", table_getCellSelectionMergeBounds),\n\t\t\t\t\ttable.getRowsInDisplayOrder(),\n\t\t\t\t\ttable.options.enableCellSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getCellSelectionRowIds: {\n\t\t\t\tfn: () => table_getCellSelectionRowIds(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds), table.getRowsInDisplayOrder()]\n\t\t\t},\n\t\t\ttable_getCellSelectionColumnIds: {\n\t\t\t\tfn: () => table_getCellSelectionColumnIds(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getCellSelectionBounds\", table_getCellSelectionBounds)]\n\t\t\t}\n\t\t});\n\t}\n};\n\n//#endregion\nexport { cellSelectionFeature };","import { makeObjectMap } from \"../../utils.js\";\n\n//#region src/features/column-faceting/columnFacetingFeature.utils.ts\n/**\n* Computes min and max numeric facet values for one column.\n*\n* The configured `facetedMinMaxValues` row-model factory owns the calculation.\n* If no factory is registered, the result is `undefined`.\n*\n* @example\n* ```ts\n* const range = column_getFacetedMinMaxValues(column, table)\n* ```\n*/\nfunction column_getFacetedMinMaxValues(column, table) {\n\tconst facetedMinMaxValues = table._rowModels.facetedMinMaxValues ??= makeObjectMap();\n\tlet facetedMinMaxValuesFn = facetedMinMaxValues[column.id];\n\tif (!facetedMinMaxValuesFn) facetedMinMaxValuesFn = facetedMinMaxValues[column.id] = table.options.features.facetedMinMaxValues?.(table, column.id) ?? (() => void 0);\n\treturn facetedMinMaxValuesFn();\n}\n/**\n* Computes the row model used to derive one column's facet values.\n*\n* The faceted row model normally applies every other active filter while\n* excluding this column's own filter. If no factory is registered, the\n* pre-filtered row model is returned.\n*\n* @example\n* ```ts\n* const rows = column_getFacetedRowModel(column, table)\n* ```\n*/\nfunction column_getFacetedRowModel(column, table) {\n\tconst columnId = column?.id ?? \"\";\n\tconst facetedRowModels = table._rowModels.facetedRowModels ??= makeObjectMap();\n\tlet facetedRowModelFn = facetedRowModels[columnId];\n\tif (!facetedRowModelFn) facetedRowModelFn = facetedRowModels[columnId] = table.options.features.facetedRowModel?.(table, columnId) ?? (() => table.getPreFilteredRowModel());\n\treturn facetedRowModelFn();\n}\n/**\n* Computes unique facet values and their occurrence counts for one column.\n*\n* The configured `facetedUniqueValues` row-model factory owns the calculation.\n* If no factory is registered, an empty `Map` is returned.\n*\n* @example\n* ```ts\n* const values = column_getFacetedUniqueValues(column, table)\n* ```\n*/\nfunction column_getFacetedUniqueValues(column, table) {\n\tconst facetedUniqueValues = table._rowModels.facetedUniqueValues ??= makeObjectMap();\n\tlet facetedUniqueValuesFn = facetedUniqueValues[column.id];\n\tif (!facetedUniqueValuesFn) facetedUniqueValuesFn = facetedUniqueValues[column.id] = table.options.features.facetedUniqueValues?.(table, column.id) ?? createStableEmptyMapFn();\n\treturn facetedUniqueValuesFn();\n}\nfunction createStableEmptyMapFn() {\n\tconst emptyMap = /* @__PURE__ */ new Map();\n\treturn () => emptyMap;\n}\n/**\n* Computes min and max numeric facet values for the global filter context.\n*\n* The global context is requested with the internal `__global__` column id. If\n* no factory is registered, the result is `undefined`.\n*\n* @example\n* ```ts\n* const range = table_getGlobalFacetedMinMaxValues(table)\n* ```\n*/\nfunction table_getGlobalFacetedMinMaxValues(table) {\n\tif (!table._rowModels.globalFacetedMinMaxValues) table._rowModels.globalFacetedMinMaxValues = table.options.features.facetedMinMaxValues?.(table, \"__global__\") ?? (() => void 0);\n\tconst facetedMinMaxValuesFn = table._rowModels.globalFacetedMinMaxValues;\n\treturn facetedMinMaxValuesFn();\n}\n/**\n* Computes the row model used to derive global facet values.\n*\n* The global context is requested with the internal `__global__` column id. If\n* no faceted row-model factory is registered, the pre-filtered row model is\n* returned.\n*\n* @example\n* ```ts\n* const rows = table_getGlobalFacetedRowModel(table)\n* ```\n*/\nfunction table_getGlobalFacetedRowModel(table) {\n\tif (!table._rowModels.globalFacetedRowModel) table._rowModels.globalFacetedRowModel = table.options.features.facetedRowModel?.(table, \"__global__\") ?? (() => table.getPreFilteredRowModel());\n\tconst facetedRowModelFn = table._rowModels.globalFacetedRowModel;\n\treturn facetedRowModelFn();\n}\n/**\n* Computes unique values and occurrence counts for the global filter context.\n*\n* The global context is requested with the internal `__global__` column id. If\n* no factory is registered, an empty `Map` is returned.\n*\n* @example\n* ```ts\n* const values = table_getGlobalFacetedUniqueValues(table)\n* ```\n*/\nfunction table_getGlobalFacetedUniqueValues(table) {\n\tif (!table._rowModels.globalFacetedUniqueValues) table._rowModels.globalFacetedUniqueValues = table.options.features.facetedUniqueValues?.(table, \"__global__\") ?? createStableEmptyMapFn();\n\tconst facetedUniqueValuesFn = table._rowModels.globalFacetedUniqueValues;\n\treturn facetedUniqueValuesFn();\n}\n\n//#endregion\nexport { column_getFacetedMinMaxValues, column_getFacetedRowModel, column_getFacetedUniqueValues, table_getGlobalFacetedMinMaxValues, table_getGlobalFacetedRowModel, table_getGlobalFacetedUniqueValues };","import { assignPrototypeAPIs, assignTableAPIs } from \"../../utils.js\";\nimport { column_getFacetedMinMaxValues, column_getFacetedRowModel, column_getFacetedUniqueValues, table_getGlobalFacetedMinMaxValues, table_getGlobalFacetedRowModel, table_getGlobalFacetedUniqueValues } from \"./columnFacetingFeature.utils.js\";\n\n//#region src/features/column-faceting/columnFacetingFeature.ts\n/**\n* Feature that derives faceted row models, unique values, and min/max values for filters.\n*\n* These APIs are deliberately not memoized at this layer: the stock\n* `createFaceted*` factories memoize internally (like every other stock row\n* model), and an extra memo layer here would freeze custom factories whose\n* data changes independently of the faceted row model. Custom factories own\n* their memoization.\n*/\nconst columnFacetingFeature = {\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnFacetingFeature\", prototype, table, {\n\t\t\tcolumn_getFacetedRowModel: { fn: (column) => column_getFacetedRowModel(column, column.table) },\n\t\t\tcolumn_getFacetedMinMaxValues: { fn: (column) => column_getFacetedMinMaxValues(column, column.table) },\n\t\t\tcolumn_getFacetedUniqueValues: { fn: (column) => column_getFacetedUniqueValues(column, column.table) }\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"columnFacetingFeature\", table, {\n\t\t\ttable_getGlobalFacetedRowModel: { fn: () => table_getGlobalFacetedRowModel(table) },\n\t\t\ttable_getGlobalFacetedMinMaxValues: { fn: () => table_getGlobalFacetedMinMaxValues(table) },\n\t\t\ttable_getGlobalFacetedUniqueValues: { fn: () => table_getGlobalFacetedUniqueValues(table) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { columnFacetingFeature };","import { cloneState, functionalUpdate, isFunction } from \"../../utils.js\";\n\n//#region src/features/column-filtering/columnFilteringFeature.utils.ts\n/**\n* Creates the default column filter state.\n*\n* The feature default is an empty array, meaning no column filters are active.\n* Reset APIs use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const filters = getDefaultColumnFiltersState()\n* ```\n*/\nfunction getDefaultColumnFiltersState() {\n\treturn [];\n}\n/**\n* Chooses a built-in filter function from the column's first core row value.\n*\n* Strings use `includesString`, numbers use `inNumberRange`, booleans and\n* objects use `equals`, dates use `inDateRange`, arrays use `arrIncludes`,\n* and unknown values fall back to `weakEquals`.\n*\n* The chosen filter function is looked up in the table's `filterFns`\n* registry. When it is not registered there, this returns `undefined` and\n* warns in development instead of substituting a different filter function.\n*\n* @example\n* ```ts\n* const filterFn = column_getAutoFilterFn(column)\n* ```\n*/\nfunction column_getAutoFilterFn(column) {\n\tconst filterFns = column.table._rowModelFns.filterFns;\n\tconst rows = column.table.getCoreRowModel().flatRows;\n\tlet value;\n\tfor (let i = 0; i < rows.length; i++) {\n\t\tconst rowValue = rows[i].getValue(column.id);\n\t\tif (rowValue !== null && rowValue !== void 0) {\n\t\t\tvalue = rowValue;\n\t\t\tbreak;\n\t\t}\n\t}\n\tlet filterFnName;\n\tif (typeof value === \"string\") filterFnName = \"includesString\";\n\telse if (typeof value === \"number\") filterFnName = \"inNumberRange\";\n\telse if (typeof value === \"boolean\") filterFnName = \"equals\";\n\telse if (Array.isArray(value)) filterFnName = \"arrIncludes\";\n\telse if (Object.prototype.toString.call(value) === \"[object Date]\") filterFnName = \"inDateRange\";\n\telse if (value !== null && typeof value === \"object\") filterFnName = \"equals\";\n\telse filterFnName = \"weakEquals\";\n\tconst filterFn = filterFns?.[filterFnName];\n\tif (process.env.NODE_ENV === \"development\" && !filterFn) console.warn(`filterFn '${filterFnName}' (auto) for column '${column.id}' is not registered`);\n\treturn filterFn;\n}\n/**\n* Resolves the filter function configured for a column.\n*\n* Function-valued `columnDef.filterFn` is returned directly, `'auto'` delegates\n* to `column_getAutoFilterFn`, and string values are looked up in the table's\n* filter function registry.\n*\n* @example\n* ```ts\n* const filterFn = column_getFilterFn(column)\n* ```\n*/\nfunction column_getFilterFn(column) {\n\tlet filterFn = null;\n\tconst filterFns = column.table._rowModelFns.filterFns;\n\tfilterFn = isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === \"auto\" ? column_getAutoFilterFn(column) : filterFns?.[column.columnDef.filterFn];\n\tif (process.env.NODE_ENV === \"development\" && !filterFn && column.columnDef.filterFn !== \"auto\") console.warn(`filterFn '${String(column.columnDef.filterFn)}' for column '${column.id}' is not registered`);\n\treturn filterFn ?? void 0;\n}\n/**\n* Checks whether column filtering is enabled for this accessor column.\n*\n* The column must have an accessor and filtering must be enabled by the column\n* definition, `enableColumnFilters`, and the table-wide `enableFilters` option.\n*\n* @example\n* ```ts\n* const canFilter = column_getCanFilter(column)\n* ```\n*/\nfunction column_getCanFilter(column) {\n\treturn (column.columnDef.enableColumnFilter ?? true) && (column.table.options.enableColumnFilters ?? true) && (column.table.options.enableFilters ?? true) && !!column.accessorFn;\n}\n/**\n* Checks whether this column currently has an entry in `state.columnFilters`.\n*\n* This only reflects filter state presence; it does not indicate whether the\n* filter removes any rows.\n*\n* @example\n* ```ts\n* const isFiltered = column_getIsFiltered(column)\n* ```\n*/\nfunction column_getIsFiltered(column) {\n\treturn column_getFilterIndex(column) > -1;\n}\n/**\n* Reads this column's current filter value from `state.columnFilters`.\n*\n* Missing filter entries return `undefined`.\n*\n* @example\n* ```ts\n* const value = column_getFilterValue(column)\n* ```\n*/\nfunction column_getFilterValue(column) {\n\treturn column.table.atoms.columnFilters?.get()?.find((d) => d.id === column.id)?.value;\n}\n/**\n* Finds this column's position in the ordered `state.columnFilters` array.\n*\n* The result is `-1` when the column has no active filter.\n*\n* @example\n* ```ts\n* const index = column_getFilterIndex(column)\n* ```\n*/\nfunction column_getFilterIndex(column) {\n\treturn column.table.atoms.columnFilters?.get()?.findIndex((d) => d.id === column.id) ?? -1;\n}\n/**\n* Adds, updates, or removes this column's filter value.\n*\n* The incoming value may be an updater. After resolution, `autoRemove` rules\n* decide whether the filter should be removed instead of stored.\n*\n* @example\n* ```ts\n* column_setFilterValue(column, (old) => String(old ?? '').trim())\n* ```\n*/\nfunction column_setFilterValue(column, value) {\n\ttable_setColumnFilters(column.table, (old) => {\n\t\tconst filterFn = column_getFilterFn(column);\n\t\tconst previousFilter = old.find((d) => d.id === column.id);\n\t\tconst newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : void 0);\n\t\tif (shouldAutoRemoveFilter(filterFn, newFilter, column)) return old.filter((d) => d.id !== column.id);\n\t\tconst newFilterObj = {\n\t\t\tid: column.id,\n\t\t\tvalue: newFilter\n\t\t};\n\t\tif (previousFilter) return old.map((d) => {\n\t\t\tif (d.id === column.id) return newFilterObj;\n\t\t\treturn d;\n\t\t});\n\t\tif (old.length) return [...old, newFilterObj];\n\t\treturn [newFilterObj];\n\t});\n}\n/**\n* Routes a column filter updater through the table's filter change handler.\n*\n* The resolved filters are cleaned before they are emitted: filters for known\n* columns are removed when their filter function says the value should be\n* auto-removed.\n*\n* @example\n* ```ts\n* table_setColumnFilters(table, (old) => old.filter((filter) => filter.id !== 'age'))\n* ```\n*/\nfunction table_setColumnFilters(table, updater) {\n\tconst leafColumnsById = table.getAllLeafColumnsById();\n\tconst updateFn = (old) => {\n\t\treturn functionalUpdate(updater, old).filter((filter) => {\n\t\t\tconst column = leafColumnsById[filter.id];\n\t\t\tif (column) {\n\t\t\t\tif (shouldAutoRemoveFilter(column_getFilterFn(column), filter.value, column)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\t};\n\ttable.options.onColumnFiltersChange?.(updateFn);\n}\n/**\n* Resets `columnFilters` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.columnFilters` when it\n* exists. Passing `true` ignores initial state and resets to `[]`.\n*\n* @example\n* ```ts\n* table_resetColumnFilters(table)\n* table_resetColumnFilters(table, true)\n* ```\n*/\nfunction table_resetColumnFilters(table, defaultState) {\n\ttable_setColumnFilters(table, defaultState ? [] : cloneState(table.initialState.columnFilters ?? []));\n}\n/**\n* Returns whether a filter value should be removed from filter state.\n*\n* `undefined` always removes: it is the universal \"clear this filter\"\n* sentinel used by `setFilterValue(undefined)` and functional updaters. For\n* any other value, a filter function's `autoRemove` hook is authoritative\n* when provided, so custom filter functions can keep values (such as empty\n* strings) that the default heuristic would drop. Without an `autoRemove`\n* hook, empty strings are removed.\n*\n* @example\n* ```ts\n* const removeFilter = shouldAutoRemoveFilter(filterFn, value, column)\n* ```\n*/\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n\tif (typeof value === \"undefined\") return true;\n\tif (filterFn?.autoRemove) return !!filterFn.autoRemove(value, column);\n\treturn typeof value === \"string\" && !value;\n}\n\n//#endregion\nexport { column_getAutoFilterFn, column_getCanFilter, column_getFilterFn, column_getFilterIndex, column_getFilterValue, column_getIsFiltered, column_setFilterValue, getDefaultColumnFiltersState, shouldAutoRemoveFilter, table_resetColumnFilters, table_setColumnFilters };","import { assignPrototypeAPIs, assignTableAPIs, makeObjectMap, makeStateUpdater } from \"../../utils.js\";\nimport { column_getAutoFilterFn, column_getCanFilter, column_getFilterFn, column_getFilterIndex, column_getFilterValue, column_getIsFiltered, column_setFilterValue, getDefaultColumnFiltersState, table_resetColumnFilters, table_setColumnFilters } from \"./columnFilteringFeature.utils.js\";\n\n//#region src/features/column-filtering/columnFilteringFeature.ts\n/**\n* Feature that adds per-column filtering state, options, and column/table filter APIs.\n*/\nconst columnFilteringFeature = {\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\tcolumnFilters: getDefaultColumnFiltersState(),\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultColumnDef: () => {\n\t\treturn { filterFn: \"auto\" };\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn {\n\t\t\tonColumnFiltersChange: makeStateUpdater(\"columnFilters\", table),\n\t\t\tfilterFromLeafRows: false,\n\t\t\tmaxLeafRowFilterDepth: 100\n\t\t};\n\t},\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnFilteringFeature\", prototype, table, {\n\t\t\tcolumn_getAutoFilterFn: { fn: (column) => column_getAutoFilterFn(column) },\n\t\t\tcolumn_getFilterFn: { fn: (column) => column_getFilterFn(column) },\n\t\t\tcolumn_getCanFilter: { fn: (column) => column_getCanFilter(column) },\n\t\t\tcolumn_getIsFiltered: { fn: (column) => column_getIsFiltered(column) },\n\t\t\tcolumn_getFilterValue: { fn: (column) => column_getFilterValue(column) },\n\t\t\tcolumn_getFilterIndex: { fn: (column) => column_getFilterIndex(column) },\n\t\t\tcolumn_setFilterValue: { fn: (column, value) => column_setFilterValue(column, value) }\n\t\t});\n\t},\n\tinitRowInstanceData: (row) => {\n\t\trow.columnFilters = makeObjectMap();\n\t\trow.columnFiltersMeta = makeObjectMap();\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"columnFilteringFeature\", table, {\n\t\t\ttable_setColumnFilters: { fn: (updater) => table_setColumnFilters(table, updater) },\n\t\t\ttable_resetColumnFilters: { fn: (defaultState) => table_resetColumnFilters(table, defaultState) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { columnFilteringFeature };","import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from \"../../utils.js\";\nimport { column_getIndex, column_getIsFirstColumn, column_getIsLastColumn, getDefaultColumnOrderState, table_getColumnIndexes, table_getOrderColumnsFn, table_resetColumnOrder, table_setColumnOrder } from \"./columnOrderingFeature.utils.js\";\n\n//#region src/features/column-ordering/columnOrderingFeature.ts\n/**\n* Feature that adds column ordering state and APIs for ordering leaf columns.\n*/\nconst columnOrderingFeature = {\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\tcolumnOrder: getDefaultColumnOrderState(),\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn { onColumnOrderChange: makeStateUpdater(\"columnOrder\", table) };\n\t},\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnOrderingFeature\", prototype, table, {\n\t\t\tcolumn_getIndex: { fn: (column, position) => column_getIndex(column, position) },\n\t\t\tcolumn_getIsFirstColumn: { fn: (column, position) => column_getIsFirstColumn(column, position) },\n\t\t\tcolumn_getIsLastColumn: { fn: (column, position) => column_getIsLastColumn(column, position) }\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"columnOrderingFeature\", table, {\n\t\t\ttable_getColumnIndexes: {\n\t\t\t\tfn: () => table_getColumnIndexes(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_setColumnOrder: { fn: (updater) => table_setColumnOrder(table, updater) },\n\t\t\ttable_resetColumnOrder: { fn: (defaultState) => table_resetColumnOrder(table, defaultState) },\n\t\t\ttable_getOrderColumnsFn: {\n\t\t\t\tfn: () => table_getOrderColumnsFn(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t}\n\t\t});\n\t}\n};\n\n//#endregion\nexport { columnOrderingFeature };","import { assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, makeStateUpdater } from \"../../utils.js\";\nimport { table_getVisibleLeafColumns } from \"../column-visibility/columnVisibilityFeature.utils.js\";\nimport { column_getCanPin, column_getIsPinned, column_getPinnedIndex, column_pin, getDefaultColumnPinningState, row_getCenterVisibleCells, row_getEndVisibleCells, row_getStartVisibleCells, table_getCenterFlatHeaders, table_getCenterFooterGroups, table_getCenterHeaderGroups, table_getCenterLeafColumns, table_getCenterLeafHeaders, table_getCenterVisibleLeafColumns, table_getEndFlatHeaders, table_getEndFooterGroups, table_getEndHeaderGroups, table_getEndLeafColumns, table_getEndLeafHeaders, table_getEndVisibleLeafColumns, table_getIsSomeColumnsPinned, table_getPinnedLeafColumns, table_getPinnedVisibleLeafColumns, table_getStartFlatHeaders, table_getStartFooterGroups, table_getStartHeaderGroups, table_getStartLeafColumns, table_getStartLeafHeaders, table_getStartVisibleLeafColumns, table_resetColumnPinning, table_setColumnPinning } from \"./columnPinningFeature.utils.js\";\n\n//#region src/features/column-pinning/columnPinningFeature.ts\n/**\n* Feature that adds column pinning state and APIs for logical start, center,\n* and end regions.\n*\n* In LTR languages/layouts, start usually corresponds to left and end to\n* right. In RTL languages/layouts, start usually corresponds to right and end\n* to left.\n*/\nconst columnPinningFeature = {\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\tcolumnPinning: {\n\t\t\t\t...getDefaultColumnPinningState(),\n\t\t\t\t...initialState.columnPinning\n\t\t\t},\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn { onColumnPinningChange: makeStateUpdater(\"columnPinning\", table) };\n\t},\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnPinningFeature\", prototype, table, {\n\t\t\tcolumn_pin: { fn: (column, position) => column_pin(column, position) },\n\t\t\tcolumn_getCanPin: { fn: (column) => column_getCanPin(column) },\n\t\t\tcolumn_getPinnedIndex: { fn: (column) => column_getPinnedIndex(column) },\n\t\t\tcolumn_getIsPinned: { fn: (column) => column_getIsPinned(column) }\n\t\t});\n\t},\n\tassignRowPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnPinningFeature\", prototype, table, {\n\t\t\trow_getCenterVisibleCells: {\n\t\t\t\tfn: (row) => row_getCenterVisibleCells(row),\n\t\t\t\tmemoDeps: (row) => [\n\t\t\t\t\trow.getAllCells(),\n\t\t\t\t\trow.table.atoms.columnPinning?.get(),\n\t\t\t\t\trow.table.atoms.columnVisibility?.get()\n\t\t\t\t]\n\t\t\t},\n\t\t\trow_getStartVisibleCells: {\n\t\t\t\tfn: (row) => row_getStartVisibleCells(row),\n\t\t\t\tmemoDeps: (row) => [\n\t\t\t\t\trow.getAllCells(),\n\t\t\t\t\trow.table.atoms.columnPinning?.get()?.start,\n\t\t\t\t\trow.table.atoms.columnVisibility?.get()\n\t\t\t\t]\n\t\t\t},\n\t\t\trow_getEndVisibleCells: {\n\t\t\t\tfn: (row) => row_getEndVisibleCells(row),\n\t\t\t\tmemoDeps: (row) => [\n\t\t\t\t\trow.getAllCells(),\n\t\t\t\t\trow.table.atoms.columnPinning?.get()?.end,\n\t\t\t\t\trow.table.atoms.columnVisibility?.get()\n\t\t\t\t]\n\t\t\t}\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"columnPinningFeature\", table, {\n\t\t\ttable_setColumnPinning: { fn: (updater) => table_setColumnPinning(table, updater) },\n\t\t\ttable_resetColumnPinning: { fn: (defaultState) => table_resetColumnPinning(table, defaultState) },\n\t\t\ttable_getIsSomeColumnsPinned: { fn: (position) => table_getIsSomeColumnsPinned(table, position) },\n\t\t\ttable_getStartHeaderGroups: {\n\t\t\t\tfn: () => table_getStartHeaderGroups(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.getAllColumns(),\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns),\n\t\t\t\t\ttable.atoms.columnPinning?.get()?.start,\n\t\t\t\t\ttable.atoms.columnOrder?.get()\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getCenterHeaderGroups: {\n\t\t\t\tfn: () => table_getCenterHeaderGroups(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.getAllColumns(),\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns),\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get()\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getEndHeaderGroups: {\n\t\t\t\tfn: () => table_getEndHeaderGroups(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.getAllColumns(),\n\t\t\t\t\tcallMemoOrStaticFn(table, \"getVisibleLeafColumns\", table_getVisibleLeafColumns),\n\t\t\t\t\ttable.atoms.columnPinning?.get()?.end,\n\t\t\t\t\ttable.atoms.columnOrder?.get()\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getStartFooterGroups: {\n\t\t\t\tfn: () => table_getStartFooterGroups(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getStartHeaderGroups\", table_getStartHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getCenterFooterGroups: {\n\t\t\t\tfn: () => table_getCenterFooterGroups(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getCenterHeaderGroups\", table_getCenterHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getEndFooterGroups: {\n\t\t\t\tfn: () => table_getEndFooterGroups(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getEndHeaderGroups\", table_getEndHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getStartFlatHeaders: {\n\t\t\t\tfn: () => table_getStartFlatHeaders(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getStartHeaderGroups\", table_getStartHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getEndFlatHeaders: {\n\t\t\t\tfn: () => table_getEndFlatHeaders(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getEndHeaderGroups\", table_getEndHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getCenterFlatHeaders: {\n\t\t\t\tfn: () => table_getCenterFlatHeaders(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getCenterHeaderGroups\", table_getCenterHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getStartLeafHeaders: {\n\t\t\t\tfn: () => table_getStartLeafHeaders(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getStartHeaderGroups\", table_getStartHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getEndLeafHeaders: {\n\t\t\t\tfn: () => table_getEndLeafHeaders(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getEndHeaderGroups\", table_getEndHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getCenterLeafHeaders: {\n\t\t\t\tfn: () => table_getCenterLeafHeaders(table),\n\t\t\t\tmemoDeps: () => [callMemoOrStaticFn(table, \"getCenterHeaderGroups\", table_getCenterHeaderGroups)]\n\t\t\t},\n\t\t\ttable_getStartLeafColumns: {\n\t\t\t\tfn: () => table_getStartLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getEndLeafColumns: {\n\t\t\t\tfn: () => table_getEndLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getCenterLeafColumns: {\n\t\t\t\tfn: () => table_getCenterLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getPinnedLeafColumns: { fn: (position) => table_getPinnedLeafColumns(table, position) },\n\t\t\ttable_getStartVisibleLeafColumns: {\n\t\t\t\tfn: () => table_getStartVisibleLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getCenterVisibleLeafColumns: {\n\t\t\t\tfn: () => table_getCenterVisibleLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getEndVisibleLeafColumns: {\n\t\t\t\tfn: () => table_getEndVisibleLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getPinnedVisibleLeafColumns: { fn: (position) => table_getPinnedVisibleLeafColumns(table, position) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { columnPinningFeature };","import { callMemoOrStaticFn, cloneState, hasOwn, makeObjectMap } from \"../../utils.js\";\nimport { table_getCenterHeaderGroups, table_getEndHeaderGroups, table_getPinnedVisibleLeafColumns, table_getStartHeaderGroups } from \"../column-pinning/columnPinningFeature.utils.js\";\n\n//#region src/features/column-sizing/columnSizingFeature.utils.ts\n/**\n* Creates the default committed column sizing state.\n*\n* The feature default is an empty map, so columns fall back to their column def\n* size or the built-in sizing defaults.\n*\n* @example\n* ```ts\n* const sizing = getDefaultColumnSizingState()\n* ```\n*/\nfunction getDefaultColumnSizingState() {\n\treturn makeObjectMap();\n}\n/**\n* Creates the built-in sizing defaults for column definitions.\n*\n* Columns default to `size: 150`, `minSize: 20`, and\n* `maxSize: Number.MAX_SAFE_INTEGER` unless overridden by column definitions or\n* table defaults.\n*\n* @example\n* ```ts\n* const defaults = getDefaultColumnSizingColumnDef()\n* ```\n*/\nfunction getDefaultColumnSizingColumnDef() {\n\treturn {\n\t\tsize: 150,\n\t\tminSize: 20,\n\t\tmaxSize: Number.MAX_SAFE_INTEGER\n\t};\n}\n/**\n* Resolves a column's current pixel size.\n*\n* Committed `state.columnSizing[column.id]` wins over `columnDef.size`, then the\n* built-in default size. The result is clamped between min and max size.\n*\n* @example\n* ```ts\n* const width = column_getSize(column)\n* ```\n*/\nfunction column_getSize(column) {\n\tconst defaultSizes = getDefaultColumnSizingColumnDef();\n\tconst columnSizing = column.table.atoms.columnSizing?.get();\n\tconst columnSize = columnSizing && hasOwn(columnSizing, column.id) ? columnSizing[column.id] : void 0;\n\treturn Math.min(Math.max(column.columnDef.minSize ?? defaultSizes.minSize, columnSize ?? column.columnDef.size ?? defaultSizes.size), column.columnDef.maxSize ?? defaultSizes.maxSize);\n}\nfunction buildColumnOffsets(columns) {\n\tconst starts = makeObjectMap();\n\tconst afters = makeObjectMap();\n\tconst sizes = new Array(columns.length);\n\tlet start = 0;\n\tfor (let i = 0; i < columns.length; i++) {\n\t\tconst column = columns[i];\n\t\tconst size = callMemoOrStaticFn(column, \"getSize\", column_getSize);\n\t\tsizes[i] = size;\n\t\tstarts[column.id] = start;\n\t\tstart += size;\n\t}\n\tlet after = 0;\n\tfor (let i = columns.length - 1; i >= 0; i--) {\n\t\tafters[columns[i].id] = after;\n\t\tafter += sizes[i];\n\t}\n\treturn {\n\t\tstarts,\n\t\tafters\n\t};\n}\n/**\n* Builds start and after offset maps for every visible leaf column, computed\n* once per pinning region plus the full visible list.\n*\n* A single table-level memo of this result backs all `column.getStart()` and\n* `column.getAfter()` calls with O(1) lookups.\n*\n* @example\n* ```ts\n* const offsets = table_getColumnOffsets(table)\n* const startOffset = offsets.start.starts[column.id]\n* ```\n*/\nfunction table_getColumnOffsets(table) {\n\treturn {\n\t\tall: buildColumnOffsets(table_getPinnedVisibleLeafColumns(table)),\n\t\tcenter: buildColumnOffsets(table_getPinnedVisibleLeafColumns(table, \"center\")),\n\t\tstart: buildColumnOffsets(table_getPinnedVisibleLeafColumns(table, \"start\")),\n\t\tend: buildColumnOffsets(table_getPinnedVisibleLeafColumns(table, \"end\"))\n\t};\n}\nfunction toOffsetsKey(position) {\n\treturn position === \"start\" ? \"start\" : position === \"end\" ? \"end\" : position === \"center\" ? \"center\" : \"all\";\n}\n/**\n* Computes the offset from the start edge of a pinning region to this column.\n*\n* The value is the sum of all previous visible leaf column sizes in the\n* requested `'start'`, `'center'`, or `'end'` region.\n*\n* `start` and `end` are logical positions. In LTR languages/layouts, `start`\n* usually corresponds to left and `end` to right. In RTL languages/layouts,\n* `start` usually corresponds to right and `end` to left.\n*\n* @example\n* ```ts\n* const startOffset = column_getStart(column, 'start')\n* ```\n*/\nfunction column_getStart(column, position) {\n\treturn callMemoOrStaticFn(column.table, \"getColumnOffsets\", table_getColumnOffsets)[toOffsetsKey(position)].starts[column.id] ?? 0;\n}\n/**\n* Computes the offset from the end edge of a pinning region after this column.\n*\n* The value is the sum of all following visible leaf column sizes in the\n* requested region.\n*\n* @example\n* ```ts\n* const endOffset = column_getAfter(column, 'end')\n* ```\n*/\nfunction column_getAfter(column, position) {\n\treturn callMemoOrStaticFn(column.table, \"getColumnOffsets\", table_getColumnOffsets)[toOffsetsKey(position)].afters[column.id] ?? 0;\n}\n/**\n* Removes this column's committed size override.\n*\n* After reset, the column resolves size from `columnDef.size` or built-in\n* defaults again.\n*\n* @example\n* ```ts\n* column_resetSize(column)\n* ```\n*/\nfunction column_resetSize(column) {\n\ttable_setColumnSizing(column.table, (old) => {\n\t\tconst rest = makeObjectMap();\n\t\tconst columnIds = Object.keys(old);\n\t\tfor (let i = 0; i < columnIds.length; i++) {\n\t\t\tconst columnId = columnIds[i];\n\t\t\tif (columnId !== column.id) rest[columnId] = old[columnId];\n\t\t}\n\t\treturn rest;\n\t});\n}\nfunction sumHeaderSize(header) {\n\tif (!header.subHeaders.length) return column_getSize(header.column);\n\tlet sum = 0;\n\tfor (let i = 0; i < header.subHeaders.length; i++) sum += sumHeaderSize(header.subHeaders[i]);\n\treturn sum;\n}\n/**\n* Computes a header's rendered size from its leaf headers.\n*\n* Group headers sum the sizes of all descendant leaf columns. Leaf headers use\n* their column's current size.\n*\n* @example\n* ```ts\n* const width = header_getSize(header)\n* ```\n*/\nfunction header_getSize(header) {\n\treturn sumHeaderSize(header);\n}\n/**\n* Computes a header's offset from the start of its header group.\n*\n* The offset is the previous sibling header's start plus size, or `0` for the\n* first header in the group.\n*\n* @example\n* ```ts\n* const offset = header_getStart(header)\n* ```\n*/\nfunction header_getStart(header) {\n\tif (header.index > 0) {\n\t\tconst prevSiblingHeader = header.headerGroup?.headers[header.index - 1];\n\t\tif (prevSiblingHeader) return callMemoOrStaticFn(prevSiblingHeader, \"getStart\", header_getStart) + callMemoOrStaticFn(prevSiblingHeader, \"getSize\", header_getSize);\n\t}\n\treturn 0;\n}\n/**\n* Routes a committed column sizing updater through the table's sizing handler.\n*\n* The updater may be a next size map or a function of the previous map,\n* matching the instance `table.setColumnSizing` behavior.\n*\n* @example\n* ```ts\n* table_setColumnSizing(table, (old) => ({ ...old, age: 96 }))\n* ```\n*/\nfunction table_setColumnSizing(table, updater) {\n\ttable.options.onColumnSizingChange?.(updater);\n}\n/**\n* Resets `columnSizing` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.columnSizing` when it\n* exists. Passing `true` ignores initial state and resets to `{}`.\n*\n* @example\n* ```ts\n* table_resetColumnSizing(table)\n* table_resetColumnSizing(table, true)\n* ```\n*/\nfunction table_resetColumnSizing(table, defaultState) {\n\ttable_setColumnSizing(table, defaultState ? makeObjectMap() : Object.assign(makeObjectMap(), cloneState(table.initialState.columnSizing ?? {})));\n}\n/**\n* Sums the rendered size of the full table header row.\n*\n* This includes start, center, and end columns in the main header group.\n*\n* @example\n* ```ts\n* const width = table_getTotalSize(table)\n* ```\n*/\nfunction table_getTotalSize(table) {\n\treturn table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n\t\treturn sum + header_getSize(header);\n\t}, 0) ?? 0;\n}\n/**\n* Sums the rendered size of the logical start pinned header region.\n*\n* An empty start pinning region returns `0`.\n*\n* @example\n* ```ts\n* const width = table_getStartTotalSize(table)\n* ```\n*/\nfunction table_getStartTotalSize(table) {\n\treturn callMemoOrStaticFn(table, \"getStartHeaderGroups\", table_getStartHeaderGroups)[0]?.headers.reduce((sum, header) => {\n\t\treturn sum + header_getSize(header);\n\t}, 0) ?? 0;\n}\n/**\n* Sums the rendered size of the center, unpinned header region.\n*\n* An empty center region returns `0`.\n*\n* @example\n* ```ts\n* const width = table_getCenterTotalSize(table)\n* ```\n*/\nfunction table_getCenterTotalSize(table) {\n\treturn callMemoOrStaticFn(table, \"getCenterHeaderGroups\", table_getCenterHeaderGroups)[0]?.headers.reduce((sum, header) => {\n\t\treturn sum + header_getSize(header);\n\t}, 0) ?? 0;\n}\n/**\n* Sums the rendered size of the logical end pinned header region.\n*\n* An empty end pinning region returns `0`.\n*\n* @example\n* ```ts\n* const width = table_getEndTotalSize(table)\n* ```\n*/\nfunction table_getEndTotalSize(table) {\n\treturn callMemoOrStaticFn(table, \"getEndHeaderGroups\", table_getEndHeaderGroups)[0]?.headers.reduce((sum, header) => {\n\t\treturn sum + header_getSize(header);\n\t}, 0) ?? 0;\n}\n\n//#endregion\nexport { column_getAfter, column_getSize, column_getStart, column_resetSize, getDefaultColumnSizingColumnDef, getDefaultColumnSizingState, header_getSize, header_getStart, table_getCenterTotalSize, table_getColumnOffsets, table_getEndTotalSize, table_getStartTotalSize, table_getTotalSize, table_resetColumnSizing, table_setColumnSizing };","import { cloneState, makeObjectMap } from \"../../utils.js\";\nimport { column_getSize, header_getSize, table_setColumnSizing } from \"../column-sizing/columnSizingFeature.utils.js\";\n\n//#region src/features/column-resizing/columnResizingFeature.utils.ts\n/**\n* Creates the default transient column resizing state.\n*\n* The feature default represents no active drag interaction. Reset APIs use\n* this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const resizeInfo = getDefaultColumnResizingState()\n* ```\n*/\nfunction getDefaultColumnResizingState() {\n\treturn {\n\t\tstartOffset: null,\n\t\tstartSize: null,\n\t\tdeltaOffset: null,\n\t\tdeltaPercentage: null,\n\t\tisResizingColumn: false,\n\t\tcolumnSizingStart: []\n\t};\n}\n/**\n* Checks whether this column can start a resize interaction.\n*\n* Both `columnDef.enableResizing` and table `enableColumnResizing` default to\n* `true`.\n*\n* @example\n* ```ts\n* const canResize = column_getCanResize(column)\n* ```\n*/\nfunction column_getCanResize(column) {\n\treturn (column.columnDef.enableResizing ?? true) && (column.table.options.enableColumnResizing ?? true);\n}\n/**\n* Checks whether this column is the active column resize target.\n*\n* The value is read from `state.columnResizing.isResizingColumn`.\n*\n* @example\n* ```ts\n* const isResizing = column_getIsResizing(column)\n* ```\n*/\nfunction column_getIsResizing(column) {\n\treturn column.table.atoms.columnResizing?.get()?.isResizingColumn === column.id;\n}\n/**\n* Creates the pointer/touch start handler for resizing a header.\n*\n* The handler records starting sizes for all leaf headers, tracks drag deltas,\n* writes transient resize info, and commits column sizes on change or drag end\n* depending on `columnResizeMode`.\n*\n* @example\n* ```ts\n* const onMouseDown = header_getResizeHandler(header)\n* ```\n*/\nfunction header_getResizeHandler(header, _contextDocument) {\n\tconst column = header.table.getColumn(header.column.id);\n\tconst canResize = column_getCanResize(column);\n\treturn (event) => {\n\t\tif (!canResize) return;\n\t\tif (isTouchStartEvent(event)) {\n\t\t\tif (event.touches.length > 1) return;\n\t\t}\n\t\tconst startSize = header_getSize(header);\n\t\tconst columnSizingStart = header.getLeafHeaders().map((leafHeader) => [leafHeader.column.id, column_getSize(leafHeader.column)]);\n\t\tconst clientX = isTouchStartEvent(event) ? Math.round(event.touches[0].clientX) : event.clientX;\n\t\tconst newColumnSizing = makeObjectMap();\n\t\tconst updateOffset = (eventType, clientXPos) => {\n\t\t\tif (typeof clientXPos !== \"number\") return;\n\t\t\tconst table = column.table;\n\t\t\tconst isCommit = table.options.columnResizeMode === \"onChange\" || eventType === \"end\";\n\t\t\ttable._reactivity.batch(() => {\n\t\t\t\ttable_setColumnResizing(table, (old) => {\n\t\t\t\t\tconst deltaDirection = table.options.columnResizeDirection === \"rtl\" ? -1 : 1;\n\t\t\t\t\tconst deltaOffset = (clientXPos - (old.startOffset ?? 0)) * deltaDirection;\n\t\t\t\t\tconst startSize = old.startSize ?? 0;\n\t\t\t\t\tconst deltaPercentage = Math.max(startSize > 0 ? deltaOffset / startSize : 0, -.999999);\n\t\t\t\t\tif (isCommit) {\n\t\t\t\t\t\tconst columnSizingStart = old.columnSizingStart;\n\t\t\t\t\t\tfor (let i = 0; i < columnSizingStart.length; i++) {\n\t\t\t\t\t\t\tconst entry = columnSizingStart[i];\n\t\t\t\t\t\t\tconst headerSize = entry[1];\n\t\t\t\t\t\t\tnewColumnSizing[entry[0]] = Math.round(Math.max(headerSize > 0 ? headerSize + headerSize * deltaPercentage : deltaOffset / columnSizingStart.length, 0) * 100) / 100;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...old,\n\t\t\t\t\t\tdeltaOffset,\n\t\t\t\t\t\tdeltaPercentage\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tif (isCommit) table_setColumnSizing(table, (old) => Object.assign(makeObjectMap(), old, newColumnSizing));\n\t\t\t});\n\t\t};\n\t\tlet moveRafId = null;\n\t\tlet hasPendingMove = false;\n\t\tlet latestMoveX;\n\t\tconst flushMove = () => {\n\t\t\tif (hasPendingMove) {\n\t\t\t\thasPendingMove = false;\n\t\t\t\tupdateOffset(\"move\", latestMoveX);\n\t\t\t\tmoveRafId = requestAnimationFrame(flushMove);\n\t\t\t} else moveRafId = null;\n\t\t};\n\t\tconst onMove = (clientXPos) => {\n\t\t\tlatestMoveX = clientXPos;\n\t\t\tif (typeof requestAnimationFrame !== \"function\") {\n\t\t\t\tupdateOffset(\"move\", clientXPos);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (moveRafId !== null) {\n\t\t\t\thasPendingMove = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tupdateOffset(\"move\", clientXPos);\n\t\t\tmoveRafId = requestAnimationFrame(flushMove);\n\t\t};\n\t\tconst onEnd = (clientXPos) => {\n\t\t\tif (moveRafId !== null) {\n\t\t\t\tcancelAnimationFrame(moveRafId);\n\t\t\t\tmoveRafId = null;\n\t\t\t\thasPendingMove = false;\n\t\t\t}\n\t\t\tcolumn.table._reactivity.batch(() => {\n\t\t\t\tupdateOffset(\"end\", clientXPos ?? latestMoveX);\n\t\t\t\ttable_setColumnResizing(column.table, (old) => ({\n\t\t\t\t\t...old,\n\t\t\t\t\tisResizingColumn: false,\n\t\t\t\t\tstartOffset: null,\n\t\t\t\t\tstartSize: null,\n\t\t\t\t\tdeltaOffset: null,\n\t\t\t\t\tdeltaPercentage: null,\n\t\t\t\t\tcolumnSizingStart: []\n\t\t\t\t}));\n\t\t\t});\n\t\t};\n\t\tconst contextDocument = _contextDocument || (typeof document !== \"undefined\" ? document : null);\n\t\tconst mouseEvents = {\n\t\t\tmoveHandler: (e) => onMove(e.clientX),\n\t\t\tupHandler: (e) => {\n\t\t\t\tcontextDocument?.removeEventListener(\"mousemove\", mouseEvents.moveHandler);\n\t\t\t\tcontextDocument?.removeEventListener(\"mouseup\", mouseEvents.upHandler);\n\t\t\t\tonEnd(e.clientX);\n\t\t\t}\n\t\t};\n\t\tconst touchEvents = {\n\t\t\tmoveHandler: (touchEvent) => {\n\t\t\t\tif (touchEvent.cancelable) {\n\t\t\t\t\ttouchEvent.preventDefault();\n\t\t\t\t\ttouchEvent.stopPropagation();\n\t\t\t\t}\n\t\t\t\tonMove(touchEvent.touches[0].clientX);\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tupHandler: (e) => {\n\t\t\t\tremoveTouchEvents();\n\t\t\t\tif (e.cancelable) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\t\t\t\tonEnd(e.touches[0]?.clientX);\n\t\t\t},\n\t\t\tcancelHandler: () => {\n\t\t\t\tremoveTouchEvents();\n\t\t\t\tonEnd();\n\t\t\t}\n\t\t};\n\t\tconst removeTouchEvents = () => {\n\t\t\tcontextDocument?.removeEventListener(\"touchmove\", touchEvents.moveHandler);\n\t\t\tcontextDocument?.removeEventListener(\"touchend\", touchEvents.upHandler);\n\t\t\tcontextDocument?.removeEventListener(\"touchcancel\", touchEvents.cancelHandler);\n\t\t};\n\t\tconst passiveIfSupported = passiveEventSupported() ? { passive: false } : false;\n\t\tif (isTouchStartEvent(event)) {\n\t\t\tcontextDocument?.addEventListener(\"touchmove\", touchEvents.moveHandler, passiveIfSupported);\n\t\t\tcontextDocument?.addEventListener(\"touchend\", touchEvents.upHandler, passiveIfSupported);\n\t\t\tcontextDocument?.addEventListener(\"touchcancel\", touchEvents.cancelHandler, passiveIfSupported);\n\t\t} else {\n\t\t\tcontextDocument?.addEventListener(\"mousemove\", mouseEvents.moveHandler, passiveIfSupported);\n\t\t\tcontextDocument?.addEventListener(\"mouseup\", mouseEvents.upHandler, passiveIfSupported);\n\t\t}\n\t\ttable_setColumnResizing(column.table, (old) => ({\n\t\t\t...old,\n\t\t\tstartOffset: clientX,\n\t\t\tstartSize,\n\t\t\tdeltaOffset: 0,\n\t\t\tdeltaPercentage: 0,\n\t\t\tcolumnSizingStart,\n\t\t\tisResizingColumn: column.id\n\t\t}));\n\t};\n}\n/**\n* Routes a transient column resizing updater through the table's resize handler.\n*\n* This state tracks the active drag interaction; committed widths live in\n* `columnSizing`.\n*\n* @example\n* ```ts\n* table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))\n* ```\n*/\nfunction table_setColumnResizing(table, updater) {\n\ttable.options.onColumnResizingChange?.(updater);\n}\n/**\n* Resets `columnResizing` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.columnResizing` when\n* it exists. Passing `true` ignores initial state and resets to the no-drag\n* default state.\n*\n* @example\n* ```ts\n* table_resetHeaderSizeInfo(table)\n* table_resetHeaderSizeInfo(table, true)\n* ```\n*/\nfunction table_resetHeaderSizeInfo(table, defaultState) {\n\ttable_setColumnResizing(table, defaultState ? getDefaultColumnResizingState() : cloneState(table.initialState.columnResizing ?? getDefaultColumnResizingState()));\n}\nlet passiveSupported = null;\n/**\n* Detects whether the current environment supports passive event listeners.\n*\n* Column resizing uses this to register pointer and touch listeners with\n* `passive: false` only when the environment understands passive options.\n*\n* @example\n* ```ts\n* const canUsePassiveListeners = passiveEventSupported()\n* ```\n*/\nfunction passiveEventSupported() {\n\tif (typeof passiveSupported === \"boolean\") return passiveSupported;\n\tlet supported = false;\n\ttry {\n\t\tconst options = { get passive() {\n\t\t\tsupported = true;\n\t\t\treturn false;\n\t\t} };\n\t\tconst noop = () => {};\n\t\twindow.addEventListener(\"test\", noop, options);\n\t\twindow.removeEventListener(\"test\", noop);\n\t} catch (err) {\n\t\tsupported = false;\n\t}\n\tpassiveSupported = supported;\n\treturn passiveSupported;\n}\n/**\n* Narrows an unknown event to a `touchstart` event.\n*\n* Column resizing uses this before reading touch coordinates and installing\n* touch-specific listeners.\n*\n* @example\n* ```ts\n* const isTouch = isTouchStartEvent(event)\n* ```\n*/\nfunction isTouchStartEvent(e) {\n\treturn e.type === \"touchstart\";\n}\n\n//#endregion\nexport { column_getCanResize, column_getIsResizing, getDefaultColumnResizingState, header_getResizeHandler, isTouchStartEvent, passiveEventSupported, table_resetHeaderSizeInfo, table_setColumnResizing };","import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from \"../../utils.js\";\nimport { column_getCanResize, column_getIsResizing, getDefaultColumnResizingState, header_getResizeHandler, table_resetHeaderSizeInfo, table_setColumnResizing } from \"./columnResizingFeature.utils.js\";\n\n//#region src/features/column-resizing/columnResizingFeature.ts\n/**\n* Feature that adds column resizing state, options, and resize handlers.\n*/\nconst columnResizingFeature = {\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\tcolumnResizing: getDefaultColumnResizingState(),\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn {\n\t\t\tcolumnResizeMode: \"onEnd\",\n\t\t\tcolumnResizeDirection: \"ltr\",\n\t\t\tonColumnResizingChange: makeStateUpdater(\"columnResizing\", table)\n\t\t};\n\t},\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnResizingFeature\", prototype, table, {\n\t\t\tcolumn_getCanResize: { fn: (column) => column_getCanResize(column) },\n\t\t\tcolumn_getIsResizing: { fn: (column) => column_getIsResizing(column) }\n\t\t});\n\t},\n\tassignHeaderPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnResizingFeature\", prototype, table, { header_getResizeHandler: { fn: (header, _contextDocument) => header_getResizeHandler(header, _contextDocument) } });\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"columnResizingFeature\", table, {\n\t\t\ttable_setColumnResizing: { fn: (updater) => table_setColumnResizing(table, updater) },\n\t\t\ttable_resetHeaderSizeInfo: { fn: (defaultState) => table_resetHeaderSizeInfo(table, defaultState) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { columnResizingFeature };","import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from \"../../utils.js\";\nimport { column_getAfter, column_getSize, column_getStart, column_resetSize, getDefaultColumnSizingColumnDef, getDefaultColumnSizingState, header_getSize, header_getStart, table_getCenterTotalSize, table_getColumnOffsets, table_getEndTotalSize, table_getStartTotalSize, table_getTotalSize, table_resetColumnSizing, table_setColumnSizing } from \"./columnSizingFeature.utils.js\";\n\n//#region src/features/column-sizing/columnSizingFeature.ts\n/**\n* Feature that adds column sizing state, defaults, and size measurement APIs.\n*/\nconst columnSizingFeature = {\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\tcolumnSizing: getDefaultColumnSizingState(),\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultColumnDef: () => {\n\t\treturn getDefaultColumnSizingColumnDef();\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn { onColumnSizingChange: makeStateUpdater(\"columnSizing\", table) };\n\t},\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnSizingFeature\", prototype, table, {\n\t\t\tcolumn_getSize: {\n\t\t\t\tfn: (column) => column_getSize(column),\n\t\t\t\tmemoDeps: (column) => [table.options.columns, table.atoms.columnSizing?.get()?.[column.id]]\n\t\t\t},\n\t\t\tcolumn_getStart: { fn: (column, position) => column_getStart(column, position) },\n\t\t\tcolumn_getAfter: { fn: (column, position) => column_getAfter(column, position) },\n\t\t\tcolumn_resetSize: { fn: (column) => column_resetSize(column) }\n\t\t});\n\t},\n\tassignHeaderPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnSizingFeature\", prototype, table, {\n\t\t\theader_getSize: {\n\t\t\t\tfn: (header) => header_getSize(header),\n\t\t\t\tmemoDeps: (header) => [table.options.columns, header.column.columns.length > 0 ? table.atoms.columnSizing?.get() : table.atoms.columnSizing?.get()?.[header.column.id]]\n\t\t\t},\n\t\t\theader_getStart: {\n\t\t\t\tfn: (header) => header_getStart(header),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnSizing?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t}\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"columnSizingFeature\", table, {\n\t\t\ttable_getColumnOffsets: {\n\t\t\t\tfn: () => table_getColumnOffsets(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnSizing?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_setColumnSizing: { fn: (updater) => table_setColumnSizing(table, updater) },\n\t\t\ttable_resetColumnSizing: { fn: (defaultState) => table_resetColumnSizing(table, defaultState) },\n\t\t\ttable_getTotalSize: {\n\t\t\t\tfn: () => table_getTotalSize(table),\n\t\t\t\tmemoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]\n\t\t\t},\n\t\t\ttable_getStartTotalSize: {\n\t\t\t\tfn: () => table_getStartTotalSize(table),\n\t\t\t\tmemoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]\n\t\t\t},\n\t\t\ttable_getCenterTotalSize: {\n\t\t\t\tfn: () => table_getCenterTotalSize(table),\n\t\t\t\tmemoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]\n\t\t\t},\n\t\t\ttable_getEndTotalSize: {\n\t\t\t\tfn: () => table_getEndTotalSize(table),\n\t\t\t\tmemoDeps: () => [table.atoms.columnSizing?.get(), table.getHeaderGroups()]\n\t\t\t}\n\t\t});\n\t}\n};\n\n//#endregion\nexport { columnSizingFeature };","import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from \"../../utils.js\";\nimport { column_getCanHide, column_getIsVisible, column_getToggleVisibilityHandler, column_toggleVisibility, getDefaultColumnVisibilityState, row_getVisibleCells, row_getVisibleCellsByColumnId, table_getIsAllColumnsVisible, table_getIsSomeColumnsVisible, table_getToggleAllColumnsVisibilityHandler, table_getVisibleFlatColumns, table_getVisibleLeafColumns, table_resetColumnVisibility, table_setColumnVisibility, table_toggleAllColumnsVisible } from \"./columnVisibilityFeature.utils.js\";\n\n//#region src/features/column-visibility/columnVisibilityFeature.ts\n/**\n* Feature that adds column visibility state and APIs for hiding and showing columns.\n*/\nconst columnVisibilityFeature = {\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\tcolumnVisibility: getDefaultColumnVisibilityState(),\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn { onColumnVisibilityChange: makeStateUpdater(\"columnVisibility\", table) };\n\t},\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnVisibilityFeature\", prototype, table, {\n\t\t\tcolumn_getIsVisible: {\n\t\t\t\tfn: (column) => column_getIsVisible(column),\n\t\t\t\tmemoDeps: (column) => [\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\tcolumn.columns\n\t\t\t\t]\n\t\t\t},\n\t\t\tcolumn_getCanHide: { fn: (column) => column_getCanHide(column) },\n\t\t\tcolumn_getToggleVisibilityHandler: { fn: (column) => column_getToggleVisibilityHandler(column) },\n\t\t\tcolumn_toggleVisibility: { fn: (column, visible) => column_toggleVisibility(column, visible) }\n\t\t});\n\t},\n\tassignRowPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"columnVisibilityFeature\", prototype, table, {\n\t\t\trow_getVisibleCells: {\n\t\t\t\tfn: (row) => row_getVisibleCells(row),\n\t\t\t\tmemoDeps: (row) => [\n\t\t\t\t\trow.getAllCells(),\n\t\t\t\t\ttable.atoms.columnPinning?.get(),\n\t\t\t\t\ttable.atoms.columnVisibility?.get()\n\t\t\t\t]\n\t\t\t},\n\t\t\trow_getVisibleCellsByColumnId: {\n\t\t\t\tfn: (row) => row_getVisibleCellsByColumnId(row),\n\t\t\t\tmemoDeps: (row) => [row.getAllCells(), table.atoms.columnVisibility?.get()]\n\t\t\t}\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"columnVisibilityFeature\", table, {\n\t\t\ttable_getVisibleFlatColumns: {\n\t\t\t\tfn: () => table_getVisibleFlatColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getVisibleLeafColumns: {\n\t\t\t\tfn: () => table_getVisibleLeafColumns(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.columnVisibility?.get(),\n\t\t\t\t\ttable.atoms.columnOrder?.get(),\n\t\t\t\t\ttable.atoms.grouping?.get(),\n\t\t\t\t\ttable.options.columns,\n\t\t\t\t\ttable.options.groupedColumnMode\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_setColumnVisibility: { fn: (updater) => table_setColumnVisibility(table, updater) },\n\t\t\ttable_resetColumnVisibility: { fn: (defaultState) => table_resetColumnVisibility(table, defaultState) },\n\t\t\ttable_toggleAllColumnsVisible: { fn: (value) => table_toggleAllColumnsVisible(table, value) },\n\t\t\ttable_getIsAllColumnsVisible: { fn: () => table_getIsAllColumnsVisible(table) },\n\t\t\ttable_getIsSomeColumnsVisible: { fn: () => table_getIsSomeColumnsVisible(table) },\n\t\t\ttable_getToggleAllColumnsVisibilityHandler: { fn: () => table_getToggleAllColumnsVisibilityHandler(table) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { columnVisibilityFeature };","//#region src/features/column-filtering/filterFns.ts\n/**\n* Builds a `FilterFn` from a value-level comparator plus optional resolvers.\n*\n* The `filter` comparator receives the row's data value (already passed\n* through `resolveDataValue` when one is defined) and the filter value\n* (already passed through `resolveFilterValue` by the table). Keeping\n* normalization in the resolvers means a variant of an existing filter\n* function only has to swap the resolvers, not re-implement the comparison.\n*\n* The definition is attached to the returned function, so a variant can be\n* created by spreading a built-in filter function and overriding what differs:\n*\n* ```ts\n* const normalize = (value: unknown) =>\n* String(value ?? '')\n* .toLowerCase()\n* .normalize('NFD')\n* .replace(/\\p{Diacritic}/gu, '')\n*\n* const includesStringIgnoreDiacritics = constructFilterFn({\n* ...filterFn_includesString,\n* resolveFilterValue: normalize,\n* resolveDataValue: normalize,\n* })\n* ```\n*\n* Note: the table applies `resolveFilterValue` once per filter before any rows\n* are tested. When calling a filter function directly (outside of a table),\n* apply it yourself: `fn(row, columnId, fn.resolveFilterValue?.(value) ?? value)`.\n*/\nfunction constructFilterFn(def) {\n\tconst filterFn = Object.assign((row, columnId, filterValue, addMeta) => {\n\t\tconst rawValue = row.getValue(columnId);\n\t\tconst dataValue = filterFn.resolveDataValue ? filterFn.resolveDataValue(rawValue) : rawValue;\n\t\treturn filterFn.filter(dataValue, filterValue, row, columnId, addMeta);\n\t}, def);\n\treturn filterFn;\n}\n/**\n* Keeps rows whose column value is strictly equal to the filter value.\n*\n* Uses JavaScript `===` comparison and auto-removes empty filter values.\n*/\nconst filterFn_equals = constructFilterFn({\n\tfilter: (dataValue, filterValue) => dataValue === filterValue,\n\tautoRemove: (val) => testFalsy(val)\n});\n/**\n* Keeps rows whose column value is loosely equal to the filter value.\n*\n* Uses JavaScript `==` comparison and auto-removes empty filter values. This is\n* useful for matching string input against numeric row values.\n*/\nconst filterFn_weakEquals = constructFilterFn({\n\tfilter: (dataValue, filterValue) => dataValue == filterValue,\n\tautoRemove: (val) => testFalsy(val)\n});\n/**\n* Keeps rows whose stringified column value includes the filter text.\n*\n* Matching is case-sensitive and empty filter values are auto-removed.\n*/\nconst filterFn_includesStringSensitive = constructFilterFn({\n\tfilter: (dataValue, filterValue) => Boolean(dataValue?.includes(filterValue)),\n\tautoRemove: (val) => testFalsy(val),\n\tresolveFilterValue: (val) => String(val),\n\tresolveDataValue: (val) => val == null ? void 0 : String(val)\n});\n/**\n* Keeps rows whose stringified column value includes the filter text.\n*\n* Both values are lowercased before comparison, and empty filter values are\n* auto-removed.\n*/\nconst filterFn_includesString = constructFilterFn({\n\tfilter: (dataValue, filterValue) => Boolean(dataValue?.includes(filterValue)),\n\tautoRemove: (val) => testFalsy(val),\n\tresolveFilterValue: (val) => String(val).toLowerCase(),\n\tresolveDataValue: (val) => val == null ? void 0 : String(val).toLowerCase()\n});\n/**\n* Keeps rows whose stringified column value equals the filter text.\n*\n* Both values are lowercased before comparison, and empty filter values are\n* auto-removed.\n*/\nconst filterFn_equalsString = constructFilterFn({\n\tfilter: (dataValue, filterValue) => dataValue === filterValue,\n\tautoRemove: (val) => testFalsy(val),\n\tresolveFilterValue: (val) => String(val).toLowerCase(),\n\tresolveDataValue: (val) => val == null ? void 0 : String(val).toLowerCase()\n});\n/**\n* Keeps rows whose stringified column value exactly equals the filter text.\n*\n* Matching is case-sensitive and empty filter values are auto-removed.\n*/\nconst filterFn_equalsStringSensitive = constructFilterFn({\n\tfilter: (dataValue, filterValue) => dataValue === filterValue,\n\tautoRemove: (val) => testFalsy(val),\n\tresolveFilterValue: (val) => String(val),\n\tresolveDataValue: (val) => val == null ? void 0 : String(val)\n});\n/**\n* Keeps rows whose stringified column value starts with the filter text.\n*\n* Both values are lowercased before comparison, and empty filter values are\n* auto-removed.\n*/\nconst filterFn_startsWith = constructFilterFn({\n\tfilter: (dataValue, filterValue) => Boolean(dataValue?.startsWith(filterValue)),\n\tautoRemove: (val) => testFalsy(val),\n\tresolveFilterValue: (val) => String(val).toLowerCase(),\n\tresolveDataValue: (val) => val == null ? void 0 : String(val).toLowerCase()\n});\n/**\n* Keeps rows whose stringified column value ends with the filter text.\n*\n* Both values are lowercased before comparison, and empty filter values are\n* auto-removed.\n*/\nconst filterFn_endsWith = constructFilterFn({\n\tfilter: (dataValue, filterValue) => Boolean(dataValue?.endsWith(filterValue)),\n\tautoRemove: (val) => testFalsy(val),\n\tresolveFilterValue: (val) => String(val).toLowerCase(),\n\tresolveDataValue: (val) => val == null ? void 0 : String(val).toLowerCase()\n});\n/**\n* Keeps rows whose column value is empty.\n*\n* A value is empty when it is nullish or stringifies to whitespace only. The\n* filter value acts as an on/off flag: `false` and blank values are\n* auto-removed.\n*/\nconst filterFn_empty = constructFilterFn({\n\tfilter: (dataValue) => testValueEmpty(dataValue),\n\tautoRemove: (val) => testFalsy(val) || val === false\n});\n/**\n* Keeps rows whose column value is not empty.\n*\n* A value is empty when it is nullish or stringifies to whitespace only. The\n* filter value acts as an on/off flag: `false` and blank values are\n* auto-removed.\n*/\nconst filterFn_notEmpty = constructFilterFn({\n\tfilter: (dataValue) => !testValueEmpty(dataValue),\n\tautoRemove: (val) => testFalsy(val) || val === false\n});\n/**\n* Keeps rows whose value is greater than the filter value.\n*\n* Numeric values are compared numerically when both sides can be coerced to\n* numbers; otherwise normalized strings are compared.\n*/\nconst filterFn_greaterThan = constructFilterFn({\n\tfilter: (dataValue, filterValue) => compareGreaterThan(dataValue, filterValue),\n\tautoRemove: (val) => testFalsy(val)\n});\n/**\n* Keeps rows whose value is greater than or equal to the filter value.\n*\n* Delegates to the built-in greater-than and strict-equality comparisons.\n*/\nconst filterFn_greaterThanOrEqualTo = constructFilterFn({\n\tfilter: (dataValue, filterValue) => compareGreaterThanOrEqualTo(dataValue, filterValue),\n\tautoRemove: (val) => testFalsy(val)\n});\n/**\n* Keeps rows whose value is less than the filter value.\n*\n* This is implemented as the inverse of greater-than-or-equal comparison.\n*/\nconst filterFn_lessThan = constructFilterFn({\n\tfilter: (dataValue, filterValue) => !compareGreaterThanOrEqualTo(dataValue, filterValue),\n\tautoRemove: (val) => testFalsy(val)\n});\n/**\n* Keeps rows whose value is less than or equal to the filter value.\n*\n* This is implemented as the inverse of greater-than comparison.\n*/\nconst filterFn_lessThanOrEqualTo = constructFilterFn({\n\tfilter: (dataValue, filterValue) => !compareGreaterThan(dataValue, filterValue),\n\tautoRemove: (val) => testFalsy(val)\n});\n/**\n* Keeps rows whose value falls between an exclusive min/max pair.\n*\n* Blank range endpoints are treated as open-ended.\n*/\nconst filterFn_between = constructFilterFn({\n\tfilter: (dataValue, filterValues) => compareBetween(dataValue, filterValues, false),\n\tautoRemove: (val) => testFalsy(val) || Array.isArray(val) && testFalsy(val[0]) && testFalsy(val[1])\n});\n/**\n* Keeps rows whose value falls between an inclusive min/max pair.\n*\n* Blank range endpoints are treated as open-ended.\n*/\nconst filterFn_betweenInclusive = constructFilterFn({\n\tfilter: (dataValue, filterValues) => compareBetween(dataValue, filterValues, true),\n\tautoRemove: (val) => testFalsy(val) || Array.isArray(val) && testFalsy(val[0]) && testFalsy(val[1])\n});\n/**\n* Keeps rows whose numeric value is inside an inclusive `[min, max]` range.\n*\n* Filter values are normalized so blank endpoints become open-ended and\n* reversed endpoints are swapped. Only real numbers can fall inside the\n* range: non-numeric row values (`null`, `undefined`, strings, booleans)\n* never match.\n*/\nconst filterFn_inNumberRange = constructFilterFn({\n\tfilter: (dataValue, filterValue) => {\n\t\tif (typeof dataValue !== \"number\" || Number.isNaN(dataValue)) return false;\n\t\tconst [min, max] = filterValue;\n\t\treturn dataValue >= min && dataValue <= max;\n\t},\n\tresolveFilterValue: (val) => {\n\t\tconst [unsafeMin, unsafeMax] = val;\n\t\tconst parsedMin = typeof unsafeMin !== \"number\" ? parseFloat(unsafeMin) : unsafeMin;\n\t\tconst parsedMax = typeof unsafeMax !== \"number\" ? parseFloat(unsafeMax) : unsafeMax;\n\t\tlet min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n\t\tlet max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n\t\tif (min > max) {\n\t\t\tconst temp = min;\n\t\t\tmin = max;\n\t\t\tmax = temp;\n\t\t}\n\t\treturn [min, max];\n\t},\n\tautoRemove: (val) => testFalsy(val) || Array.isArray(val) && testFalsy(val[0]) && testFalsy(val[1])\n});\n/**\n* Keeps rows whose date value is inside an inclusive `[min, max]` date range.\n*\n* Row values and range endpoints may be `Date` objects, timestamps, or\n* parseable date strings. Blank or invalid endpoints become open-ended and\n* reversed endpoints are swapped. Rows without a valid date never match.\n*/\nconst filterFn_inDateRange = constructFilterFn({\n\tfilter: (dataValue, filterValue) => {\n\t\tconst [min, max] = filterValue;\n\t\treturn dataValue >= min && dataValue <= max;\n\t},\n\tresolveFilterValue: (val) => {\n\t\tconst [unsafeMin, unsafeMax] = val;\n\t\tconst parsedMin = toDateTimestamp(unsafeMin);\n\t\tconst parsedMax = toDateTimestamp(unsafeMax);\n\t\tlet min = Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n\t\tlet max = Number.isNaN(parsedMax) ? Infinity : parsedMax;\n\t\tif (min > max) {\n\t\t\tconst temp = min;\n\t\t\tmin = max;\n\t\t\tmax = temp;\n\t\t}\n\t\treturn [min, max];\n\t},\n\tresolveDataValue: (val) => toDateTimestamp(val),\n\tautoRemove: (val) => testFalsy(val) || Array.isArray(val) && testFalsy(val[0]) && testFalsy(val[1])\n});\n/**\n* Keeps rows whose scalar column value equals at least one filter value.\n*/\nconst filterFn_arrHas = constructFilterFn({\n\tfilter: (dataValue, filterValue) => {\n\t\tfor (let i = 0; i < filterValue.length; i++) if (dataValue === filterValue[i]) return true;\n\t\treturn false;\n\t},\n\tautoRemove: (val) => testFalsy(val) || !val?.length\n});\n/**\n* Keeps rows whose array or string column value includes at least one filter value.\n*/\nconst filterFn_arrIncludes = constructFilterFn({\n\tfilter: (dataValue, filterValue) => {\n\t\tif (typeof dataValue !== \"string\" && !Array.isArray(dataValue)) return false;\n\t\tfor (let i = 0; i < filterValue.length; i++) if (dataValue.includes(filterValue[i])) return true;\n\t\treturn false;\n\t},\n\tautoRemove: (val) => testFalsy(val) || !val?.length\n});\n/**\n* Keeps rows whose array column value includes every filter value.\n*/\nconst filterFn_arrIncludesAll = constructFilterFn({\n\tfilter: (dataValue, filterValue) => {\n\t\tif (!Array.isArray(dataValue)) return false;\n\t\tfor (let i = 0; i < filterValue.length; i++) if (!dataValue.includes(filterValue[i])) return false;\n\t\treturn true;\n\t},\n\tautoRemove: (val) => testFalsy(val) || !val?.length\n});\n/**\n* Keeps rows whose array column value includes at least one filter value.\n*/\nconst filterFn_arrIncludesSome = constructFilterFn({\n\tfilter: (dataValue, filterValue) => {\n\t\tif (!Array.isArray(dataValue)) return false;\n\t\tfor (let i = 0; i < filterValue.length; i++) if (dataValue.includes(filterValue[i])) return true;\n\t\treturn false;\n\t},\n\tautoRemove: (val) => testFalsy(val) || !val?.length\n});\n/**\n* The built-in filter function registry.\n*\n* Registering this full object opts out of tree-shaking: every built-in\n* filter function ends up in your bundle. Prefer importing the `filterFn_*`\n* functions you actually use and registering just those in the `filterFns`\n* slot, or passing them directly to the `filterFn` column option.\n*\n* @deprecated Import individual `filterFn_*` functions instead for a smaller\n* bundle. This export still works and is not going away in v9, but built-in\n* name resolution (including `filterFn: 'auto'`) only finds functions you\n* register yourself.\n*/\nconst filterFns = {\n\tarrIncludes: filterFn_arrIncludes,\n\tarrIncludesAll: filterFn_arrIncludesAll,\n\tarrHas: filterFn_arrHas,\n\tarrIncludesSome: filterFn_arrIncludesSome,\n\tbetween: filterFn_between,\n\tbetweenInclusive: filterFn_betweenInclusive,\n\tempty: filterFn_empty,\n\tendsWith: filterFn_endsWith,\n\tequals: filterFn_equals,\n\tequalsString: filterFn_equalsString,\n\tequalsStringSensitive: filterFn_equalsStringSensitive,\n\tinDateRange: filterFn_inDateRange,\n\tinNumberRange: filterFn_inNumberRange,\n\tincludesString: filterFn_includesString,\n\tincludesStringSensitive: filterFn_includesStringSensitive,\n\tnotEmpty: filterFn_notEmpty,\n\tstartsWith: filterFn_startsWith,\n\tweakEquals: filterFn_weakEquals\n};\nfunction testFalsy(val) {\n\treturn val === void 0 || val === null || val === \"\";\n}\nfunction testValueEmpty(dataValue) {\n\treturn dataValue == null || String(dataValue).trim() === \"\";\n}\nfunction toDateTimestamp(value) {\n\tif (value instanceof Date) return value.getTime();\n\tif (typeof value === \"number\") return value;\n\tif (value == null || value === \"\") return NaN;\n\treturn new Date(value).getTime();\n}\nfunction compareGreaterThan(dataValue, filterValue) {\n\tconst numericDataValue = dataValue == null ? 0 : +dataValue;\n\tconst numericFilterValue = Number(filterValue);\n\tif (!isNaN(numericFilterValue) && !isNaN(numericDataValue)) return numericDataValue > numericFilterValue;\n\treturn String(dataValue ?? \"\").toLowerCase().trim() > String(filterValue).toLowerCase().trim();\n}\nfunction compareGreaterThanOrEqualTo(dataValue, filterValue) {\n\treturn dataValue === filterValue || compareGreaterThan(dataValue, filterValue);\n}\nfunction compareBetween(dataValue, filterValues, inclusive) {\n\tconst min = filterValues[0];\n\tconst hasMin = min !== \"\" && min !== void 0;\n\tif (hasMin) {\n\t\tif (!(inclusive ? compareGreaterThanOrEqualTo(dataValue, min) : compareGreaterThan(dataValue, min))) return false;\n\t}\n\tconst max = filterValues[1];\n\tif (max === \"\" || max === void 0) return true;\n\tif (hasMin) {\n\t\tconst numericMin = Number(min);\n\t\tconst numericMax = Number(max);\n\t\tif (!isNaN(numericMin) && !isNaN(numericMax) && numericMin > numericMax) return true;\n\t}\n\treturn inclusive ? !compareGreaterThan(dataValue, max) : !compareGreaterThanOrEqualTo(dataValue, max);\n}\n\n//#endregion\nexport { constructFilterFn, filterFn_arrHas, filterFn_arrIncludes, filterFn_arrIncludesAll, filterFn_arrIncludesSome, filterFn_between, filterFn_betweenInclusive, filterFn_empty, filterFn_endsWith, filterFn_equals, filterFn_equalsString, filterFn_equalsStringSensitive, filterFn_greaterThan, filterFn_greaterThanOrEqualTo, filterFn_inDateRange, filterFn_inNumberRange, filterFn_includesString, filterFn_includesStringSensitive, filterFn_lessThan, filterFn_lessThanOrEqualTo, filterFn_notEmpty, filterFn_startsWith, filterFn_weakEquals, filterFns };","import { cloneState, isFunction } from \"../../utils.js\";\nimport { filterFn_includesString } from \"../column-filtering/filterFns.js\";\n\n//#region src/features/global-filtering/globalFilteringFeature.utils.ts\n/**\n* Checks whether this accessor column participates in global filtering.\n*\n* The column must have an accessor and pass column-level, table-level, and\n* optional `getColumnCanGlobalFilter` checks.\n*\n* @example\n* ```ts\n* const canGlobalFilter = column_getCanGlobalFilter(column)\n* ```\n*/\nfunction column_getCanGlobalFilter(column) {\n\treturn (column.columnDef.enableGlobalFilter ?? true) && (column.table.options.enableGlobalFilter ?? true) && (column.table.options.enableFilters ?? true) && (column.table.options.getColumnCanGlobalFilter?.(column) ?? true) && !!column.accessorFn;\n}\n/**\n* Provides the built-in automatic global filter function.\n*\n* Global filtering defaults to `includesString`, which gives search-box style\n* matching across globally filterable columns.\n*\n* @example\n* ```ts\n* const filterFn = table_getGlobalAutoFilterFn()\n* ```\n*/\nfunction table_getGlobalAutoFilterFn() {\n\treturn filterFn_includesString;\n}\n/**\n* Resolves the filter function used for global filtering.\n*\n* Function-valued `options.globalFilterFn` is returned directly, `'auto'`\n* delegates to `table_getGlobalAutoFilterFn`, and string values are looked up in\n* the table's filter function registry.\n*\n* @example\n* ```ts\n* const filterFn = table_getGlobalFilterFn(table)\n* ```\n*/\nfunction table_getGlobalFilterFn(table) {\n\tconst { globalFilterFn } = table.options;\n\tconst filterFns = table._rowModelFns.filterFns;\n\tconst filterFn = isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === \"auto\" ? table_getGlobalAutoFilterFn() : filterFns?.[globalFilterFn];\n\tif (process.env.NODE_ENV === \"development\" && !filterFn && globalFilterFn != null) console.warn(`globalFilterFn '${String(globalFilterFn)}' is not registered`);\n\treturn filterFn;\n}\n/**\n* Routes a global filter updater through the table's global filter handler.\n*\n* The updater may be a next value or a function of the previous value, matching\n* the instance `table.setGlobalFilter` behavior.\n*\n* @example\n* ```ts\n* table_setGlobalFilter(table, 'search text')\n* ```\n*/\nfunction table_setGlobalFilter(table, updater) {\n\ttable.options.onGlobalFilterChange?.(updater);\n}\n/**\n* Resets `globalFilter` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.globalFilter`. Passing\n* `true` ignores initial state and resets to `undefined`.\n*\n* @example\n* ```ts\n* table_resetGlobalFilter(table)\n* table_resetGlobalFilter(table, true)\n* ```\n*/\nfunction table_resetGlobalFilter(table, defaultState) {\n\ttable_setGlobalFilter(table, defaultState ? void 0 : cloneState(table.initialState.globalFilter));\n}\n\n//#endregion\nexport { column_getCanGlobalFilter, table_getGlobalAutoFilterFn, table_getGlobalFilterFn, table_resetGlobalFilter, table_setGlobalFilter };","import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from \"../../utils.js\";\nimport { column_getCanGlobalFilter, table_getGlobalAutoFilterFn, table_getGlobalFilterFn, table_resetGlobalFilter, table_setGlobalFilter } from \"./globalFilteringFeature.utils.js\";\n\n//#region src/features/global-filtering/globalFilteringFeature.ts\n/**\n* Feature that adds global filtering state, defaults, and global filter APIs.\n*/\nconst globalFilteringFeature = {\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\tglobalFilter: void 0,\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn {\n\t\t\tonGlobalFilterChange: makeStateUpdater(\"globalFilter\", table),\n\t\t\tglobalFilterFn: \"auto\",\n\t\t\tgetColumnCanGlobalFilter: (column) => {\n\t\t\t\tif (\"enableGlobalFilter\" in column.columnDef && column.columnDef.enableGlobalFilter === true) return true;\n\t\t\t\tconst value = table.getCoreRowModel().flatRows.find((row) => row.getAllCellsByColumnId()[column.id]?.getValue() != null)?.getAllCellsByColumnId()[column.id]?.getValue();\n\t\t\t\treturn typeof value === \"string\" || typeof value === \"number\";\n\t\t\t}\n\t\t};\n\t},\n\tassignColumnPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"globalFilteringFeature\", prototype, table, { column_getCanGlobalFilter: { fn: (column) => column_getCanGlobalFilter(column) } });\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"globalFilteringFeature\", table, {\n\t\t\ttable_getGlobalAutoFilterFn: { fn: () => table_getGlobalAutoFilterFn() },\n\t\t\ttable_getGlobalFilterFn: { fn: () => table_getGlobalFilterFn(table) },\n\t\t\ttable_setGlobalFilter: { fn: (updater) => table_setGlobalFilter(table, updater) },\n\t\t\ttable_resetGlobalFilter: { fn: (defaultState) => table_resetGlobalFilter(table, defaultState) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { globalFilteringFeature };","import { assignTableAPIs, makeStateUpdater } from \"../../utils.js\";\nimport { getDefaultPaginationState, table_autoResetPageIndex, table_firstPage, table_getCanNextPage, table_getCanPreviousPage, table_getPageCount, table_getPageOptions, table_getRowCount, table_lastPage, table_nextPage, table_previousPage, table_resetPageIndex, table_resetPageSize, table_resetPagination, table_setPageIndex, table_setPageSize, table_setPagination } from \"./rowPaginationFeature.utils.js\";\n\n//#region src/features/row-pagination/rowPaginationFeature.ts\n/**\n* Feature that adds pagination state and table APIs for page navigation.\n*/\nconst rowPaginationFeature = {\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\t...initialState,\n\t\t\tpagination: {\n\t\t\t\t...getDefaultPaginationState(),\n\t\t\t\t...initialState.pagination\n\t\t\t}\n\t\t};\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn { onPaginationChange: makeStateUpdater(\"pagination\", table) };\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"rowPaginationFeature\", table, {\n\t\t\ttable_autoResetPageIndex: { fn: () => table_autoResetPageIndex(table) },\n\t\t\ttable_setPagination: { fn: (updater) => table_setPagination(table, updater) },\n\t\t\ttable_resetPagination: { fn: (defaultState) => table_resetPagination(table, defaultState) },\n\t\t\ttable_setPageIndex: { fn: (updater) => table_setPageIndex(table, updater) },\n\t\t\ttable_resetPageIndex: { fn: (defaultState) => table_resetPageIndex(table, defaultState) },\n\t\t\ttable_setPageSize: { fn: (updater) => table_setPageSize(table, updater) },\n\t\t\ttable_getPageCount: { fn: () => table_getPageCount(table) },\n\t\t\ttable_resetPageSize: { fn: (defaultState) => table_resetPageSize(table, defaultState) },\n\t\t\ttable_getPageOptions: { fn: () => table_getPageOptions(table) },\n\t\t\ttable_getCanPreviousPage: { fn: () => table_getCanPreviousPage(table) },\n\t\t\ttable_getCanNextPage: { fn: () => table_getCanNextPage(table) },\n\t\t\ttable_previousPage: { fn: () => table_previousPage(table) },\n\t\t\ttable_nextPage: { fn: () => table_nextPage(table) },\n\t\t\ttable_firstPage: { fn: () => table_firstPage(table) },\n\t\t\ttable_lastPage: { fn: () => table_lastPage(table) },\n\t\t\ttable_getRowCount: { fn: () => table_getRowCount(table) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { rowPaginationFeature };","import { callMemoOrStaticFn, cloneState, copyInstancePropertiesWithoutMemos, hasOwn, makeObjectMap } from \"../../utils.js\";\n\n//#region src/features/row-selection/rowSelectionFeature.utils.ts\n/**\n* Creates the default row selection state.\n*\n* The feature default is an empty map, meaning no rows are selected. Reset APIs\n* use this value when `defaultState` is `true`.\n*\n* @example\n* ```ts\n* const selection = getDefaultRowSelectionState()\n* ```\n*/\nfunction getDefaultRowSelectionState() {\n\treturn makeObjectMap();\n}\n/**\n* Routes a row selection updater through the table's selection change handler.\n*\n* The updater may be a next selection map or a function of the previous map,\n* matching the instance `table.setRowSelection` behavior.\n*\n* @example\n* ```ts\n* table_setRowSelection(table, (old) => ({ ...old, [rowId]: true }))\n* ```\n*/\nfunction table_setRowSelection(table, updater) {\n\ttable.options.onRowSelectionChange?.(updater);\n}\n/**\n* Resets `rowSelection` to the configured initial state or feature default.\n*\n* With no argument, the reset clones `table.initialState.rowSelection` when it\n* exists. Passing `true` ignores initial state and resets to `{}`.\n*\n* @example\n* ```ts\n* table_resetRowSelection(table)\n* table_resetRowSelection(table, true)\n* ```\n*/\nfunction table_resetRowSelection(table, defaultState) {\n\ttable._lastSelectedRowId = null;\n\ttable_setRowSelection(table, defaultState ? makeObjectMap() : Object.assign(makeObjectMap(), cloneState(table.initialState.rowSelection ?? {})));\n}\n/**\n* Selects or deselects every selectable row before grouping.\n*\n* Omitting `value` toggles based on `table_getIsAllRowsSelected(table)`.\n* Selecting skips sub-rows whose ancestors block descent via\n* `enableSubRowSelection`. Deselecting removes matching selectable ids from the\n* existing selection map; rows that cannot be selected keep their selection\n* unless `opts.deselectAll` is `true`.\n*\n* @example\n* ```ts\n* table_toggleAllRowsSelected(table)\n* ```\n*/\nfunction table_toggleAllRowsSelected(table, value, opts) {\n\ttable._lastSelectedRowId = null;\n\ttable_setRowSelection(table, (old) => {\n\t\tvalue = typeof value !== \"undefined\" ? value : !callMemoOrStaticFn(table, \"getIsAllRowsSelected\", table_getIsAllRowsSelected);\n\t\tif (opts?.deselectAll && !value) return makeObjectMap();\n\t\tconst rowSelection = Object.assign(makeObjectMap(), old);\n\t\tconst preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\t\tif (value) {\n\t\t\tconst subtreeCache = /* @__PURE__ */ new Map();\n\t\t\tpreGroupedFlatRows.forEach((row) => {\n\t\t\t\tif (isRowSelectableInSelectAll(row, subtreeCache)) rowSelection[row.id] = true;\n\t\t\t});\n\t\t} else preGroupedFlatRows.forEach((row) => {\n\t\t\tif (row_getCanSelect(row)) delete rowSelection[row.id];\n\t\t});\n\t\treturn rowSelection;\n\t});\n}\n/**\n* Selects or deselects every selectable row on the current page.\n*\n* Omitting `value` toggles based on `table_getIsAllPageRowsSelected(table)`.\n* Child rows are included when sub-row selection allows it.\n*\n* @example\n* ```ts\n* table_toggleAllPageRowsSelected(table)\n* ```\n*/\nfunction table_toggleAllPageRowsSelected(table, value, opts) {\n\ttable._lastSelectedRowId = null;\n\ttable_setRowSelection(table, (old) => {\n\t\tconst resolvedValue = typeof value !== \"undefined\" ? value : !callMemoOrStaticFn(table, \"getIsAllPageRowsSelected\", table_getIsAllPageRowsSelected);\n\t\tif (opts?.deselectAll && !resolvedValue) return makeObjectMap();\n\t\tconst rowSelection = Object.assign(makeObjectMap(), old);\n\t\ttable.getRowModel().rows.forEach((row) => {\n\t\t\tmutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table, true);\n\t\t});\n\t\treturn rowSelection;\n\t});\n}\n/**\n* Reads the row model before row selection is projected into selected rows.\n*\n* Selection does not alter the base row pipeline, so this returns the core row\n* model.\n*\n* @example\n* ```ts\n* const rowsBeforeSelection = table_getPreSelectedRowModel(table)\n* ```\n*/\nfunction table_getPreSelectedRowModel(table) {\n\treturn table.getCoreRowModel();\n}\n/**\n* Builds a row model containing selected rows from the core row model.\n*\n* If no row ids are selected, an empty row model is returned without walking\n* the rows.\n*\n* @example\n* ```ts\n* const selectedRows = table_getSelectedRowModel(table)\n* ```\n*/\nfunction table_getSelectedRowModel(table) {\n\tconst rowModel = table.getCoreRowModel();\n\tif (!callMemoOrStaticFn(table, \"getIsSomeRowsSelected\", table_getIsSomeRowsSelected)) return {\n\t\trows: [],\n\t\tflatRows: [],\n\t\trowsById: makeObjectMap()\n\t};\n\treturn selectRowsFn(rowModel, table);\n}\n/**\n* Builds a row model containing selected rows from the filtered row model.\n*\n* If no row ids are selected, an empty row model is returned without walking\n* the rows.\n*\n* @example\n* ```ts\n* const selectedRows = table_getFilteredSelectedRowModel(table)\n* ```\n*/\nfunction table_getFilteredSelectedRowModel(table) {\n\tconst rowModel = table.getFilteredRowModel();\n\tif (!callMemoOrStaticFn(table, \"getIsSomeRowsSelected\", table_getIsSomeRowsSelected)) return {\n\t\trows: [],\n\t\tflatRows: [],\n\t\trowsById: makeObjectMap()\n\t};\n\treturn selectRowsFn(rowModel, table);\n}\n/**\n* Builds a row model containing selected rows from the grouped row model.\n*\n* If no row ids are selected, an empty row model is returned without walking\n* the rows.\n*\n* @example\n* ```ts\n* const selectedRows = table_getGroupedSelectedRowModel(table)\n* ```\n*/\nfunction table_getGroupedSelectedRowModel(table) {\n\tconst rowModel = table.getSortedRowModel();\n\tif (!callMemoOrStaticFn(table, \"getIsSomeRowsSelected\", table_getIsSomeRowsSelected)) return {\n\t\trows: [],\n\t\tflatRows: [],\n\t\trowsById: makeObjectMap()\n\t};\n\treturn selectRowsFn(rowModel, table);\n}\n/**\n* Returns the ids of all selected rows.\n*\n* @example\n* ```ts\n* const selectedRowIds = table_getSelectedRowIds(table)\n* ```\n*/\nfunction table_getSelectedRowIds(table) {\n\treturn Object.keys(table.atoms.rowSelection?.get() ?? {});\n}\n/**\n* Checks whether every selectable filtered row is selected.\n*\n* The result is false when there are no filtered rows or when selection state is\n* empty. Sub-rows whose ancestors block descent via `enableSubRowSelection` are\n* ignored, matching the rows that `table_toggleAllRowsSelected` selects.\n*\n* @example\n* ```ts\n* const allSelected = table_getIsAllRowsSelected(table)\n* ```\n*/\nfunction table_getIsAllRowsSelected(table) {\n\tconst preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n\tconst rowSelection = table.atoms.rowSelection?.get() ?? {};\n\tlet isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n\tif (isAllRowsSelected) {\n\t\tconst subtreeCache = /* @__PURE__ */ new Map();\n\t\tif (preGroupedFlatRows.some((row) => !isRowSelected(row, rowSelection) && isRowSelectableInSelectAll(row, subtreeCache))) isAllRowsSelected = false;\n\t}\n\treturn isAllRowsSelected;\n}\n/**\n* Checks whether every selectable row on the current page is selected.\n*\n* Non-selectable rows are ignored for this calculation, as are sub-rows whose\n* ancestors block descent via `enableSubRowSelection`.\n*\n* @example\n* ```ts\n* const allPageRowsSelected = table_getIsAllPageRowsSelected(table)\n* ```\n*/\nfunction table_getIsAllPageRowsSelected(table) {\n\tconst paginationFlatRows = table.getPaginatedRowModel().flatRows;\n\tconst rowSelection = table.atoms.rowSelection?.get() ?? {};\n\tconst subtreeCache = /* @__PURE__ */ new Map();\n\tlet sawSelectableRow = false;\n\tfor (let i = 0; i < paginationFlatRows.length; i++) {\n\t\tconst row = paginationFlatRows[i];\n\t\tif (!isRowSelected(row, rowSelection)) {\n\t\t\tif (isRowSelectableInSelectAll(row, subtreeCache)) return false;\n\t\t} else if (!sawSelectableRow && isRowSelectableInSelectAll(row, subtreeCache)) sawSelectableRow = true;\n\t}\n\treturn sawSelectableRow;\n}\n/**\n* Checks whether at least one row id is selected.\n*\n* The result stays true when every row is selected.\n*\n* @example\n* ```ts\n* const someRowsSelected = table_getIsSomeRowsSelected(table)\n* ```\n*/\nfunction table_getIsSomeRowsSelected(table) {\n\treturn callMemoOrStaticFn(table, \"getSelectedRowIds\", table_getSelectedRowIds).length > 0;\n}\n/**\n* Checks whether at least one selectable row on the current page is selected.\n*\n* @example\n* ```ts\n* const somePageRowsSelected = table_getIsSomePageRowsSelected(table)\n* ```\n*/\nfunction table_getIsSomePageRowsSelected(table) {\n\treturn table.getPaginatedRowModel().flatRows.filter((row) => row_getCanSelect(row)).some((row) => row_getIsSelected(row) || callMemoOrStaticFn(row, \"getIsSomeSelected\", row_getIsSomeSelected));\n}\n/**\n* Creates a checkbox-style handler that selects or deselects all rows.\n*\n* The handler reads `event.target.checked`, so it is intended for controls whose\n* checked state means \"all rows selected\".\n*\n* @example\n* ```ts\n* const onChange = table_getToggleAllRowsSelectedHandler(table)\n* ```\n*/\nfunction table_getToggleAllRowsSelectedHandler(table) {\n\treturn (e) => {\n\t\ttable_toggleAllRowsSelected(table, e.target.checked);\n\t};\n}\n/**\n* Creates a checkbox-style handler that selects or deselects current page rows.\n*\n* The handler reads `event.target.checked`, so it is intended for controls whose\n* checked state means \"all page rows selected\".\n*\n* @example\n* ```ts\n* const onChange = table_getToggleAllPageRowsSelectedHandler(table)\n* ```\n*/\nfunction table_getToggleAllPageRowsSelectedHandler(table) {\n\treturn (e) => {\n\t\ttable_toggleAllPageRowsSelected(table, e.target.checked);\n\t};\n}\n/**\n* Selects or deselects this row.\n*\n* Omitting `value` toggles the row. Child rows are selected recursively unless\n* `opts.selectChildren` is `false`, sub-row selection is disabled, or the row\n* only supports single selection. Pass `deselectParents: true` to also remove\n* ancestor row ids from the selection when this row is deselected.\n*\n* @example\n* ```ts\n* row_toggleSelected(row)\n* row_toggleSelected(row, true)\n* row_toggleSelected(row, false)\n* row_toggleSelected(row, true, { selectChildren: false })\n* row_toggleSelected(row, false, { deselectParents: true })\n* ```\n*/\nfunction row_toggleSelected(row, value, opts) {\n\tconst isSelected = row_getIsSelected(row);\n\ttable_setRowSelection(row.table, (old) => {\n\t\tvalue = typeof value !== \"undefined\" ? value : !isSelected;\n\t\tconst rowSelection = Object.assign(makeObjectMap(), old);\n\t\tmutateRowIsSelected(rowSelection, row.id, value, (opts?.selectChildren ?? true) && row_getCanMultiSelect(row), row.table);\n\t\tif (!value && opts?.deselectParents) pruneAncestorRowIds(rowSelection, row);\n\t\treturn rowSelection;\n\t});\n}\n/**\n* Checks whether this row id is selected in `state.rowSelection`.\n*\n* Missing row ids are treated as not selected.\n*\n* @example\n* ```ts\n* const selected = row_getIsSelected(row)\n* ```\n*/\nfunction row_getIsSelected(row) {\n\treturn isRowSelected(row, row.table.atoms.rowSelection?.get() ?? {});\n}\n/**\n* Checks whether some, but not all, selectable descendants are selected.\n*\n* This supports indeterminate selection UI for parent rows.\n*\n* @example\n* ```ts\n* const partial = row_getIsSomeSelected(row)\n* ```\n*/\nfunction row_getIsSomeSelected(row) {\n\treturn isSubRowSelected(row) === \"some\";\n}\n/**\n* Checks whether all selectable descendants are selected.\n*\n* Rows without selectable descendants return false.\n*\n* @example\n* ```ts\n* const allChildrenSelected = row_getIsAllSubRowsSelected(row)\n* ```\n*/\nfunction row_getIsAllSubRowsSelected(row) {\n\treturn isSubRowSelected(row) === \"all\";\n}\n/**\n* Checks whether this row can be selected.\n*\n* `options.enableRowSelection` may be a boolean or a row predicate; it defaults\n* to `true`.\n*\n* @example\n* ```ts\n* const canSelect = row_getCanSelect(row)\n* ```\n*/\nfunction row_getCanSelect(row) {\n\tconst options = row.table.options;\n\tif (typeof options.enableRowSelection === \"function\") return options.enableRowSelection(row);\n\treturn options.enableRowSelection ?? true;\n}\n/**\n* Checks whether selecting this row should also select its subRows.\n*\n* `options.enableSubRowSelection` may be a boolean or a row predicate; it\n* defaults to `true`.\n*\n* @example\n* ```ts\n* const canSelectChildren = row_getCanSelectSubRows(row)\n* ```\n*/\nfunction row_getCanSelectSubRows(row) {\n\tconst options = row.table.options;\n\tif (typeof options.enableSubRowSelection === \"function\") return options.enableSubRowSelection(row);\n\treturn options.enableSubRowSelection ?? true;\n}\n/**\n* Checks whether this row can be selected alongside other rows.\n*\n* `options.enableMultiRowSelection` may be a boolean or a row predicate; it\n* defaults to `true`.\n*\n* @example\n* ```ts\n* const canMultiSelect = row_getCanMultiSelect(row)\n* ```\n*/\nfunction row_getCanMultiSelect(row) {\n\tconst options = row.table.options;\n\tif (typeof options.enableMultiRowSelection === \"function\") return options.enableMultiRowSelection(row);\n\treturn options.enableMultiRowSelection ?? true;\n}\n/**\n* Creates a checkbox-style handler that selects or deselects this row.\n*\n* The handler is a no-op when the row cannot be selected and reads\n* `event.target.checked`. Shift events select or deselect the inclusive range\n* from the most recent selectable row handled by this table. Pass\n* `selectChildren: false` to limit changes to rows explicitly present in the\n* display-order interval, and `deselectParents: true` to remove ancestor row\n* ids from the selection when rows are deselected.\n*\n* @example\n* ```ts\n* const onChange = row_getToggleSelectedHandler(row)\n* ```\n*/\nfunction row_getToggleSelectedHandler(row, opts) {\n\tconst canSelect = row_getCanSelect(row);\n\treturn (e) => {\n\t\tif (!canSelect) return;\n\t\tconst event = e;\n\t\tconst table = row.table;\n\t\tconst checked = event.target.checked;\n\t\tconst anchorId = table._lastSelectedRowId;\n\t\tif (!(table.options.enableRowRangeSelection !== false && anchorId !== null && row_getCanMultiSelect(row) && (table.options.isRowRangeSelectionEvent?.(e) ?? false)) || !selectRowRange(row, anchorId, checked, opts)) row_toggleSelected(row, checked, opts);\n\t\ttable._lastSelectedRowId = row.id;\n\t};\n}\n/**\n* Resolves and mutates an inclusive interval in the table's latest logical\n* display order.\n*\n* The anchor is resolved without throwing from the pre-pagination row model,\n* then the core row model. Both endpoint display indexes must still identify\n* those rows in the current order and both endpoints must support\n* multi-selection. Eligible interval rows are applied through one row\n* selection updater; non-selectable and non-multi-selectable rows are skipped.\n* Returns `false` when the interaction should fall back to an ordinary toggle.\n*/\nfunction selectRowRange(row, anchorId, value, opts) {\n\tconst includeChildren = opts?.selectChildren ?? true;\n\tconst table = row.table;\n\tconst rows = table.getRowsInDisplayOrder();\n\tconst anchorRow = table.getPrePaginatedRowModel().rowsById[anchorId] ?? table.getCoreRowModel().rowsById[anchorId];\n\tif (!anchorRow) return false;\n\tconst anchorIndex = anchorRow.getDisplayIndex();\n\tconst rowIndex = row.getDisplayIndex();\n\tconst anchorAtIndex = rows[anchorIndex];\n\tconst rowAtIndex = rows[rowIndex];\n\tif (anchorIndex < 0 || rowIndex < 0 || anchorIndex >= rows.length || rowIndex >= rows.length || anchorAtIndex?.id !== anchorRow.id || rowAtIndex?.id !== row.id || !row_getCanMultiSelect(anchorRow) || !row_getCanMultiSelect(row)) return false;\n\tconst start = Math.min(anchorIndex, rowIndex);\n\tconst end = Math.max(anchorIndex, rowIndex);\n\ttable_setRowSelection(table, (old) => {\n\t\tconst rowSelection = Object.assign(makeObjectMap(), old);\n\t\tfor (let index = start; index <= end; index++) {\n\t\t\tconst rangeRow = rows[index];\n\t\t\tif (!row_getCanSelect(rangeRow) || !row_getCanMultiSelect(rangeRow)) continue;\n\t\t\tmutateRowIsSelected(rowSelection, rangeRow.id, value, includeChildren, table);\n\t\t\tif (!value && opts?.deselectParents) pruneAncestorRowIds(rowSelection, rangeRow);\n\t\t}\n\t\treturn rowSelection;\n\t});\n\treturn true;\n}\nfunction mutateRowIsSelected(rowSelection, rowId, value, includeChildren, table, respectCanSelectOnDeselect) {\n\tconst row = table.getRow(rowId, true);\n\tif (value) {\n\t\tif (!row_getCanMultiSelect(row)) Object.keys(rowSelection).forEach((key) => delete rowSelection[key]);\n\t\tif (row_getCanSelect(row)) rowSelection[rowId] = true;\n\t} else if (!respectCanSelectOnDeselect || row_getCanSelect(row)) delete rowSelection[rowId];\n\tif (includeChildren && row.subRows.length && row_getCanSelectSubRows(row)) row.subRows.forEach((r) => mutateRowIsSelected(rowSelection, r.id, value, includeChildren, table, respectCanSelectOnDeselect));\n}\n/**\n* Returns whether a select-all cascade can reach this row: the row itself is\n* selectable and no ancestor blocks descent via `enableSubRowSelection`.\n*\n* `subtreeCache` memoizes the per-ancestor verdict for one select-all pass, so\n* ancestor chains shared by sibling rows are only walked (and the\n* `enableSubRowSelection` predicate only invoked) once per unique ancestor.\n*/\nfunction isRowSelectableInSelectAll(row, subtreeCache) {\n\tif (!row_getCanSelect(row)) return false;\n\tconst table = row.table;\n\tif (table.options.enableSubRowSelection === true) return true;\n\tconst parentId = row.parentId;\n\tif (parentId === void 0) return true;\n\tconst cached = subtreeCache.get(parentId);\n\tif (cached !== void 0) return cached;\n\tconst rowsById = table.getCoreRowModel().rowsById;\n\tconst visited = [];\n\tlet selectable = true;\n\tlet currentId = parentId;\n\twhile (currentId !== void 0) {\n\t\tconst known = subtreeCache.get(currentId);\n\t\tif (known !== void 0) {\n\t\t\tselectable = known;\n\t\t\tbreak;\n\t\t}\n\t\tvisited.push(currentId);\n\t\tconst parent = rowsById[currentId] ?? table.getRow(currentId, true);\n\t\tif (!row_getCanSelectSubRows(parent)) {\n\t\t\tselectable = false;\n\t\t\tbreak;\n\t\t}\n\t\tcurrentId = parent.parentId;\n\t}\n\tvisited.forEach((id) => subtreeCache.set(id, selectable));\n\treturn selectable;\n}\nfunction pruneAncestorRowIds(rowSelection, row) {\n\tconst rowsById = row.table.getCoreRowModel().rowsById;\n\tlet parentId = row.parentId;\n\twhile (parentId !== void 0) {\n\t\tdelete rowSelection[parentId];\n\t\tparentId = (rowsById[parentId] ?? row.table.getRow(parentId, true)).parentId;\n\t}\n}\nfunction selectRowsRecursively(rows, rowSelection, selectedFlatRows, selectedRowsById) {\n\tconst result = [];\n\tfor (let i = 0; i < rows.length; i++) {\n\t\tconst row = rows[i];\n\t\tconst isSelected = isRowSelected(row, rowSelection);\n\t\tif (isSelected) {\n\t\t\tselectedFlatRows.push(row);\n\t\t\tselectedRowsById[row.id] = row;\n\t\t}\n\t\tif (row.subRows.length) {\n\t\t\tconst newSubRows = selectRowsRecursively(row.subRows, rowSelection, selectedFlatRows, selectedRowsById);\n\t\t\tif (isSelected) {\n\t\t\t\tconst cloned = Object.create(Object.getPrototypeOf(row));\n\t\t\t\tcopyInstancePropertiesWithoutMemos(cloned, row);\n\t\t\t\tcloned.subRows = newSubRows;\n\t\t\t\tresult.push(cloned);\n\t\t\t}\n\t\t} else if (isSelected) result.push(row);\n\t}\n\treturn result;\n}\n/**\n* Builds a row model containing rows selected by the current row selection state.\n*\n* The result is derived from the supplied row model, so selected ids absent from\n* that model are not materialized as rows.\n*\n* @example\n* ```ts\n* const selectedRows = selectRowsFn(rowModel)\n* ```\n*/\nfunction selectRowsFn(rowModel, table) {\n\tconst newSelectedFlatRows = [];\n\tconst newSelectedRowsById = makeObjectMap();\n\tconst rowSelection = table.atoms.rowSelection?.get() ?? {};\n\treturn {\n\t\trows: selectRowsRecursively(rowModel.rows, rowSelection, newSelectedFlatRows, newSelectedRowsById),\n\t\tflatRows: newSelectedFlatRows,\n\t\trowsById: newSelectedRowsById\n\t};\n}\n/**\n* Returns whether a row id is selected in the current row selection state.\n*\n* @example\n* ```ts\n* const selected = isRowSelected(row)\n* ```\n*/\nfunction isRowSelected(row, rowSelection) {\n\treturn !!(hasOwn(rowSelection, row.id) && rowSelection[row.id]);\n}\n/**\n* Returns whether all, some, or none of a row's selectable descendants are selected.\n*\n* The result is used to drive indeterminate row selection UI.\n*\n* @example\n* ```ts\n* const selectedState = isSubRowSelected(row)\n* ```\n*/\nfunction isSubRowSelected(row) {\n\tif (!row.subRows.length) return false;\n\tconst rowSelection = row.table.atoms.rowSelection?.get() ?? {};\n\tlet someSelected = false;\n\tlet allChildrenSelected = true;\n\tlet someSelectable = false;\n\tfor (let i = 0; i < row.subRows.length; i++) {\n\t\tconst subRow = row.subRows[i];\n\t\tif (someSelected && !allChildrenSelected) break;\n\t\tif (row_getCanSelect(subRow)) {\n\t\t\tsomeSelectable = true;\n\t\t\tif (isRowSelected(subRow, rowSelection)) someSelected = true;\n\t\t\telse allChildrenSelected = false;\n\t\t}\n\t\tif (subRow.subRows.length) {\n\t\t\tconst subRowChildrenSelected = isSubRowSelected(subRow);\n\t\t\tif (subRowChildrenSelected === \"all\") {\n\t\t\t\tsomeSelected = true;\n\t\t\t\tsomeSelectable = true;\n\t\t\t} else if (subRowChildrenSelected === \"some\") {\n\t\t\t\tsomeSelected = true;\n\t\t\t\tallChildrenSelected = false;\n\t\t\t\tsomeSelectable = true;\n\t\t\t} else allChildrenSelected = false;\n\t\t}\n\t}\n\tif (!someSelectable) return false;\n\treturn allChildrenSelected ? \"all\" : someSelected ? \"some\" : false;\n}\n\n//#endregion\nexport { getDefaultRowSelectionState, isRowSelected, isSubRowSelected, row_getCanMultiSelect, row_getCanSelect, row_getCanSelectSubRows, row_getIsAllSubRowsSelected, row_getIsSelected, row_getIsSomeSelected, row_getToggleSelectedHandler, row_toggleSelected, selectRowsFn, table_getFilteredSelectedRowModel, table_getGroupedSelectedRowModel, table_getIsAllPageRowsSelected, table_getIsAllRowsSelected, table_getIsSomePageRowsSelected, table_getIsSomeRowsSelected, table_getPreSelectedRowModel, table_getSelectedRowIds, table_getSelectedRowModel, table_getToggleAllPageRowsSelectedHandler, table_getToggleAllRowsSelectedHandler, table_resetRowSelection, table_setRowSelection, table_toggleAllPageRowsSelected, table_toggleAllRowsSelected };","import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from \"../../utils.js\";\nimport { getDefaultRowSelectionState, row_getCanMultiSelect, row_getCanSelect, row_getCanSelectSubRows, row_getIsAllSubRowsSelected, row_getIsSelected, row_getIsSomeSelected, row_getToggleSelectedHandler, row_toggleSelected, table_getFilteredSelectedRowModel, table_getGroupedSelectedRowModel, table_getIsAllPageRowsSelected, table_getIsAllRowsSelected, table_getIsSomePageRowsSelected, table_getIsSomeRowsSelected, table_getPreSelectedRowModel, table_getSelectedRowIds, table_getSelectedRowModel, table_getToggleAllPageRowsSelectedHandler, table_getToggleAllRowsSelectedHandler, table_resetRowSelection, table_setRowSelection, table_toggleAllPageRowsSelected, table_toggleAllRowsSelected } from \"./rowSelectionFeature.utils.js\";\n\n//#region src/features/row-selection/rowSelectionFeature.ts\n/**\n* Feature that adds row selection state and APIs for row and page selection.\n*/\nconst rowSelectionFeature = {\n\tinitTableInstanceData: (table) => {\n\t\ttable._lastSelectedRowId = null;\n\t},\n\tresetTableInstanceData: (table) => {\n\t\ttable._lastSelectedRowId = null;\n\t},\n\tgetInitialState: (initialState) => {\n\t\treturn {\n\t\t\trowSelection: getDefaultRowSelectionState(),\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultTableOptions: (table) => {\n\t\treturn {\n\t\t\tonRowSelectionChange: makeStateUpdater(\"rowSelection\", table),\n\t\t\tenableRowSelection: true,\n\t\t\tenableMultiRowSelection: true,\n\t\t\tenableRowRangeSelection: true,\n\t\t\tenableSubRowSelection: true,\n\t\t\tisRowRangeSelectionEvent: (event) => {\n\t\t\t\tconst rangeEvent = event;\n\t\t\t\treturn Boolean(rangeEvent.shiftKey || rangeEvent.nativeEvent?.shiftKey);\n\t\t\t}\n\t\t};\n\t},\n\tassignRowPrototype: (prototype, table) => {\n\t\tassignPrototypeAPIs(\"rowSelectionFeature\", prototype, table, {\n\t\t\trow_toggleSelected: { fn: (row, value, opts) => row_toggleSelected(row, value, opts) },\n\t\t\trow_getIsSelected: { fn: (row) => row_getIsSelected(row) },\n\t\t\trow_getIsSomeSelected: {\n\t\t\t\tfn: (row) => row_getIsSomeSelected(row),\n\t\t\t\tmemoDeps: (row) => [\n\t\t\t\t\trow.subRows,\n\t\t\t\t\trow.table.atoms.rowSelection?.get(),\n\t\t\t\t\trow.table.options.enableRowSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\trow_getIsAllSubRowsSelected: {\n\t\t\t\tfn: (row) => row_getIsAllSubRowsSelected(row),\n\t\t\t\tmemoDeps: (row) => [\n\t\t\t\t\trow.subRows,\n\t\t\t\t\trow.table.atoms.rowSelection?.get(),\n\t\t\t\t\trow.table.options.enableRowSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\trow_getCanSelect: { fn: (row) => row_getCanSelect(row) },\n\t\t\trow_getCanSelectSubRows: { fn: (row) => row_getCanSelectSubRows(row) },\n\t\t\trow_getCanMultiSelect: { fn: (row) => row_getCanMultiSelect(row) },\n\t\t\trow_getToggleSelectedHandler: { fn: (row, opts) => row_getToggleSelectedHandler(row, opts) }\n\t\t});\n\t},\n\tconstructTableAPIs: (table) => {\n\t\tassignTableAPIs(\"rowSelectionFeature\", table, {\n\t\t\ttable_setRowSelection: { fn: (updater) => table_setRowSelection(table, updater) },\n\t\t\ttable_resetRowSelection: { fn: (defaultState) => table_resetRowSelection(table, defaultState) },\n\t\t\ttable_toggleAllRowsSelected: { fn: (value, opts) => table_toggleAllRowsSelected(table, value, opts) },\n\t\t\ttable_toggleAllPageRowsSelected: { fn: (value, opts) => table_toggleAllPageRowsSelected(table, value, opts) },\n\t\t\ttable_getPreSelectedRowModel: { fn: () => table_getPreSelectedRowModel(table) },\n\t\t\ttable_getSelectedRowModel: {\n\t\t\t\tfn: () => table_getSelectedRowModel(table),\n\t\t\t\tmemoDeps: () => [table.atoms.rowSelection?.get(), table.getCoreRowModel()]\n\t\t\t},\n\t\t\ttable_getFilteredSelectedRowModel: {\n\t\t\t\tfn: () => table_getFilteredSelectedRowModel(table),\n\t\t\t\tmemoDeps: () => [table.atoms.rowSelection?.get(), table.getFilteredRowModel()]\n\t\t\t},\n\t\t\ttable_getGroupedSelectedRowModel: {\n\t\t\t\tfn: () => table_getGroupedSelectedRowModel(table),\n\t\t\t\tmemoDeps: () => [table.atoms.rowSelection?.get(), table.getSortedRowModel()]\n\t\t\t},\n\t\t\ttable_getSelectedRowIds: {\n\t\t\t\tfn: () => table_getSelectedRowIds(table),\n\t\t\t\tmemoDeps: () => [table.atoms.rowSelection?.get()]\n\t\t\t},\n\t\t\ttable_getIsAllRowsSelected: {\n\t\t\t\tfn: () => table_getIsAllRowsSelected(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.rowSelection?.get(),\n\t\t\t\t\ttable.getFilteredRowModel(),\n\t\t\t\t\ttable.options.enableRowSelection,\n\t\t\t\t\ttable.options.enableSubRowSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getIsAllPageRowsSelected: {\n\t\t\t\tfn: () => table_getIsAllPageRowsSelected(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.rowSelection?.get(),\n\t\t\t\t\ttable.getPaginatedRowModel(),\n\t\t\t\t\ttable.options.enableRowSelection,\n\t\t\t\t\ttable.options.enableSubRowSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getIsSomeRowsSelected: {\n\t\t\t\tfn: () => table_getIsSomeRowsSelected(table),\n\t\t\t\tmemoDeps: () => [table.atoms.rowSelection?.get()]\n\t\t\t},\n\t\t\ttable_getIsSomePageRowsSelected: {\n\t\t\t\tfn: () => table_getIsSomePageRowsSelected(table),\n\t\t\t\tmemoDeps: () => [\n\t\t\t\t\ttable.atoms.rowSelection?.get(),\n\t\t\t\t\ttable.getPaginatedRowModel(),\n\t\t\t\t\ttable.options.enableRowSelection\n\t\t\t\t]\n\t\t\t},\n\t\t\ttable_getToggleAllRowsSelectedHandler: { fn: () => table_getToggleAllRowsSelectedHandler(table) },\n\t\t\ttable_getToggleAllPageRowsSelectedHandler: { fn: () => table_getToggleAllPageRowsSelectedHandler(table) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { rowSelectionFeature };","import { assignPrototypeAPIs, assignTableAPIs, makeStateUpdater } from \"../../utils.js\";\nimport { column_clearSorting, column_getAutoSortDir, column_getAutoSortFn, column_getCanMultiSort, column_getCanSort, column_getFirstSortDir, column_getIsSorted, column_getNextSortingOrder, column_getSortFn, column_getSortIndex, column_getToggleSortingHandler, column_toggleSorting, getDefaultSortingState, table_resetSorting, table_setSorting } from \"./rowSortingFeature.utils.js\";\n\n//#region src/features/row-sorting/rowSortingFeature.ts\n/**\n* Feature that adds row sorting state, defaults, and column/table sorting APIs.\n*/\nconst rowSortingFeature = {\n\tgetInitialState(initialState) {\n\t\treturn {\n\t\t\tsorting: getDefaultSortingState(),\n\t\t\t...initialState\n\t\t};\n\t},\n\tgetDefaultColumnDef() {\n\t\treturn {\n\t\t\tsortFn: \"auto\",\n\t\t\tsortUndefined: 1\n\t\t};\n\t},\n\tgetDefaultTableOptions(table) {\n\t\treturn {\n\t\t\tautoResetSorting: false,\n\t\t\tonSortingChange: makeStateUpdater(\"sorting\", table),\n\t\t\tisMultiSortEvent: (e) => {\n\t\t\t\treturn e.shiftKey;\n\t\t\t}\n\t\t};\n\t},\n\tassignColumnPrototype(prototype, table) {\n\t\tassignPrototypeAPIs(\"rowSortingFeature\", prototype, table, {\n\t\t\tcolumn_getAutoSortFn: { fn: (column) => column_getAutoSortFn(column) },\n\t\t\tcolumn_getAutoSortDir: { fn: (column) => column_getAutoSortDir(column) },\n\t\t\tcolumn_getSortFn: { fn: (column) => column_getSortFn(column) },\n\t\t\tcolumn_toggleSorting: { fn: (column, desc, multi) => column_toggleSorting(column, desc, multi) },\n\t\t\tcolumn_getFirstSortDir: { fn: (column) => column_getFirstSortDir(column) },\n\t\t\tcolumn_getNextSortingOrder: { fn: (column, multi) => column_getNextSortingOrder(column, multi) },\n\t\t\tcolumn_getCanSort: { fn: (column) => column_getCanSort(column) },\n\t\t\tcolumn_getCanMultiSort: { fn: (column) => column_getCanMultiSort(column) },\n\t\t\tcolumn_getIsSorted: { fn: (column) => column_getIsSorted(column) },\n\t\t\tcolumn_getSortIndex: { fn: (column) => column_getSortIndex(column) },\n\t\t\tcolumn_clearSorting: { fn: (column) => column_clearSorting(column) },\n\t\t\tcolumn_getToggleSortingHandler: { fn: (column) => column_getToggleSortingHandler(column) }\n\t\t});\n\t},\n\tconstructTableAPIs(table) {\n\t\tassignTableAPIs(\"rowSortingFeature\", table, {\n\t\t\ttable_setSorting: { fn: (updater) => table_setSorting(table, updater) },\n\t\t\ttable_resetSorting: { fn: (defaultState) => table_resetSorting(table, defaultState) }\n\t\t});\n\t}\n};\n\n//#endregion\nexport { rowSortingFeature };","import { makeObjectMap } from \"../../utils.js\";\nimport { constructRow } from \"../../core/rows/constructRow.js\";\n\n//#region src/features/column-filtering/filterRowsUtils.ts\n/**\n* Filters a row model with the supplied row predicate.\n*\n* The helper supports both filtering from leaf rows upward and filtering parents before descendants, depending on table options.\n*/\nfunction filterRows(rows, filterRowImpl, table) {\n\tif (table.options.filterFromLeafRows) return filterRowModelFromLeafs(rows, filterRowImpl, table);\n\treturn filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n\tconst newFilteredFlatRows = [];\n\tconst newFilteredRowsById = makeObjectMap();\n\tconst maxDepth = table.options.maxLeafRowFilterDepth ?? 100;\n\tconst recurseFilterRows = (rowsToFilter, depth = 0) => {\n\t\tconst filteredRows = [];\n\t\tfor (let row of rowsToFilter) {\n\t\t\tconst newRow = constructRow(table, row.id, row.original, row.index, row.depth, void 0, row.parentId);\n\t\t\tnewRow.columnFilters = row.columnFilters;\n\t\t\tif (row.subRows.length && depth < maxDepth) {\n\t\t\t\tnewRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n\t\t\t\trow = newRow;\n\t\t\t\tif (filterRow(row) && !newRow.subRows.length) {\n\t\t\t\t\tfilteredRows.push(row);\n\t\t\t\t\tnewFilteredRowsById[row.id] = row;\n\t\t\t\t\tnewFilteredFlatRows.push(row);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (filterRow(row) || newRow.subRows.length) {\n\t\t\t\t\tfilteredRows.push(row);\n\t\t\t\t\tnewFilteredRowsById[row.id] = row;\n\t\t\t\t\tnewFilteredFlatRows.push(row);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\trow = newRow;\n\t\t\t\tif (filterRow(row)) {\n\t\t\t\t\tfilteredRows.push(row);\n\t\t\t\t\tnewFilteredRowsById[row.id] = row;\n\t\t\t\t\tnewFilteredFlatRows.push(row);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn filteredRows;\n\t};\n\treturn {\n\t\trows: recurseFilterRows(rowsToFilter),\n\t\tflatRows: newFilteredFlatRows,\n\t\trowsById: newFilteredRowsById\n\t};\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n\tconst newFilteredFlatRows = [];\n\tconst newFilteredRowsById = makeObjectMap();\n\tconst maxDepth = table.options.maxLeafRowFilterDepth ?? 100;\n\tconst recurseFilterRows = (rowsToFilter, depth = 0) => {\n\t\tconst filteredRows = [];\n\t\tfor (let row of rowsToFilter) if (filterRow(row)) {\n\t\t\tif (row.subRows.length && depth < maxDepth) {\n\t\t\t\tconst newRow = constructRow(table, row.id, row.original, row.index, row.depth, void 0, row.parentId);\n\t\t\t\tnewRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n\t\t\t\trow = newRow;\n\t\t\t}\n\t\t\tfilteredRows.push(row);\n\t\t\tnewFilteredFlatRows.push(row);\n\t\t\tnewFilteredRowsById[row.id] = row;\n\t\t\tif (row.subRows.length && depth >= maxDepth) addSubRowsToFlatArrays(row.subRows, newFilteredFlatRows, newFilteredRowsById);\n\t\t}\n\t\treturn filteredRows;\n\t};\n\treturn {\n\t\trows: recurseFilterRows(rowsToFilter),\n\t\tflatRows: newFilteredFlatRows,\n\t\trowsById: newFilteredRowsById\n\t};\n}\nfunction addSubRowsToFlatArrays(subRows, flatRows, rowsById) {\n\tfor (const subRow of subRows) {\n\t\tflatRows.push(subRow);\n\t\trowsById[subRow.id] = subRow;\n\t\tif (subRow.subRows.length) addSubRowsToFlatArrays(subRow.subRows, flatRows, rowsById);\n\t}\n}\n\n//#endregion\nexport { filterRows };","import { tableMemo } from \"../../utils.js\";\nimport { filterRows } from \"../column-filtering/filterRowsUtils.js\";\n\n//#region src/features/column-faceting/createFacetedRowModel.ts\n/**\n* Creates a memoized faceted row model factory.\n*\n* The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n*/\nfunction createFacetedRowModel() {\n\treturn (_table, columnId) => {\n\t\tconst table = _table;\n\t\treturn tableMemo({\n\t\t\tfeature: \"columnFacetingFeature\",\n\t\t\ttable,\n\t\t\tfnName: \"createFacetedRowModel\",\n\t\t\tmemoDeps: () => [\n\t\t\t\ttable.getPreFilteredRowModel(),\n\t\t\t\ttable.atoms.columnFilters?.get(),\n\t\t\t\ttable.atoms.globalFilter?.get(),\n\t\t\t\ttable.getFilteredRowModel()\n\t\t\t],\n\t\t\tfn: (preRowModel, columnFilters, globalFilter) => _createFacetedRowModel(table, columnId, preRowModel, columnFilters, globalFilter)\n\t\t});\n\t};\n}\nfunction _createFacetedRowModel(table, columnId, preRowModel, columnFilters, globalFilter) {\n\tconst hasGlobalFilter = globalFilter !== void 0 && globalFilter !== null && globalFilter !== \"\";\n\tif (!preRowModel.rows.length || !columnFilters?.length && !hasGlobalFilter) return preRowModel;\n\tconst filterableIds = [];\n\tif (columnFilters) for (let i = 0; i < columnFilters.length; i++) {\n\t\tconst id = columnFilters[i].id;\n\t\tif (id !== columnId) filterableIds.push(id);\n\t}\n\tif (hasGlobalFilter && columnId !== \"__global__\") filterableIds.push(\"__global__\");\n\tif (!filterableIds.length) return preRowModel;\n\tconst filterRowsImpl = (row) => {\n\t\tfor (let i = 0; i < filterableIds.length; i++) if (row.columnFilters?.[filterableIds[i]] === false) return false;\n\t\treturn true;\n\t};\n\treturn filterRows(preRowModel.rows, filterRowsImpl, table);\n}\n\n//#endregion\nexport { createFacetedRowModel };","import { callMemoOrStaticFn, tableMemo } from \"../../utils.js\";\nimport { column_getFacetedRowModel, table_getGlobalFacetedRowModel } from \"./columnFacetingFeature.utils.js\";\nimport { column_getCanGlobalFilter } from \"../global-filtering/globalFilteringFeature.utils.js\";\n\n//#region src/features/column-faceting/createFacetedUniqueValues.ts\n/**\n* Creates a memoized faceted unique values helper for faceted filtering.\n*\n* The returned function derives facet data from the table row model and relevant filter state so filter UIs can display available values.\n*/\nfunction createFacetedUniqueValues() {\n\treturn (_table, columnId) => {\n\t\tconst table = _table;\n\t\treturn tableMemo({\n\t\t\tfeature: \"columnFacetingFeature\",\n\t\t\ttable,\n\t\t\tfnName: \"table.getFacetedUniqueValues\",\n\t\t\tmemoDeps: () => {\n\t\t\t\tif (columnId === \"__global__\") return [callMemoOrStaticFn(table, \"getGlobalFacetedRowModel\", table_getGlobalFacetedRowModel).flatRows];\n\t\t\t\tconst column = table.getColumn(columnId);\n\t\t\t\tif (!column) return [table.getPreFilteredRowModel().flatRows];\n\t\t\t\treturn [callMemoOrStaticFn(column, \"getFacetedRowModel\", column_getFacetedRowModel, table).flatRows];\n\t\t\t},\n\t\t\tfn: (flatRows) => _createFacetedUniqueValues(table, columnId, flatRows)\n\t\t});\n\t};\n}\nfunction _createFacetedUniqueValues(table, columnId, flatRows) {\n\tconst columnIds = columnId === \"__global__\" ? table.getAllLeafColumns().filter((column) => column_getCanGlobalFilter(column)).map((column) => column.id) : [columnId];\n\tconst facetedUniqueValues = /* @__PURE__ */ new Map();\n\tfor (let i = 0; i < flatRows.length; i++) for (let c = 0; c < columnIds.length; c++) {\n\t\tconst values = flatRows[i].getUniqueValues(columnIds[c]);\n\t\tif (!values) continue;\n\t\tfor (let j = 0; j < values.length; j++) {\n\t\t\tconst value = values[j];\n\t\t\tconst previousValue = facetedUniqueValues.get(value);\n\t\t\tfacetedUniqueValues.set(value, previousValue === void 0 ? 1 : previousValue + 1);\n\t\t}\n\t}\n\treturn facetedUniqueValues;\n}\n\n//#endregion\nexport { createFacetedUniqueValues };","import { makeObjectMap, skipFirstRun, tableMemo } from \"../../utils.js\";\nimport { table_getColumn } from \"../../core/columns/coreColumnsFeature.utils.js\";\nimport { table_autoResetPageIndex } from \"../row-pagination/rowPaginationFeature.utils.js\";\nimport { column_getFilterFn } from \"./columnFilteringFeature.utils.js\";\nimport { column_getCanGlobalFilter, table_getGlobalFilterFn } from \"../global-filtering/globalFilteringFeature.utils.js\";\nimport { filterRows } from \"./filterRowsUtils.js\";\n\n//#region src/features/column-filtering/createFilteredRowModel.ts\n/**\n* Creates a memoized filtered row model factory.\n*\n* The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n*\n* Register the filter functions you use with the `filterFns` slot on the\n* `features` option:\n* `tableFeatures({ columnFilteringFeature, filteredRowModel: createFilteredRowModel(), filterFns: { includesString: filterFn_includesString } })`.\n* Importing individual `filterFn_*` functions keeps unused built-ins out of\n* your bundle; filter functions passed directly to the `filterFn` column\n* option need no registration at all.\n*/\nfunction createFilteredRowModel() {\n\treturn (_table) => {\n\t\tconst table = _table;\n\t\treturn tableMemo({\n\t\t\tfeature: \"columnFilteringFeature\",\n\t\t\ttable,\n\t\t\tfnName: \"table.getFilteredRowModel\",\n\t\t\tmemoDeps: () => [\n\t\t\t\ttable.getPreFilteredRowModel(),\n\t\t\t\ttable.atoms.columnFilters?.get(),\n\t\t\t\ttable.atoms.globalFilter?.get()\n\t\t\t],\n\t\t\tfn: () => _createFilteredRowModel(table),\n\t\t\tonAfterUpdate: skipFirstRun(() => table_autoResetPageIndex(table))\n\t\t});\n\t};\n}\nfunction _createFilteredRowModel(table) {\n\tconst rowModel = table.getPreFilteredRowModel();\n\tconst columnFilters = table.atoms.columnFilters?.get();\n\tconst globalFilter = table.atoms.globalFilter?.get();\n\tconst hasGlobalFilter = globalFilter !== void 0 && globalFilter !== null && globalFilter !== \"\";\n\tif (!rowModel.rows.length || !columnFilters?.length && !hasGlobalFilter) {\n\t\tconst flatRows = rowModel.flatRows;\n\t\tfor (let i = 0; i < flatRows.length; i++) {\n\t\t\tconst row = flatRows[i];\n\t\t\trow.columnFilters = makeObjectMap();\n\t\t\trow.columnFiltersMeta = makeObjectMap();\n\t\t}\n\t\treturn rowModel;\n\t}\n\tconst resolvedColumnFilters = [];\n\tconst resolvedGlobalFilters = [];\n\tcolumnFilters?.forEach((columnFilter) => {\n\t\tconst column = table_getColumn(table, columnFilter.id);\n\t\tif (!column) return;\n\t\tconst filterFn = column_getFilterFn(column);\n\t\tif (!filterFn) return;\n\t\tresolvedColumnFilters.push({\n\t\t\tid: columnFilter.id,\n\t\t\tfilterFn,\n\t\t\tresolvedValue: filterFn.resolveFilterValue?.(columnFilter.value) ?? columnFilter.value\n\t\t});\n\t});\n\tconst filterableIds = columnFilters?.map((d) => d.id) ?? [];\n\tconst globalFilterFn = table_getGlobalFilterFn(table);\n\tconst globallyFilterableColumns = table.getAllLeafColumns().filter((column) => column_getCanGlobalFilter(column));\n\tif (hasGlobalFilter && globalFilterFn && globallyFilterableColumns.length) {\n\t\tfilterableIds.push(\"__global__\");\n\t\tgloballyFilterableColumns.forEach((column) => {\n\t\t\tresolvedGlobalFilters.push({\n\t\t\t\tid: column.id,\n\t\t\t\tfilterFn: globalFilterFn,\n\t\t\t\tresolvedValue: globalFilterFn.resolveFilterValue?.(globalFilter) ?? globalFilter\n\t\t\t});\n\t\t});\n\t}\n\tconst flatRows = rowModel.flatRows;\n\tfor (let i = 0; i < flatRows.length; i++) {\n\t\tconst row = flatRows[i];\n\t\trow.columnFilters = makeObjectMap();\n\t\trow.columnFiltersMeta = makeObjectMap();\n\t\tif (resolvedColumnFilters.length) for (let j = 0; j < resolvedColumnFilters.length; j++) {\n\t\t\tconst currentColumnFilter = resolvedColumnFilters[j];\n\t\t\tconst id = currentColumnFilter.id;\n\t\t\trow.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, (filterMeta) => {\n\t\t\t\tif (!row.columnFiltersMeta) row.columnFiltersMeta = makeObjectMap();\n\t\t\t\trow.columnFiltersMeta[id] = filterMeta;\n\t\t\t});\n\t\t}\n\t\tif (resolvedGlobalFilters.length) {\n\t\t\tfor (let j = 0; j < resolvedGlobalFilters.length; j++) {\n\t\t\t\tconst currentGlobalFilter = resolvedGlobalFilters[j];\n\t\t\t\tconst id = currentGlobalFilter.id;\n\t\t\t\tif (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, (filterMeta) => {\n\t\t\t\t\tif (!row.columnFiltersMeta) row.columnFiltersMeta = makeObjectMap();\n\t\t\t\t\trow.columnFiltersMeta[id] = filterMeta;\n\t\t\t\t})) {\n\t\t\t\t\trow.columnFilters.__global__ = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (row.columnFilters.__global__ !== true) row.columnFilters.__global__ = false;\n\t\t}\n\t}\n\tconst filterRowsImpl = (row) => {\n\t\tfor (let i = 0; i < filterableIds.length; i++) if (row.columnFilters[filterableIds[i]] === false) return false;\n\t\treturn true;\n\t};\n\treturn filterRows(rowModel.rows, filterRowsImpl, table);\n}\n\n//#endregion\nexport { createFilteredRowModel };","import { tableMemo } from \"../../utils.js\";\nimport { row_getIsExpanded } from \"./rowExpandingFeature.utils.js\";\n\n//#region src/features/row-expanding/createExpandedRowModel.ts\n/**\n* Creates a memoized expanded row model factory.\n*\n* The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n*/\nfunction createExpandedRowModel() {\n\treturn (_table) => {\n\t\tconst table = _table;\n\t\treturn tableMemo({\n\t\t\tfeature: \"rowExpandingFeature\",\n\t\t\ttable,\n\t\t\tfnName: \"table.getExpandedRowModel\",\n\t\t\tmemoDeps: () => [\n\t\t\t\ttable.atoms.expanded?.get(),\n\t\t\t\ttable.getPreExpandedRowModel(),\n\t\t\t\ttable.options.paginateExpandedRows,\n\t\t\t\ttable.options.manualPagination\n\t\t\t],\n\t\t\tfn: () => _createExpandedRowModel(table)\n\t\t});\n\t};\n}\nfunction _createExpandedRowModel(table) {\n\tconst rowModel = table.getPreExpandedRowModel();\n\tconst expanded = table.atoms.expanded?.get();\n\tif (!rowModel.rows.length || expanded !== true && !Object.keys(expanded ?? {}).length) return rowModel;\n\tif (!table.options.paginateExpandedRows && !table.options.manualPagination) return rowModel;\n\treturn expandRows(rowModel);\n}\n/**\n* Expands a row model according to the current expanded row state.\n*\n* Expanded sub-rows are inserted into the flattened row order while preserving the original row hierarchy.\n*/\nfunction expandRows(rowModel) {\n\tconst expandedRows = [];\n\tconst handleRow = (row) => {\n\t\texpandedRows.push(row);\n\t\tif (row.subRows.length && row_getIsExpanded(row)) row.subRows.forEach(handleRow);\n\t};\n\trowModel.rows.forEach(handleRow);\n\treturn {\n\t\trows: expandedRows,\n\t\tflatRows: rowModel.flatRows,\n\t\trowsById: rowModel.rowsById\n\t};\n}\n\n//#endregion\nexport { createExpandedRowModel, expandRows };","import { tableMemo } from \"../../utils.js\";\nimport { getDefaultPaginationState } from \"./rowPaginationFeature.utils.js\";\nimport { expandRows } from \"../row-expanding/createExpandedRowModel.js\";\n\n//#region src/features/row-pagination/createPaginatedRowModel.ts\n/**\n* Creates a memoized paginated row model factory.\n*\n* The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n*/\nfunction createPaginatedRowModel() {\n\treturn (_table) => {\n\t\tconst table = _table;\n\t\treturn tableMemo({\n\t\t\tfeature: \"rowPaginationFeature\",\n\t\t\ttable,\n\t\t\tfnName: \"table.getPaginatedRowModel\",\n\t\t\tmemoDeps: () => [\n\t\t\t\ttable.getPrePaginatedRowModel(),\n\t\t\t\ttable.atoms.pagination?.get(),\n\t\t\t\t!table.options.paginateExpandedRows ? table.atoms.expanded?.get() : void 0\n\t\t\t],\n\t\t\tfn: () => _createPaginatedRowModel(table)\n\t\t});\n\t};\n}\nfunction _createPaginatedRowModel(table) {\n\tconst prePaginatedRowModel = table.getPrePaginatedRowModel();\n\tconst pagination = table.atoms.pagination?.get();\n\tif (!prePaginatedRowModel.rows.length) return prePaginatedRowModel;\n\tconst { pageSize, pageIndex } = pagination ?? getDefaultPaginationState();\n\tconst { rows, flatRows, rowsById } = prePaginatedRowModel;\n\tconst pageStart = pageSize * pageIndex;\n\tconst pageEnd = pageStart + pageSize;\n\tconst paginatedRows = rows.slice(pageStart, pageEnd);\n\tlet paginatedRowModel;\n\tif (!table.options.paginateExpandedRows) paginatedRowModel = expandRows({\n\t\trows: paginatedRows,\n\t\tflatRows,\n\t\trowsById\n\t});\n\telse paginatedRowModel = {\n\t\trows: paginatedRows,\n\t\tflatRows,\n\t\trowsById\n\t};\n\tpaginatedRowModel.flatRows = [];\n\tconst seenFlatRows = /* @__PURE__ */ new Set();\n\tconst handleRow = (row) => {\n\t\tif (seenFlatRows.has(row.id)) return;\n\t\tseenFlatRows.add(row.id);\n\t\tpaginatedRowModel.flatRows.push(row);\n\t\tif (row.subRows.length) row.subRows.forEach(handleRow);\n\t};\n\tpaginatedRowModel.rows.forEach(handleRow);\n\treturn paginatedRowModel;\n}\n\n//#endregion\nexport { createPaginatedRowModel };","import { copyInstancePropertiesWithoutMemos, skipFirstRun, tableMemo } from \"../../utils.js\";\nimport { table_autoResetPageIndex } from \"../row-pagination/rowPaginationFeature.utils.js\";\nimport { column_getCanSort, column_getSortFn } from \"./rowSortingFeature.utils.js\";\n\n//#region src/features/row-sorting/createSortedRowModel.ts\n/**\n* Creates a memoized sorted row model factory.\n*\n* The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n*\n* Register the sorting functions you use with the `sortFns` slot on the\n* `features` option:\n* `tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), sortFns: { alphanumeric: sortFn_alphanumeric } })`.\n* Importing individual `sortFn_*` functions keeps unused built-ins out of\n* your bundle; sorting functions passed directly to the `sortFn` column\n* option need no registration at all.\n*/\nfunction createSortedRowModel() {\n\treturn (_table) => {\n\t\tconst table = _table;\n\t\treturn tableMemo({\n\t\t\tfeature: \"rowSortingFeature\",\n\t\t\ttable,\n\t\t\tfnName: \"table.getSortedRowModel\",\n\t\t\tmemoDeps: () => [table.atoms.sorting?.get(), table.getPreSortedRowModel()],\n\t\t\tfn: () => _createSortedRowModel(table),\n\t\t\tonAfterUpdate: skipFirstRun(() => table_autoResetPageIndex(table))\n\t\t});\n\t};\n}\nfunction _createSortedRowModel(table) {\n\tconst preSortedRowModel = table.getPreSortedRowModel();\n\tconst sorting = table.atoms.sorting?.get();\n\tif (!preSortedRowModel.rows.length || !sorting?.length) return preSortedRowModel;\n\tconst sortedFlatRows = [];\n\tconst availableSorting = sorting.filter((sort) => {\n\t\tconst column = table.getColumn(sort.id);\n\t\treturn column ? column_getCanSort(column) : false;\n\t});\n\tif (!availableSorting.length) return preSortedRowModel;\n\tconst resolvedSorting = [];\n\tfor (let i = 0; i < availableSorting.length; i++) {\n\t\tconst sortEntry = availableSorting[i];\n\t\tconst column = table.getColumn(sortEntry.id);\n\t\tif (!column) continue;\n\t\tresolvedSorting.push({\n\t\t\tid: sortEntry.id,\n\t\t\tdesc: sortEntry.desc,\n\t\t\tsortUndefined: column.columnDef.sortUndefined,\n\t\t\tinvertSorting: column.columnDef.invertSorting,\n\t\t\tsortFn: column_getSortFn(column)\n\t\t});\n\t}\n\tconst compareRows = (rowA, rowB) => {\n\t\tfor (let i = 0; i < resolvedSorting.length; i++) {\n\t\t\tconst sortEntry = resolvedSorting[i];\n\t\t\tconst sortUndefined = sortEntry.sortUndefined;\n\t\t\tconst isDesc = sortEntry.desc;\n\t\t\tlet sortInt = 0;\n\t\t\tif (sortUndefined) {\n\t\t\t\tconst aValue = rowA.getValue(sortEntry.id);\n\t\t\t\tconst bValue = rowB.getValue(sortEntry.id);\n\t\t\t\tconst aUndefined = aValue === void 0;\n\t\t\t\tconst bUndefined = bValue === void 0;\n\t\t\t\tif (aUndefined && bUndefined) continue;\n\t\t\t\tif (aUndefined || bUndefined) {\n\t\t\t\t\tif (sortUndefined === \"first\") return aUndefined ? -1 : 1;\n\t\t\t\t\tif (sortUndefined === \"last\") return aUndefined ? 1 : -1;\n\t\t\t\t\tsortInt = aUndefined ? sortUndefined : -sortUndefined;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (sortInt === 0) sortInt = sortEntry.sortFn(rowA, rowB, sortEntry.id);\n\t\t\tif (sortInt !== 0) {\n\t\t\t\tif (isDesc) sortInt *= -1;\n\t\t\t\tif (sortEntry.invertSorting) sortInt *= -1;\n\t\t\t\treturn sortInt;\n\t\t\t}\n\t\t}\n\t\treturn rowA.index - rowB.index;\n\t};\n\tconst sortData = (rows) => {\n\t\tconst sortedData = rows.slice();\n\t\tsortedData.sort(compareRows);\n\t\tlet changed = false;\n\t\tfor (let i = 0; i < sortedData.length; i++) {\n\t\t\tconst row = sortedData[i];\n\t\t\tif (row !== rows[i]) changed = true;\n\t\t\tif (row.subRows.length) {\n\t\t\t\tconst sortedSubRows = sortData(row.subRows);\n\t\t\t\tif (sortedSubRows.changed) {\n\t\t\t\t\tconst cloned = Object.create(Object.getPrototypeOf(row));\n\t\t\t\t\tcopyInstancePropertiesWithoutMemos(cloned, row);\n\t\t\t\t\tcloned.subRows = sortedSubRows.rows;\n\t\t\t\t\tsortedData[i] = cloned;\n\t\t\t\t\tsortedFlatRows.push(cloned);\n\t\t\t\t\tchanged = true;\n\t\t\t\t} else sortedFlatRows.push(row);\n\t\t\t} else sortedFlatRows.push(row);\n\t\t}\n\t\treturn {\n\t\t\trows: sortedData,\n\t\t\tchanged\n\t\t};\n\t};\n\treturn {\n\t\trows: sortData(preSortedRowModel.rows).rows,\n\t\tflatRows: sortedFlatRows,\n\t\trowsById: preSortedRowModel.rowsById\n\t};\n}\n\n//#endregion\nexport { createSortedRowModel };","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid filters.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n * Pure filter-operator logic, built as the dependency-free\n * `@coreui/data-grid/filters` subpath so the framework bindings share one\n * implementation without pulling in the vanilla component runtime.\n */\n\nimport type {\n DataGridColumnFilterValue,\n DataGridFilterCondition,\n DataGridFilterOperator,\n DataGridFilterType\n} from './types'\n\nexport const FILTER_OPERATORS: Record<Exclude<DataGridFilterType, 'select'>, DataGridFilterOperator[]> = {\n text: ['contains', 'notContains', 'equals', 'notEquals', 'startsWith', 'endsWith', 'blank', 'notBlank'],\n number: [\n 'equals',\n 'notEquals',\n 'greaterThan',\n 'greaterThanOrEqual',\n 'lessThan',\n 'lessThanOrEqual',\n 'between',\n 'blank',\n 'notBlank'\n ],\n date: [\n 'equals',\n 'notEquals',\n 'greaterThan',\n 'greaterThanOrEqual',\n 'lessThan',\n 'lessThanOrEqual',\n 'between',\n 'blank',\n 'notBlank'\n ]\n}\n\nexport const VALUELESS_OPERATORS: ReadonlySet<DataGridFilterOperator> = new Set(['blank', 'notBlank'])\n\nconst isBlank = (value: unknown): boolean =>\n value === null || value === undefined || String(value).trim() === ''\n\nconst toComparable = (value: unknown, filterType: DataGridFilterType): number | null => {\n if (filterType === 'date') {\n const time = value instanceof Date ? value.getTime() : new Date(String(value)).getTime()\n return Number.isNaN(time) ? null : time\n }\n\n const numeric = typeof value === 'number' ? value : Number(value)\n return Number.isFinite(numeric) ? numeric : null\n}\n\nconst evaluateCondition = (\n cellValue: unknown,\n condition: DataGridFilterCondition,\n filterType: DataGridFilterType\n): boolean => {\n const { operator } = condition\n\n if (operator === 'blank') {\n return isBlank(cellValue)\n }\n\n if (operator === 'notBlank') {\n return !isBlank(cellValue)\n }\n\n // A condition without a value filters nothing (the menu treats it as\n // incomplete rather than matching nothing).\n if (isBlank(condition.value)) {\n return true\n }\n\n if (filterType === 'number' || filterType === 'date') {\n const cell = toComparable(cellValue, filterType)\n const bound = toComparable(condition.value, filterType)\n if (cell === null || bound === null) {\n return false\n }\n\n switch (operator) {\n case 'equals': {\n return cell === bound\n }\n\n case 'notEquals': {\n return cell !== bound\n }\n\n case 'greaterThan': {\n return cell > bound\n }\n\n case 'greaterThanOrEqual': {\n return cell >= bound\n }\n\n case 'lessThan': {\n return cell < bound\n }\n\n case 'lessThanOrEqual': {\n return cell <= bound\n }\n\n case 'between': {\n const upper = toComparable(condition.value2, filterType)\n return upper === null ? cell >= bound : cell >= bound && cell <= upper\n }\n\n default: {\n return false\n }\n }\n }\n\n const cell = String(cellValue ?? '').toLowerCase()\n const needle = String(condition.value).toLowerCase()\n\n switch (operator) {\n case 'contains': {\n return cell.includes(needle)\n }\n\n case 'notContains': {\n return !cell.includes(needle)\n }\n\n case 'equals': {\n return cell === needle\n }\n\n case 'notEquals': {\n return cell !== needle\n }\n\n case 'startsWith': {\n return cell.startsWith(needle)\n }\n\n case 'endsWith': {\n return cell.endsWith(needle)\n }\n\n default: {\n return false\n }\n }\n}\n\nexport const evaluateColumnFilter = (\n cellValue: unknown,\n filterValue: DataGridColumnFilterValue,\n filterType: DataGridFilterType = 'text'\n): boolean => {\n if (typeof filterValue === 'string') {\n return String(cellValue ?? '')\n .toLowerCase()\n .includes(filterValue.toLowerCase())\n }\n\n if ('conditions' in filterValue) {\n const results = filterValue.conditions.map(condition =>\n evaluateCondition(cellValue, condition, filterType)\n )\n return filterValue.join === 'or' ? results.some(Boolean) : results.every(Boolean)\n }\n\n return filterValue.value.some(candidate => String(candidate) === String(cellValue))\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid util/direction.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\n// Read from the element rather than the document: a grid can sit inside an RTL\n// subtree of an LTR page, which is why the vendored isRTL() (it checks\n// documentElement.dir) is not the helper for any of this.\n//\n// Angular prerenders in Node, where there is no getComputedStyle — and no\n// layout to have a direction. LTR is the right answer there: the server-side\n// pass emits logical markup either way, and the client corrects on hydration.\nexport const isElementRTL = (element: Element | null | undefined): boolean =>\n typeof getComputedStyle === 'function' && element ?\n getComputedStyle(element).direction === 'rtl' :\n false\n\ninterface ResizeDirectionTable {\n options: { columnResizeDirection?: 'ltr' | 'rtl' }\n setOptions: (updater: (previous: { columnResizeDirection?: 'ltr' | 'rtl' }) => never) => void\n}\n\n// table-core copies the options object at construction, so the direction it\n// captured goes stale the moment an app swaps language on a live grid. A\n// resize is the only place the value is read, and starting one is rare enough\n// to re-read the element here.\nexport const syncResizeDirection = (\n table: ResizeDirectionTable,\n element: Element | null | undefined\n): void => {\n const direction = isElementRTL(element) ? 'rtl' : 'ltr'\n if (table.options.columnResizeDirection !== direction) {\n table.setOptions(previous => ({ ...previous, columnResizeDirection: direction }) as never)\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid ui/toolbar.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport type { CsvDownloadOptions, CsvTable } from '../util/csv'\nimport type { DataGridLabels, DataGridOptions } from '../types'\n\nconst CLASS_NAME_TOOLBAR = 'data-grid-toolbar'\nconst CLASS_NAME_ACTIONS = 'data-grid-toolbar-actions'\nconst CLASS_NAME_SEARCH = 'data-grid-toolbar-search'\n\nexport interface GridToolbarContext {\n labels: DataGridLabels\n columns: boolean\n export: boolean\n // Undo/redo of edit commits - both buttons start disabled, the grid\n // toggles them as the history stacks fill.\n history: boolean\n print: boolean\n search: boolean\n icons: {\n columns: string\n export: string\n print: string\n redo: string\n undo: string\n }\n}\n\nexport interface GridToolbar {\n element: HTMLDivElement\n}\n\nexport type DataGridExporter = (table: CsvTable, options: DataGridExportOptions) => void\n\nexport interface DataGridExportOptions extends CsvDownloadOptions {\n // Sheet name for spreadsheet writers; the CSV writer ignores it.\n sheetName?: string\n // The writer the toolbar button calls, defaulting to the built-in CSV one.\n // Pass `downloadXlsx` from `@coreui/data-grid/xlsx` for Excel. It is\n // INJECTED, never imported by the grid: a writer only reaches the app\n // bundle when the app asks for it.\n exporter?: DataGridExporter\n}\n\nexport interface ResolvedToolbar {\n columns: boolean\n export: boolean\n exportOptions: DataGridExportOptions\n history: boolean\n print: boolean\n search: boolean\n}\n\n// Normalizes `toolbar` + `globalFilter` into the individual actions. `toolbar:\n// true` enables each action whose underlying feature is on; a granular object\n// picks individually. `globalFilter: true` stays shorthand for the search input.\nexport const resolveToolbar = (options: DataGridOptions): ResolvedToolbar => {\n const { toolbar } = options\n const columnVisibility = Boolean(options.columnVisibility)\n\n if (toolbar === true) {\n return {\n columns: columnVisibility,\n export: true,\n exportOptions: {},\n history: options.history,\n print: true,\n search: true\n }\n }\n\n if (typeof toolbar === 'object') {\n const exportOption = toolbar.export ?? false\n return {\n columns: (toolbar.columns ?? false) && columnVisibility,\n export: Boolean(exportOption),\n exportOptions: typeof exportOption === 'object' ? exportOption : {},\n history: (toolbar.history ?? false) && options.history,\n print: toolbar.print ?? false,\n search: (toolbar.search ?? false) || Boolean(options.globalFilter)\n }\n }\n\n return {\n columns: false,\n export: false,\n exportOptions: {},\n history: false,\n print: false,\n search: Boolean(options.globalFilter)\n }\n}\n\nexport const isGlobalFilterEnabled = (options: DataGridOptions): boolean =>\n resolveToolbar(options).search\n\nconst createActionButton = (icon: string, label: string, dataAttribute: string): HTMLButtonElement => {\n const button = document.createElement('button')\n button.type = 'button'\n button.classList.add('btn', 'btn-ghost', 'btn-sm')\n button.innerHTML = icon\n button.setAttribute(dataAttribute, '')\n button.setAttribute('data-coreui-tooltip', label)\n const text = document.createElement('span')\n text.classList.add('visually-hidden')\n text.textContent = label\n button.append(text)\n return button\n}\n\nexport const createToolbar = (context: GridToolbarContext): GridToolbar => {\n const element = document.createElement('div')\n element.classList.add(CLASS_NAME_TOOLBAR)\n\n if (context.columns || context.export || context.print || context.history) {\n const actions = document.createElement('div')\n actions.classList.add(CLASS_NAME_ACTIONS)\n\n if (context.columns) {\n actions.append(\n createActionButton(context.icons.columns, context.labels.toolbarColumns, 'data-coreui-toolbar-columns')\n )\n }\n\n if (context.export) {\n actions.append(\n createActionButton(context.icons.export, context.labels.toolbarExport, 'data-coreui-toolbar-export')\n )\n }\n\n if (context.print) {\n actions.append(\n createActionButton(context.icons.print, context.labels.toolbarPrint, 'data-coreui-toolbar-print')\n )\n }\n\n if (context.history) {\n const undoButton = createActionButton(context.icons.undo, context.labels.toolbarUndo, 'data-coreui-toolbar-undo')\n const redoButton = createActionButton(context.icons.redo, context.labels.toolbarRedo, 'data-coreui-toolbar-redo')\n undoButton.disabled = true\n redoButton.disabled = true\n actions.append(undoButton, redoButton)\n }\n\n element.append(actions)\n }\n\n if (context.search) {\n const search = document.createElement('div')\n search.classList.add(CLASS_NAME_SEARCH)\n\n const input = document.createElement('input')\n input.type = 'search'\n input.classList.add('form-control', 'form-control-sm')\n input.placeholder = context.labels.globalFilterPlaceholder\n input.setAttribute('aria-label', context.labels.globalFilterLabel)\n input.dataset.coreuiGlobalFilter = ''\n\n search.append(input)\n element.append(search)\n }\n\n return { element }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid engine/validate.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\n// v9 exposes an API only when its feature is registered - a config flag whose\n// feature is missing from a custom `features` set would otherwise surface as\n// an undefined-method crash deep in a render. This maps each flag to the\n// registration keys its code paths reach and fails fast at construction with\n// the flag/feature pair spelled out.\nexport interface FeatureCoverageFlags {\n cellSelection: boolean\n columnFilters: boolean\n columnOrder: boolean\n columnPinning: boolean\n columnSizing: boolean\n columnVisibility: boolean\n globalFilter: boolean\n pagination: boolean\n rowSelection: boolean\n // columnFilters with a filterType: 'select' column - the value list comes\n // from faceting.\n selectFilters: boolean\n sorting: boolean\n}\n\nconst FLAG_FEATURES: ReadonlyArray<[keyof FeatureCoverageFlags, readonly string[]]> = [\n ['cellSelection', ['cellSelectionFeature']],\n ['columnFilters', ['columnFilteringFeature', 'filteredRowModel']],\n ['columnOrder', ['columnOrderingFeature']],\n // Pinning offsets come from column.getSize() and the edge classes from\n // getIsVisible(), so pinning drags sizing + visibility in with it.\n ['columnPinning', ['columnPinningFeature', 'columnSizingFeature', 'columnVisibilityFeature']],\n ['columnSizing', ['columnResizingFeature', 'columnSizingFeature']],\n ['columnVisibility', ['columnVisibilityFeature']],\n ['globalFilter', ['filteredRowModel', 'filterFns', 'globalFilteringFeature']],\n ['pagination', ['paginatedRowModel', 'rowPaginationFeature']],\n ['rowSelection', ['rowSelectionFeature']],\n ['selectFilters', ['columnFacetingFeature', 'facetedRowModel', 'facetedUniqueValues']],\n ['sorting', ['rowSortingFeature', 'sortedRowModel']]\n]\n\nexport const assertFeatureCoverage = (\n componentName: string,\n features: object,\n flags: FeatureCoverageFlags\n): void => {\n for (const [flag, requiredKeys] of FLAG_FEATURES) {\n if (!flags[flag]) {\n continue\n }\n\n const label = flag === 'selectFilters' ? 'columnFilters (filterType \"select\")' : flag\n for (const key of requiredKeys) {\n if (!(key in features)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: Option \"${label}\" requires feature \"${key}\" in \"features\".`\n )\n }\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid engine/table.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport { constructTable, type FilterFn } from '@tanstack/table-core'\nimport { evaluateColumnFilter } from '../filters'\nimport { isElementRTL } from '../util/direction'\nimport type {\n DataGridColumn, DataGridColumnFilterValue, DataGridFeatures, DataGridItem, DataGridOptions,\n DataGridTable, DataGridTableState\n} from '../types'\nimport { isGlobalFilterEnabled } from '../ui/toolbar'\nimport { assertFeatureCoverage } from './validate'\n\nconst UNPAGINATED_PAGE_SIZE = Number.MAX_SAFE_INTEGER\nconst INFINITE_SCROLL_PAGE_SIZE = 50\n\nconst toTanStackFilterFn = (column: DataGridColumn): FilterFn<DataGridFeatures, DataGridItem> => {\n const { filterFn } = column\n if (filterFn) {\n return (row, columnId, filterValue) => filterFn(row.getValue(columnId), filterValue, row.original)\n }\n\n return (row, columnId, filterValue) =>\n evaluateColumnFilter(row.getValue(columnId), filterValue as DataGridColumnFilterValue, column.filterType)\n}\n\nexport const createGridTable = (\n options: DataGridOptions,\n getElement?: () => Element | null\n): DataGridTable => {\n const sortingOptions = typeof options.sorting === 'object' ? options.sorting : {}\n const sizingOptions = typeof options.columnSizing === 'object' ? options.columnSizing : {}\n const paginationOptions = typeof options.pagination === 'object' ? options.pagination : {}\n const serverSide = Boolean(options.dataProvider)\n const sizingEnabled = Boolean(options.columnSizing)\n const pinningEnabled = Boolean(options.columnPinning)\n // Pinning offsets come from column.getSize(); sticky positioning is only\n // pixel-correct when the rendered widths equal those sizes, so both features\n // seed and apply explicit widths.\n const widthsEnabled = sizingEnabled || pinningEnabled\n const paginated = Boolean(options.pagination) || serverSide\n const infiniteOptions = typeof options.infiniteScroll === 'object' ? options.infiniteScroll : {}\n\n if (options.infiniteScroll) {\n if (!serverSide) {\n throw new TypeError('DATA-GRID: Option \"infiniteScroll\" requires \"dataProvider\".')\n }\n\n if (options.pagination) {\n throw new TypeError('DATA-GRID: Option \"infiniteScroll\" cannot be combined with \"pagination\".')\n }\n\n if (!options.virtualization) {\n throw new TypeError('DATA-GRID: Option \"infiniteScroll\" requires \"virtualization\".')\n }\n }\n\n // The default set comes from the ENTRY's DataGrid subclass, never from a\n // static import here - that split is what keeps the full preset out of the\n // lite bundle. A custom set is typed as the full DataGridFeatures; internals\n // stay on the full alias and capability-guard every optional-feature call.\n const { features } = options\n if (!features) {\n throw new TypeError('DATA-GRID: Option \"features\" is required.')\n }\n\n assertFeatureCoverage('data-grid', features, {\n cellSelection: options.cellSelection,\n columnFilters: options.columnFilters,\n columnOrder: Boolean(options.columnOrder),\n columnPinning: pinningEnabled,\n columnSizing: sizingEnabled,\n columnVisibility: Boolean(options.columnVisibility),\n globalFilter: isGlobalFilterEnabled(options),\n pagination: paginated,\n rowSelection: Boolean(options.rowSelection),\n selectFilters: options.columnFilters && options.columns.some(column => column.filterType === 'select'),\n sorting: Boolean(options.sorting)\n })\n\n const initialState: Partial<DataGridTableState> = {\n // An unpaginated grid is one page holding every row - but only when the\n // pagination feature is registered at all.\n ...('rowPaginationFeature' in features && {\n pagination: {\n pageIndex: 0,\n pageSize: options.infiniteScroll ?\n infiniteOptions.pageSize ?? INFINITE_SCROLL_PAGE_SIZE :\n (paginated ? paginationOptions.pageSize ?? 10 : UNPAGINATED_PAGE_SIZE)\n }\n }),\n ...(typeof options.columnPinning === 'object' && {\n columnPinning: { start: [], end: [], ...options.columnPinning }\n }),\n ...(Array.isArray(options.columnOrder) && { columnOrder: options.columnOrder }),\n ...(typeof options.columnVisibility === 'object' && { columnVisibility: options.columnVisibility })\n }\n\n return constructTable<DataGridFeatures, DataGridItem>({\n columns: options.columns.map(column => {\n const size = column.width ?? null\n return {\n accessorKey: column.key,\n enableColumnFilter: column.filterable !== false,\n enableHiding: column.hideable !== false,\n enableResizing: column.resizable !== false,\n enableSorting: column.sortable !== false,\n filterFn: toTanStackFilterFn(column),\n id: column.key,\n meta: { label: column.label, formatter: column.formatter, width: column.width },\n ...(widthsEnabled && size !== null && { size })\n }\n }),\n columnResizeMode: sizingOptions.mode ?? 'onChange',\n // Construction-time only — table-core copies the options object, so a\n // getter here would never be re-read. A direction flipped later is picked\n // up by refreshing this through setOptions when a resize starts.\n columnResizeDirection: isElementRTL(getElement?.()) ? 'rtl' : 'ltr',\n data: serverSide ? [] : options.items,\n enableCellSelection: Boolean(options.cellSelection),\n enableColumnFilters: Boolean(options.columnFilters),\n enableColumnPinning: pinningEnabled,\n enableColumnResizing: sizingEnabled,\n enableGlobalFilter: isGlobalFilterEnabled(options),\n enableHiding: Boolean(options.columnVisibility),\n enableMultiSort: sortingOptions.multiple !== false,\n enableRowSelection: Boolean(options.rowSelection),\n enableSorting: Boolean(options.sorting),\n enableSortingRemoval: Boolean(sortingOptions.resetable),\n features,\n globalFilterFn: 'includesString',\n ...(serverSide && {\n manualFiltering: true,\n manualPagination: true,\n manualSorting: true,\n rowCount: 0\n }),\n ...(options.itemKey && { getRowId: options.itemKey }),\n initialState,\n renderFallbackValue: null\n })\n}\n\n// table.store emits the new snapshot only (and only when a slice identity\n// changed - it compares shallowly), so the previous one is kept here for the\n// slice-by-slice diffing the grid does on every state change.\nexport const subscribeToTableState = (\n table: DataGridTable,\n listener: (previous: DataGridTableState, next: DataGridTableState) => void\n): (() => void) => {\n let previous = table.store.state\n const subscription = table.store.subscribe(next => {\n const from = previous\n previous = next\n listener(from, next)\n })\n\n return () => subscription.unsubscribe()\n}\n","function createLazyMeasurementsView(count, flat, getItemKey) {\n const cache = new Array(count);\n return new Proxy(cache, {\n get(target, prop, receiver) {\n if (typeof prop === \"string\") {\n const c = prop.charCodeAt(0);\n if (c >= 48 && c <= 57) {\n const i = +prop;\n if (Number.isInteger(i) && i >= 0 && i < count) {\n let v = target[i];\n if (!v) {\n const s = flat[i * 2];\n v = target[i] = {\n index: i,\n key: getItemKey(i),\n start: s,\n size: flat[i * 2 + 1],\n end: s + flat[i * 2 + 1],\n lane: 0\n };\n }\n return v;\n }\n }\n if (prop === \"length\") return count;\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nexport {\n createLazyMeasurementsView\n};\n//# sourceMappingURL=lazy-measurements.js.map\n","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a;\n const debugEnabled = process.env.NODE_ENV !== \"production\" && !!opts.key && !!((_a = opts.debug) == null ? void 0 : _a.call(opts));\n let depTime = 0;\n if (debugEnabled) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime = 0;\n if (debugEnabled) resultTime = Date.now();\n result = fn(...newDeps);\n if (debugEnabled) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { createLazyMeasurementsView } from \"./lazy-measurements.js\";\nimport { memo, notUndefined, approxEqual, debounce } from \"./utils.js\";\nlet _isIOSResult;\nconst isIOSWebKit = () => {\n if (_isIOSResult !== void 0) return _isIOSResult;\n if (typeof navigator === \"undefined\") return _isIOSResult = false;\n if (/iP(hone|od|ad)/.test(navigator.userAgent)) return _isIOSResult = true;\n const mtp = navigator.maxTouchPoints;\n return _isIOSResult = navigator.platform === \"MacIntel\" && mtp !== void 0 && mtp > 0;\n};\nconst _resetIOSDetectionForTests = () => {\n _isIOSResult = void 0;\n};\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const len = end - start + 1;\n const arr = new Array(len);\n for (let i = 0; i < len; i++) {\n arr[i] = start + i;\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeOffset = (instance, cb, readOffset) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n let offset = 0;\n const fallback = registerScrollendEvent ? null : debounce(\n targetWindow,\n () => cb(offset, false),\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = readOffset(element);\n fallback == null ? void 0 : fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeElementOffset = (instance, cb) => observeOffset(instance, cb, (el) => {\n const { horizontal, isRtl } = instance.options;\n return horizontal ? el.scrollLeft * (isRtl && -1 || 1) : el.scrollTop;\n});\nconst observeWindowOffset = (instance, cb) => observeOffset(\n instance,\n cb,\n (win) => instance.options.horizontal ? win.scrollX : win.scrollY\n);\nconst measureElement = (element, entry, instance) => {\n if (instance.options.useCachedMeasurements) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n return instance.itemSizeCache.get(key) ?? instance.options.estimateSize(index);\n }\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n if (!entry) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n const cachedSize = instance.itemSizeCache.get(key);\n if (cachedSize !== void 0) {\n return cachedSize;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst scrollWithAdjustments = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: offset + adjustments,\n behavior\n });\n};\nconst windowScroll = scrollWithAdjustments;\nconst elementScroll = scrollWithAdjustments;\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollState = null;\n this.measurementsCache = [];\n this._flatMeasurements = null;\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.itemSizeCacheVersion = 0;\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMin = null;\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.pendingScrollAnchor = null;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this._iosDeferredAdjustment = 0;\n this._iosTouching = false;\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._intendedScrollOffset = null;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.now = () => {\n var _a, _b, _c;\n return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now();\n };\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n const node = entry.target;\n const index = this.indexFromElement(node);\n if (!node.isConnected) {\n this.observer.unobserve(node);\n for (const [cacheKey, cachedNode] of this.elementsCache) {\n if (cachedNode === node) {\n this.elementsCache.delete(cacheKey);\n break;\n }\n }\n return;\n }\n if (this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(\n index,\n this.options.measureElement(node, entry, this)\n );\n }\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n var _a, _b;\n const merged = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n anchorTo: \"start\",\n followOnAppend: false,\n scrollEndThreshold: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n laneAssignmentMode: \"estimate\",\n useCachedMeasurements: false\n };\n for (const key in opts2) {\n const v = opts2[key];\n if (v !== void 0) merged[key] = v;\n }\n const prevOptions = this.options;\n let anchor = null;\n let followOnAppend = null;\n let edgeKeysChanged = false;\n if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === \"end\" && this.scrollElement !== null) {\n const prevCount = prevOptions.count;\n const nextCount = merged.count;\n const measurements = this.getMeasurements();\n const prevFirstKey = prevCount > 0 ? ((_a = measurements[0]) == null ? void 0 : _a.key) ?? prevOptions.getItemKey(0) : null;\n const prevLastKey = prevCount > 0 ? ((_b = measurements[prevCount - 1]) == null ? void 0 : _b.key) ?? prevOptions.getItemKey(prevCount - 1) : null;\n const didCountChange = nextCount !== prevCount;\n const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);\n if (didEdgeKeysChange) {\n edgeKeysChanged = true;\n const item = prevCount > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? measurements[0] : null;\n if (item) {\n anchor = [item.key, this.getScrollOffset() - item.start];\n }\n const behavior = merged.followOnAppend === true ? \"auto\" : merged.followOnAppend || null;\n if (behavior && nextCount > prevCount && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {\n followOnAppend = behavior;\n }\n }\n }\n this.options = merged;\n if (edgeKeysChanged) {\n this.pendingMin = 0;\n this.itemSizeCacheVersion++;\n }\n let anchorResolved = false;\n let anchorDelta = 0;\n if (anchor && this.scrollOffset !== null) {\n const [anchorKey, anchorOffset] = anchor;\n const newMeasurements = this.getMeasurements();\n const { count, getItemKey } = this.options;\n let idx = 0;\n while (idx < count && getItemKey(idx) !== anchorKey) {\n idx++;\n }\n if (idx < count) {\n const anchorItem = newMeasurements[idx];\n if (anchorItem) {\n const newOffset = anchorItem.start + anchorOffset;\n if (newOffset !== this.scrollOffset) {\n anchorDelta = newOffset - this.scrollOffset;\n this.scrollOffset = newOffset;\n anchorResolved = true;\n }\n }\n }\n }\n if (anchorResolved || followOnAppend) {\n this.pendingScrollAnchor = [\n anchorResolved ? anchor[0] : null,\n anchorResolved ? anchor[1] : 0,\n followOnAppend,\n anchorDelta\n ];\n }\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n if (this.rafId != null && this.targetWindow) {\n this.targetWindow.cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.scrollState = null;\n this._iosDeferredAdjustment = 0;\n this._iosTouching = false;\n this._iosJustTouchEnded = false;\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n if (isScrolling && this._intendedScrollOffset === null && offset === this.scrollOffset) {\n return;\n }\n if (this._intendedScrollOffset !== null && Math.abs(offset - this._intendedScrollOffset) < 1.5) {\n offset = this._intendedScrollOffset;\n }\n this._intendedScrollOffset = null;\n this.scrollAdjustments = 0;\n const prevOffset = this.getScrollOffset();\n this.scrollDirection = isScrolling ? prevOffset === offset ? this.scrollDirection : prevOffset < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this._flushIosDeferredIfReady();\n if (this.scrollState) {\n this.scheduleScrollReconcile();\n }\n this.maybeNotify();\n })\n );\n if (\"addEventListener\" in this.scrollElement) {\n const scrollEl = this.scrollElement;\n const onTouchStart = () => {\n this._iosTouching = true;\n this._iosJustTouchEnded = false;\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n };\n const onTouchEnd = () => {\n this._iosTouching = false;\n if (!isIOSWebKit() || this.targetWindow == null) {\n return;\n }\n this._iosJustTouchEnded = true;\n this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => {\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._flushIosDeferredIfReady();\n }, 150);\n };\n scrollEl.addEventListener(\n \"touchstart\",\n onTouchStart,\n addEventListenerOptions\n );\n scrollEl.addEventListener(\n \"touchend\",\n onTouchEnd,\n addEventListenerOptions\n );\n this.unsubs.push(() => {\n scrollEl.removeEventListener(\"touchstart\", onTouchStart);\n scrollEl.removeEventListener(\"touchend\", onTouchEnd);\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n });\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n const anchor = this.pendingScrollAnchor;\n this.pendingScrollAnchor = null;\n if (anchor && this.scrollElement && this.options.enabled) {\n const [key, _offset, followOnAppend, anchorDelta] = anchor;\n if (key !== null && !followOnAppend) {\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n if (anchorDelta !== 0) {\n this._iosDeferredAdjustment += anchorDelta;\n }\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n }\n if (followOnAppend) {\n this.scrollToEnd({ behavior: followOnAppend });\n }\n }\n };\n this._flushIosDeferredIfReady = () => {\n if (this._iosDeferredAdjustment === 0) return;\n if (this.isScrolling) return;\n if (this._iosTouching) return;\n if (this._iosJustTouchEnded) return;\n const cur = this.getScrollOffset();\n const max = this.getMaxScrollOffset();\n if (cur < 0 || cur > max) return;\n const delta = this._iosDeferredAdjustment;\n this._iosDeferredAdjustment = 0;\n this._scrollToOffset(cur, {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n };\n this.rafId = null;\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes,\n this.options.laneAssignmentMode,\n this.options.gap\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode, gap) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMin = null;\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode,\n gap\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCacheVersion],\n ({\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode,\n gap\n }, _itemSizeCacheVersion) => {\n const itemSizeCache = this.itemSizeCache;\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMin = null;\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMin ?? 0;\n this.pendingMin = null;\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n if (lanes === 1) {\n const need = count * 2;\n let flat = this._flatMeasurements;\n if (!flat || flat.length < need) {\n const next = new Float64Array(need);\n if (flat && min > 0) next.set(flat.subarray(0, min * 2));\n flat = next;\n this._flatMeasurements = flat;\n }\n let runningStart;\n if (min === 0) {\n runningStart = paddingStart + scrollMargin;\n } else {\n const prevIdx = min - 1;\n runningStart = flat[prevIdx * 2] + flat[prevIdx * 2 + 1] + gap;\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n flat[i * 2] = runningStart;\n flat[i * 2 + 1] = size;\n runningStart += size + gap;\n }\n const view = createLazyMeasurementsView(count, flat, getItemKey);\n this.measurementsCache = view;\n return view;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n const laneEnds = new Float64Array(lanes);\n let filledLanes = 0;\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n if (laneLastIndex[item.lane] === void 0) filledLanes++;\n laneLastIndex[item.lane] = m;\n laneEnds[item.lane] = item.end;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n const shouldCacheLane = laneAssignmentMode === \"estimate\" || itemSizeCache.has(key);\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + gap : paddingStart + scrollMargin;\n } else if (filledLanes === lanes) {\n let bestLane = 0;\n let bestEnd = laneEnds[0];\n let bestIdx = laneLastIndex[0];\n for (let l = 1; l < lanes; l++) {\n const e = laneEnds[l];\n if (e < bestEnd || e === bestEnd && laneLastIndex[l] < bestIdx) {\n bestLane = l;\n bestEnd = e;\n bestIdx = laneLastIndex[l];\n }\n }\n lane = bestLane;\n start = bestEnd + gap;\n if (shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n } else {\n lane = i % this.options.lanes;\n start = paddingStart + scrollMargin;\n if (shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n if (laneLastIndex[lane] === void 0) filledLanes++;\n laneLastIndex[lane] = i;\n laneEnds[lane] = end;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n if (measurements.length === 0 || outerSize === 0) {\n this.range = null;\n return null;\n }\n this.range = calculateRangeImpl(\n measurements,\n outerSize,\n scrollOffset,\n lanes,\n // Pass the typed array so binary search + forward-walk can read\n // start/end directly from Float64Array, skipping the Proxy traps.\n lanes === 1 && this._flatMeasurements != null ? this._flatMeasurements : null\n );\n return this.range;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this.shouldMeasureDuringScroll = (index) => {\n var _a;\n if (!this.scrollState || this.scrollState.behavior !== \"smooth\") {\n return true;\n }\n const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index);\n if (scrollIndex !== void 0 && this.range) {\n const bufferSize = Math.max(\n this.options.overscan,\n Math.ceil((this.range.endIndex - this.range.startIndex) / 2)\n );\n const minIndex = Math.max(0, scrollIndex - bufferSize);\n const maxIndex = Math.min(\n this.options.count - 1,\n scrollIndex + bufferSize\n );\n return index >= minIndex && index <= maxIndex;\n }\n return true;\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key2) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key2);\n }\n });\n return;\n }\n const index = this.indexFromElement(node);\n const key = this.options.getItemKey(index);\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(index, this.options.measureElement(node, void 0, this));\n }\n };\n this.resizeItem = (index, size) => {\n var _a, _b;\n if (index < 0 || index >= this.options.count) return;\n let cachedSize;\n let itemStart;\n let key;\n const flat = this._flatMeasurements;\n if (this.options.lanes === 1 && flat !== null) {\n key = this.options.getItemKey(index);\n itemStart = flat[index * 2];\n cachedSize = flat[index * 2 + 1];\n } else {\n const item = this.measurementsCache[index];\n if (!item) return;\n key = item.key;\n itemStart = item.start;\n cachedSize = item.size;\n }\n const itemSize = this.itemSizeCache.get(key) ?? cachedSize;\n const delta = size - itemSize;\n if (delta !== 0) {\n const wasAtEnd = this.options.anchorTo === \"end\" && ((_a = this.scrollState) == null ? void 0 : _a.behavior) !== \"smooth\" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;\n const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0;\n const shouldAdjustScroll = ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== \"smooth\" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(\n // The callback expects a VirtualItem; build one lazily only\n // when the consumer actually supplied a custom predicate.\n this.measurementsCache[index] ?? {\n index,\n key,\n start: itemStart,\n size: cachedSize,\n end: itemStart + cachedSize,\n lane: 0\n },\n delta,\n this\n ) : (\n // Default: adjust when the resize is an above-viewport item.\n // First measurement (!has(key)): always adjust — the item\n // has never been sized, so the estimate→actual delta must\n // be compensated regardless of scroll direction.\n // Re-measurement (has(key)): skip during backward scroll\n // to avoid the \"items jump while scrolling up\" cascade.\n itemStart < this.getScrollOffset() + this.scrollAdjustments && (!this.itemSizeCache.has(key) || this.scrollDirection !== \"backward\")\n ));\n if (this.pendingMin === null || index < this.pendingMin) {\n this.pendingMin = index;\n }\n this.itemSizeCache.set(key, size);\n this.itemSizeCacheVersion++;\n if (wasAtEnd) {\n this.applyScrollAdjustment(this.getTotalSize() - prevTotalSize);\n } else if (shouldAdjustScroll) {\n this.applyScrollAdjustment(delta);\n }\n this.notify(false);\n }\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n const flat = this._flatMeasurements;\n const useFlat = this.options.lanes === 1 && flat != null;\n const idx = findNearestBinarySearch(\n 0,\n measurements.length - 1,\n useFlat ? (i) => flat[i * 2] : (i) => notUndefined(measurements[i]).start,\n offset\n );\n return notUndefined(measurements[idx]);\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getVirtualDistanceFromEnd = () => {\n return Math.max(\n this.getTotalSize() - this.getSize() - this.getScrollOffset(),\n 0\n );\n };\n this.getDistanceFromEnd = () => {\n return Math.max(this.getMaxScrollOffset() - this.getScrollOffset(), 0);\n };\n this.isAtEnd = (threshold = this.options.scrollEndThreshold) => {\n return this.getDistanceFromEnd() <= threshold;\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n const item = this.measurementsCache[index];\n if (!item) return;\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior = \"auto\" } = {}) => {\n const offset = this.getOffsetForAlignment(toOffset, align);\n const now = this.now();\n this.scrollState = {\n index: null,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToIndex = (index, {\n align: initialAlign = \"auto\",\n behavior = \"auto\"\n } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const offsetInfo = this.getOffsetForIndex(index, initialAlign);\n if (!offsetInfo) {\n return;\n }\n const [offset, align] = offsetInfo;\n const now = this.now();\n this.scrollState = {\n index,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollBy = (delta, { behavior = \"auto\" } = {}) => {\n const offset = this.getScrollOffset() + delta;\n const now = this.now();\n this.scrollState = {\n index: null,\n align: \"start\",\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToEnd = ({ behavior = \"auto\" } = {}) => {\n if (this.options.count > 0) {\n this.scrollToIndex(this.options.count - 1, {\n align: \"end\",\n behavior\n });\n return;\n }\n this.scrollToOffset(Math.max(this.getTotalSize() - this.getSize(), 0), {\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n const lastIdx = measurements.length - 1;\n const flat = this._flatMeasurements;\n if (flat != null) {\n end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1];\n } else {\n end = ((_a = measurements[lastIdx]) == null ? void 0 : _a.end) ?? 0;\n }\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this.takeSnapshot = () => {\n const snapshot = [];\n if (this.itemSizeCache.size === 0) return snapshot;\n const m = this.getMeasurements();\n for (const item of m) {\n if (item && this.itemSizeCache.has(item.key)) {\n snapshot.push({\n index: item.index,\n key: item.key,\n start: item.start,\n size: item.size,\n end: item.end,\n lane: item.lane\n });\n }\n }\n return snapshot;\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this._intendedScrollOffset = offset + (adjustments ?? 0);\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.pendingMin = null;\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.itemSizeCacheVersion++;\n this.notify(false);\n };\n this.setOptions(opts);\n }\n applyScrollAdjustment(delta, behavior) {\n if (delta === 0) return;\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n this._iosDeferredAdjustment += delta;\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior\n });\n if (this.scrollOffset !== null) {\n this.scrollOffset += this.scrollAdjustments;\n this.scrollAdjustments = 0;\n }\n }\n }\n scheduleScrollReconcile() {\n if (!this.targetWindow) {\n this.scrollState = null;\n return;\n }\n if (this.rafId != null) return;\n this.rafId = this.targetWindow.requestAnimationFrame(() => {\n this.rafId = null;\n this.reconcileScroll();\n });\n }\n reconcileScroll() {\n if (!this.scrollState) return;\n const el = this.scrollElement;\n if (!el) return;\n const MAX_RECONCILE_MS = 5e3;\n if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {\n this.scrollState = null;\n return;\n }\n const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;\n const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;\n const STABLE_FRAMES = 1;\n const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;\n if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {\n this.scrollState.stableFrames++;\n if (this.scrollState.stableFrames >= STABLE_FRAMES) {\n if (this.getScrollOffset() !== targetOffset) {\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: \"auto\"\n });\n }\n this.scrollState = null;\n return;\n }\n } else {\n this.scrollState.stableFrames = 0;\n if (targetChanged) {\n const viewport = this.getSize() || 600;\n const distance = Math.abs(targetOffset - this.getScrollOffset());\n const keepSmooth = this.scrollState.behavior === \"smooth\" && distance > viewport;\n this.scrollState.lastTargetOffset = targetOffset;\n if (!keepSmooth) {\n this.scrollState.behavior = \"auto\";\n }\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: keepSmooth ? \"smooth\" : \"auto\"\n });\n }\n }\n this.scheduleScrollReconcile();\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction findNearestBinarySearchFlat(flat, high, value) {\n let low = 0;\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = flat[middle * 2];\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n return low > 0 ? low - 1 : 0;\n}\nfunction calculateRangeImpl(measurements, outerSize, scrollOffset, lanes, flat) {\n const lastIndex = measurements.length - 1;\n if (measurements.length <= lanes) {\n return { startIndex: 0, endIndex: lastIndex };\n }\n if (lanes === 1 && flat !== null) {\n const startIndex2 = findNearestBinarySearchFlat(\n flat,\n lastIndex,\n scrollOffset\n );\n let endIndex2 = startIndex2;\n const limit = scrollOffset + outerSize;\n while (endIndex2 < lastIndex && flat[endIndex2 * 2] + flat[endIndex2 * 2 + 1] < limit) {\n endIndex2++;\n }\n return { startIndex: startIndex2, endIndex: endIndex2 };\n }\n const getStart = (index) => measurements[index].start;\n let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset);\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n _resetIOSDetectionForTests,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid engine/virtualizer.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport {\n elementScroll,\n measureElement,\n observeElementOffset,\n observeElementRect,\n Virtualizer\n} from '@tanstack/virtual-core'\n\nexport type GridVirtualizerInstance = Virtualizer<HTMLDivElement, Element>\n\nexport interface GridVirtualizer {\n instance: GridVirtualizerInstance\n setCount: (count: number) => void\n // Discards cached row measurements. Rows are measured by INDEX, so any\n // transition that puts different data at the same index (sorting,\n // filtering, paging, a data swap) leaves the cache describing rows that are\n // no longer there.\n remeasure: () => void\n destroy: () => void\n}\n\nexport interface GridVirtualizerOptions {\n // Measure each rendered row instead of trusting rowHeight. rowHeight stays\n // the estimate for rows that have not been rendered yet, so it still sizes\n // the scrollbar.\n autoRowHeight: boolean\n count: number\n getScrollElement: () => HTMLDivElement\n onChange: () => void\n overscan: number\n rowHeight: number\n}\n\nexport const createGridVirtualizer = (options: GridVirtualizerOptions): GridVirtualizer => {\n const instance: GridVirtualizerInstance = new Virtualizer({\n count: options.count,\n estimateSize: () => options.rowHeight,\n getScrollElement: options.getScrollElement,\n observeElementOffset,\n observeElementRect,\n onChange: options.onChange,\n overscan: options.overscan,\n scrollToFn: elementScroll,\n ...(options.autoRowHeight && { measureElement })\n })\n\n const unmount = instance._didMount()\n instance._willUpdate()\n\n return {\n instance,\n setCount(count: number) {\n if (count !== instance.options.count) {\n instance.setOptions({ ...instance.options, count })\n }\n },\n remeasure() {\n if (options.autoRowHeight) {\n instance.measure()\n }\n },\n destroy() {\n unmount()\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid icons.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\n// Default icon set. Every icon is an SVG string drawn with `currentColor`, so it\n// inherits the button's text color; each is overridable through the matching\n// `*Icon` option. Sanitized via the SVGAllowlist before insertion.\n\nexport const DEFAULT_COLUMN_MENU_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M204 148a52 52 0 1 0 104 0 52 52 0 1 0-104 0m78 0a26 26 0 1 1-26-26 26.03 26.03 0 0 1 26 26M204 264a52 52 0 1 0 104 0 52 52 0 1 0-104 0m78 0a26 26 0 1 1-26-26 26.03 26.03 0 0 1 26 26M204 380a52 52 0 1 0 104 0 52 52 0 1 0-104 0m78 0a26 26 0 1 1-26-26 26.03 26.03 0 0 1 26 26\"/></svg>'\n\nexport const DEFAULT_FILTER_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M96 197.333h320v32H96zm72 101.334h176v32H168zM216 400h80v32h-80zM48 96h416v32H48z\"/></svg>'\n\nexport const DEFAULT_ROW_HANDLE_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M160 96h64v64h-64zm0 128h64v64h-64zm0 128h64v64h-64zM288 96h64v64h-64zm0 128h64v64h-64zm0 128h64v64h-64z\"/></svg>'\n\nexport const DEFAULT_TOOLBAR_COLUMNS_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M16 64v384h480V64Zm304 32v320H192V96ZM48 96h112v320H48Zm416 320H352V96h112Z\"/></svg>'\n\nexport const DEFAULT_TOOLBAR_EXPORT_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M16 464h480v32H16zm379.313-164.687-22.626-22.626L280 369.373V16h-32v353.373l-92.687-92.686-22.626 22.626L264 430.627z\"/></svg>'\n\nexport const DEFAULT_TOOLBAR_UNDO_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M495.473 197.262c0-73.061-43.651-136.118-106.242-164.462q-2-.9-4.021-1.762-4.046-1.715-8.19-3.235-2.071-.761-4.167-1.47-4.19-1.422-8.468-2.64a180.95 180.95 0 0 0-98.675 0q-4.278 1.218-8.469 2.64-2.094.71-4.166 1.47-4.143 1.519-8.19 3.235-2.023.857-4.021 1.762c-62.592 28.344-106.242 91.4-106.242 164.462v237.483L38.627 338.75 16 361.377 150.623 496l134.623-134.623-22.627-22.627-96 96V197.263c0-72.891 52.814-133.678 122.186-146.1a149.4 149.4 0 0 1 52.479 0c69.371 12.426 122.186 73.213 122.186 146.1h32Z\"/></svg>'\n\nexport const DEFAULT_TOOLBAR_PRINT_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M400 144V16H112v128H16v256h96v96h288v-96h96V144ZM144 48h224v96H144Zm224 416H144V304h224Zm96-96h-64V272H112v96H48V176h416Z\"/><path fill=\"currentColor\" d=\"M384 208h32v32h-32z\"/></svg>'\n\nexport const DEFAULT_TOOLBAR_REDO_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M361.376 495.163 226.753 360.54l22.627-22.627 111.996 111.996 111.997-111.996L496 360.54z\"/><path fill=\"currentColor\" d=\"M377.377 472.52h-32V196.426C345.377 114.584 278.794 48 196.952 48c-83.229 0-148.426 63.106-148.426 143.667h-32c0-48.024 18.85-92.569 53.079-125.429C103.35 33.842 148.576 16 196.952 16c99.487 0 180.425 80.938 180.425 180.426Z\"/></svg>'\n\nexport const DEFAULT_SORT_ASCENDING_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M390.624 150.625 256 16 121.376 150.625l22.628 22.627 95.997-95.998v417.982h32V77.257l95.995 95.995z\"/></svg>'\n\nexport const DEFAULT_SORT_DESCENDING_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"m367.997 338.75-95.998 95.997V17.503h-32v417.242l-95.996-95.995-22.627 22.627L256 496l134.624-134.623z\"/></svg>'\n\nexport const DEFAULT_SORT_NEUTRAL_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M384 433.373V160h-32v274.51l-69.823-69.823-22.627 22.626 107.882 107.883 107.881-107.883-22.626-22.626zM159.432 17.372 51.55 125.255l22.627 22.627L144 78.059V352h32V79.195l68.687 68.687 22.626-22.627z\"/></svg>'\n\n// Column-menu item icons. Sort actions in the menu reuse the sort header icons.\n\n// Pin (pushpin): the needle points to the lower-left, so the unmirrored glyph is\n// \"pin to start\"; a horizontal mirror (scale(-1 1) about the 512 viewBox) is \"pin to end\".\nconst PIN_PATH =\n 'm477.8 140.2-106-106a62.132 62.132 0 0 0-93.617 81.24l-4.913 5.533-97.654 42.9-42.611-23.026a24.04 24.04 0 0 0-28.86 4.638L62.6 189.487a23.88 23.88 0 0 0 .479 33.449l101.68 101.679L16 473.373V496h22.627l148.758-148.758L288.6 448.457a23.93 23.93 0 0 0 33.275.642l44.425-41.128a23.98 23.98 0 0 0 4.773-29.092l-23.344-42.858 42.131-90.515 8.6-10.318A62.134 62.134 0 0 0 477.8 140.2m-22.628 65.231a30.125 30.125 0 0 1-42.6 0l-16.885-16.886-33.08 39.678-50.7 108.933 28.087 51.566-34.209 31.669L91.2 205.806l32-33.89 50.969 27.543 118.386-52.008 29.177-32.863-15.158-15.161a30.126 30.126 0 0 1 42.6-42.6l106 106a30.126 30.126 0 0 1 0 42.6Z'\n\nconst SVG_512 =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">'\n\nexport const DEFAULT_PIN_START_ICON =\n `${SVG_512}<path fill=\"currentColor\" d=\"${PIN_PATH}\"/></svg>`\nexport const DEFAULT_PIN_END_ICON =\n `${SVG_512}<g transform=\"translate(512 0) scale(-1 1)\"><path fill=\"currentColor\" d=\"${PIN_PATH}\"/></g></svg>`\nexport const DEFAULT_UNPIN_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"m427.314 107.313-22.628-22.626L256 233.373 107.314 84.687l-22.628 22.626L233.373 256 84.686 404.687l22.628 22.626L256 278.627l148.686 148.686 22.628-22.626L278.627 256z\"/></svg>'\nexport const DEFAULT_MOVE_START_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M254.625 56h-38.632L16 256.2 216 456h38.623V336h144V176h-144Zm112 152v96h-144v113.384l-161.37-161.21 161.37-161.535V208Zm96-152h32v400h-32z\"/></svg>'\nexport const DEFAULT_MOVE_END_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"M296.007 56h-38.632v120h-144v160h144v120H296l200-199.8Zm-6.632 361.384V304h-144v-96h144V94.639l161.37 161.535ZM17.375 56h32v400h-32z\"/></svg>'\nexport const DEFAULT_HIDE_COLUMN_ICON =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path fill=\"currentColor\" d=\"m397.222 131.1-.218-.223c-63.173-63.17-158.534-75.015-233.776-35.531l23.938 23.939c61.571-27.691 136.573-16.327 187.105 34.115L464 246.683v3.107l-71.744 74.585 22.63 22.63L496 262.683V233.79Z\"/><path fill=\"currentColor\" d=\"M352.8 284.33a103.307 103.307 0 0 0-132.893-132.892L246.1 177.63a71.228 71.228 0 0 1 80.507 80.508Zm17.1 62.938-33.831-33.831c.088-.108.179-.212.266-.32l-22.805-22.806q-.126.168-.253.334l-99.681-99.681.334-.253-22.81-22.805c-.108.087-.213.179-.321.266L38.627 16H16v22.627l95.689 95.689L16 233.79v28.893l98.778 102.689.218.222A199.73 199.73 0 0 0 367.372 390l106 106H496v-22.627L392.537 369.911Zm-177.157-131.9 96.128 96.132a71.28 71.28 0 0 1-96.133-96.133Zm-55.014 127.705L48 249.79v-3.107l86.319-89.737 35.065 35.064a103.248 103.248 0 0 0 142.842 142.843l32.007 32.007c-64.51 40.015-150.522 32.095-206.504-23.787\"/></svg>'\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid labels.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport type { DataGridLabels } from './types'\n\nexport const DEFAULT_LABELS: DataGridLabels = {\n addCondition: 'Add condition',\n applyFilter: 'Apply',\n clearFilter: 'Clear filter',\n clearSort: 'Unsort',\n columnMenu: 'Column options for {column}',\n filterAction: 'Filter…',\n filterColumn: 'Filter {column}',\n firstPage: 'First page',\n globalFilterLabel: 'Search',\n globalFilterPlaceholder: 'Search',\n hideColumn: 'Hide column',\n itemsInfo: '{first}–{last} of {total}',\n joinAnd: 'AND',\n joinOr: 'OR',\n lastPage: 'Last page',\n loadError: 'Failed to load data',\n loading: 'Loading…',\n moveEnd: 'Move to end',\n moveStart: 'Move to start',\n nextPage: 'Next page',\n operatorBetween: 'Between',\n operatorBlank: 'Blank',\n operatorContains: 'Contains',\n operatorEndsWith: 'Ends with',\n operatorEquals: 'Equals',\n operatorGreaterThan: 'Greater than',\n operatorGreaterThanOrEqual: 'Greater than or equal',\n operatorLessThan: 'Less than',\n operatorLessThanOrEqual: 'Less than or equal',\n operatorNotBlank: 'Not blank',\n operatorNotContains: 'Does not contain',\n operatorNotEquals: 'Not equals',\n operatorStartsWith: 'Starts with',\n pageSizeLabel: 'Rows per page',\n paginationLabel: 'Pagination',\n pinEnd: 'Pin to end',\n pinStart: 'Pin to start',\n previousPage: 'Previous page',\n redoneAnnouncement: 'Change redone',\n reorderRow: 'Reorder row',\n resetColumns: 'Reset',\n resultsAnnouncement: '{count} results',\n searchValues: 'Search values',\n selectAllRows: 'Select all rows',\n selectAllValues: 'Select all',\n selectRow: 'Select row',\n showAllColumns: 'Show all',\n sortAscending: 'Sort ascending',\n sortDescending: 'Sort descending',\n toolbarColumns: 'Columns',\n toolbarExport: 'Export',\n toolbarPrint: 'Print',\n toolbarRedo: 'Redo',\n toolbarUndo: 'Undo',\n undoneAnnouncement: 'Change undone',\n unpin: 'Unpin'\n}\n\nexport const interpolate = (template: string, tokens: Record<string, string | number>): string =>\n template.replace(/\\{(\\w+)\\}/g, (match: string, token: string) =>\n token in tokens ? String(tokens[token]) : match\n )\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid ui/pinning.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nconst CLASS_START = 'data-grid-cell-pinned-start'\nconst CLASS_END = 'data-grid-cell-pinned-end'\nconst CLASS_START_LAST = 'data-grid-cell-pinned-start-last'\nconst CLASS_END_FIRST = 'data-grid-cell-pinned-end-first'\n\nexport interface PinnedCellInfo {\n side: 'start' | 'end'\n offset: number\n edge: boolean\n // A start offset that has to clear the (sticky) selection cell; expressed as a\n // CSS calc so the select-cell width stays a single source of truth in CSS.\n afterSelect: boolean\n}\n\nexport interface GridPinning {\n columns: Record<string, PinnedCellInfo>\n select: PinnedCellInfo | null\n}\n\nexport const applyPinnedCell = (cell: HTMLTableCellElement, info: PinnedCellInfo | null): void => {\n cell.classList.remove(CLASS_START, CLASS_END, CLASS_START_LAST, CLASS_END_FIRST)\n cell.style.insetInlineStart = ''\n cell.style.insetInlineEnd = ''\n\n if (!info) {\n return\n }\n\n if (info.side === 'start') {\n cell.classList.add(CLASS_START)\n if (info.edge) {\n cell.classList.add(CLASS_START_LAST)\n }\n\n cell.style.insetInlineStart = info.afterSelect ?\n `calc(var(--cui-data-grid-select-cell-width) + ${info.offset}px)` :\n `${info.offset}px`\n } else {\n cell.classList.add(CLASS_END)\n if (info.edge) {\n cell.classList.add(CLASS_END_FIRST)\n }\n\n cell.style.insetInlineEnd = `${info.offset}px`\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid ui/body.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport type { GridVirtualizerInstance } from '../engine/virtualizer'\nimport type { DataGridColumn, DataGridLabels, DataGridRow } from '../types'\nimport { applyPinnedCell, type GridPinning } from './pinning'\n\nconst CLASS_NAME_EMPTY = 'data-grid-empty'\nconst FOCUSABLE_SELECTOR = 'a[href], button, input, select, textarea, [tabindex]'\nconst CLASS_NAME_ROW_ODD = 'data-grid-row-odd'\nconst CLASS_NAME_ROW_SELECTED = 'table-active'\nconst CLASS_NAME_CELL_SELECTED = 'data-grid-cell-selected'\nconst CLASS_NAME_HANDLE_CELL = 'data-grid-row-handle-cell'\nconst EDGE_CLASS_NAMES = ['top', 'right', 'bottom', 'left'] as const\nconst CLASS_NAME_SELECT_CELL = 'data-grid-select-cell'\nconst CLASS_NAME_SPACER = 'data-grid-spacer'\n\nexport interface GridBodyContext {\n // Hands every rendered row to the virtualizer for measurement instead of\n // assuming a fixed rowHeight.\n autoRowHeight: boolean\n // With cellNavigation on, rows/cells carry grid roles, every cell (and the\n // interactive content inside it) drops out of the tab order, and cells are\n // addressable by data-coreui-column - the roving tabindex pass in the grid\n // root owns which single cell is tabbable.\n cellNavigation: boolean\n headerRowCount: number\n labels: DataGridLabels\n getDataVersion: () => number\n // Inline editing: the cell being edited (keyed by rowId + columnId, NOT\n // index - recycling changes indexes) renders the editor element instead of\n // its content until commit/cancel. Null when editing is off or idle.\n getEditingCell: () => { rowId: string; columnId: string } | null\n getEditorElement: () => HTMLElement | null\n getPinning: () => GridPinning | null\n // Absolute index of the page's first row (pagination mode), else 0 - keeps\n // aria-rowindex absolute like aria-rowcount.\n getRowIndexOffset: () => number\n getRows: () => DataGridRow[]\n // Visible leaf columns in table order (pinning + columnOrder + visibility).\n getVisibleColumns: () => DataGridColumn[]\n getVirtualizer: () => GridVirtualizerInstance | null\n renderEmpty: () => Node | string\n // Guards every string injected via innerHTML (render results, empty state).\n sanitizeContent: (html: string) => string\n cellSelection: boolean\n rowOrder: boolean\n rowHandleIcon: string\n selection: boolean\n}\n\nexport interface GridBody {\n element: HTMLTableSectionElement\n update: () => void\n}\n\nconst setCellContent = (\n cellElement: HTMLTableCellElement,\n content: Node | string,\n sanitizeContent: (html: string) => string\n): void => {\n if (typeof content === 'string') {\n cellElement.innerHTML = sanitizeContent(content)\n return\n }\n\n // Re-inserting the same node detaches it (losing focus/selection in a custom\n // empty slot); skip when it is already the sole child.\n if (cellElement.childNodes.length === 1 && cellElement.firstChild === content) {\n return\n }\n\n cellElement.replaceChildren(content)\n}\n\nexport const createBody = (context: GridBodyContext): GridBody => {\n const element = document.createElement('tbody')\n\n // Snapshot of the current layout, refreshed once per update() — cells are\n // rebuilt (not recycled) when the visible column set or order changes.\n let currentColumns: DataGridColumn[] = context.getVisibleColumns()\n let layoutSignature = currentColumns.map(column => column.key).join('|')\n // The handle column and the select column both sit before the data columns;\n // every cell index in this module is offset by however many are on.\n const leadingCount = (context.rowOrder ? 1 : 0) + (context.selection ? 1 : 0)\n let cellCount = currentColumns.length + leadingCount\n\n const buildRowCells = (rowElement: HTMLTableRowElement): void => {\n rowElement.replaceChildren()\n\n if (context.cellNavigation) {\n rowElement.setAttribute('role', 'row')\n }\n\n const offset = leadingCount\n\n if (context.rowOrder) {\n const cellElement = document.createElement('td')\n cellElement.classList.add(CLASS_NAME_HANDLE_CELL)\n const handle = document.createElement('span')\n handle.classList.add('data-grid-row-handle')\n handle.dataset.coreuiRowHandle = ''\n handle.setAttribute('aria-hidden', 'true')\n handle.innerHTML = context.rowHandleIcon\n cellElement.append(handle)\n if (context.cellNavigation) {\n cellElement.setAttribute('role', 'gridcell')\n cellElement.setAttribute('aria-colindex', '1')\n }\n\n rowElement.append(cellElement)\n }\n\n if (context.selection) {\n const cellElement = document.createElement('td')\n cellElement.classList.add(CLASS_NAME_SELECT_CELL)\n const input = document.createElement('input')\n input.type = 'checkbox'\n input.classList.add('form-check-input')\n input.setAttribute('aria-label', context.labels.selectRow)\n input.dataset.coreuiRowSelect = ''\n if (context.cellNavigation) {\n cellElement.setAttribute('role', 'gridcell')\n cellElement.setAttribute('aria-colindex', String(context.rowOrder ? 2 : 1))\n input.tabIndex = -1\n }\n\n cellElement.append(input)\n rowElement.append(cellElement)\n }\n\n for (const [index, column] of currentColumns.entries()) {\n const cellElement = document.createElement('td')\n if (context.cellNavigation) {\n cellElement.setAttribute('role', 'gridcell')\n cellElement.setAttribute('aria-colindex', String(offset + index + 1))\n cellElement.dataset.coreuiColumn = column.key\n cellElement.tabIndex = -1\n }\n\n rowElement.append(cellElement)\n }\n\n rowElement.dataset.coreuiLayout = layoutSignature\n }\n\n const createRowElement = (): HTMLTableRowElement => {\n const rowElement = document.createElement('tr')\n buildRowCells(rowElement)\n return rowElement\n }\n\n const updateRowCells = (rowElement: HTMLTableRowElement, row: DataGridRow, index: number): void => {\n const offset = leadingCount\n const editingCell = context.getEditingCell()\n\n for (const [cellIndex, column] of currentColumns.entries()) {\n const cellElement = rowElement.children[cellIndex + offset] as HTMLTableCellElement\n\n if (editingCell && editingCell.rowId === row.id && editingCell.columnId === column.key) {\n const editorElement = context.getEditorElement()\n if (editorElement) {\n cellElement.replaceChildren(editorElement)\n continue\n }\n }\n\n if (column.render) {\n setCellContent(cellElement, column.render(row.original, index), context.sanitizeContent)\n if (context.cellNavigation) {\n for (const focusable of cellElement.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR)) {\n focusable.tabIndex = -1\n }\n }\n\n continue\n }\n\n const value = row.getValue(column.key)\n cellElement.textContent = column.formatter ?\n column.formatter(value, row.original) :\n String(value ?? '')\n }\n }\n\n const updateRowElement = (rowElement: HTMLTableRowElement, row: DataGridRow, index: number): void => {\n if (rowElement.dataset.coreuiLayout !== layoutSignature) {\n buildRowCells(rowElement)\n delete rowElement.dataset.coreuiRow\n }\n\n if (context.selection) {\n const selectCell = rowElement.children[leadingCount - 1] as HTMLTableCellElement\n const input = selectCell.firstElementChild as HTMLInputElement\n const selected = row.getIsSelected()\n input.checked = selected\n rowElement.classList.toggle(CLASS_NAME_ROW_SELECTED, selected)\n rowElement.setAttribute('aria-selected', String(selected))\n }\n\n // Cell content is immutable for a given (data version, row id, index)\n // triple — data replacements (dataProvider loads, update()) bump the\n // version — so recycled elements skip the cell pass. This keeps custom\n // render callbacks off the scroll hot path, where all three are stable.\n const rowKey = `${context.getDataVersion()}:${row.id}`\n if (rowElement.dataset.coreuiRow !== rowKey || rowElement.dataset.coreuiIndex !== String(index)) {\n updateRowCells(rowElement, row, index)\n rowElement.dataset.coreuiRow = rowKey\n }\n\n // Selection is repainted on every pass, unlike cell content: it changes\n // without the row's data version or id changing.\n if (context.cellSelection) {\n const cells = new Map(row.getAllCells().map(cell => [cell.column.id, cell]))\n for (const [cellIndex, column] of currentColumns.entries()) {\n const cellElement = rowElement.children[cellIndex + leadingCount] as HTMLTableCellElement\n const cell = cells.get(column.key)\n const selected = cell?.getIsSelected() ?? false\n cellElement.classList.toggle(CLASS_NAME_CELL_SELECTED, selected)\n const edges = selected && cell ? cell.getSelectionEdges() : null\n for (const edge of EDGE_CLASS_NAMES) {\n cellElement.classList.toggle(`${CLASS_NAME_CELL_SELECTED}-${edge}`, Boolean(edges?.[edge]))\n }\n }\n }\n\n rowElement.dataset.coreuiIndex = String(index)\n rowElement.setAttribute('aria-rowindex', String(context.headerRowCount + context.getRowIndexOffset() + index + 1))\n rowElement.classList.toggle(CLASS_NAME_ROW_ODD, index % 2 === 1)\n\n if (currentPinning) {\n const pinning = currentPinning\n const offset = leadingCount\n // Leading cells share the select column's pin — they travel together at\n // the start edge.\n for (let cellIndex = 0; cellIndex < leadingCount; cellIndex++) {\n applyPinnedCell(rowElement.children[cellIndex] as HTMLTableCellElement, pinning.select)\n }\n\n for (const [cellIndex, column] of currentColumns.entries()) {\n applyPinnedCell(rowElement.children[cellIndex + offset] as HTMLTableCellElement, pinning.columns[column.key] ?? null)\n }\n }\n }\n\n const createSpacer = (): HTMLTableRowElement => {\n const rowElement = document.createElement('tr')\n rowElement.classList.add(CLASS_NAME_SPACER)\n rowElement.setAttribute('aria-hidden', 'true')\n\n const cellElement = document.createElement('td')\n cellElement.colSpan = Math.max(cellCount, 1)\n rowElement.append(cellElement)\n\n return rowElement\n }\n\n const setSpacerHeight = (spacerElement: HTMLTableRowElement, height: number): void => {\n spacerElement.style.height = `${height}px`;\n (spacerElement.firstElementChild as HTMLTableCellElement).style.height = `${height}px`\n spacerElement.style.display = height > 0 ? '' : 'none'\n }\n\n const topSpacer = createSpacer()\n const bottomSpacer = createSpacer()\n let spacersAttached = false\n let emptyElement: HTMLTableRowElement | null = null\n let rowElements: HTMLTableRowElement[] = []\n let currentPinning: GridPinning | null = null\n const rowPool: HTMLTableRowElement[] = []\n\n const renderEmpty = () => {\n spacersAttached = false\n rowPool.push(...rowElements)\n rowElements = []\n\n if (!emptyElement) {\n emptyElement = document.createElement('tr')\n emptyElement.classList.add(CLASS_NAME_EMPTY)\n emptyElement.append(document.createElement('td'))\n }\n\n const cellElement = emptyElement.firstElementChild as HTMLTableCellElement\n cellElement.colSpan = Math.max(cellCount, 1)\n setCellContent(cellElement, context.renderEmpty(), context.sanitizeContent)\n\n element.replaceChildren(emptyElement)\n }\n\n const renderAll = (rows: DataGridRow[]) => {\n if (emptyElement) {\n emptyElement.remove()\n }\n\n while (rowElements.length > rows.length) {\n const rowElement = rowElements.pop()!\n rowElement.remove()\n rowPool.push(rowElement)\n }\n\n while (rowElements.length < rows.length) {\n const rowElement = rowPool.pop() ?? createRowElement()\n element.append(rowElement)\n rowElements.push(rowElement)\n }\n\n for (const [index, row] of rows.entries()) {\n updateRowElement(rowElements[index], row, index)\n }\n }\n\n const renderWindow = (rows: DataGridRow[], virtualizer: GridVirtualizerInstance) => {\n if (!spacersAttached) {\n element.replaceChildren(topSpacer, bottomSpacer)\n spacersAttached = true\n rowElements = []\n }\n\n const virtualItems = virtualizer.getVirtualItems()\n const totalSize = virtualizer.getTotalSize()\n const paddingTop = virtualItems.length > 0 ? virtualItems[0].start : 0\n const paddingBottom = virtualItems.length > 0 ?\n totalSize - virtualItems[virtualItems.length - 1].end :\n totalSize\n\n setSpacerHeight(topSpacer, paddingTop)\n setSpacerHeight(bottomSpacer, paddingBottom)\n\n while (rowElements.length > virtualItems.length) {\n const rowElement = rowElements.pop()!\n rowElement.remove()\n rowPool.push(rowElement)\n }\n\n while (rowElements.length < virtualItems.length) {\n const rowElement = rowPool.pop() ?? createRowElement()\n bottomSpacer.before(rowElement)\n rowElements.push(rowElement)\n }\n\n for (const [index, virtualItem] of virtualItems.entries()) {\n const rowElement = rowElements[index]\n updateRowElement(rowElement, rows[virtualItem.index], virtualItem.index)\n\n if (context.autoRowHeight) {\n // The virtualizer resolves a measurement to its row through this\n // attribute, so it has to be current BEFORE the element is handed\n // over - recycled elements arrive carrying the previous index.\n rowElement.dataset.index = String(virtualItem.index)\n virtualizer.measureElement(rowElement)\n }\n }\n }\n\n let editingSignature: string | null = null\n\n return {\n element,\n update() {\n const rows = context.getRows()\n currentPinning = context.getPinning()\n\n // The immutable-cell contract skips the cell pass on recycled rows, so\n // an editing transition (start, commit, cancel, move) must force the\n // rendered rows to rebuild their cells - once, not per frame.\n const editingCell = context.getEditingCell()\n const nextEditingSignature = editingCell ? `${editingCell.rowId}:${editingCell.columnId}` : null\n if (nextEditingSignature !== editingSignature) {\n editingSignature = nextEditingSignature\n for (const rowElement of rowElements) {\n delete rowElement.dataset.coreuiRow\n }\n }\n\n const columns = context.getVisibleColumns()\n const signature = columns.map(column => column.key).join('|')\n if (signature !== layoutSignature) {\n currentColumns = columns\n layoutSignature = signature\n cellCount = currentColumns.length + leadingCount;\n (topSpacer.firstElementChild as HTMLTableCellElement).colSpan = Math.max(cellCount, 1);\n (bottomSpacer.firstElementChild as HTMLTableCellElement).colSpan = Math.max(cellCount, 1)\n }\n\n if (rows.length === 0) {\n renderEmpty()\n return\n }\n\n const virtualizer = context.getVirtualizer()\n\n if (virtualizer) {\n renderWindow(rows, virtualizer)\n return\n }\n\n renderAll(rows)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid ui/editor.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport type {\n DataGridEditableOptions, DataGridEditor, DataGridEditorContext\n} from '../types'\n\nconst CLASS_NAME_EDITOR = 'data-grid-cell-editor'\n\nconst createTextEditor = (context: DataGridEditorContext): DataGridEditor => {\n const input = document.createElement('input')\n input.type = 'text'\n input.classList.add('form-control', 'form-control-sm', CLASS_NAME_EDITOR)\n input.value = String(context.value ?? '')\n\n return {\n element: input,\n focus() {\n input.focus()\n input.select()\n },\n getValue: () => input.value\n }\n}\n\nconst createNumberEditor = (context: DataGridEditorContext, options: DataGridEditableOptions): DataGridEditor => {\n const input = document.createElement('input')\n input.type = 'number'\n input.classList.add('form-control', 'form-control-sm', CLASS_NAME_EDITOR)\n if (options.min !== undefined) {\n input.min = String(options.min)\n }\n\n if (options.max !== undefined) {\n input.max = String(options.max)\n }\n\n if (options.step !== undefined) {\n input.step = String(options.step)\n }\n\n input.value = context.value === undefined || context.value === null ? '' : String(context.value)\n\n return {\n element: input,\n focus() {\n input.focus()\n input.select()\n },\n getValue: () => (input.value === '' ? undefined : Number(input.value))\n }\n}\n\nconst createSelectEditor = (context: DataGridEditorContext, options: DataGridEditableOptions): DataGridEditor => {\n const select = document.createElement('select')\n select.classList.add('form-select', 'form-select-sm', CLASS_NAME_EDITOR)\n\n // Option values can be arbitrary (not just strings) - keep the originals\n // and resolve the committed value by index.\n const values: unknown[] = []\n for (const option of options.options ?? []) {\n const optionElement = document.createElement('option')\n const value = typeof option === 'object' && option !== null ? option.value : option\n optionElement.textContent = typeof option === 'object' && option !== null ? option.label : String(option)\n optionElement.value = String(values.length)\n if (value === context.value) {\n optionElement.selected = true\n }\n\n values.push(value)\n select.append(optionElement)\n }\n\n return {\n element: select,\n focus: () => select.focus(),\n getValue: () => values[Number(select.value)]\n }\n}\n\nexport const createBuiltInEditor = (\n options: DataGridEditableOptions,\n context: DataGridEditorContext\n): DataGridEditor => {\n if (options.type === 'number') {\n return createNumberEditor(context, options)\n }\n\n if (options.type === 'select') {\n return createSelectEditor(context, options)\n }\n\n return createTextEditor(context)\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid ui/header.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport { interpolate } from '../labels'\nimport type {\n DataGridColumn, DataGridLabels, DataGridSlot, DataGridTable, SortingState\n} from '../types'\nimport { applyPinnedCell, type GridPinning } from './pinning'\n\nconst CLASS_NAME_HEADER = 'data-grid-header'\nconst CLASS_NAME_HEADER_CELL = 'data-grid-header-cell'\nconst CLASS_NAME_HEADER_LABEL = 'data-grid-header-label'\nconst CLASS_NAME_FILTER_ROW = 'data-grid-filter-row'\nconst CLASS_NAME_RESIZER = 'data-grid-resizer'\nconst CLASS_NAME_RESIZER_ACTIVE = 'data-grid-resizer-active'\nconst CLASS_NAME_HANDLE_CELL = 'data-grid-row-handle-cell'\nconst CLASS_NAME_SELECT_CELL = 'data-grid-select-cell'\nconst CLASS_NAME_SORTABLE = 'data-grid-sortable'\nconst CLASS_NAME_SORT_BUTTON = 'data-grid-sort-button'\nconst CLASS_NAME_SORT_ICON = 'data-grid-sort-icon'\n\nexport interface GridHeaderContext {\n // With cellNavigation on, the label row joins the roving-tabindex grid: its\n // cells carry grid roles and neither they nor their buttons are tabbable.\n // The filter row keeps native tab semantics (an input row, not grid cells).\n cellNavigation: boolean\n columns: DataGridColumn[]\n draggable: boolean\n filterRow: boolean\n hasMenu: (column: DataGridColumn) => boolean\n icons: {\n columnMenu: string\n filter: string\n sortAscending: string\n sortDescending: string\n sortNeutral: string\n }\n hasFilterMenu: (column: DataGridColumn) => boolean\n isFilterable: (column: DataGridColumn) => boolean\n isResizable: (column: DataGridColumn) => boolean\n isSortable: (column: DataGridColumn) => boolean\n labels: DataGridLabels\n resizable: boolean\n rowOrder: boolean\n selection: boolean\n selectAll: boolean\n table: DataGridTable\n}\n\nexport interface GridHeaderState {\n // Columns with any active filter value - drives the filter button indicator.\n // Null when column filters are off.\n filteredColumns: string[] | null\n // Visible leaf column ids in table order (pinning + columnOrder + visibility).\n order: string[]\n pinning: GridPinning | null\n resizingColumn: string | false\n sizes: Record<string, number> | null\n sorting: SortingState\n selectAll: {\n checked: boolean\n indeterminate: boolean\n } | null\n}\n\nexport interface GridHeader {\n element: HTMLTableSectionElement\n rowCount: number\n update: (state: GridHeaderState) => void\n dispose: () => void\n}\n\ntype SortDirection = 'ascending' | 'descending' | 'neutral'\n\nconst sortDirection = (columnSort: SortingState[number] | undefined): SortDirection => {\n if (!columnSort) {\n return 'neutral'\n }\n\n return columnSort.desc ? 'descending' : 'ascending'\n}\n\nconst iconForDirection = (direction: SortDirection, icons: GridHeaderContext['icons']): string => {\n if (direction === 'ascending') {\n return icons.sortAscending\n }\n\n if (direction === 'descending') {\n return icons.sortDescending\n }\n\n return icons.sortNeutral\n}\n\nconst createSelectAllCell = (context: GridHeaderContext): { cell: HTMLTableCellElement; input: HTMLInputElement | null } => {\n const cell = document.createElement('th')\n cell.classList.add(CLASS_NAME_SELECT_CELL)\n cell.setAttribute('scope', 'col')\n\n if (!context.selectAll) {\n return { cell, input: null }\n }\n\n const input = document.createElement('input')\n input.type = 'checkbox'\n input.classList.add('form-check-input')\n input.setAttribute('aria-label', context.labels.selectAllRows)\n input.dataset.coreuiSelectAll = ''\n cell.append(input)\n\n return { cell, input }\n}\n\n// The handle column has no header of its own; the cell only reserves the\n// width so the body's grips line up under it.\nconst createHandleHeaderCell = (): HTMLTableCellElement => {\n const cell = document.createElement('th')\n cell.classList.add(CLASS_NAME_HANDLE_CELL)\n cell.setAttribute('scope', 'col')\n return cell\n}\n\nconst createResizer = (): HTMLElement => {\n const resizer = document.createElement('span')\n resizer.classList.add(CLASS_NAME_RESIZER)\n resizer.setAttribute('aria-hidden', 'true')\n resizer.dataset.coreuiResizer = ''\n return resizer\n}\n\nconst createLabelRow = (\n context: GridHeaderContext,\n cells: Map<string, HTMLTableCellElement>,\n resizers: Map<string, HTMLElement>,\n sortIcons: Map<string, HTMLElement>\n): {\n row: HTMLTableRowElement\n selectAllInput: HTMLInputElement | null\n leadingCells: HTMLTableCellElement[]\n} => {\n const row = document.createElement('tr')\n let selectAllInput: HTMLInputElement | null = null\n const leadingCells: HTMLTableCellElement[] = []\n\n if (context.cellNavigation) {\n row.setAttribute('role', 'row')\n }\n\n if (context.rowOrder) {\n const cell = createHandleHeaderCell()\n if (context.cellNavigation) {\n cell.setAttribute('role', 'columnheader')\n }\n\n leadingCells.push(cell)\n row.append(cell)\n }\n\n if (context.selection) {\n const { cell, input } = createSelectAllCell(context)\n selectAllInput = input\n leadingCells.push(cell)\n if (context.cellNavigation) {\n cell.setAttribute('role', 'columnheader')\n if (input) {\n input.tabIndex = -1\n }\n }\n\n row.append(cell)\n }\n\n for (const column of context.columns) {\n const cell = document.createElement('th')\n cell.setAttribute('scope', 'col')\n cell.dataset.coreuiColumn = column.key\n if (context.cellNavigation) {\n cell.setAttribute('role', 'columnheader')\n cell.tabIndex = -1\n }\n\n if (column.style) {\n Object.assign(cell.style, column.style)\n }\n\n if (column.width !== undefined) {\n cell.style.width = `${column.width}px`\n }\n\n const content = document.createElement('div')\n content.classList.add(CLASS_NAME_HEADER_CELL)\n\n if (context.isSortable(column)) {\n cell.classList.add(CLASS_NAME_SORTABLE)\n const button = document.createElement('button')\n button.type = 'button'\n button.classList.add(CLASS_NAME_SORT_BUTTON)\n button.append(column.label ?? column.key)\n const icon = document.createElement('span')\n icon.classList.add(CLASS_NAME_SORT_ICON)\n icon.setAttribute('aria-hidden', 'true')\n icon.innerHTML = context.icons.sortNeutral\n icon.dataset.coreuiSort = 'neutral'\n button.append(icon)\n sortIcons.set(column.key, icon)\n content.append(button)\n } else {\n const label = document.createElement('span')\n label.classList.add(CLASS_NAME_HEADER_LABEL)\n label.textContent = column.label ?? column.key\n content.append(label)\n }\n\n if (context.hasFilterMenu(column)) {\n const button = document.createElement('button')\n button.type = 'button'\n button.classList.add('btn', 'btn-ghost', 'btn-sm', 'data-grid-filter-button')\n button.innerHTML = context.icons.filter\n button.dataset.coreuiFilter = column.key\n button.setAttribute('aria-haspopup', 'dialog')\n button.setAttribute('aria-expanded', 'false')\n const filterLabel = interpolate(context.labels.filterColumn, { column: column.label ?? column.key })\n button.setAttribute('aria-label', filterLabel)\n button.setAttribute('data-coreui-tooltip', filterLabel)\n content.append(button)\n }\n\n if (context.hasMenu(column)) {\n const button = document.createElement('button')\n button.type = 'button'\n button.classList.add('btn', 'btn-ghost', 'btn-sm', 'data-grid-menu-button')\n button.innerHTML = context.icons.columnMenu\n button.dataset.coreuiMenu = column.key\n button.setAttribute('aria-haspopup', 'menu')\n button.setAttribute('aria-expanded', 'false')\n const menuLabel = interpolate(context.labels.columnMenu, { column: column.label ?? column.key })\n button.setAttribute('aria-label', menuLabel)\n button.setAttribute('data-coreui-tooltip', menuLabel)\n content.append(button)\n }\n\n cell.append(content)\n\n if (context.cellNavigation) {\n for (const button of content.querySelectorAll('button')) {\n button.tabIndex = -1\n }\n }\n\n if (context.resizable && context.isResizable(column)) {\n const resizer = createResizer()\n resizers.set(column.key, resizer)\n cell.append(resizer)\n }\n\n cells.set(column.key, cell)\n row.append(cell)\n }\n\n return { row, selectAllInput, leadingCells }\n}\n\nconst createFilterRow = (\n context: GridHeaderContext,\n filterCells: Map<string, HTMLTableCellElement>,\n filterSlots: DataGridSlot[]\n): { row: HTMLTableRowElement; leadingCells: HTMLTableCellElement[] } => {\n const row = document.createElement('tr')\n row.classList.add(CLASS_NAME_FILTER_ROW)\n if (context.cellNavigation) {\n row.setAttribute('role', 'row')\n }\n\n const leadingCells: HTMLTableCellElement[] = []\n\n for (const leading of [context.rowOrder, context.selection]) {\n if (leading) {\n const cell = document.createElement('th')\n leadingCells.push(cell)\n row.append(cell)\n }\n }\n\n for (const column of context.columns) {\n const cell = document.createElement('th')\n const tableColumn = context.table.getColumn(column.key)\n if (context.isFilterable(column) && column.filter && tableColumn) {\n const slot = column.filter({ column: tableColumn, table: context.table, labels: context.labels })\n filterSlots.push(slot)\n cell.append(slot.element)\n }\n\n filterCells.set(column.key, cell)\n row.append(cell)\n }\n\n return { row, leadingCells }\n}\n\nexport const createHeader = (context: GridHeaderContext): GridHeader => {\n const element = document.createElement('thead')\n element.classList.add(CLASS_NAME_HEADER)\n\n const cells = new Map<string, HTMLTableCellElement>()\n const resizers = new Map<string, HTMLElement>()\n const sortIcons = new Map<string, HTMLElement>()\n const filterCells = new Map<string, HTMLTableCellElement>()\n const filterSlots: DataGridSlot[] = []\n const movableColumns = new Map(context.columns.map(column => [column.key, column.movable !== false]))\n\n const { row, selectAllInput, leadingCells } = createLabelRow(context, cells, resizers, sortIcons)\n element.append(row)\n\n let filterRowElement: HTMLTableRowElement | null = null\n let filterLeadingCells: HTMLTableCellElement[] = []\n if (context.filterRow) {\n const filterRow = createFilterRow(context, filterCells, filterSlots)\n filterLeadingCells = filterRow.leadingCells\n filterRowElement = filterRow.row\n element.append(filterRow.row)\n }\n\n // Cells are created once per config column; ordering/visibility re-appends\n // the existing nodes (appending moves them), so sort buttons, resizers and\n // custom filter UIs keep their DOM state.\n let orderSignature: string | null = null\n const applyOrder = (order: string[]) => {\n const visible = new Set(order)\n const reorderRow = (\n rowElement: HTMLTableRowElement,\n cellMap: Map<string, HTMLTableCellElement>,\n leading: HTMLTableCellElement[]\n ) => {\n const ordered: HTMLTableCellElement[] = [...leading]\n for (const id of order) {\n const cell = cellMap.get(id)\n if (cell) {\n ordered.push(cell)\n }\n }\n\n rowElement.append(...ordered)\n if (context.cellNavigation) {\n for (const [index, cell] of ordered.entries()) {\n cell.setAttribute('aria-colindex', String(index + 1))\n }\n }\n\n for (const [key, cell] of cellMap) {\n if (!visible.has(key)) {\n cell.remove()\n }\n }\n }\n\n reorderRow(row, cells, leadingCells)\n if (filterRowElement) {\n reorderRow(filterRowElement, filterCells, filterLeadingCells)\n }\n }\n\n return {\n element,\n rowCount: context.filterRow ? 2 : 1,\n update(state) {\n const signature = state.order.join('|')\n if (signature !== orderSignature) {\n orderSignature = signature\n applyOrder(state.order)\n }\n\n for (const [key, cell] of cells) {\n const columnSort = state.sorting.find(sort => sort.id === key)\n const direction = sortDirection(columnSort)\n if (direction === 'neutral') {\n cell.removeAttribute('aria-sort')\n } else {\n cell.setAttribute('aria-sort', direction)\n }\n\n const sortIcon = sortIcons.get(key)\n if (sortIcon && sortIcon.dataset.coreuiSort !== direction) {\n sortIcon.dataset.coreuiSort = direction\n sortIcon.innerHTML = iconForDirection(direction, context.icons)\n }\n\n if (state.sizes && state.sizes[key] !== undefined) {\n cell.style.width = `${state.sizes[key]}px`\n }\n\n if (state.pinning) {\n applyPinnedCell(cell, state.pinning.columns[key] ?? null)\n }\n }\n\n // A column is draggable only when reordering is on and its pinned region\n // holds another movable column to swap with - reordering never crosses a\n // pinning boundary, so a column alone in its region has no valid target.\n if (context.draggable) {\n const regionOf = (key: string): string => state.pinning?.columns[key]?.side ?? 'center'\n const movablePerRegion = new Map<string, number>()\n for (const key of state.order) {\n if (movableColumns.get(key)) {\n const region = regionOf(key)\n movablePerRegion.set(region, (movablePerRegion.get(region) ?? 0) + 1)\n }\n }\n\n for (const [key, cell] of cells) {\n const draggable = Boolean(movableColumns.get(key)) && (movablePerRegion.get(regionOf(key)) ?? 0) > 1\n if (draggable) {\n cell.dataset.coreuiDraggable = ''\n // Without this the browser scrolls (or picks text) instead of\n // handing the pointer stream to the drag controller on touch.\n cell.style.touchAction = 'none'\n } else {\n delete cell.dataset.coreuiDraggable\n cell.style.touchAction = ''\n }\n }\n }\n\n for (const [key, resizer] of resizers) {\n resizer.classList.toggle(CLASS_NAME_RESIZER_ACTIVE, state.resizingColumn === key)\n }\n\n if (state.filteredColumns) {\n for (const [key, cell] of cells) {\n cell\n .querySelector('[data-coreui-filter]')\n ?.classList.toggle('data-grid-filter-button-filtered', state.filteredColumns.includes(key))\n }\n }\n\n if (state.pinning) {\n for (const [key, cell] of filterCells) {\n applyPinnedCell(cell, state.pinning.columns[key] ?? null)\n }\n\n // Every leading cell (the handle column, the select column) shares\n // the select column's pin — they travel together at the start edge.\n for (const cell of [...leadingCells, ...filterLeadingCells]) {\n applyPinnedCell(cell, state.pinning.select)\n }\n }\n\n if (selectAllInput && state.selectAll) {\n selectAllInput.checked = state.selectAll.checked\n selectAllInput.indeterminate = state.selectAll.indeterminate\n }\n\n for (const slot of filterSlots) {\n slot.update?.()\n }\n },\n dispose() {\n for (const slot of filterSlots) {\n slot.dispose?.()\n }\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid ui/loading.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport type { DataGridLabels } from '../types'\n\nconst CLASS_NAME_LOADING = 'data-grid-loading'\n\nexport interface GridLoading {\n element: HTMLDivElement\n setVisible: (visible: boolean) => void\n}\n\nexport const createLoading = (labels: DataGridLabels, className = CLASS_NAME_LOADING): GridLoading => {\n const element = document.createElement('div')\n element.classList.add(className)\n element.hidden = true\n\n const spinner = document.createElement('div')\n spinner.classList.add('spinner-border')\n spinner.setAttribute('role', 'status')\n\n const label = document.createElement('span')\n label.classList.add('visually-hidden')\n label.textContent = labels.loading\n spinner.append(label)\n\n element.append(spinner)\n\n return {\n element,\n setVisible(visible) {\n element.hidden = !visible\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid ui/filter-menu.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport { FILTER_OPERATORS, VALUELESS_OPERATORS } from '../filters'\nimport { interpolate } from '../labels'\nimport type {\n DataGridColumn,\n DataGridColumnFilterValue,\n DataGridFilterCondition,\n DataGridFilterOperator,\n DataGridFilterType,\n DataGridLabels\n} from '../types'\n\nconst CLASS_NAME_FILTER_MENU = 'data-grid-filter-menu'\nconst CLASS_NAME_CONDITION = 'data-grid-filter-menu-condition'\nconst CLASS_NAME_JOIN = 'data-grid-filter-menu-join'\nconst CLASS_NAME_FOOTER = 'data-grid-filter-menu-footer'\nconst CLASS_NAME_VALUES = 'data-grid-filter-menu-values'\n\nconst SEARCH_THRESHOLD = 10\nconst MAX_CONDITIONS = 2\n\nconst OPERATOR_LABEL_KEYS: Record<DataGridFilterOperator, keyof DataGridLabels> = {\n contains: 'operatorContains',\n notContains: 'operatorNotContains',\n equals: 'operatorEquals',\n notEquals: 'operatorNotEquals',\n startsWith: 'operatorStartsWith',\n endsWith: 'operatorEndsWith',\n blank: 'operatorBlank',\n notBlank: 'operatorNotBlank',\n greaterThan: 'operatorGreaterThan',\n greaterThanOrEqual: 'operatorGreaterThanOrEqual',\n lessThan: 'operatorLessThan',\n lessThanOrEqual: 'operatorLessThanOrEqual',\n between: 'operatorBetween'\n}\n\nexport interface GridFilterMenuContext {\n root: HTMLElement\n labels: DataGridLabels\n getColumn: (columnKey: string) => DataGridColumn | null\n getFacetedValues: (columnKey: string) => unknown[]\n getFilterValue: (columnKey: string) => DataGridColumnFilterValue | undefined\n applyFilter: (columnKey: string, value?: DataGridColumnFilterValue) => void\n}\n\nexport interface GridFilterMenu {\n toggle: (button: HTMLElement, columnKey: string) => void\n close: () => void\n dispose: () => void\n}\n\nlet filterMenuCount = 0\n\nconst inputTypeFor = (filterType: DataGridFilterType): string =>\n (filterType === 'number' ? 'number' : (filterType === 'date' ? 'date' : 'text'))\n\nexport const createFilterMenu = (context: GridFilterMenuContext): GridFilterMenu => {\n const element = document.createElement('div')\n element.classList.add(CLASS_NAME_FILTER_MENU)\n element.setAttribute('role', 'dialog')\n element.id = `data-grid-filter-menu-${++filterMenuCount}`\n\n let trigger: HTMLElement | null = null\n\n const close = (refocus = false) => {\n if (!trigger) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'false')\n trigger.removeAttribute('aria-controls')\n if (refocus) {\n trigger.focus()\n }\n\n trigger = null\n element.remove()\n document.removeEventListener('pointerdown', onOutsidePointerDown, true)\n window.removeEventListener('scroll', onWindowChange, true)\n window.removeEventListener('resize', onWindowChange)\n }\n\n const onOutsidePointerDown = (event: Event) => {\n const target = event.target as Node\n if (!element.contains(target) && !trigger?.contains(target)) {\n close()\n }\n }\n\n const onWindowChange = (event?: Event) => {\n if (event?.target instanceof Node && element.contains(event.target)) {\n return\n }\n\n close()\n }\n\n const onKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.stopPropagation()\n close(true)\n }\n }\n\n element.addEventListener('keydown', onKeydown)\n\n const buildConditionRow = (\n filterType: Exclude<DataGridFilterType, 'select'>,\n condition: DataGridFilterCondition | null\n ): HTMLElement => {\n const row = document.createElement('div')\n row.classList.add(CLASS_NAME_CONDITION)\n\n const select = document.createElement('select')\n select.classList.add('form-select', 'form-select-sm')\n select.setAttribute('aria-label', context.labels.filterAction)\n for (const operator of FILTER_OPERATORS[filterType]) {\n const option = document.createElement('option')\n option.value = operator\n option.textContent = context.labels[OPERATOR_LABEL_KEYS[operator]]\n select.append(option)\n }\n\n select.value = condition?.operator ?? FILTER_OPERATORS[filterType][0]\n\n const value = document.createElement('input')\n value.type = inputTypeFor(filterType)\n value.classList.add('form-control', 'form-control-sm')\n value.dataset.coreuiFilterValue = ''\n value.value = condition?.value === undefined ? '' : String(condition.value)\n\n const value2 = document.createElement('input')\n value2.type = inputTypeFor(filterType)\n value2.classList.add('form-control', 'form-control-sm')\n value2.dataset.coreuiFilterValue2 = ''\n value2.value = condition?.value2 === undefined ? '' : String(condition.value2)\n\n const syncVisibility = () => {\n const operator = select.value as DataGridFilterOperator\n value.hidden = VALUELESS_OPERATORS.has(operator)\n value2.hidden = operator !== 'between'\n }\n\n select.addEventListener('change', syncVisibility)\n row.append(select, value, value2)\n syncVisibility()\n return row\n }\n\n const readCondition = (row: HTMLElement): DataGridFilterCondition | null => {\n const operator = row.querySelector('select')!.value as DataGridFilterOperator\n const { value } = (row.querySelector<HTMLInputElement>('[data-coreui-filter-value]')!)\n const value2 = row.querySelector<HTMLInputElement>('[data-coreui-filter-value2]')!.value\n\n if (VALUELESS_OPERATORS.has(operator)) {\n return { operator }\n }\n\n if (value.trim() === '') {\n return null\n }\n\n return {\n operator,\n value,\n ...(operator === 'between' && value2.trim() !== '' && { value2 })\n }\n }\n\n const buildFooter = (onApply: () => void, columnKey: string): HTMLElement => {\n const footer = document.createElement('div')\n footer.classList.add(CLASS_NAME_FOOTER)\n\n const apply = document.createElement('button')\n apply.type = 'button'\n apply.classList.add('btn', 'btn-primary', 'btn-sm')\n apply.textContent = context.labels.applyFilter\n apply.addEventListener('click', onApply)\n\n const clear = document.createElement('button')\n clear.type = 'button'\n clear.classList.add('btn', 'btn-outline-secondary', 'btn-sm')\n clear.textContent = context.labels.clearFilter\n clear.addEventListener('click', () => {\n context.applyFilter(columnKey)\n close(true)\n })\n\n footer.append(apply, clear)\n return footer\n }\n\n const buildConditionsContent = (columnKey: string, filterType: Exclude<DataGridFilterType, 'select'>) => {\n const current = context.getFilterValue(columnKey)\n const conditions =\n current && typeof current !== 'string' && 'conditions' in current ? current.conditions : []\n const join = current && typeof current !== 'string' && 'conditions' in current ? current.join : 'and'\n\n const rows: HTMLElement[] = [buildConditionRow(filterType, conditions[0] ?? null)]\n const body = document.createElement('div')\n body.append(rows[0])\n\n const joinRow = document.createElement('div')\n joinRow.classList.add(CLASS_NAME_JOIN)\n const joinName = `${element.id}-join`\n for (const option of ['and', 'or'] as const) {\n const label = document.createElement('label')\n const radio = document.createElement('input')\n radio.type = 'radio'\n radio.classList.add('form-check-input')\n radio.name = joinName\n radio.value = option\n radio.checked = join === option\n label.append(radio, ` ${option === 'and' ? context.labels.joinAnd : context.labels.joinOr}`)\n joinRow.append(label)\n }\n\n const addButton = document.createElement('button')\n addButton.type = 'button'\n addButton.classList.add('btn', 'btn-link', 'btn-sm')\n addButton.textContent = context.labels.addCondition\n\n const showSecond = () => {\n if (rows.length >= MAX_CONDITIONS) {\n return\n }\n\n rows.push(buildConditionRow(filterType, conditions[1] ?? null))\n addButton.before(joinRow, rows[1])\n addButton.hidden = true\n }\n\n addButton.addEventListener('click', showSecond)\n body.append(addButton)\n if (conditions.length > 1) {\n showSecond()\n }\n\n const onApply = () => {\n const collected = rows\n .map(row => readCondition(row))\n .filter((condition): condition is DataGridFilterCondition => condition !== null)\n const joinValue =\n (joinRow.querySelector<HTMLInputElement>('input:checked')?.value as 'and' | 'or') ?? 'and'\n context.applyFilter(\n columnKey,\n collected.length === 0 ? undefined : { conditions: collected, join: joinValue }\n )\n close(true)\n }\n\n body.append(buildFooter(onApply, columnKey))\n return body\n }\n\n const buildSelectContent = (columnKey: string) => {\n const values = context.getFacetedValues(columnKey)\n const current = context.getFilterValue(columnKey)\n const selected =\n current && typeof current !== 'string' && 'operator' in current ?\n new Set(current.value.map(String)) :\n null\n\n const body = document.createElement('div')\n const list = document.createElement('div')\n list.classList.add(CLASS_NAME_VALUES)\n\n const checkboxes: HTMLInputElement[] = []\n const rowFor = (labelText: string, checked: boolean): HTMLInputElement => {\n const label = document.createElement('label')\n label.classList.add('form-check')\n const input = document.createElement('input')\n input.type = 'checkbox'\n input.classList.add('form-check-input')\n input.checked = checked\n const text = document.createElement('span')\n text.classList.add('form-check-label')\n text.textContent = labelText\n label.append(input, text)\n list.append(label)\n return input\n }\n\n const selectAll = rowFor(context.labels.selectAllValues, selected === null)\n selectAll.dataset.coreuiSelectAllValues = ''\n\n for (const value of values) {\n const input = rowFor(String(value), selected === null || selected.has(String(value)))\n input.dataset.coreuiFilterOption = String(value)\n checkboxes.push(input)\n }\n\n const syncSelectAll = () => {\n selectAll.checked = checkboxes.every(input => input.checked)\n }\n\n selectAll.addEventListener('change', () => {\n for (const input of checkboxes) {\n input.checked = selectAll.checked\n }\n })\n list.addEventListener('change', event => {\n if (event.target !== selectAll) {\n syncSelectAll()\n }\n })\n syncSelectAll()\n\n if (values.length > SEARCH_THRESHOLD) {\n const search = document.createElement('input')\n search.type = 'text'\n search.classList.add('form-control', 'form-control-sm')\n search.setAttribute('aria-label', context.labels.searchValues)\n search.placeholder = context.labels.searchValues\n search.addEventListener('input', () => {\n const needle = search.value.toLowerCase()\n for (const input of checkboxes) {\n input.closest('label')!.hidden = !input.dataset.coreuiFilterOption!.toLowerCase().includes(needle)\n }\n })\n body.append(search)\n }\n\n body.append(list)\n\n const onApply = () => {\n const checked = checkboxes.filter(input => input.checked)\n context.applyFilter(\n columnKey,\n checked.length === checkboxes.length ?\n undefined :\n { operator: 'in', value: checked.map(input => input.dataset.coreuiFilterOption!) }\n )\n close(true)\n }\n\n body.append(buildFooter(onApply, columnKey))\n return body\n }\n\n const open = (button: HTMLElement, columnKey: string) => {\n close()\n const column = context.getColumn(columnKey)\n if (!column) {\n return\n }\n\n element.setAttribute(\n 'aria-label',\n interpolate(context.labels.filterColumn, { column: column.label ?? column.key })\n )\n const filterType = column.filterType ?? 'text'\n element.replaceChildren(\n filterType === 'select' ? buildSelectContent(columnKey) : buildConditionsContent(columnKey, filterType)\n )\n\n trigger = button\n button.setAttribute('aria-expanded', 'true')\n button.setAttribute('aria-controls', element.id)\n context.root.append(element)\n\n const rootRect = context.root.getBoundingClientRect()\n const buttonRect = button.getBoundingClientRect()\n element.style.top = `${buttonRect.bottom - rootRect.top}px`\n element.style.left = `${Math.max(buttonRect.right - rootRect.left - element.offsetWidth, 0)}px`\n\n document.addEventListener('pointerdown', onOutsidePointerDown, true)\n window.addEventListener('scroll', onWindowChange, true)\n window.addEventListener('resize', onWindowChange)\n element.querySelector<HTMLElement>('select, input')?.focus()\n }\n\n return {\n toggle(button, columnKey) {\n if (trigger === button) {\n close(true)\n return\n }\n\n close()\n open(button, columnKey)\n },\n close() {\n close()\n },\n dispose() {\n close()\n element.removeEventListener('keydown', onKeydown)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid ui/menu.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport type { DataGridMenuAction } from '../types'\n\nconst CLASS_NAME_MENU = 'data-grid-menu'\nconst CLASS_NAME_MENU_ITEM = 'data-grid-menu-item'\nconst CLASS_NAME_MENU_ITEM_ICON = 'data-grid-menu-item-icon'\nconst CLASS_NAME_MENU_DIVIDER = 'data-grid-menu-divider'\n\nexport interface GridMenuContext {\n root: HTMLElement\n getActions: (columnKey: string) => DataGridMenuAction[]\n}\n\nexport interface GridMenu {\n toggle: (button: HTMLElement, columnKey: string) => void\n close: () => void\n dispose: () => void\n}\n\nlet menuCount = 0\n\nexport const createMenu = (context: GridMenuContext): GridMenu => {\n const element = document.createElement('div')\n element.classList.add(CLASS_NAME_MENU)\n element.setAttribute('role', 'menu')\n element.id = `data-grid-menu-${++menuCount}`\n\n let trigger: HTMLElement | null = null\n\n const items = (): HTMLButtonElement[] =>\n [...element.querySelectorAll<HTMLButtonElement>(`.${CLASS_NAME_MENU_ITEM}`)]\n\n const close = (refocus = false) => {\n if (!trigger) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'false')\n trigger.removeAttribute('aria-controls')\n if (refocus) {\n trigger.focus()\n }\n\n trigger = null\n element.remove()\n document.removeEventListener('pointerdown', onOutsidePointerDown, true)\n window.removeEventListener('scroll', onWindowChange, true)\n window.removeEventListener('resize', onWindowChange)\n }\n\n const onOutsidePointerDown = (event: Event) => {\n const target = event.target as Node\n if (!element.contains(target) && !trigger?.contains(target)) {\n close()\n }\n }\n\n // Any scroll (viewport or page) or resize invalidates the anchored position;\n // closing matches the native-select/AG Grid behavior.\n const onWindowChange = (event?: Event) => {\n if (event?.target instanceof Node && element.contains(event.target)) {\n return\n }\n\n close()\n }\n\n const onMenuKeydown = (event: KeyboardEvent) => {\n const enabled = items()\n const activeIndex = enabled.indexOf(document.activeElement as HTMLButtonElement)\n\n switch (event.key) {\n case 'Escape': {\n event.stopPropagation()\n close(true)\n break\n }\n\n case 'Tab': {\n close()\n break\n }\n\n case 'ArrowDown': {\n event.preventDefault()\n enabled[(activeIndex + 1) % enabled.length]?.focus()\n break\n }\n\n case 'ArrowUp': {\n event.preventDefault()\n enabled[(activeIndex - 1 + enabled.length) % enabled.length]?.focus()\n break\n }\n\n case 'Home': {\n event.preventDefault()\n enabled[0]?.focus()\n break\n }\n\n case 'End': {\n event.preventDefault()\n enabled[enabled.length - 1]?.focus()\n break\n }\n\n default:\n }\n }\n\n element.addEventListener('keydown', onMenuKeydown)\n\n const open = (button: HTMLElement, columnKey: string) => {\n const actions = context.getActions(columnKey)\n if (actions.length === 0) {\n return\n }\n\n const nodes: Node[] = []\n for (const [index, action] of actions.entries()) {\n if (index > 0 && action.group !== actions[index - 1].group) {\n const divider = document.createElement('div')\n divider.classList.add(CLASS_NAME_MENU_DIVIDER)\n divider.setAttribute('role', 'separator')\n nodes.push(divider)\n }\n\n const item = document.createElement('button')\n item.type = 'button'\n item.classList.add(CLASS_NAME_MENU_ITEM)\n item.setAttribute('role', 'menuitem')\n if (action.icon) {\n const icon = document.createElement('span')\n icon.classList.add(CLASS_NAME_MENU_ITEM_ICON)\n icon.setAttribute('aria-hidden', 'true')\n icon.innerHTML = action.icon\n item.append(icon)\n }\n\n item.append(action.label)\n if (action.disabled) {\n item.setAttribute('aria-disabled', 'true')\n }\n\n item.addEventListener('click', () => {\n if (action.disabled) {\n return\n }\n\n const previousTrigger = trigger\n close()\n action.run()\n // The action may remove the trigger's header cell (hide column); the\n // check has to run after the scheduled re-render.\n requestAnimationFrame(() => {\n // An action may have moved focus deliberately (the filter dialog);\n // only restore it when it fell out of the grid.\n const active = document.activeElement\n if (active && active !== document.body && context.root.contains(active)) {\n return\n }\n\n if (previousTrigger?.isConnected) {\n previousTrigger.focus()\n } else {\n context.root.querySelector<HTMLElement>('[data-coreui-menu]')?.focus()\n }\n })\n })\n nodes.push(item)\n }\n\n element.replaceChildren(...nodes)\n\n trigger = button\n button.setAttribute('aria-expanded', 'true')\n button.setAttribute('aria-controls', element.id)\n context.root.append(element)\n\n const rootRect = context.root.getBoundingClientRect()\n const buttonRect = button.getBoundingClientRect()\n element.style.top = `${buttonRect.bottom - rootRect.top}px`\n // Right-align the menu to the trigger so it opens leftward — the menu button\n // sits at the cell's right edge, where a left-aligned menu would overflow.\n element.style.left = `${Math.max(buttonRect.right - rootRect.left - element.offsetWidth, 0)}px`\n\n document.addEventListener('pointerdown', onOutsidePointerDown, true)\n window.addEventListener('scroll', onWindowChange, true)\n window.addEventListener('resize', onWindowChange)\n items()[0]?.focus()\n }\n\n return {\n toggle(button, columnKey) {\n if (trigger === button) {\n close(true)\n return\n }\n\n close()\n open(button, columnKey)\n },\n close() {\n close()\n },\n dispose() {\n close()\n element.removeEventListener('keydown', onMenuKeydown)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid ui/pagination.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport { interpolate } from '../labels'\nimport type { DataGridLabels, DataGridPaginationInfoState } from '../types'\n\nconst CLASS_NAME_PAGINATION = 'data-grid-pagination'\nconst CLASS_NAME_PAGINATION_INFO = 'data-grid-pagination-info'\n\nconst PAGE_WINDOW = 5\n\nexport interface GridPaginationContext {\n info: boolean | ((state: DataGridPaginationInfoState) => string)\n labels: DataGridLabels\n pageSizeOptions: number[]\n}\n\nexport interface GridPagination {\n element: HTMLDivElement\n update: (state: DataGridPaginationInfoState) => void\n}\n\nconst createPageItem = (\n label: string,\n page: string,\n options: { active?: boolean; disabled?: boolean; ariaLabel?: string } = {}\n): HTMLLIElement => {\n const item = document.createElement('li')\n item.classList.add('page-item')\n if (options.active) {\n item.classList.add('active')\n item.setAttribute('aria-current', 'page')\n }\n\n if (options.disabled) {\n item.classList.add('disabled')\n }\n\n const button = document.createElement('button')\n button.type = 'button'\n button.classList.add('page-link')\n button.textContent = label\n button.disabled = Boolean(options.disabled)\n button.dataset.coreuiPage = page\n if (options.ariaLabel) {\n button.setAttribute('aria-label', options.ariaLabel)\n }\n\n item.append(button)\n\n return item\n}\n\nexport const createPagination = (context: GridPaginationContext): GridPagination => {\n const element = document.createElement('div')\n element.classList.add(CLASS_NAME_PAGINATION)\n\n const nav = document.createElement('nav')\n nav.setAttribute('aria-label', context.labels.paginationLabel)\n const list = document.createElement('ul')\n list.classList.add('pagination', 'pagination-sm')\n nav.append(list)\n\n const info = context.info === false ? null : document.createElement('span')\n if (info) {\n info.classList.add(CLASS_NAME_PAGINATION_INFO)\n }\n\n const select = document.createElement('select')\n select.classList.add('form-select', 'form-select-sm')\n select.setAttribute('aria-label', context.labels.pageSizeLabel)\n select.dataset.coreuiPageSize = ''\n for (const size of context.pageSizeOptions) {\n const option = document.createElement('option')\n option.value = String(size)\n option.textContent = String(size)\n select.append(option)\n }\n\n element.append(nav, ...(info ? [info] : []), select)\n\n return {\n element,\n update(state) {\n const lastPageIndex = Math.max(state.pageCount - 1, 0)\n const windowStart = Math.max(\n Math.min(state.pageIndex - Math.floor(PAGE_WINDOW / 2), state.pageCount - PAGE_WINDOW),\n 0\n )\n // No pages (server mode before the first load, rejected provider) - no\n // page buttons, only the disabled first/prev/next/last chrome.\n const windowEnd = state.pageCount === 0 ? -1 : Math.min(windowStart + PAGE_WINDOW - 1, lastPageIndex)\n\n const items = [\n createPageItem('«', 'first', {\n ariaLabel: context.labels.firstPage,\n disabled: state.pageIndex === 0\n }),\n createPageItem('‹', 'prev', {\n ariaLabel: context.labels.previousPage,\n disabled: state.pageIndex === 0\n })\n ]\n for (let page = windowStart; page <= windowEnd; page++) {\n items.push(createPageItem(String(page + 1), String(page), { active: page === state.pageIndex }))\n }\n\n items.push(\n createPageItem('›', 'next', {\n ariaLabel: context.labels.nextPage,\n disabled: state.pageIndex >= lastPageIndex\n }),\n createPageItem('»', 'last', {\n ariaLabel: context.labels.lastPage,\n disabled: state.pageIndex >= lastPageIndex\n })\n )\n list.replaceChildren(...items)\n\n if (info) {\n if (typeof context.info === 'function') {\n info.textContent = context.info(state)\n } else {\n const first = state.totalRows === 0 ? 0 : (state.pageIndex * state.pageSize) + 1\n const last = Math.min((state.pageIndex + 1) * state.pageSize, state.totalRows)\n info.textContent = interpolate(context.labels.itemsInfo, {\n first,\n last,\n total: state.totalRows\n })\n }\n }\n\n // A configured pageSize outside pageSizeOptions would leave the select\n // blank; surface it as an extra option in numeric position.\n if (![...select.options].some(option => option.value === String(state.pageSize))) {\n const option = document.createElement('option')\n option.value = String(state.pageSize)\n option.textContent = String(state.pageSize)\n select.insertBefore(option, [...select.options].find(item => Number(item.value) > state.pageSize) ?? null)\n }\n\n select.value = String(state.pageSize)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid ui/column-chooser.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport type { DataGridLabels } from '../types'\n\nconst CLASS_NAME_COLUMN_CHOOSER = 'data-grid-column-chooser'\nconst CLASS_NAME_OPTION = 'data-grid-column-chooser-option'\nconst CLASS_NAME_FOOTER = 'data-grid-column-chooser-footer'\n\nexport interface ColumnChooserColumn {\n id: string\n label: string\n canHide: boolean\n visible: boolean\n}\n\nexport interface GridColumnChooserContext {\n root: HTMLElement\n labels: DataGridLabels\n getColumns: () => ColumnChooserColumn[]\n toggleVisibility: (columnId: string, visible: boolean) => void\n showAll: () => void\n reset: () => void\n}\n\nexport interface GridColumnChooser {\n toggle: (button: HTMLElement) => void\n close: () => void\n dispose: () => void\n}\n\nlet columnChooserCount = 0\n\nexport const createColumnChooser = (context: GridColumnChooserContext): GridColumnChooser => {\n const element = document.createElement('div')\n element.classList.add(CLASS_NAME_COLUMN_CHOOSER)\n element.setAttribute('role', 'dialog')\n element.setAttribute('aria-label', context.labels.toolbarColumns)\n element.id = `data-grid-column-chooser-${++columnChooserCount}`\n\n let trigger: HTMLElement | null = null\n\n const close = (refocus = false) => {\n if (!trigger) {\n return\n }\n\n trigger.setAttribute('aria-expanded', 'false')\n trigger.removeAttribute('aria-controls')\n if (refocus) {\n trigger.focus()\n }\n\n trigger = null\n element.remove()\n document.removeEventListener('pointerdown', onOutsidePointerDown, true)\n window.removeEventListener('scroll', onWindowChange, true)\n window.removeEventListener('resize', onWindowChange)\n }\n\n const onOutsidePointerDown = (event: Event) => {\n const target = event.target as Node\n if (!element.contains(target) && !trigger?.contains(target)) {\n close()\n }\n }\n\n const onWindowChange = (event?: Event) => {\n if (event?.target instanceof Node && element.contains(event.target)) {\n return\n }\n\n close()\n }\n\n const onKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.stopPropagation()\n close(true)\n }\n }\n\n element.addEventListener('keydown', onKeydown)\n\n const buildContent = () => {\n const list = document.createElement('div')\n\n for (const column of context.getColumns()) {\n const label = document.createElement('label')\n label.classList.add('form-check', CLASS_NAME_OPTION)\n const input = document.createElement('input')\n input.type = 'checkbox'\n input.classList.add('form-check-input')\n input.checked = column.visible\n input.dataset.coreuiColumnChooserOption = column.id\n if (!column.canHide) {\n input.disabled = true\n input.setAttribute('aria-disabled', 'true')\n }\n\n input.addEventListener('change', () => {\n context.toggleVisibility(column.id, input.checked)\n })\n const text = document.createElement('span')\n text.classList.add('form-check-label')\n text.textContent = column.label\n label.append(input, text)\n list.append(label)\n }\n\n const footer = document.createElement('div')\n footer.classList.add(CLASS_NAME_FOOTER)\n\n const showAll = document.createElement('button')\n showAll.type = 'button'\n showAll.classList.add('btn', 'btn-link', 'btn-sm')\n showAll.textContent = context.labels.showAllColumns\n showAll.dataset.coreuiColumnChooserShowAll = ''\n showAll.addEventListener('click', () => {\n context.showAll()\n element.replaceChildren(buildContent())\n })\n\n const reset = document.createElement('button')\n reset.type = 'button'\n reset.classList.add('btn', 'btn-link', 'btn-sm')\n reset.textContent = context.labels.resetColumns\n reset.dataset.coreuiColumnChooserReset = ''\n reset.addEventListener('click', () => {\n context.reset()\n element.replaceChildren(buildContent())\n })\n\n footer.append(showAll, reset)\n\n const content = document.createDocumentFragment()\n content.append(list, footer)\n return content\n }\n\n const open = (button: HTMLElement) => {\n close()\n element.replaceChildren(buildContent())\n\n trigger = button\n button.setAttribute('aria-expanded', 'true')\n button.setAttribute('aria-controls', element.id)\n context.root.append(element)\n\n const rootRect = context.root.getBoundingClientRect()\n const buttonRect = button.getBoundingClientRect()\n element.style.top = `${buttonRect.bottom - rootRect.top}px`\n element.style.left = `${Math.max(buttonRect.left - rootRect.left, 0)}px`\n\n document.addEventListener('pointerdown', onOutsidePointerDown, true)\n window.addEventListener('scroll', onWindowChange, true)\n window.addEventListener('resize', onWindowChange)\n element.querySelector<HTMLElement>('input:not(:disabled)')?.focus()\n }\n\n return {\n toggle(button) {\n if (trigger === button) {\n close(true)\n return\n }\n\n close()\n open(button)\n },\n close() {\n close()\n },\n dispose() {\n close()\n element.removeEventListener('keydown', onKeydown)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid ui/tooltip.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nconst CLASS_NAME_TOOLTIP = 'data-grid-tooltip'\nconst ATTRIBUTE = 'data-coreui-tooltip'\nconst SELECTOR = `[${ATTRIBUTE}]`\nconst SHOW_DELAY = 200\nconst GAP = 6\nconst EDGE = 4\n\nexport interface GridTooltip {\n dispose: () => void\n}\n\n// A single shared, delegated tooltip for grid-owned icon controls. Positioned\n// with position: fixed so it escapes the viewport's overflow, above the anchor\n// with a flip below when there isn't room. Purely visual (aria-hidden) - the\n// anchors already carry their accessible name via aria-label / hidden text.\nexport const createTooltip = (root: HTMLElement): GridTooltip => {\n const element = document.createElement('div')\n element.className = CLASS_NAME_TOOLTIP\n element.setAttribute('role', 'tooltip')\n element.setAttribute('aria-hidden', 'true')\n element.hidden = true\n root.append(element)\n\n let anchor: HTMLElement | null = null\n let showTimer: ReturnType<typeof setTimeout> | undefined\n\n const anchorFrom = (target: EventTarget | null): HTMLElement | null => {\n const element_ = target instanceof Element ? target.closest(SELECTOR) : null\n return element_ instanceof HTMLElement && element_.getAttribute(ATTRIBUTE) ? element_ : null\n }\n\n const position = (): void => {\n if (!anchor) {\n return\n }\n\n const rect = anchor.getBoundingClientRect()\n const width = element.offsetWidth\n const height = element.offsetHeight\n const above = rect.top - height - GAP\n const top = above >= 0 ? above : rect.bottom + GAP\n const left = Math.max(EDGE, Math.min(rect.left + ((rect.width - width) / 2), window.innerWidth - width - EDGE))\n element.style.top = `${top}px`\n element.style.left = `${left}px`\n element.style.visibility = 'visible'\n }\n\n const show = (target: HTMLElement): void => {\n anchor = target\n element.textContent = target.getAttribute(ATTRIBUTE)\n element.style.visibility = 'hidden'\n element.hidden = false\n position()\n }\n\n const hide = (): void => {\n clearTimeout(showTimer)\n anchor = null\n element.hidden = true\n }\n\n const onPointerOver = (event: PointerEvent): void => {\n const target = anchorFrom(event.target)\n if (!target || target === anchor) {\n return\n }\n\n clearTimeout(showTimer)\n showTimer = setTimeout(() => show(target), SHOW_DELAY)\n }\n\n const onPointerOut = (event: PointerEvent): void => {\n if (anchor && event.relatedTarget instanceof Node && anchor.contains(event.relatedTarget)) {\n return\n }\n\n hide()\n }\n\n const onFocusIn = (event: FocusEvent): void => {\n const target = anchorFrom(event.target)\n if (target) {\n show(target)\n }\n }\n\n root.addEventListener('pointerover', onPointerOver as EventListener)\n root.addEventListener('pointerout', onPointerOut as EventListener)\n root.addEventListener('pointerdown', hide)\n root.addEventListener('focusin', onFocusIn as EventListener)\n root.addEventListener('focusout', hide)\n window.addEventListener('scroll', hide, true)\n\n return {\n dispose() {\n clearTimeout(showTimer)\n root.removeEventListener('pointerover', onPointerOver as EventListener)\n root.removeEventListener('pointerout', onPointerOut as EventListener)\n root.removeEventListener('pointerdown', hide)\n root.removeEventListener('focusin', onFocusIn as EventListener)\n root.removeEventListener('focusout', hide)\n window.removeEventListener('scroll', hide, true)\n element.remove()\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid util/export-table.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport type { DataGridItem } from '../types'\n\n// Typed structurally, not as one edition's table: TFeatures is invariant in v9,\n// so the vanilla grid and each framework binding (whose adapter registers its\n// own reactivity feature) have mutually incompatible Table types even though\n// they expose the same row/column surface an export needs. Everything beyond\n// the core row model is optional - a reduced feature set exports whatever\n// layout/scope its features can express and falls back to core for the rest.\n\nexport interface ExportColumnMeta {\n label?: string\n formatter?: (value: unknown, item: DataGridItem) => string\n width?: number\n}\n\nexport interface ExportColumn {\n id: string\n columnDef: { meta?: unknown }\n}\n\nexport interface ExportRow {\n original: DataGridItem\n getValue: (columnId: string) => unknown\n}\n\nexport interface ExportTable {\n getAllLeafColumns: () => ExportColumn[]\n getCenterVisibleLeafColumns?: () => ExportColumn[]\n getCoreRowModel: () => { rows: ExportRow[] }\n getEndVisibleLeafColumns?: () => ExportColumn[]\n getFilteredRowModel?: () => { rows: ExportRow[] }\n getSelectedRowModel?: () => { rows: ExportRow[] }\n getSortedRowModel?: () => { rows: ExportRow[] }\n getStartVisibleLeafColumns?: () => ExportColumn[]\n getVisibleLeafColumns?: () => ExportColumn[]\n}\n\nexport type ExportScope = 'filtered' | 'all' | 'selected'\n\nexport const rowsFor = (table: ExportTable, scope: ExportScope | undefined): ExportRow[] => {\n if (scope === 'all') {\n return table.getCoreRowModel().rows\n }\n\n if (scope === 'selected') {\n return table.getSelectedRowModel?.().rows ?? []\n }\n\n return (table.getSortedRowModel ?? table.getFilteredRowModel ?? table.getCoreRowModel)().rows\n}\n\n// Exports follow the rendered layout: pinning, column order and visibility -\n// as far as the registered features track them.\nexport const columnsFor = (table: ExportTable): ExportColumn[] => {\n if (table.getCenterVisibleLeafColumns) {\n return [\n ...(table.getStartVisibleLeafColumns?.() ?? []),\n ...table.getCenterVisibleLeafColumns(),\n ...(table.getEndVisibleLeafColumns?.() ?? [])\n ]\n }\n\n return table.getVisibleLeafColumns?.() ?? table.getAllLeafColumns()\n}\n\nexport const headerFor = (column: ExportColumn): string =>\n String((column.columnDef.meta as ExportColumnMeta)?.label ?? column.id)\n\n// A column formatter is author intent and matches what the grid renders, so\n// exports honor it - which also means a formatted number leaves as text.\nexport const formatterFor = (column: ExportColumn): ExportColumnMeta['formatter'] =>\n (column.columnDef.meta as ExportColumnMeta)?.formatter\n\n// The author's declared column width in px. Deliberately NOT column.getSize():\n// that returns table-core's 150 px default whenever the grid does not track\n// sizing, which would force an arbitrary width on every exported column. A\n// consequence is that an interactive resize is not carried into the export.\nexport const widthFor = (column: ExportColumn): number | undefined =>\n (column.columnDef.meta as ExportColumnMeta)?.width\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid util/csv.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport {\n columnsFor, formatterFor, headerFor, rowsFor, type ExportScope, type ExportTable\n} from './export-table'\n\nexport interface CsvOptions {\n scope?: ExportScope\n delimiter?: string\n bom?: boolean\n sanitize?: boolean\n}\n\nexport interface CsvDownloadOptions extends CsvOptions {\n filename?: string\n}\n\nexport type CsvTable = ExportTable\n\nconst escapeField = (value: string, delimiter: string): string =>\n /[\"\\r\\n]/.test(value) || value.includes(delimiter) ? `\"${value.replace(/\"/g, '\"\"')}\"` : value\n\n// CSV formula injection: a leading =, +, -, @, tab or CR makes spreadsheets treat\n// the cell as a formula. Opt-in guard prefixes such fields with an apostrophe.\nconst sanitizeField = (value: string): string =>\n /^[=+\\-@\\t\\r]/.test(value) ? `'${value}` : value\n\nexport const exportCsv = (table: CsvTable, options: CsvOptions = {}): string => {\n const delimiter = options.delimiter ?? ','\n const columns = columnsFor(table)\n\n const process = (field: string) => escapeField(options.sanitize ? sanitizeField(field) : field, delimiter)\n const line = (fields: string[]) => fields.map(process).join(delimiter)\n\n const header = line(columns.map(column => headerFor(column)))\n const body = rowsFor(table, options.scope).map(row =>\n line(columns.map(column => {\n const value = row.getValue(column.id)\n const formatter = formatterFor(column)\n // Coerce: a formatter may return a number/null in plain-JS usage.\n return formatter ? String(formatter(value, row.original) ?? '') : String(value ?? '')\n }))\n )\n\n const csv = [header, ...body].join('\\r\\n')\n return options.bom ? `\\uFEFF${csv}` : csv\n}\n\nexport const downloadCsv = (table: CsvTable, options: CsvDownloadOptions = {}): void => {\n const blob = new Blob([exportCsv(table, options)], { type: 'text/csv;charset=utf-8;' })\n const url = URL.createObjectURL(blob)\n const anchor = document.createElement('a')\n anchor.href = url\n anchor.download = options.filename ?? 'export.csv'\n anchor.style.display = 'none'\n // Attach before clicking (older Firefox) and defer revoke (Safari race).\n document.body.append(anchor)\n anchor.click()\n anchor.remove()\n setTimeout(() => URL.revokeObjectURL(url))\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid util/debounce.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nexport const debounce = <Args extends unknown[]>(\n callback: (...args: Args) => void,\n delay: number\n): ((...args: Args) => void) => {\n let timeout: ReturnType<typeof setTimeout> | undefined\n\n return (...args: Args) => {\n clearTimeout(timeout)\n timeout = setTimeout(() => callback(...args), delay)\n }\n}\n","// Vendored from https://github.com/coreui/coreui-pro/blob/e9355580e/js/src/util/sanitizer.ts — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI util/sanitizer.ts\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/sanitizer.ts\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\ntype SanitizerAllowList = Record<string, Array<string | RegExp>>\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist: SanitizerAllowList = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\n// js-docs-start svg-allow-list\nexport const SVGAllowlist: SanitizerAllowList = {\n ...DefaultAllowlist,\n svg: ['xmlns', 'version', 'baseprofile', 'width', 'height', 'viewbox', 'preserveaspectratio', 'aria-hidden', 'role', 'focusable', 'fill', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin'],\n g: ['id', 'class', 'transform', 'style'],\n path: ['id', 'class', 'd', 'fill', 'fill-opacity', 'fill-rule', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-opacity'],\n circle: ['id', 'class', 'cx', 'cy', 'r', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n rect: ['id', 'class', 'x', 'y', 'width', 'height', 'rx', 'ry', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n ellipse: ['id', 'class', 'cx', 'cy', 'rx', 'ry', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n line: ['id', 'class', 'x1', 'y1', 'x2', 'y2', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-opacity'],\n polygon: ['id', 'class', 'points', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n polyline: ['id', 'class', 'points', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n text: ['id', 'class', 'x', 'y', 'dx', 'dy', 'text-anchor', 'font-family', 'font-size', 'font-weight', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n tspan: ['id', 'class', 'x', 'y', 'dx', 'dy', 'text-anchor', 'font-family', 'font-size', 'font-weight', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n defs: [],\n symbol: ['id', 'class', 'viewbox', 'preserveaspectratio'],\n use: ['id', 'class', 'x', 'y', 'width', 'height', 'href'],\n image: ['id', 'class', 'x', 'y', 'width', 'height', 'href', 'preserveaspectratio', 'xlink:href'],\n pattern: ['id', 'class', 'x', 'y', 'width', 'height', 'patternunits', 'patterncontentunits', 'patterntransform', 'preserveaspectratio'],\n lineargradient: ['id', 'class', 'gradientunits', 'x1', 'y1', 'x2', 'y2', 'spreadmethod', 'gradienttransform'],\n radialgradient: ['id', 'class', 'gradientunits', 'cx', 'cy', 'r', 'fx', 'fy', 'spreadmethod', 'gradienttransform'],\n mask: ['id', 'class', 'x', 'y', 'width', 'height', 'maskunits', 'maskcontentunits', 'masktransform'],\n clippath: ['id', 'class', 'clippathunits'],\n marker: ['id', 'class', 'markerunits', 'markerwidth', 'markerheight', 'orient', 'preserveaspectratio', 'viewbox', 'refx', 'refy'],\n title: [],\n desc: []\n}\n// js-docs-end svg-allow-list\n\nconst ESCAPE_HTML_MAP: Record<string, string> = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n}\n\nexport function escapeHtml(unsafeText: string): string {\n return String(unsafeText).replace(/[&<>\"']/g, character => ESCAPE_HTML_MAP[character])\n}\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute: Attr, allowedAttributeList: Array<string | RegExp>): boolean => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue!))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml: string, allowList: SanitizerAllowList, sanitizeFunction?: ((unsafeHtml: string) => string) | null): string {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = ([] as Element[]).concat(...createdDocument.body.querySelectorAll('*'))\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n\n continue\n }\n\n const attributeList = ([] as Attr[]).concat(...element.attributes)\n const allowedAttributes = ([] as Array<string | RegExp>).concat(allowList['*'] || [], allowList[elementName] || [])\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n\nexport type { SanitizerAllowList }\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport { batch } from '@tanstack/store'\nimport BaseComponent from './base-component.js'\nimport type { ComponentConfig } from './util/config.js'\nimport EventHandler from './dom/event-handler.js'\nimport {\n createActiveCellManager, resolveNavigation, type ActiveCell, type ActiveCellContext, type ActiveCellManager\n} from './engine/active-cell'\nimport { createDataSource, type GridDataSource } from './engine/data-source'\nimport { copyCellSelection, type ClipboardColumn } from './util/clipboard'\nimport { printGrid, type PrintColumn } from './util/print'\nimport {\n createColumnDragController, createRowDragController, type DragController\n} from './util/drag'\nimport { createScheduler, type Scheduler } from './engine/scheduler'\nimport { createGridTable, subscribeToTableState } from './engine/table'\nimport { isElementRTL, syncResizeDirection } from './util/direction'\nimport { createGridVirtualizer, type GridVirtualizer } from './engine/virtualizer'\nimport {\n DEFAULT_COLUMN_MENU_ICON, DEFAULT_FILTER_ICON, DEFAULT_HIDE_COLUMN_ICON, DEFAULT_MOVE_END_ICON, DEFAULT_MOVE_START_ICON,\n DEFAULT_PIN_END_ICON, DEFAULT_PIN_START_ICON, DEFAULT_ROW_HANDLE_ICON, DEFAULT_SORT_ASCENDING_ICON,\n DEFAULT_SORT_DESCENDING_ICON,\n DEFAULT_SORT_NEUTRAL_ICON, DEFAULT_TOOLBAR_COLUMNS_ICON, DEFAULT_TOOLBAR_EXPORT_ICON,\n DEFAULT_TOOLBAR_PRINT_ICON, DEFAULT_TOOLBAR_REDO_ICON, DEFAULT_TOOLBAR_UNDO_ICON, DEFAULT_UNPIN_ICON\n} from './icons'\nimport { DEFAULT_LABELS, interpolate } from './labels'\nimport type {\n DataGridColumn, DataGridColumnFilterValue, DataGridEditableOptions, DataGridEditor, DataGridEditorContext,\n DataGridFeatures, DataGridItem, DataGridLabels, DataGridMenuAction, DataGridOptions, DataGridSlot,\n DataGridSlotContext, DataGridState, DataGridTable, DataGridTableState, TableFeatures\n} from './types'\nimport { createBody, type GridBody } from './ui/body'\nimport { createBuiltInEditor } from './ui/editor'\nimport { createHeader, type GridHeader } from './ui/header'\nimport { createLoading, type GridLoading } from './ui/loading'\nimport { createFilterMenu, type GridFilterMenu } from './ui/filter-menu'\nimport { createMenu, type GridMenu } from './ui/menu'\nimport { createPagination } from './ui/pagination'\nimport type { GridPinning, PinnedCellInfo } from './ui/pinning'\nimport { createColumnChooser, type ColumnChooserColumn, type GridColumnChooser } from './ui/column-chooser'\nimport { createToolbar, resolveToolbar, type ResolvedToolbar } from './ui/toolbar'\nimport { createTooltip, type GridTooltip } from './ui/tooltip'\nimport {\n downloadCsv, exportCsv, type CsvDownloadOptions, type CsvOptions\n} from './util/csv'\nimport { debounce } from './util/debounce'\nimport { DefaultAllowlist, sanitizeHtml, SVGAllowlist } from './util/sanitizer.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'data-grid'\nconst DATA_KEY = 'coreui.data-grid'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_DATA_ERROR = `dataError${EVENT_KEY}`\nconst EVENT_DATA_LOAD = `dataLoad${EVENT_KEY}`\nconst EVENT_DBLCLICK = `dblclick${EVENT_KEY}`\nconst EVENT_EDIT_CANCEL = `editCancel${EVENT_KEY}`\nconst EVENT_EDIT_COMMIT = `editCommit${EVENT_KEY}`\nconst EVENT_EDIT_START = `editStart${EVENT_KEY}`\nconst EVENT_FILTER_CHANGE = `filterChange${EVENT_KEY}`\nconst EVENT_INPUT = `input${EVENT_KEY}`\nconst EVENT_CELL_COPY = `cellCopy${EVENT_KEY}`\nconst EVENT_ORDER_CHANGE = `orderChange${EVENT_KEY}`\nconst EVENT_ROW_ORDER_CHANGE = `rowOrderChange${EVENT_KEY}`\nconst EVENT_PAGINATION_CHANGE = `paginationChange${EVENT_KEY}`\nconst EVENT_PINNING_CHANGE = `pinningChange${EVENT_KEY}`\nconst EVENT_SELECTION_CHANGE = `selectionChange${EVENT_KEY}`\nconst EVENT_SIZING_CHANGE = `sizingChange${EVENT_KEY}`\nconst EVENT_SORTING_CHANGE = `sortingChange${EVENT_KEY}`\nconst EVENT_VISIBILITY_CHANGE = `visibilityChange${EVENT_KEY}`\n\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\n\nconst EVENT_MOUSEDOWN = `mousedown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\n\nconst CLASS_NAME_AUTO_ROW_HEIGHT = 'data-grid-auto-row-height'\nconst CLASS_NAME_DATA_GRID = 'data-grid'\nconst CLASS_NAME_EDITOR_POPUP = 'data-grid-editor-popup'\nconst CLASS_NAME_LOADING_MORE = 'data-grid-loading-more'\nconst CLASS_NAME_PAGINATION_TOP = 'data-grid-pagination-top'\nconst CLASS_NAME_PINNED = 'data-grid-pinned'\nconst CLASS_NAME_RESIZABLE = 'data-grid-resizable'\nconst CLASS_NAME_TABLE = 'table'\nconst CLASS_NAME_VIEWPORT = 'data-grid-viewport'\n\nconst SELECTOR_BODY_CELL = 'tbody td[data-coreui-column]'\nconst SELECTOR_COLUMN_FILTER = 'input[data-coreui-column-filter]'\nconst SELECTOR_MENU_BUTTON = 'button[data-coreui-menu]'\nconst SELECTOR_FILTER_BUTTON = 'button[data-coreui-filter]'\nconst SELECTOR_GLOBAL_FILTER = 'input[data-coreui-global-filter]'\nconst SELECTOR_PAGE = 'button[data-coreui-page]'\nconst SELECTOR_PAGE_SIZE = 'select[data-coreui-page-size]'\nconst SELECTOR_RESIZER = '[data-coreui-resizer]'\nconst SELECTOR_ROW_SELECT = 'input[data-coreui-row-select]'\nconst SELECTOR_SELECT_ALL = 'input[data-coreui-select-all]'\nconst SELECTOR_SORT_BUTTON = '.data-grid-sort-button'\nconst SELECTOR_TOOLBAR_COLUMNS = 'button[data-coreui-toolbar-columns]'\nconst SELECTOR_TOOLBAR_EXPORT = 'button[data-coreui-toolbar-export]'\nconst SELECTOR_TOOLBAR_PRINT = 'button[data-coreui-toolbar-print]'\nconst SELECTOR_TOOLBAR_REDO = 'button[data-coreui-toolbar-redo]'\nconst SELECTOR_TOOLBAR_UNDO = 'button[data-coreui-toolbar-undo]'\n\nconst FILTER_DEBOUNCE_MS = 250\nconst DEFAULT_PAGE_SIZE_OPTIONS = [5, 10, 20, 50]\n\nlet editorErrorCount = 0\n\n// History entries hold the ROW ID, not the item reference - an immutable\n// app replaces the object on every commit, so undo/redo resolve the current\n// item from the core row model at emit time.\ninterface DataGridEditCommitEntry {\n rowId: string\n columnId: string\n value: unknown\n previousValue: unknown\n}\n\nconst STATE_STORAGE_PREFIX = 'coreui-data-grid:'\nconst STATE_AUTOSAVE_DEBOUNCE_MS = 250\nconst HISTORY_LIMIT = 100\n\n// Under RTL the two horizontal keys point at the opposite logical neighbour.\nconst INVERTED_ARROWS: Record<string, string | undefined> = {\n ArrowLeft: 'ArrowRight',\n ArrowRight: 'ArrowLeft'\n}\n\nconst CELL_SELECTION_DIRECTIONS: Record<string, 'up' | 'down' | 'left' | 'right' | undefined> = {\n ArrowDown: 'down',\n ArrowLeft: 'left',\n ArrowRight: 'right',\n ArrowUp: 'up'\n}\n\nconst FOCUSABLE_SELECTOR = 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]'\n\nconst applyTabIndex = (cellElement: HTMLElement, isTabbable: boolean) => {\n const value = isTabbable ? 0 : -1\n if (cellElement.tabIndex !== value) {\n cellElement.tabIndex = value\n }\n}\n\nconst Default: DataGridOptions = {\n autoRowHeight: false,\n cellNavigation: false,\n cellSelection: false,\n columnFilters: false,\n columnMenu: false,\n columnMenuIcon: DEFAULT_COLUMN_MENU_ICON,\n columnOrder: false,\n columnPinning: false,\n columnSizing: false,\n columnVisibility: false,\n columns: [],\n dataProvider: null,\n editing: false,\n empty: 'No items found',\n features: null,\n filterIcon: DEFAULT_FILTER_ICON,\n globalFilter: false,\n hideColumnIcon: DEFAULT_HIDE_COLUMN_ICON,\n history: false,\n infiniteScroll: false,\n itemKey: null,\n items: [],\n labels: {},\n moveEndIcon: DEFAULT_MOVE_END_ICON,\n moveStartIcon: DEFAULT_MOVE_START_ICON,\n overscan: 10,\n pagination: false,\n pinEndIcon: DEFAULT_PIN_END_ICON,\n pinStartIcon: DEFAULT_PIN_START_ICON,\n printTitle: null,\n rowHandleIcon: DEFAULT_ROW_HANDLE_ICON,\n rowHeight: 44,\n rowOrder: false,\n rowSelection: false,\n sanitize: true,\n sanitizeFn: null,\n slots: {},\n sortAscendingIcon: DEFAULT_SORT_ASCENDING_ICON,\n sortDescendingIcon: DEFAULT_SORT_DESCENDING_ICON,\n sortNeutralIcon: DEFAULT_SORT_NEUTRAL_ICON,\n sorterVisibility: false,\n sorting: true,\n stateKey: null,\n toolbar: false,\n toolbarColumnsIcon: DEFAULT_TOOLBAR_COLUMNS_ICON,\n toolbarExportIcon: DEFAULT_TOOLBAR_EXPORT_ICON,\n toolbarPrintIcon: DEFAULT_TOOLBAR_PRINT_ICON,\n toolbarRedoIcon: DEFAULT_TOOLBAR_REDO_ICON,\n toolbarUndoIcon: DEFAULT_TOOLBAR_UNDO_ICON,\n unpinIcon: DEFAULT_UNPIN_ICON,\n virtualization: true\n}\n\nconst DefaultType = {\n autoRowHeight: 'boolean',\n cellNavigation: 'boolean',\n cellSelection: 'boolean',\n columnFilters: 'boolean',\n columnMenu: '(boolean|function)',\n columnMenuIcon: 'string',\n columnOrder: '(boolean|array)',\n columnPinning: '(boolean|object)',\n columnSizing: '(boolean|object)',\n columnVisibility: '(boolean|object)',\n columns: 'array',\n dataProvider: '(function|null)',\n editing: 'boolean',\n empty: '(string|function)',\n features: '(object|null)',\n filterIcon: 'string',\n globalFilter: 'boolean',\n hideColumnIcon: 'string',\n history: 'boolean',\n infiniteScroll: '(boolean|object)',\n itemKey: '(function|null)',\n items: 'array',\n labels: 'object',\n moveEndIcon: 'string',\n moveStartIcon: 'string',\n overscan: 'number',\n pagination: '(boolean|object)',\n pinEndIcon: 'string',\n pinStartIcon: 'string',\n printTitle: '(string|null)',\n rowHandleIcon: 'string',\n rowHeight: 'number',\n rowOrder: 'boolean',\n rowSelection: '(boolean|object)',\n sanitize: 'boolean',\n sanitizeFn: '(function|null)',\n slots: 'object',\n sortAscendingIcon: 'string',\n sortDescendingIcon: 'string',\n sortNeutralIcon: 'string',\n sorterVisibility: '(string|boolean)',\n sorting: '(boolean|object)',\n stateKey: '(string|null)',\n toolbar: '(boolean|object)',\n toolbarColumnsIcon: 'string',\n toolbarExportIcon: 'string',\n toolbarPrintIcon: 'string',\n toolbarRedoIcon: 'string',\n toolbarUndoIcon: 'string',\n unpinIcon: 'string',\n virtualization: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass DataGrid<TFeatures extends TableFeatures = DataGridFeatures> extends BaseComponent {\n declare _config: DataGridOptions\n // Typed on the full set even when the runtime set is smaller - internals\n // capability-guard every optional-feature call, and the public `table`\n // getter narrows back to the instance's TFeatures.\n private _table!: DataGridTable\n private _unsubscribeState: (() => void) | null = null\n private _scheduler!: Scheduler\n private _virtualizer: GridVirtualizer | null = null\n private _header!: GridHeader\n private _body!: GridBody\n private _toolbar: DataGridSlot | null = null\n private _paginations: Array<{ element: HTMLElement; refresh: () => void; dispose?: () => void }> = []\n private _emptySlot: DataGridSlot | null = null\n private _dataSource: GridDataSource | null = null\n private _loading: GridLoading | null = null\n private _loadingMore: GridLoading | null = null\n private _loadFailed = false\n // Infinite scroll accumulates every loaded page here; the table's data is\n // this buffer, not the last response.\n private _loadedItems: DataGridItem[] = []\n private _loadMorePending = false\n private _pageResetPending = false\n private _dataVersion = 0\n private _viewportElement!: HTMLDivElement\n private _tableElement!: HTMLTableElement\n private _liveRegion: HTMLElement | null = null\n private _labels!: DataGridLabels\n private _selectionAnchorIndex: number | null = null\n private _activeCell: ActiveCellManager | null = null\n private _containsFocus = false\n private _editingCell: {\n rowId: string\n columnId: string\n rowIndex: number\n item: DataGridItem\n previousValue: unknown\n } | null = null\nprivate _undoStack: DataGridEditCommitEntry[] = []\n private _redoStack: DataGridEditCommitEntry[] = []\n private _persistState: (() => void) | null = null\n private _editor: DataGridEditor | null = null\n // Removed by reference - a namespace-wide off(document, ...) would tear\n // down every other grid instance's outside-commit handler with it.\n private _editorPointerdownHandler: ((event: Event) => void) | null = null\n private _editorPopup: HTMLElement | null = null\n private _editorErrorElement: HTMLElement | null = null\n private _editorFocusPending = false\n private _columnsByKey = new Map<string, DataGridColumn>()\n private _columnDrag: DragController | null = null\n private _rowDrag: DragController | null = null\n private _menu: GridMenu | null = null\n private _tooltip: GridTooltip | null = null\n private _filterMenu: GridFilterMenu | null = null\n private _columnChooser: GridColumnChooser | null = null\n private _toolbarConfig: ResolvedToolbar | null = null\n\n constructor(element: Element | string, config?: Partial<DataGridOptions<TFeatures>>) {\n super(element, config)\n\n if (!this._element) {\n return\n }\n\n this._labels = { ...DEFAULT_LABELS, ...this._config.labels }\n this._scheduler = createScheduler(() => this._update())\n this._table = this._createTable()\n\n this._liveRegion = document.createElement('div')\n this._liveRegion.classList.add('visually-hidden')\n this._liveRegion.setAttribute('aria-live', 'polite')\n this._element.append(this._liveRegion)\n\n this._render()\n this._addEventListeners()\n this._tooltip = createTooltip(this._element)\n // A persisted view restores before the first server fetch, so the initial\n // request already carries the user's sorting/filters/page.\n this._restorePersistedState()\n this._initDataSource()\n }\n\n // Getters\n get table(): DataGridTable<TFeatures> {\n // TFeatures is invariant, so the internal full-set alias needs the double\n // cast back to the instance's actual set.\n return this._table as unknown as DataGridTable<TFeatures>\n }\n\n static get Default(): DataGridOptions {\n return Default\n }\n\n static get DefaultType(): Record<string, string> {\n return DefaultType\n }\n\n static get NAME(): string {\n return NAME\n }\n\n // Public\n getSelectedItems(): DataGridItem[] {\n if (typeof this._table.getSelectedRowModel !== 'function') {\n return []\n }\n\n return this._table.getSelectedRowModel().rows.map(row => row.original)\n }\n\n // Prints every sorted and filtered row, not the virtual window or the\n // current page: the grid renders a plain complete table, prints it, and\n // throws it away.\n print(): void {\n printGrid(this._table, this._printColumns(), { title: this._config.printTitle ?? undefined })\n }\n\n getCsv(options?: CsvOptions): string {\n return exportCsv(this._table, options)\n }\n\n downloadCsv(options?: CsvDownloadOptions): void {\n downloadCsv(this._table, options)\n }\n\n // A serializable snapshot of every user-adjustable state slice. Feed it\n // back through restoreState() - scroll position and edit drafts excluded.\n getState(): DataGridState {\n // A reduced feature set has no atom for its absent slices - the snapshot\n // keeps its full shape with neutral values so persisted state stays\n // portable between feature sets.\n const { state } = this._table.store\n return {\n columnFilters: state.columnFilters ?? [],\n columnOrder: state.columnOrder ?? [],\n columnPinning: state.columnPinning ?? { start: [], end: [] },\n columnSizing: state.columnSizing ?? {},\n columnVisibility: state.columnVisibility ?? {},\n globalFilter: (state.globalFilter as string | undefined) ?? '',\n pagination: state.pagination ?? { pageIndex: 0, pageSize: Number.MAX_SAFE_INTEGER },\n rowSelection: state.rowSelection ?? {},\n sorting: state.sorting ?? []\n }\n }\n\n restoreState(state: Partial<DataGridState>): void {\n // v9 owns one atom per slice and has no bulk state setter; batching keeps\n // the writes to a single store emission, so the change events still fire\n // once for the whole restore.\n // The setter-presence checks let a snapshot taken on one feature set\n // restore into a grid running a smaller one - absent slices are skipped.\n batch(() => {\n if (state.columnFilters !== undefined && typeof this._table.setColumnFilters === 'function') {\n this._table.setColumnFilters(state.columnFilters)\n }\n\n if (state.columnOrder !== undefined && typeof this._table.setColumnOrder === 'function') {\n this._table.setColumnOrder(state.columnOrder)\n }\n\n if (state.columnPinning !== undefined && typeof this._table.setColumnPinning === 'function') {\n this._table.setColumnPinning(state.columnPinning)\n }\n\n if (state.columnSizing !== undefined && typeof this._table.setColumnSizing === 'function') {\n this._table.setColumnSizing(state.columnSizing)\n }\n\n if (state.columnVisibility !== undefined && typeof this._table.setColumnVisibility === 'function') {\n this._table.setColumnVisibility(state.columnVisibility)\n }\n\n if (state.globalFilter !== undefined && typeof this._table.setGlobalFilter === 'function') {\n this._table.setGlobalFilter(state.globalFilter)\n }\n\n if (state.pagination !== undefined && typeof this._table.setPagination === 'function') {\n this._table.setPagination(state.pagination)\n }\n\n if (state.rowSelection !== undefined && typeof this._table.setRowSelection === 'function') {\n this._table.setRowSelection(state.rowSelection)\n }\n\n if (state.sorting !== undefined && typeof this._table.setSorting === 'function') {\n this._table.setSorting(state.sorting)\n }\n })\n\n // The built-in search input is uncontrolled - sync it to the restored\n // filter so the UI matches the state.\n if (state.globalFilter !== undefined) {\n const input = this._element.querySelector<HTMLInputElement>(SELECTOR_GLOBAL_FILTER)\n if (input) {\n input.value = state.globalFilter\n }\n }\n\n this._scheduler.schedule()\n }\n\n // Re-emits the last edit commit inverted (value and previousValue swap) -\n // the app reverts the data through the same editCommit channel it already\n // handles. New commits clear the redo stack.\n undo(): void {\n this._applyHistoryEntry(this._undoStack, this._redoStack, true)\n }\n\n redo(): void {\n this._applyHistoryEntry(this._redoStack, this._undoStack, false)\n }\n\n private _applyHistoryEntry(\n from: DataGridEditCommitEntry[],\n to: DataGridEditCommitEntry[],\n inverted: boolean\n ): void {\n const entry = from.pop()\n if (!entry) {\n return\n }\n\n // The row may be gone (data replaced without it) - drop the entry.\n const row = this._table.getCoreRowModel().rowsById[entry.rowId]\n if (!row) {\n this._updateHistoryButtons()\n return\n }\n\n to.push(entry)\n EventHandler.trigger(this._element, EVENT_EDIT_COMMIT, {\n item: row.original,\n columnId: entry.columnId,\n value: inverted ? entry.previousValue : entry.value,\n previousValue: inverted ? entry.value : entry.previousValue\n })\n this._announce(inverted ? this._labels.undoneAnnouncement : this._labels.redoneAnnouncement)\n this._updateHistoryButtons()\n }\n\n // Replaces the data in place, preserving sorting/filters/selection/scroll.\n // No-op in server-side mode - the dataProvider owns the data there.\n setItems(items: DataGridItem[]): void {\n if (this._config.dataProvider) {\n return\n }\n\n // External data replacement invalidates the draft - the app owns the data.\n this._stopEditing({ commit: false })\n this._config.items = items\n this._dataVersion++\n this._virtualizer?.remeasure()\n this._table.setOptions(previous => ({ ...previous, data: items }))\n this._scheduler.schedule()\n }\n\n // Full rebuild: recreates the table, wiping sorting/filters/selection/scroll.\n // Use setItems() to swap data while keeping user state.\n update(config: Partial<DataGridOptions<TFeatures>>): void {\n this._config = this._getConfig({ ...this._config, ...config }) as DataGridOptions\n this._labels = { ...DEFAULT_LABELS, ...this._config.labels }\n\n this._teardownUi()\n this._selectionAnchorIndex = null\n this._loadFailed = false\n this._pageResetPending = false\n this._loadedItems = []\n this._loadMorePending = false\n this._dataVersion++\n this._table = this._createTable()\n this._render()\n this._initDataSource()\n }\n\n dispose(): void {\n this._teardownUi()\n this._unsubscribeState?.()\n this._unsubscribeState = null\n this._scheduler.dispose()\n this._tooltip?.dispose()\n this._tooltip = null\n if (this._liveRegion) {\n this._liveRegion.remove()\n }\n\n this._element.classList.remove(CLASS_NAME_DATA_GRID)\n this._element.removeAttribute('data-coreui-sorter-visibility')\n\n super.dispose()\n }\n\n // Private\n // Editing needs the active-cell substrate (Enter/F2 target the active cell).\n _configAfterMerge(config: ComponentConfig): ComponentConfig {\n // Both need the active-cell substrate: editing targets it with Enter/F2,\n // cell selection anchors ranges on it.\n if (config.editing || config.cellSelection) {\n config.cellNavigation = true\n }\n\n return config\n }\n\n private _createTable(): DataGridTable {\n this._unsubscribeState?.()\n const table = createGridTable(this._config, () => this._element)\n this._unsubscribeState = subscribeToTableState(table, (previous, next) => {\n this._notifyStateChange(previous, next)\n this._scheduler.schedule()\n })\n\n return table\n }\n\n private _teardownUi(): void {\n this._stopEditing({ commit: false })\n\n if (this._dataSource) {\n this._dataSource.dispose()\n this._dataSource = null\n }\n\n this._header?.dispose()\n\n if (this._menu) {\n this._menu.dispose()\n this._menu = null\n }\n\n if (this._filterMenu) {\n this._filterMenu.dispose()\n this._filterMenu = null\n }\n\n if (this._columnChooser) {\n this._columnChooser.dispose()\n this._columnChooser = null\n }\n\n if (this._loading) {\n this._loading.element.remove()\n this._loading = null\n }\n\n if (this._loadingMore) {\n this._loadingMore.element.remove()\n this._loadingMore = null\n }\n\n if (this._columnDrag) {\n this._columnDrag.dispose()\n this._columnDrag = null\n }\n\n if (this._rowDrag) {\n this._rowDrag.dispose()\n this._rowDrag = null\n }\n\n if (this._virtualizer) {\n this._virtualizer.destroy()\n this._virtualizer = null\n }\n\n if (this._toolbar) {\n this._toolbar.dispose?.()\n this._toolbar.element.remove()\n this._toolbar = null\n }\n\n for (const pagination of this._paginations) {\n pagination.dispose?.()\n pagination.element.remove()\n }\n\n this._paginations = []\n\n if (this._emptySlot) {\n this._emptySlot.dispose?.()\n this._emptySlot = null\n }\n\n if (this._viewportElement) {\n this._viewportElement.remove()\n }\n }\n\n private _slotContext(): DataGridSlotContext {\n return { table: this._table, labels: this._labels }\n }\n\n private _isColumnSortable(column: DataGridColumn): boolean {\n return Boolean(this._config.sorting) && column.sortable !== false\n }\n\n private _isColumnFilterable(column: DataGridColumn): boolean {\n return this._config.columnFilters && column.filterable !== false\n }\n\n private _isColumnResizable(column: DataGridColumn): boolean {\n return Boolean(this._config.columnSizing) && column.resizable !== false\n }\n\n private _sanitizeIcon(icon: string): string {\n return this._config.sanitize ? sanitizeHtml(icon, SVGAllowlist, this._config.sanitizeFn) : icon\n }\n\n private _hasColumnMenu(column: DataGridColumn): boolean {\n if (!this._config.columnMenu) {\n return false\n }\n\n // A builder can add items regardless of enabled features, so ask it directly.\n if (typeof this._config.columnMenu === 'function') {\n return this._getMenuActions(column.key).length > 0\n }\n\n return (\n this._isColumnSortable(column) ||\n Boolean(this._config.columnPinning) ||\n (Boolean(this._config.columnVisibility) && column.hideable !== false) ||\n (Boolean(this._config.columnOrder) && column.movable !== false)\n )\n }\n\n private _renderToolbar(): void {\n const toolbarConfig = resolveToolbar(this._config)\n this._toolbarConfig = toolbarConfig\n\n if (this._config.slots.toolbar) {\n this._toolbar = this._config.slots.toolbar(this._slotContext())\n this._element.append(this._toolbar.element)\n return\n }\n\n if (\n !toolbarConfig.columns && !toolbarConfig.export && !toolbarConfig.print &&\n !toolbarConfig.search && !toolbarConfig.history\n ) {\n return\n }\n\n this._toolbar = createToolbar({\n columns: toolbarConfig.columns,\n export: toolbarConfig.export,\n icons: {\n columns: this._sanitizeIcon(this._config.toolbarColumnsIcon),\n export: this._sanitizeIcon(this._config.toolbarExportIcon),\n print: this._sanitizeIcon(this._config.toolbarPrintIcon),\n redo: this._sanitizeIcon(this._config.toolbarRedoIcon),\n undo: this._sanitizeIcon(this._config.toolbarUndoIcon)\n },\n history: toolbarConfig.history,\n labels: this._labels,\n print: toolbarConfig.print,\n search: toolbarConfig.search\n })\n this._element.append(this._toolbar.element)\n\n if (toolbarConfig.columns) {\n this._columnChooser = createColumnChooser({\n root: this._element as HTMLElement,\n labels: this._labels,\n getColumns: () => this._chooserColumns(),\n toggleVisibility: (columnId, visible) => {\n this._table.getColumn(columnId)?.toggleVisibility(visible)\n },\n showAll: () => this._table.toggleAllColumnsVisible(true),\n reset: () => this._table.setColumnVisibility(this._table.initialState.columnVisibility ?? {})\n })\n }\n }\n\n private _render(): void {\n this._columnsByKey = new Map(this._config.columns.map(column => [column.key, column]))\n this._activeCell = this._config.cellNavigation ?\n createActiveCellManager(() => this._scheduler.schedule()) :\n null\n this._element.classList.add(CLASS_NAME_DATA_GRID)\n this._element.classList.toggle(CLASS_NAME_AUTO_ROW_HEIGHT, Boolean(this._config.autoRowHeight))\n this._element.classList.toggle(CLASS_NAME_RESIZABLE, Boolean(this._config.columnSizing))\n this._element.classList.toggle(CLASS_NAME_PINNED, Boolean(this._config.columnPinning))\n if (this._config.sorterVisibility) {\n this._element.setAttribute('data-coreui-sorter-visibility', this._config.sorterVisibility)\n } else {\n this._element.removeAttribute('data-coreui-sorter-visibility')\n }\n\n const { slots } = this._config\n this._renderToolbar()\n\n if (slots.empty) {\n this._emptySlot = slots.empty(this._slotContext())\n }\n\n const selectionEnabled = Boolean(this._config.rowSelection)\n const selectionOptions = typeof this._config.rowSelection === 'object' ? this._config.rowSelection : {}\n // Server-side mode implies pagination unless it scrolls infinitely, where\n // the pages accumulate behind the virtualizer instead of replacing.\n const paginationEnabled =\n Boolean(this._config.pagination) ||\n (Boolean(this._config.dataProvider) && !this._config.infiniteScroll)\n const paginationOptions = typeof this._config.pagination === 'object' ? this._config.pagination : {}\n\n if (this._config.columnMenu) {\n this._menu = createMenu({\n root: this._element as HTMLElement,\n getActions: columnKey => this._getMenuActions(columnKey)\n })\n }\n\n if (this._config.columnFilters) {\n this._filterMenu = createFilterMenu({\n root: this._element as HTMLElement,\n labels: this._labels,\n getColumn: columnKey => this._columnsByKey.get(columnKey) ?? null,\n getFacetedValues: columnKey => {\n const column = this._table.getColumn(columnKey)\n // Only filterType 'select' menus ask for values, and the coverage\n // assertion ties that filter type to the faceting features - this\n // guard covers select columns added later through update().\n return typeof column?.getFacetedUniqueValues === 'function' ?\n [...column.getFacetedUniqueValues().keys()] :\n []\n },\n getFilterValue: columnKey =>\n this._table.getColumn(columnKey)?.getFilterValue() as DataGridColumnFilterValue | undefined,\n applyFilter: (columnKey, value) => {\n this._table.getColumn(columnKey)?.setFilterValue(value)\n }\n })\n }\n\n this._header = createHeader({\n cellNavigation: this._config.cellNavigation,\n columns: this._config.columns,\n draggable: Boolean(this._config.columnOrder),\n filterRow:\n this._config.columnFilters &&\n this._config.columns.some(column => column.filter && this._isColumnFilterable(column)),\n hasMenu: column => this._hasColumnMenu(column),\n hasFilterMenu: column =>\n Boolean(this._filterMenu) && this._isColumnFilterable(column) && !column.filter,\n icons: {\n columnMenu: this._sanitizeIcon(this._config.columnMenuIcon),\n filter: this._sanitizeIcon(this._config.filterIcon),\n sortAscending: this._sanitizeIcon(this._config.sortAscendingIcon),\n sortDescending: this._sanitizeIcon(this._config.sortDescendingIcon),\n sortNeutral: this._sanitizeIcon(this._config.sortNeutralIcon)\n },\n isFilterable: column => this._isColumnFilterable(column),\n isResizable: column => this._isColumnResizable(column),\n isSortable: column => this._isColumnSortable(column),\n labels: this._labels,\n resizable: Boolean(this._config.columnSizing),\n rowOrder: this._config.rowOrder,\n selection: selectionEnabled,\n selectAll: selectionEnabled && selectionOptions.selectAll !== false,\n table: this._table\n })\n this._body = createBody({\n autoRowHeight: this._config.autoRowHeight && this._config.virtualization,\n cellNavigation: this._config.cellNavigation,\n cellSelection: this._config.cellSelection,\n getDataVersion: () => this._dataVersion,\n getEditingCell: () =>\n (this._editingCell ? { rowId: this._editingCell.rowId, columnId: this._editingCell.columnId } : null),\n // Popup editors overlay the cell; its content stays in place.\n getEditorElement: () => (this._editor && !this._editor.popup ? this._editor.element : null),\n getPinning: () => (this._config.columnPinning ? this._getPinning() : null),\n getRowIndexOffset: () => this._rowIndexOffset(),\n getRows: () => this._table.getRowModel().rows,\n getVisibleColumns: () => this._visibleColumns(),\n getVirtualizer: () => this._virtualizer?.instance ?? null,\n headerRowCount: this._header.rowCount,\n labels: this._labels,\n renderEmpty: () => {\n if (this._emptySlot) {\n return this._emptySlot.element\n }\n\n if (this._loadFailed) {\n return this._labels.loadError\n }\n\n return typeof this._config.empty === 'function' ? this._config.empty() : this._config.empty\n },\n rowHandleIcon: this._sanitizeIcon(this._config.rowHandleIcon),\n rowOrder: this._config.rowOrder,\n sanitizeContent: html =>\n (this._config.sanitize ? sanitizeHtml(html, DefaultAllowlist, this._config.sanitizeFn) : html),\n selection: selectionEnabled\n })\n\n this._tableElement = document.createElement('table')\n this._tableElement.classList.add(CLASS_NAME_TABLE)\n if (this._config.cellNavigation) {\n this._tableElement.setAttribute('role', 'grid')\n }\n\n this._tableElement.append(this._header.element, this._body.element)\n\n this._viewportElement = document.createElement('div')\n this._viewportElement.classList.add(CLASS_NAME_VIEWPORT)\n if (this._config.cellNavigation) {\n // Focus parks here when the focused row is recycled out of the window;\n // the keydown fallback then scrolls the active cell back and refocuses.\n this._viewportElement.tabIndex = -1\n }\n\n this._viewportElement.append(this._tableElement)\n\n if (this._config.dataProvider) {\n this._loading = createLoading(this._labels)\n this._viewportElement.append(this._loading.element)\n }\n\n if (this._config.infiniteScroll) {\n // A second indicator: the overlay covers the grid, which is wrong once\n // rows are already on screen and only the next page is arriving.\n this._loadingMore = createLoading(this._labels, CLASS_NAME_LOADING_MORE)\n this._viewportElement.append(this._loadingMore.element)\n }\n\n this._element.append(this._viewportElement)\n\n if (paginationEnabled) {\n const position = paginationOptions.position ?? 'bottom'\n const paginationSlot = slots.pagination\n const createInstance = () => {\n if (paginationSlot) {\n const slot = paginationSlot(this._slotContext())\n return { element: slot.element, refresh: () => slot.update?.(), dispose: () => slot.dispose?.() }\n }\n\n const instance = createPagination({\n info: paginationOptions.info ?? true,\n labels: this._labels,\n pageSizeOptions: paginationOptions.pageSizeOptions ?? DEFAULT_PAGE_SIZE_OPTIONS\n })\n return { element: instance.element, refresh: () => instance.update(this._paginationState()), dispose: undefined }\n }\n\n if (position === 'top' || position === 'both') {\n const pagination = createInstance()\n // The top-margin class styles the built-in module; a custom slot owns\n // its own markup, so don't impose it (keeps vanilla/React in parity).\n if (!paginationSlot) {\n pagination.element.classList.add(CLASS_NAME_PAGINATION_TOP)\n }\n\n this._viewportElement.before(pagination.element)\n this._paginations.push(pagination)\n }\n\n if (position === 'bottom' || position === 'both') {\n const pagination = createInstance()\n this._element.append(pagination.element)\n this._paginations.push(pagination)\n }\n } else if (this._config.virtualization) {\n this._virtualizer = createGridVirtualizer({\n autoRowHeight: this._config.autoRowHeight,\n count: this._table.getRowModel().rows.length,\n getScrollElement: () => this._viewportElement,\n onChange: () => this._scheduler.schedule(),\n overscan: this._config.overscan,\n rowHeight: this._config.rowHeight\n })\n }\n\n this._initColumnDrag()\n this._initRowDrag()\n this._update()\n }\n\n private _addEventListeners(): void {\n // Registered unconditionally (update() can flip cellNavigation on later);\n // the handlers bail out when the feature is off.\n EventHandler.on(this._element, EVENT_KEYDOWN, event => {\n this._onCellNavigationKeydown(event as unknown as KeyboardEvent)\n })\n\n EventHandler.on(this._element, EVENT_FOCUSIN, event => {\n this._containsFocus = true\n this._onCellFocusIn(event as unknown as FocusEvent)\n })\n\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => {\n const related = (event as unknown as FocusEvent).relatedTarget as Node | null\n if (!related || !this._element.contains(related)) {\n this._containsFocus = false\n }\n })\n\n // Drag-select: table-core owns the session (it attaches its own document\n // mouseup), so the grid only routes the two events at the right cell.\n EventHandler.on(this._element, EVENT_MOUSEDOWN, SELECTOR_BODY_CELL, event => {\n const cell = this._tableCellFromTarget(event)\n cell?.getSelectionStartHandler()(event)\n })\n\n EventHandler.on(this._element, EVENT_MOUSEENTER, SELECTOR_BODY_CELL, event => {\n const cell = this._tableCellFromTarget(event)\n cell?.getSelectionExtendHandler()(event)\n })\n\n EventHandler.on(this._element, EVENT_DBLCLICK, event => {\n if (!this._config.editing) {\n return\n }\n\n const found = this._navigableCellFromTarget(event.target as HTMLElement)\n if (found && found.cell.rowIndex >= 0) {\n this._activeCell?.set(found.cell)\n this._startEditing(found.cell)\n }\n })\n\n EventHandler.on(this._element, EVENT_CLICK, SELECTOR_SORT_BUTTON, event => {\n this._toggleColumnSorting(event)\n })\n\n const applyColumnFilter = debounce((key: string, value: string) => {\n if (this._table) {\n this._table.getColumn(key)?.setFilterValue(value === '' ? undefined : value)\n }\n }, FILTER_DEBOUNCE_MS)\n\n EventHandler.on(this._element, EVENT_INPUT, SELECTOR_COLUMN_FILTER, event => {\n const input = (event.delegateTarget ?? event.target) as HTMLInputElement\n applyColumnFilter(input.dataset.coreuiColumnFilter!, input.value)\n })\n\n const applyGlobalFilter = debounce((value: string) => {\n if (this._table) {\n this._table.setGlobalFilter(value === '' ? undefined : value)\n }\n }, FILTER_DEBOUNCE_MS)\n\n EventHandler.on(this._element, EVENT_INPUT, SELECTOR_GLOBAL_FILTER, event => {\n const input = (event.delegateTarget ?? event.target) as HTMLInputElement\n applyGlobalFilter(input.value)\n })\n\n EventHandler.on(this._element, EVENT_CLICK, SELECTOR_MENU_BUTTON, event => {\n const button = (event.delegateTarget ?? event.target) as HTMLElement\n this._menu?.toggle(button, button.dataset.coreuiMenu!)\n })\n\n EventHandler.on(this._element, EVENT_CLICK, SELECTOR_FILTER_BUTTON, event => {\n const button = (event.delegateTarget ?? event.target) as HTMLElement\n this._filterMenu?.toggle(button, button.dataset.coreuiFilter!)\n })\n\n EventHandler.on(this._element, EVENT_CLICK, SELECTOR_TOOLBAR_COLUMNS, event => {\n const button = (event.delegateTarget ?? event.target) as HTMLElement\n this._columnChooser?.toggle(button)\n })\n\n EventHandler.on(this._element, EVENT_CLICK, SELECTOR_TOOLBAR_EXPORT, () => {\n const { exporter, ...exportOptions } = this._toolbarConfig?.exportOptions ?? {};\n (exporter ?? downloadCsv)(this._table, { scope: 'filtered', ...exportOptions })\n })\n\n EventHandler.on(this._element, EVENT_CLICK, SELECTOR_TOOLBAR_PRINT, () => {\n this.print()\n })\n\n EventHandler.on(this._element, EVENT_CLICK, SELECTOR_TOOLBAR_UNDO, () => {\n this.undo()\n })\n\n EventHandler.on(this._element, EVENT_CLICK, SELECTOR_TOOLBAR_REDO, () => {\n this.redo()\n })\n\n EventHandler.on(this._element, EVENT_MOUSEDOWN, SELECTOR_RESIZER, event => {\n this._startColumnResize(event)\n })\n\n EventHandler.on(this._element, EVENT_TOUCHSTART, SELECTOR_RESIZER, event => {\n this._startColumnResize(event)\n })\n\n EventHandler.on(this._element, EVENT_CLICK, SELECTOR_ROW_SELECT, event => {\n this._toggleRowSelection(event)\n })\n\n EventHandler.on(this._element, EVENT_CHANGE, SELECTOR_SELECT_ALL, event => {\n const input = (event.delegateTarget ?? event.target) as HTMLInputElement\n this._table.toggleAllRowsSelected(input.checked)\n })\n\n EventHandler.on(this._element, EVENT_CLICK, SELECTOR_PAGE, event => {\n const button = (event.delegateTarget ?? event.target) as HTMLButtonElement\n const page = button.dataset.coreuiPage!\n\n if (page === 'first') {\n this._table.firstPage()\n return\n }\n\n if (page === 'prev') {\n this._table.previousPage()\n return\n }\n\n if (page === 'next') {\n this._table.nextPage()\n return\n }\n\n if (page === 'last') {\n this._table.lastPage()\n return\n }\n\n this._table.setPageIndex(Number(page))\n })\n\n EventHandler.on(this._element, EVENT_CHANGE, SELECTOR_PAGE_SIZE, event => {\n const select = (event.delegateTarget ?? event.target) as HTMLSelectElement\n this._table.setPageSize(Number(select.value))\n })\n }\n\n private _toggleColumnSorting(event: Event & Record<string, unknown>): void {\n const button = (event.delegateTarget ?? event.target) as HTMLElement\n const key = button.closest('th')?.dataset.coreuiColumn\n if (!key) {\n return\n }\n\n const column = this._table.getColumn(key)\n column?.getToggleSortingHandler()?.(event)\n }\n\n // Maps an event target to the navigable cell that holds it: a data cell\n // (rowIndex from the row model) or a header label-row cell (rowIndex -1).\n // Selection cells, the filter row, and grid chrome outside the table map to\n // null.\n private _navigableCellFromTarget(target: HTMLElement): { cellElement: HTMLElement; cell: ActiveCell } | null {\n const cellElement = target.closest<HTMLElement>('td, th')\n if (!cellElement || !this._tableElement.contains(cellElement)) {\n return null\n }\n\n const columnId = cellElement.dataset.coreuiColumn\n if (!columnId) {\n return null\n }\n\n const rowElement = cellElement.closest('tr')!\n\n if (rowElement.parentElement === this._body.element) {\n const index = rowElement.dataset.coreuiIndex\n if (index === undefined) {\n return null\n }\n\n return { cellElement, cell: { rowIndex: Number(index), columnId } }\n }\n\n if (rowElement === this._header.element.firstElementChild) {\n return { cellElement, cell: { rowIndex: -1, columnId } }\n }\n\n return null\n }\n\n private _onCellFocusIn(event: FocusEvent): void {\n if (!this._activeCell) {\n return\n }\n\n const found = this._navigableCellFromTarget(event.target as HTMLElement)\n if (found) {\n // The browser already moved focus (click, descend) - only sync state.\n this._activeCell.set(found.cell)\n }\n }\n\n private _onCellNavigationKeydown(event: KeyboardEvent): void {\n if (!this._activeCell) {\n return\n }\n\n const target = event.target as HTMLElement\n\n // Ctrl/Cmd+Z / Ctrl+Shift+Z / Ctrl+Y - edit history (MUI/AG parity).\n // Not while an editor is open (the input's native undo wins) and not\n // from form controls (filter/search inputs own their undo).\n if (\n this._config.history &&\n (event.ctrlKey || event.metaKey) &&\n !this._editingCell &&\n !target.matches('input, textarea, select')\n ) {\n const key = event.key.toLowerCase()\n if (key === 'z' && !event.shiftKey) {\n event.preventDefault()\n this.undo()\n return\n }\n\n if ((key === 'z' && event.shiftKey) || key === 'y') {\n event.preventDefault()\n this.redo()\n return\n }\n }\n\n if (this._editingCell && this._editScopeContains(target)) {\n // A defaultPrevented key was consumed by the editor (a rich editor\n // closing its own overlay on Escape, an autocomplete accepting on\n // Enter) - one key, one layer.\n if (event.key === 'Enter') {\n if (!event.defaultPrevented) {\n event.preventDefault()\n this._stopEditing({ commit: true })\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n if (!event.defaultPrevented) {\n this._cancelEdit()\n }\n\n return\n }\n\n if (event.key === 'Tab') {\n event.preventDefault()\n this._moveEditing(event.shiftKey ? -1 : 1)\n return\n }\n\n // Everything else (arrows, typing) stays native inside the editor.\n return\n }\n\n // Focus fell back to the viewport after the active row was recycled out\n // of the window: any navigation key scrolls the active cell back in view\n // and refocuses it.\n if (target === this._viewportElement) {\n const active = this._activeCell.get()\n if (active && event.key !== 'Tab') {\n event.preventDefault()\n this._setActiveCell(active)\n }\n\n return\n }\n\n const found = this._navigableCellFromTarget(target)\n if (!found) {\n return\n }\n\n if (target !== found.cellElement) {\n // Focus is descended into the cell's content; Escape ascends back.\n if (event.key === 'Escape') {\n found.cellElement.focus({ preventScroll: true })\n }\n\n return\n }\n\n if (event.key === 'Enter' || event.key === 'F2') {\n event.preventDefault()\n const config = this._columnsByKey.get(found.cell.columnId)\n if (found.cell.rowIndex === -1) {\n if (event.key === 'Enter' && config && this._isColumnSortable(config)) {\n this._table.getColumn(found.cell.columnId)?.getToggleSortingHandler()?.(event)\n }\n\n return\n }\n\n if (config && this._isColumnEditable(config)) {\n this._startEditing(found.cell)\n return\n }\n\n if (event.key === 'Enter') {\n this._descendIntoCell(found.cellElement)\n }\n\n return\n }\n\n if (event.key === ' ') {\n if (this._config.rowSelection && found.cell.rowIndex >= 0) {\n event.preventDefault()\n const row = this._table.getRowModel().rows[found.cell.rowIndex]\n row?.toggleSelected()\n this._selectionAnchorIndex = found.cell.rowIndex\n }\n\n return\n }\n\n if (this._config.cellSelection && (event.ctrlKey || event.metaKey) && found.cell.rowIndex >= 0) {\n const key = event.key.toLowerCase()\n if (key === 'a') {\n event.preventDefault()\n this._table.selectAllCells()\n this._scheduler.schedule()\n return\n }\n\n if (key === 'c') {\n event.preventDefault()\n this._copyCellSelection()\n return\n }\n }\n\n const result = resolveNavigation(event.key, event.ctrlKey || event.metaKey, found.cell, this._activeCellContext())\n if (!result) {\n return\n }\n\n event.preventDefault()\n\n // Shift+arrow grows the range from its anchor and leaves focus put; a\n // plain arrow moves focus and collapses the range to the new cell.\n if (this._config.cellSelection && found.cell.rowIndex >= 0 && result.cell.rowIndex >= 0) {\n const direction = CELL_SELECTION_DIRECTIONS[\n isElementRTL(this._element) ? (INVERTED_ARROWS[event.key] ?? event.key) : event.key\n ]\n if (event.shiftKey && direction) {\n this._table.extendCellSelection(direction)\n this._scheduler.schedule()\n return\n }\n }\n\n if (result.pageDelta === 1 && this._table.getCanNextPage()) {\n this._table.nextPage()\n } else if (result.pageDelta === -1 && this._table.getCanPreviousPage()) {\n this._table.previousPage()\n }\n\n this._setActiveCell(result.cell)\n }\n\n // The table-core Cell behind a DOM cell, or null when cell selection is off\n // or the target is not a data cell.\n private _tableCellFromTarget(event: Event & Record<string, unknown>) {\n if (!this._config.cellSelection) {\n return null\n }\n\n const element = (event.delegateTarget ?? event.target) as HTMLElement\n const columnId = element.dataset.coreuiColumn\n const rowIndex = Number(element.closest<HTMLElement>('tr')?.dataset.coreuiIndex ?? -1)\n if (!columnId || rowIndex < 0) {\n return null\n }\n\n const row = this._table.getRowModel().rows[rowIndex]\n return row?.getAllCells().find(cell => cell.column.id === columnId) ?? null\n }\n\n private _descendIntoCell(cellElement: HTMLElement): void {\n cellElement.querySelector<HTMLElement>(FOCUSABLE_SELECTOR)?.focus({ preventScroll: true })\n }\n\n private _isColumnEditable(column: DataGridColumn): boolean {\n if (!this._config.editing) {\n return false\n }\n\n // Opt-IN, unlike the opt-out feature booleans - editing is invasive. A\n // custom editor is itself the opt-in.\n return Boolean(column.editor) || column.editable === true || typeof column.editable === 'object'\n }\n\n private _startEditing(cell: ActiveCell): void {\n const config = this._columnsByKey.get(cell.columnId)\n if (!config || !this._isColumnEditable(config)) {\n return\n }\n\n this._stopEditing({ commit: true, force: true })\n\n const row = this._table.getRowModel().rows[cell.rowIndex]\n if (!row) {\n return\n }\n\n const value = row.getValue(cell.columnId)\n const context: DataGridEditorContext = {\n item: row.original,\n column: config,\n value,\n commit: committed => this._commitEdit(committed),\n cancel: () => this._cancelEdit(),\n labels: this._labels\n }\n const editable: DataGridEditableOptions = typeof config.editable === 'object' ? config.editable : {}\n const editor = config.editor ? config.editor(context) : createBuiltInEditor(editable, context)\n\n this._editingCell = {\n rowId: row.id,\n columnId: cell.columnId,\n rowIndex: cell.rowIndex,\n item: row.original,\n previousValue: value\n }\n this._editor = editor\n this._editorFocusPending = true\n\n EventHandler.trigger(this._element, EVENT_EDIT_START, { item: row.original, columnId: cell.columnId })\n\n if (editor.popup) {\n this._mountEditorPopup(cell)\n }\n\n // Commit on blur (inline editors) and on pointerdown outside the edit\n // scope (popup editors, portaled overlays) - blur alone cannot commit,\n // picking a date in a calendar blurs the input mid-edit.\n this._editorPointerdownHandler = (domEvent: Event) => {\n if (!this._editScopeContains(domEvent.target as Node)) {\n this._stopEditing({ commit: true })\n }\n }\n\n EventHandler.on(document, EVENT_POINTERDOWN, this._editorPointerdownHandler)\n EventHandler.on(editor.element, EVENT_FOCUSOUT, (domEvent: Event) => {\n const related = (domEvent as FocusEvent).relatedTarget as Node | null\n if (related && !this._editScopeContains(related)) {\n this._stopEditing({ commit: true })\n }\n })\n\n this._scheduler.schedule()\n }\n\n // The edit scope: the editing cell, the editor element, its popup layer,\n // and anything the editor claims via contains() (portaled overlays).\n private _editScopeContains(target: Node | null): boolean {\n if (!target || !this._editingCell || !this._editor) {\n return false\n }\n\n if (this._editor.contains?.(target) || this._editor.element.contains(target) || this._editorPopup?.contains(target)) {\n return true\n }\n\n const cellElement = this._cellElementFor({\n rowIndex: this._editingCell.rowIndex,\n columnId: this._editingCell.columnId\n })\n return Boolean(cellElement?.contains(target))\n }\n\n private _mountEditorPopup(cell: ActiveCell): void {\n const cellElement = this._cellElementFor(cell)\n const popup = document.createElement('div')\n popup.classList.add(CLASS_NAME_EDITOR_POPUP)\n\n if (cellElement) {\n const rootRect = this._element.getBoundingClientRect()\n const cellRect = cellElement.getBoundingClientRect()\n popup.style.top = `${cellRect.top - rootRect.top}px`\n popup.style.left = `${cellRect.left - rootRect.left}px`\n popup.style.minWidth = `${cellRect.width}px`\n }\n\n popup.append(this._editor!.element)\n this._element.append(popup)\n this._editorPopup = popup\n }\n\n private _commitEdit(value: unknown): void {\n const editing = this._editingCell\n if (!editing) {\n return\n }\n\n const validate = this._columnsByKey.get(editing.columnId)?.editValidate\n if (validate) {\n const result = validate(value, editing.item)\n if (result !== true) {\n this._showEditorInvalid(typeof result === 'string' ? result : '')\n return\n }\n }\n\n this._teardownEditor()\n // The grid never mutates items - the app applies the change (setItems /\n // items prop) and stays the single source of truth.\n if (this._config.history) {\n this._undoStack.push({\n rowId: editing.rowId, columnId: editing.columnId, value, previousValue: editing.previousValue\n })\n if (this._undoStack.length > HISTORY_LIMIT) {\n this._undoStack.shift()\n }\n\n this._redoStack = []\n this._updateHistoryButtons()\n }\n\n EventHandler.trigger(this._element, EVENT_EDIT_COMMIT, {\n item: editing.item,\n columnId: editing.columnId,\n value,\n previousValue: editing.previousValue\n })\n this._activeCell?.set({ rowIndex: editing.rowIndex, columnId: editing.columnId }, { focus: true })\n }\n\n private _cancelEdit(): void {\n const editing = this._editingCell\n if (!editing) {\n return\n }\n\n this._teardownEditor()\n EventHandler.trigger(this._element, EVENT_EDIT_CANCEL, { item: editing.item, columnId: editing.columnId })\n this._activeCell?.set({ rowIndex: editing.rowIndex, columnId: editing.columnId }, { focus: true })\n }\n\n private _stopEditing(options: { commit: boolean; force?: boolean }): void {\n if (!this._editingCell) {\n return\n }\n\n if (options.commit && this._editor?.getValue) {\n this._commitEdit(this._editor.getValue())\n // An invalid value blocks the commit; when the edit cannot survive\n // anyway (row recycled away, row set changed), drop the draft.\n if (this._editingCell && options.force) {\n this._cancelEdit()\n }\n\n return\n }\n\n // A custom editor without getValue owns its commits - stopping from the\n // outside can only cancel.\n this._cancelEdit()\n }\n\n private _showEditorInvalid(message: string): void {\n const editor = this._editor\n if (!editor) {\n return\n }\n\n const input = editor.element.matches('input, select, textarea') ?\n editor.element :\n editor.element.querySelector<HTMLElement>('input, select, textarea')\n if (!input) {\n return\n }\n\n if (!this._editorErrorElement) {\n this._editorErrorElement = document.createElement('div')\n this._editorErrorElement.classList.add('visually-hidden')\n this._editorErrorElement.id = `data-grid-editor-error-${++editorErrorCount}`\n this._element.append(this._editorErrorElement)\n }\n\n this._editorErrorElement.textContent = message\n input.classList.add('is-invalid')\n input.setAttribute('aria-invalid', 'true')\n input.setAttribute('aria-errormessage', this._editorErrorElement.id)\n }\n\n private _moveEditing(direction: -1 | 1): void {\n const editing = this._editingCell\n if (!editing) {\n return\n }\n\n const columns = this._visibleColumns()\n const currentIndex = columns.findIndex(column => column.key === editing.columnId)\n let next: DataGridColumn | null = null\n for (let index = currentIndex + direction; index >= 0 && index < columns.length; index += direction) {\n if (this._isColumnEditable(columns[index])) {\n next = columns[index]\n break\n }\n }\n\n this._stopEditing({ commit: true })\n if (this._editingCell) {\n // An invalid value blocked the commit - stay.\n return\n }\n\n if (next) {\n const cell = { rowIndex: editing.rowIndex, columnId: next.key }\n this._activeCell?.set(cell, { focus: true })\n this._startEditing(cell)\n }\n }\n\n private _teardownEditor(): void {\n if (this._editorPointerdownHandler) {\n EventHandler.off(document, EVENT_POINTERDOWN, this._editorPointerdownHandler)\n this._editorPointerdownHandler = null\n }\n\n if (this._editor) {\n EventHandler.off(this._editor.element, EVENT_FOCUSOUT)\n this._editor.dispose?.()\n }\n\n if (this._editorPopup) {\n this._editorPopup.remove()\n this._editorPopup = null\n }\n\n if (this._editorErrorElement) {\n this._editorErrorElement.remove()\n this._editorErrorElement = null\n }\n\n this._editor = null\n this._editingCell = null\n this._editorFocusPending = false\n this._scheduler.schedule()\n }\n\n private _setActiveCell(cell: ActiveCell): void {\n this._activeCell?.set(cell, { focus: true })\n // The active cell is the grid's single focus owner; cell selection follows\n // it rather than keeping a second anchor of its own.\n if (this._config.cellSelection && cell.rowIndex >= 0) {\n const row = this._table.getRowModel().rows[cell.rowIndex]\n if (row) {\n this._table.setFocusedCell(row.id, cell.columnId)\n }\n }\n\n if (this._virtualizer && cell.rowIndex >= 0) {\n // No-op when the row is already in view (align: auto); otherwise the\n // focus request stays pending until the row renders on the next flush.\n this._virtualizer.instance.scrollToIndex(cell.rowIndex)\n }\n }\n\n // The columns the selection's column indexes address, with the formatter\n // each cell displays through — a copied date pastes as the date on screen.\n private _printColumns(): PrintColumn[] {\n return this._visibleColumns().map(column => ({\n id: column.key,\n label: column.label ?? column.key,\n formatter: column.formatter\n }))\n }\n\n private _clipboardColumns(): ClipboardColumn[] {\n return this._visibleColumns().map(column => ({ id: column.key, formatter: column.formatter }))\n }\n\n private _copyCellSelection(): void {\n copyCellSelection(this._table, this._clipboardColumns()).then(text => {\n if (text !== '') {\n EventHandler.trigger(this._element, EVENT_CELL_COPY, { text })\n }\n }, () => {})\n }\n\n private _activeCellContext(): ActiveCellContext {\n const rowCount = this._table.getRowModel().rows.length\n const paginated = Boolean(this._config.pagination) || Boolean(this._config.dataProvider)\n const viewportRows = Math.floor((this._viewportElement?.clientHeight ?? 0) / this._config.rowHeight)\n\n return {\n columnIds: this._visibleLeafColumns().map(column => column.id),\n rowCount,\n pageStep: paginated ?\n this._table.store.state.pagination.pageSize :\n Math.max(1, viewportRows || rowCount),\n paginated,\n rtl: isElementRTL(this._element)\n }\n }\n\n private _cellElementFor(cell: ActiveCell): HTMLElement | null {\n if (cell.rowIndex === -1) {\n return this._header.element.querySelector<HTMLElement>(\n `tr:first-child th[data-coreui-column=\"${cell.columnId}\"]`\n )\n }\n\n const rowElement = this._body.element.querySelector<HTMLElement>(`tr[data-coreui-index=\"${cell.rowIndex}\"]`)\n return rowElement?.querySelector<HTMLElement>(`td[data-coreui-column=\"${cell.columnId}\"]`) ?? null\n }\n\n // The roving-tabindex pass: runs after every render/recycle flush, in the\n // same slot as the aria attributes, so focus is always re-derived from\n // state (never from what the recycler left in the DOM).\n private _applyCellNavigation(): void {\n if (!this._activeCell) {\n return\n }\n\n const context = this._activeCellContext()\n this._activeCell.clamp(context)\n\n this._tableElement.setAttribute(\n 'aria-colcount',\n String(context.columnIds.length + (this._config.rowSelection ? 1 : 0))\n )\n\n const active = this._activeCell.get()\n // With no active cell yet, the first data cell (or first header cell in\n // an empty grid) is the grid's single tab stop.\n const tabbable = active ?? (context.columnIds.length > 0 ?\n { rowIndex: context.rowCount > 0 ? 0 : -1, columnId: context.columnIds[0] } :\n null)\n\n for (const cellElement of this._header.element.querySelectorAll<HTMLElement>('tr:first-child th[data-coreui-column]')) {\n applyTabIndex(\n cellElement,\n tabbable !== null && tabbable.rowIndex === -1 && cellElement.dataset.coreuiColumn === tabbable.columnId\n )\n }\n\n for (const rowElement of this._body.element.querySelectorAll<HTMLElement>('tr[data-coreui-index]')) {\n const isActiveRow = tabbable !== null && rowElement.dataset.coreuiIndex === String(tabbable.rowIndex)\n for (const cellElement of rowElement.querySelectorAll<HTMLElement>('td[data-coreui-column]')) {\n applyTabIndex(cellElement, isActiveRow && cellElement.dataset.coreuiColumn === tabbable!.columnId)\n }\n }\n\n if (!active) {\n return\n }\n\n const activeElement = this._cellElementFor(active)\n\n if (activeElement) {\n if (this._activeCell.consumeFocusRequest()) {\n activeElement.focus({ preventScroll: true })\n }\n\n return\n }\n\n // The active cell scrolled out of the rendered window while focused: park\n // focus on the viewport so the keydown fallback stays inside the grid.\n if (this._containsFocus && !this._element.contains(document.activeElement)) {\n this._viewportElement.focus({ preventScroll: true })\n }\n }\n\n private _getMenuActions(columnKey: string): DataGridMenuAction[] {\n const column = this._table.getColumn(columnKey)\n const config = this._columnsByKey.get(columnKey)\n if (!column || !config) {\n return []\n }\n\n const actions: DataGridMenuAction[] = []\n\n if (this._isColumnSortable(config)) {\n const sorted = column.getIsSorted()\n actions.push(\n {\n key: 'sort-asc',\n label: this._labels.sortAscending,\n disabled: sorted === 'asc',\n group: 'sorting',\n icon: this._sanitizeIcon(this._config.sortAscendingIcon),\n run: () => column.toggleSorting(false)\n },\n {\n key: 'sort-desc',\n label: this._labels.sortDescending,\n disabled: sorted === 'desc',\n group: 'sorting',\n icon: this._sanitizeIcon(this._config.sortDescendingIcon),\n run: () => column.toggleSorting(true)\n }\n )\n\n if (sorted) {\n actions.push({\n key: 'clear-sort',\n label: this._labels.clearSort,\n group: 'sorting',\n icon: this._sanitizeIcon(this._config.sortNeutralIcon),\n run: () => column.clearSorting()\n })\n }\n }\n\n if (this._config.columnPinning) {\n const pinned = column.getIsPinned()\n if (pinned !== 'start') {\n actions.push({\n key: 'pin-start',\n label: this._labels.pinStart,\n group: 'pinning',\n icon: this._sanitizeIcon(this._config.pinStartIcon),\n run: () => column.pin('start')\n })\n }\n\n if (pinned !== 'end') {\n actions.push({\n key: 'pin-end',\n label: this._labels.pinEnd,\n group: 'pinning',\n icon: this._sanitizeIcon(this._config.pinEndIcon),\n run: () => column.pin('end')\n })\n }\n\n if (pinned) {\n actions.push({\n key: 'unpin',\n label: this._labels.unpin,\n group: 'pinning',\n icon: this._sanitizeIcon(this._config.unpinIcon),\n run: () => column.pin(false)\n })\n }\n }\n\n if (this._config.columnOrder && config.movable !== false) {\n const region = this._visibleLeafColumns().filter(item => this._pinnedRegion(item) === this._pinnedRegion(column))\n const index = region.findIndex(item => item.id === columnKey)\n actions.push(\n {\n key: 'move-start',\n label: this._labels.moveStart,\n disabled: index <= 0,\n group: 'ordering',\n icon: this._sanitizeIcon(this._config.moveStartIcon),\n run: () => this._moveColumn(columnKey, -1)\n },\n {\n key: 'move-end',\n label: this._labels.moveEnd,\n disabled: index === region.length - 1,\n group: 'ordering',\n icon: this._sanitizeIcon(this._config.moveEndIcon),\n run: () => this._moveColumn(columnKey, 1)\n }\n )\n }\n\n if (this._config.columnVisibility && column.getCanHide()) {\n actions.push({\n key: 'hide',\n label: this._labels.hideColumn,\n group: 'visibility',\n icon: this._sanitizeIcon(this._config.hideColumnIcon),\n run: () => column.toggleVisibility(false)\n })\n }\n\n // A builder receives the built-in actions (icons already sanitized) and the\n // column, and returns the final list — reorder, filter, or add custom items.\n const builder = typeof this._config.columnMenu === 'function' ? this._config.columnMenu : null\n const finalActions = builder ? builder({ column: config, defaultActions: actions }) : actions\n\n // Sanitize again so custom items' icons pass through the SVG allow list too\n // (re-sanitizing the built-in icons is a no-op).\n return finalActions.map(action =>\n (action.icon ? { ...action, icon: this._sanitizeIcon(action.icon) } : action)\n )\n }\n\n // All leaf ids in the current order, hidden columns included - building a new\n // order from visible ids only would drop hidden columns, and TanStack appends\n // missing ids at the end when they are shown again.\n private _orderedLeafIds(): string[] {\n const allIds = this._table.getAllLeafColumns().map(column => column.id)\n const order = this._table.store.state.columnOrder ?? []\n if (order.length === 0) {\n return allIds\n }\n\n const known = new Set(allIds)\n const ordered = order.filter(id => known.has(id))\n const seen = new Set(ordered)\n return [...ordered, ...allIds.filter(id => !seen.has(id))]\n }\n\n private _moveColumn(columnKey: string, direction: -1 | 1): void {\n const column = this._table.getColumn(columnKey)\n if (!column) {\n return\n }\n\n const region = this._pinnedRegion(column)\n const ids = this._orderedLeafIds()\n const regionIds = this._visibleLeafColumns()\n .filter(item => this._pinnedRegion(item) === region)\n .map(item => item.id)\n const neighbor = regionIds[regionIds.indexOf(columnKey) + direction]\n if (!neighbor) {\n return\n }\n\n const from = ids.indexOf(columnKey)\n const to = ids.indexOf(neighbor)\n ids[from] = neighbor\n ids[to] = columnKey\n this._table.setColumnOrder(ids)\n }\n\n // Pointer-based, not HTML5 drag events: the controller owns the ghost, the\n // drop indicator and the edge auto-scroll, and behaves the same on touch.\n private _initColumnDrag(): void {\n if (!this._config.columnOrder) {\n return\n }\n\n this._columnDrag = createColumnDragController({\n root: this._element as HTMLElement,\n getScrollElement: () => this._viewportElement,\n canDrop: (sourceKey, targetKey) => {\n const source = this._table.getColumn(sourceKey)\n const target = this._table.getColumn(targetKey)\n return Boolean(source && target) &&\n sourceKey !== targetKey &&\n this._pinnedRegion(source!) === this._pinnedRegion(target!)\n },\n onReorder: (sourceKey, targetKey, after) => this._moveColumnTo(sourceKey, targetKey, after)\n })\n }\n\n // Rows are indexed within the current row model; the offset turns that into\n // a position in `items`.\n private _rowIndexOffset(): number {\n // The infinite buffer always starts at the first row, so its indices are\n // already absolute.\n if (this._config.infiniteScroll || (!this._config.pagination && !this._config.dataProvider)) {\n return 0\n }\n\n const { pageIndex, pageSize } = this._table.store.state.pagination\n return pageIndex * pageSize\n }\n\n private _initRowDrag(): void {\n if (!this._config.rowOrder) {\n return\n }\n\n this._rowDrag = createRowDragController({\n root: this._element as HTMLElement,\n getScrollElement: () => this._viewportElement,\n onReorder: (sourceIndex, targetIndex, after) => this._moveRowTo(sourceIndex, targetIndex, after)\n })\n }\n\n // The grid never mutates `items` — it hands the reordered array to the app\n // through rowOrderChange, the same contract inline editing uses.\n private _moveRowTo(sourceIndex: number, targetIndex: number, after: boolean): void {\n const offset = this._rowIndexOffset()\n const items = [...this._config.items]\n const from = offset + sourceIndex\n const [item] = items.splice(from, 1)\n if (item === undefined) {\n return\n }\n\n // Resolved AFTER the removal, so the index still points at the target\n // whichever direction the row travelled.\n const target = offset + targetIndex\n const to = target > from ? target - 1 : target\n const newIndex = after ? to + 1 : to\n items.splice(newIndex, 0, item)\n\n EventHandler.trigger(this._element, EVENT_ROW_ORDER_CHANGE, {\n items, item, oldIndex: from, newIndex\n })\n }\n\n private _moveColumnTo(sourceKey: string, targetKey: string, after: boolean): void {\n const ids = this._orderedLeafIds()\n const from = ids.indexOf(sourceKey)\n if (from === -1) {\n return\n }\n\n ids.splice(from, 1)\n // Resolved AFTER the removal, so the index still points at the target\n // whichever direction the column travelled.\n const to = ids.indexOf(targetKey)\n if (to === -1) {\n return\n }\n\n ids.splice(after ? to + 1 : to, 0, sourceKey)\n this._table.setColumnOrder(ids)\n }\n\n private _startColumnResize(event: Event & Record<string, unknown>): void {\n const target = (event.delegateTarget ?? event.target) as HTMLElement\n const key = target.closest('th')?.dataset.coreuiColumn\n if (!key) {\n return\n }\n\n // Stop the browser from starting a native column-reorder drag from the\n // draggable th when the press lands on the resize handle inside it.\n if (event.type === 'mousedown') {\n event.preventDefault()\n }\n\n // The direction table-core snapshotted at construction may be stale — an\n // app that swaps language flips dir on a live grid. A resize is the only\n // moment it matters, and it is rare enough to re-read here.\n syncResizeDirection(this._table, this._element)\n\n const header = this._table.getHeaderGroups()[0]?.headers.find(item => item.column.id === key)\n header?.getResizeHandler()(event)\n }\n\n private _toggleRowSelection(event: Event & Record<string, unknown>): void {\n const input = (event.delegateTarget ?? event.target) as HTMLInputElement\n const rowElement = input.closest('tr')\n if (!rowElement) {\n return\n }\n\n const index = Number(rowElement.dataset.coreuiIndex)\n const { rows } = this._table.getRowModel()\n const selected = input.checked\n\n if ((event as unknown as MouseEvent).shiftKey && this._selectionAnchorIndex !== null) {\n const start = Math.min(this._selectionAnchorIndex, index)\n const end = Math.max(this._selectionAnchorIndex, index)\n this._table.setRowSelection(previous => {\n const next = { ...previous }\n for (const row of rows.slice(start, end + 1)) {\n if (selected) {\n next[row.id] = true\n } else {\n delete next[row.id]\n }\n }\n\n return next\n })\n } else {\n rows[index]?.toggleSelected(selected)\n }\n\n this._selectionAnchorIndex = index\n }\n\n private _initDataSource(): void {\n const { dataProvider } = this._config\n if (!dataProvider) {\n return\n }\n\n this._dataSource = createDataSource({\n provider: request => dataProvider(request),\n getRequest: () => {\n const { state } = this._table.store\n return {\n columnFilters: state.columnFilters,\n globalFilter: (state.globalFilter as string | undefined) ?? '',\n pagination: state.pagination,\n sorting: state.sorting\n }\n },\n onLoad: (response, request) => {\n this._stopEditing({ commit: false })\n this._loadFailed = false\n this._loadMorePending = false\n this._dataVersion++\n\n let { items } = response\n if (this._config.infiniteScroll) {\n const firstPage = request.pagination.pageIndex === 0\n items = firstPage ? response.items : [...this._loadedItems, ...response.items]\n this._loadedItems = items\n // Appended rows land at fresh indices; a first page puts different\n // data at indices the virtualizer has already measured — and shrinks\n // the buffer back under a viewport that may be scrolled far past it.\n if (firstPage) {\n this._viewportElement.scrollTop = 0\n this._virtualizer?.remeasure()\n }\n }\n\n this._table.setOptions(previous => ({\n ...previous,\n data: items,\n rowCount: response.totalRows\n }))\n EventHandler.trigger(this._element, EVENT_DATA_LOAD, {\n items: response.items,\n totalRows: response.totalRows\n })\n this._announceResults(response.totalRows)\n this._scheduler.schedule()\n },\n onError: error => {\n this._stopEditing({ commit: false })\n this._loadFailed = true\n this._loadMorePending = false\n this._loadedItems = []\n this._dataVersion++\n this._table.setOptions(previous => ({ ...previous, data: [], rowCount: 0 }))\n EventHandler.trigger(this._element, EVENT_DATA_ERROR, { error })\n this._scheduler.schedule()\n },\n onLoadingChange: loading => {\n const appending = Boolean(this._config.infiniteScroll) && this._loadedItems.length > 0\n this._loading?.setVisible(loading && !appending)\n this._loadingMore?.setVisible(loading && appending)\n this._viewportElement.setAttribute('aria-busy', String(loading))\n }\n })\n\n this._dataSource.load()\n }\n\n // The trigger is the last RENDERED row index, not a scroll ratio: measured\n // row heights make the ratio meaningless (the total size keeps moving as\n // rows are measured, so a ratio either fires early or never).\n private _maybeLoadMore(): void {\n if (!this._config.infiniteScroll || !this._dataSource || !this._virtualizer || this._loadMorePending) {\n return\n }\n\n const loaded = this._table.getRowModel().rows.length\n if (loaded === 0 || loaded >= this._getTotalRows()) {\n return\n }\n\n const options = typeof this._config.infiniteScroll === 'object' ? this._config.infiniteScroll : {}\n const threshold = options.threshold ?? this._config.overscan\n const rendered = this._virtualizer.instance.getVirtualItems()\n const last = rendered[rendered.length - 1]\n if (!last || last.index < loaded - 1 - threshold) {\n return\n }\n\n this._loadMorePending = true\n this._table.setPageIndex(this._table.store.state.pagination.pageIndex + 1)\n }\n\n // Visible leaf columns in VISUAL order: left-pinned, center (columnOrder),\n // right-pinned — getVisibleLeafColumns() alone does not regroup pinning.\n // Without the pinning feature there are no regions to regroup, and without\n // visibility every leaf column is visible.\n private _visibleLeafColumns() {\n if (typeof this._table.getCenterVisibleLeafColumns === 'function') {\n return [\n ...this._table.getStartVisibleLeafColumns(),\n ...this._table.getCenterVisibleLeafColumns(),\n ...this._table.getEndVisibleLeafColumns()\n ]\n }\n\n if (typeof this._table.getVisibleLeafColumns === 'function') {\n return this._table.getVisibleLeafColumns()\n }\n\n return this._table.getAllLeafColumns()\n }\n\n // Ordering paths compare pinned regions even on grids that never enabled\n // pinning - without the feature every column sits in the unpinned region.\n private _pinnedRegion(column: { getIsPinned?: () => 'start' | 'end' | false }): 'start' | 'end' | false {\n return typeof column.getIsPinned === 'function' ? column.getIsPinned() : false\n }\n\n private _chooserColumns(): ColumnChooserColumn[] {\n const columns: ColumnChooserColumn[] = []\n for (const id of this._orderedLeafIds()) {\n const column = this._table.getColumn(id)\n const config = this._columnsByKey.get(id)\n if (!column || !config) {\n continue\n }\n\n columns.push({\n id,\n label: config.label ?? config.key,\n canHide: column.getCanHide(),\n visible: column.getIsVisible()\n })\n }\n\n return columns\n }\n\n private _visibleColumns(): DataGridColumn[] {\n const columns: DataGridColumn[] = []\n for (const column of this._visibleLeafColumns()) {\n const config = this._columnsByKey.get(column.id)\n if (config) {\n columns.push(config)\n }\n }\n\n return columns\n }\n\n private _getColumnSizes(): Record<string, number> {\n const sizes: Record<string, number> = {}\n for (const header of this._table.getHeaderGroups()[0]?.headers ?? []) {\n sizes[header.column.id] = header.getSize()\n }\n\n return sizes\n }\n\n private _getFilteredColumns(): string[] {\n return this._table.store.state.columnFilters.map(filter => filter.id)\n }\n\n private _getPinning(): GridPinning {\n // Visible columns only - getStartLeafColumns/getPinnedIndex include hidden\n // columns, which would leave the edge class on a column nobody sees.\n const leftColumns = this._table.getStartLeafColumns().filter(column => column.getIsVisible())\n const rightColumns = this._table.getEndLeafColumns().filter(column => column.getIsVisible())\n // The selection cell is not a TanStack column; anchor it to the left as\n // soon as any data column is pinned there so the checkbox travels with them.\n const selectPinned = Boolean(this._config.rowSelection) && leftColumns.length > 0\n const columns: Record<string, PinnedCellInfo> = {}\n\n for (const [index, column] of leftColumns.entries()) {\n columns[column.id] = {\n side: 'start',\n offset: column.getStart('start'),\n edge: index === leftColumns.length - 1,\n afterSelect: selectPinned\n }\n }\n\n for (const [index, column] of rightColumns.entries()) {\n columns[column.id] = {\n side: 'end',\n offset: column.getAfter('end'),\n edge: index === 0,\n afterSelect: false\n }\n }\n\n return {\n columns,\n select: selectPinned ?\n{\n side: 'start', offset: 0, edge: false, afterSelect: false\n} :\nnull\n }\n }\n\n private _storageKey(): string | null {\n return this._config.stateKey ? `${STATE_STORAGE_PREFIX}${this._config.stateKey}` : null\n }\n\n private _restorePersistedState(): void {\n const key = this._storageKey()\n if (!key) {\n return\n }\n\n let state: Partial<DataGridState> | null = null\n try {\n const raw = window.localStorage.getItem(key)\n state = raw ? (JSON.parse(raw) as Partial<DataGridState>) : null\n } catch {\n return\n }\n\n if (!state) {\n return\n }\n\n this.restoreState(state)\n }\n\n private _updateHistoryButtons(): void {\n const undoButton = this._element.querySelector<HTMLButtonElement>(SELECTOR_TOOLBAR_UNDO)\n if (undoButton) {\n undoButton.disabled = this._undoStack.length === 0\n }\n\n const redoButton = this._element.querySelector<HTMLButtonElement>(SELECTOR_TOOLBAR_REDO)\n if (redoButton) {\n redoButton.disabled = this._redoStack.length === 0\n }\n }\n\n private _announceResults(count: number): void {\n this._announce(interpolate(this._labels.resultsAnnouncement, { count }))\n }\n\n private _announce(message: string): void {\n if (this._liveRegion) {\n this._liveRegion.textContent = message\n }\n }\n\n private _getTotalRows(): number {\n if (this._config.dataProvider) {\n return this._table.options.rowCount ?? 0\n }\n\n if (typeof this._table.getFilteredRowModel !== 'function') {\n return this._table.getCoreRowModel().rows.length\n }\n\n return this._table.getFilteredRowModel().rows.length\n }\n\n private _notifyStateChange(previous: DataGridTableState, next: DataGridTableState): void {\n // TanStack's resize handler keeps document-level listeners until mouseup;\n // a dispose mid-drag would re-enter here against a torn-down instance.\n if (!this._element) {\n return\n }\n\n // stateKey persistence is automatic - every state change (debounced)\n // rewrites the snapshot, so the view survives a reload with no explicit\n // save step.\n if (this._config.stateKey) {\n if (!this._persistState) {\n this._persistState = debounce(() => {\n const key = this._storageKey()\n if (!key) {\n return\n }\n\n try {\n window.localStorage.setItem(key, JSON.stringify(this.getState()))\n } catch {\n // Quota/privacy-mode failures degrade to a non-persistent grid.\n }\n }, STATE_AUTOSAVE_DEBOUNCE_MS)\n }\n\n this._persistState()\n }\n\n // The shift-click range anchor and the active cell are indexes into the\n // current row set; any transition that reshuffles rows would make them\n // point at arbitrary ones. An in-flight edit stops (commit) first.\n // Pagination compares by VALUE: a data replacement makes TanStack\n // auto-reset the page index, which replaces the state object without\n // changing it - identity alone would kill an edit right after its\n // editCommit handler applied the change.\n // Infinite scroll is the exception: its page bumps only append, so every\n // row already on screen keeps its index, its measurement and its focus.\n if (\n previous.sorting !== next.sorting ||\n previous.columnFilters !== next.columnFilters ||\n previous.globalFilter !== next.globalFilter ||\n (!this._config.infiniteScroll &&\n (previous.pagination?.pageIndex !== next.pagination?.pageIndex ||\n previous.pagination?.pageSize !== next.pagination?.pageSize))\n ) {\n this._stopEditing({ commit: true, force: true })\n this._selectionAnchorIndex = null\n this._activeCell?.reset()\n // Row measurements are cached by index, so the same index now holding a\n // different row makes them stale.\n this._virtualizer?.remeasure()\n }\n\n if (previous.sorting !== next.sorting) {\n EventHandler.trigger(this._element, EVENT_SORTING_CHANGE, {\n sorting: next.sorting\n })\n }\n\n const filtersChanged =\n previous.columnFilters !== next.columnFilters || previous.globalFilter !== next.globalFilter\n\n if (filtersChanged) {\n EventHandler.trigger(this._element, EVENT_FILTER_CHANGE, {\n columnFilters: next.columnFilters,\n globalFilter: next.globalFilter ?? ''\n })\n\n if (!this._config.dataProvider) {\n this._announceResults(this._table.getFilteredRowModel().rows.length)\n }\n }\n\n if (previous.rowSelection !== next.rowSelection) {\n EventHandler.trigger(this._element, EVENT_SELECTION_CHANGE, {\n rowSelection: next.rowSelection,\n selectedItems: this.getSelectedItems()\n })\n }\n\n // No paginationChange under infinite scroll — pagination is internal\n // there (no widget, not user-adjustable); dataLoad is the page signal.\n if (previous.pagination !== next.pagination && !this._config.infiniteScroll) {\n EventHandler.trigger(this._element, EVENT_PAGINATION_CHANGE, {\n pagination: next.pagination\n })\n }\n\n if (previous.columnSizing !== next.columnSizing) {\n EventHandler.trigger(this._element, EVENT_SIZING_CHANGE, {\n columnSizing: next.columnSizing\n })\n }\n\n if (previous.columnPinning !== next.columnPinning) {\n EventHandler.trigger(this._element, EVENT_PINNING_CHANGE, {\n columnPinning: next.columnPinning\n })\n }\n\n if (previous.columnOrder !== next.columnOrder) {\n EventHandler.trigger(this._element, EVENT_ORDER_CHANGE, {\n columnOrder: next.columnOrder\n })\n }\n\n if (previous.columnVisibility !== next.columnVisibility) {\n EventHandler.trigger(this._element, EVENT_VISIBILITY_CHANGE, {\n columnVisibility: next.columnVisibility\n })\n }\n\n if (this._dataSource) {\n const refetchNeeded = filtersChanged || previous.sorting !== next.sorting\n\n if (refetchNeeded) {\n if (next.pagination.pageIndex !== 0) {\n // Back to page one. The write lands synchronously, so the request the\n // debounced fetch reads already carries index 0 - but it also echoes\n // back here as a pagination change, which must not fetch again.\n this._pageResetPending = true\n this._table.setPageIndex(0)\n }\n\n this._dataSource.load()\n return\n }\n\n if (previous.pagination !== next.pagination) {\n const echoedPageReset = this._pageResetPending && next.pagination.pageIndex === 0\n this._pageResetPending = false\n\n if (!echoedPageReset) {\n this._dataSource.load()\n }\n }\n }\n }\n\n private _update(): void {\n if (this._virtualizer) {\n this._virtualizer.setCount(this._table.getRowModel().rows.length)\n this._virtualizer.instance._willUpdate()\n }\n\n // Scrolling the editing row out of the rendered window commits the edit\n // (AG behavior) - BEFORE the recycler wipes the editor's DOM.\n if (this._editingCell && this._virtualizer) {\n const { rowIndex } = this._editingCell\n const rendered = this._virtualizer.instance.getVirtualItems().some(item => item.index === rowIndex)\n if (!rendered) {\n this._stopEditing({ commit: true, force: true })\n }\n }\n\n this._tableElement.setAttribute(\n 'aria-rowcount',\n String(this._header.rowCount + this._getTotalRows())\n )\n\n this._header.update({\n filteredColumns: this._config.columnFilters ? this._getFilteredColumns() : null,\n order: this._visibleLeafColumns().map(column => column.id),\n pinning: this._config.columnPinning ? this._getPinning() : null,\n resizingColumn: this._config.columnSizing ?\n this._table.store.state.columnResizing.isResizingColumn :\n false,\n sizes: (this._config.columnSizing || this._config.columnPinning) ? this._getColumnSizes() : null,\n sorting: this._table.store.state.sorting ?? [],\n selectAll: this._config.rowSelection ?\n {\n checked: this._table.getIsAllRowsSelected(),\n // getIsSomeRowsSelected() means \"at least one\" - the all-selected\n // case has to be excluded for the tri-state checkbox.\n indeterminate: this._table.getIsSomeRowsSelected() && !this._table.getIsAllRowsSelected()\n } :\n null\n })\n this._body.update()\n this._applyCellNavigation()\n\n // The editor element enters the DOM during the body pass (inline) or at\n // mount (popup) - focus it once it is connected.\n if (this._editorFocusPending && this._editor?.element.isConnected) {\n this._editorFocusPending = false\n if (this._editor.focus) {\n this._editor.focus()\n } else {\n (this._editor.element.querySelector<HTMLElement>(FOCUSABLE_SELECTOR) ?? this._editor.element).focus({\n preventScroll: true\n })\n }\n }\n\n this._toolbar?.update?.()\n this._emptySlot?.update?.()\n\n for (const instance of this._paginations) {\n instance.refresh()\n }\n\n this._maybeLoadMore()\n }\n\n private _paginationState() {\n const { pagination } = this._table.store.state\n return {\n pageCount: this._table.getPageCount(),\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows: this._getTotalRows()\n }\n }\n\n // Static\n static jQueryInterface(\n this: { each: (callback: (this: HTMLElement) => void) => unknown },\n config?: string | Partial<DataGridOptions>\n ) {\n return this.each(function () {\n const data = DataGrid.getOrCreateInstance(this, typeof config === 'string' ? undefined : config)\n\n if (typeof config !== 'string') {\n return\n }\n\n const methods = data as unknown as Record<string, (() => void) | undefined>\n if (methods[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n methods[config]!()\n })\n }\n}\n\nexport default DataGrid\n","import { batch, createAtom } from \"@tanstack/store\";\n\n//#region src/store-reactivity-bindings.ts\n/**\n* TanStack Store–based reactivity for vanilla / non-framework use of `constructTable`,\n* with `createOptionsStore: true` so `table.optionsStore` is available for subscriptions.\n*\n* @example\n* ```ts\n* import { constructTable, tableFeatures } from '@tanstack/table-core'\n* import { storeReactivityBindings } from '@tanstack/table-core/store-reactivity-bindings'\n*\n* const table = constructTable({\n* features: tableFeatures({ coreReactivityFeature: storeReactivityBindings() }),\n* // ...\n* })\n* ```\n*/\nfunction storeReactivityBindings() {\n\treturn {\n\t\tcreateOptionsStore: true,\n\t\twrapExternalAtoms: false,\n\t\taddSubscription: () => {\n\t\t\tthrow new Error(\"Feature not supported in current reactivity implementation\");\n\t\t},\n\t\tunmount: () => {\n\t\t\tthrow new Error(\"Feature not supported in current reactivity implementation\");\n\t\t},\n\t\tbatch,\n\t\tschedule: (fn) => queueMicrotask(fn),\n\t\tuntrack: (fn) => fn(),\n\t\tcreateReadonlyAtom: (fn, options) => {\n\t\t\treturn createAtom(() => fn(), { compare: options?.compare });\n\t\t},\n\t\tcreateWritableAtom: (value, options) => {\n\t\t\treturn createAtom(value, { compare: options?.compare });\n\t\t}\n\t};\n}\n\n//#endregion\nexport { storeReactivityBindings };","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid engine/features.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport {\n cellSelectionFeature,\n columnFacetingFeature,\n columnFilteringFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnResizingFeature,\n columnSizingFeature,\n columnVisibilityFeature,\n createFacetedRowModel,\n createFacetedUniqueValues,\n createFilteredRowModel,\n createPaginatedRowModel,\n createSortedRowModel,\n filterFn_includesString as includesStringFilterFn,\n globalFilteringFeature,\n rowPaginationFeature,\n rowSelectionFeature,\n rowSortingFeature,\n sortFn_alphanumeric as alphanumericSortFn,\n sortFn_datetime as datetimeSortFn,\n sortFn_text as textSortFn,\n tableFeatures\n} from '@tanstack/table-core'\nimport { storeReactivityBindings } from '@tanstack/table-core/store-reactivity-bindings'\n\n// v9 exposes an API only when its feature is registered, so this is the full\n// set of table-core behavior the grid can reach - options gate the behavior,\n// not the registration. Prerequisites must precede dependents: sizing before\n// resizing, filtering before global filtering and faceting, every row-model\n// slot after its feature.\nexport const dataGridFeatures = tableFeatures({\n coreReactivityFeature: storeReactivityBindings(),\n cellSelectionFeature,\n columnFilteringFeature,\n globalFilteringFeature,\n columnFacetingFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnSizingFeature,\n columnResizingFeature,\n columnVisibilityFeature,\n rowPaginationFeature,\n rowSelectionFeature,\n rowSortingFeature,\n facetedRowModel: createFacetedRowModel(),\n facetedUniqueValues: createFacetedUniqueValues(),\n filteredRowModel: createFilteredRowModel(),\n paginatedRowModel: createPaginatedRowModel(),\n sortedRowModel: createSortedRowModel(),\n filterFns: { includesString: includesStringFilterFn },\n // The names column.getAutoSortFn() resolves for sampled value types; without\n // them every column would silently fall back to the basic comparator.\n sortFns: {\n alphanumeric: alphanumericSortFn,\n datetime: datetimeSortFn,\n text: textSortFn\n }\n})\n\nexport type DataGridFeatures = typeof dataGridFeatures\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid engine/features-lite.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport {\n columnFilteringFeature,\n createFilteredRowModel,\n createPaginatedRowModel,\n createSortedRowModel,\n filterFn_includesString as includesStringFilterFn,\n globalFilteringFeature,\n rowPaginationFeature,\n rowSortingFeature,\n sortFn_alphanumeric as alphanumericSortFn,\n sortFn_datetime as datetimeSortFn,\n sortFn_text as textSortFn,\n tableFeatures\n} from '@tanstack/table-core'\nimport { storeReactivityBindings } from '@tanstack/table-core/store-reactivity-bindings'\n\n// The smallest set the grid renders with: sorting, filtering (incl. the\n// toolbar search) and pagination. Everything column-shape related (visibility,\n// ordering, pinning, sizing) and selection/faceting stays out - the grid\n// falls back to core APIs for those. sortFns/filterFns stay in so a lite grid\n// sorts and searches exactly like a full one. Kept in its own module so the\n// lite bundle entry never reaches the full set.\nexport const dataGridLiteFeatures = tableFeatures({\n coreReactivityFeature: storeReactivityBindings(),\n columnFilteringFeature,\n globalFilteringFeature,\n rowPaginationFeature,\n rowSortingFeature,\n filteredRowModel: createFilteredRowModel(),\n paginatedRowModel: createPaginatedRowModel(),\n sortedRowModel: createSortedRowModel(),\n filterFns: { includesString: includesStringFilterFn },\n sortFns: {\n alphanumeric: alphanumericSortFn,\n datetime: datetimeSortFn,\n text: textSortFn\n }\n})\n\nexport type DataGridLiteFeatures = typeof dataGridLiteFeatures\n","/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid index.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport DataGridBase from './data-grid'\nimport { dataGridFeatures, type DataGridFeatures } from './engine/features'\nimport type { DataGridOptions, TableFeatures } from './types'\nimport { defineJQueryPlugin } from './util/index.js'\n\n// The ENTRY, not the class, owns the default feature set: this one pairs the\n// grid with the full dataGridFeatures, ./lite pairs the same class with\n// dataGridLiteFeatures. Keeping the preset import out of data-grid.ts is what\n// keeps the full set out of the lite bundle.\nclass DataGrid<TFeatures extends TableFeatures = DataGridFeatures> extends DataGridBase<TFeatures> {\n static get Default(): DataGridOptions {\n return { ...DataGridBase.Default, features: dataGridFeatures }\n }\n}\n\ndefineJQueryPlugin(DataGrid)\n\nexport { DataGrid }\nexport { dataGridFeatures } from './engine/features'\nexport { dataGridLiteFeatures } from './engine/features-lite'\nexport { DEFAULT_LABELS, interpolate } from './labels'\nexport { evaluateColumnFilter, FILTER_OPERATORS, VALUELESS_OPERATORS } from './filters'\nexport { downloadCsv, exportCsv } from './util/csv'\nexport type { CsvDownloadOptions, CsvOptions } from './util/csv'\nexport type { DataGridExporter, DataGridExportOptions } from './ui/toolbar'\nexport type {\n Column,\n ColumnFiltersState,\n ColumnOrderState,\n ColumnPinningState,\n ColumnSizingState,\n DataGridColumn,\n DataGridColumnFilterContext,\n DataGridColumnFilterFactory,\n DataGridColumnFilterValue,\n DataGridColumnMenuBuilder,\n DataGridColumnMenuContext,\n DataGridColumnSizingOptions,\n DataGridDataRequest,\n DataGridDataResponse,\n DataGridEditableOptions,\n DataGridEditCommitEvent,\n DataGridEditor,\n DataGridEditorContext,\n DataGridEditorFactory,\n DataGridEditorType,\n DataGridFeatures,\n DataGridFilterCondition,\n DataGridFilterOperator,\n DataGridFilterType,\n DataGridInfiniteScrollOptions,\n DataGridItem,\n DataGridLabels,\n DataGridLiteFeatures,\n DataGridMenuAction,\n DataGridOptions,\n DataGridPaginationInfoState,\n DataGridPaginationOptions,\n DataGridRowSelectionOptions,\n DataGridSlot,\n DataGridSlotContext,\n DataGridSlotFactory,\n DataGridSlots,\n DataGridSortingOptions,\n DataGridState,\n DataGridToolbarOptions,\n PaginationState,\n RowSelectionState,\n SortingState,\n ColumnVisibilityState,\n DataGridColumnPinning,\n DataGridRow,\n DataGridTable,\n DataGridTableState,\n Table,\n TableFeatures\n} from './types'\n"],"x_google_ignoreList":[0,1,2,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,78,79,80,99],"mappings":";;;;;;;;;;;CACA,IAAI,gBAAgC,yBAAS,eAAe;EAC3D,cAAc,cAAc,UAAU,KAAK;EAC3C,cAAc,cAAc,aAAa,KAAK;EAC9C,cAAc,cAAc,cAAc,KAAK;EAC/C,cAAc,cAAc,mBAAmB,KAAK;EACpD,cAAc,cAAc,cAAc,KAAK;EAC/C,cAAc,cAAc,WAAW,MAAM;EAC7C,cAAc,cAAc,aAAa,MAAM;EAC/C,OAAO;CACR,EAAE,CAAC,CAAC;;CAEJ,SAAS,qBAAqB,EAAE,QAAQ,QAAQ,aAAa;EAC5D,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;EACA,SAAS,KAAK,KAAK,KAAK,SAAS;GAChC,MAAM,UAAU,IAAI;GACpB,IAAI,YAAY,KAAK,KAAK,QAAQ,QAAQ,KAAK;GAC/C,MAAM,UAAU,YAAY,KAAK,IAAI,QAAQ,UAAU,IAAI;GAC3D,IAAI,YAAY,KAAK,KAAK,QAAQ,QAAQ,KAAK;IAC9C,QAAQ,UAAU;IAClB,IAAI,WAAW;IACf;GACD;GACA,MAAM,UAAU,IAAI;GACpB,IAAI,YAAY,KAAK,KAAK,QAAQ,YAAY,WAAW,QAAQ,QAAQ,KAAK;GAC9E,MAAM,UAAU,IAAI,WAAW,IAAI,WAAW;IAC7C;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,KAAK;GACf;GACA,IAAI,YAAY,KAAK,GAAG,QAAQ,UAAU;GAC1C,IAAI,YAAY,KAAK,GAAG,QAAQ,UAAU;QACrC,IAAI,OAAO;GAChB,IAAI,YAAY,KAAK,GAAG,QAAQ,UAAU;QACrC,IAAI,OAAO;EACjB;EACA,SAAS,OAAO,MAAM,MAAM,KAAK,KAAK;GACrC,MAAM,MAAM,KAAK;GACjB,MAAM,UAAU,KAAK;GACrB,MAAM,UAAU,KAAK;GACrB,MAAM,UAAU,KAAK;GACrB,MAAM,UAAU,KAAK;GACrB,IAAI,YAAY,KAAK,GAAG,QAAQ,UAAU;QACrC,IAAI,WAAW;GACpB,IAAI,YAAY,KAAK,GAAG,QAAQ,UAAU;QACrC,IAAI,OAAO;GAChB,IAAI,YAAY,KAAK,GAAG,QAAQ,UAAU;QACrC,IAAI,WAAW;GACpB,IAAI,YAAY,KAAK,GAAG,QAAQ,UAAU;QACrC,KAAK,IAAI,OAAO,aAAa,KAAK,GAAG,UAAU,GAAG;GACvD,OAAO;EACR;EACA,SAAS,UAAU,MAAM;GACxB,IAAI,OAAO,KAAK;GAChB,IAAI;GACJ,KAAK,GAAG;IACP,MAAM,MAAM,KAAK;IACjB,IAAI,QAAQ,IAAI;IAChB,IAAI,EAAE,SAAS,cAAc,gBAAgB,cAAc,WAAW,cAAc,QAAQ,cAAc,WAAW,IAAI,QAAQ,QAAQ,cAAc;SAClJ,IAAI,EAAE,SAAS,cAAc,gBAAgB,cAAc,YAAY,QAAQ,cAAc;SAC7F,IAAI,EAAE,QAAQ,cAAc,gBAAgB,IAAI,QAAQ,QAAQ,CAAC,cAAc,WAAW,cAAc;SACxG,IAAI,EAAE,SAAS,cAAc,QAAQ,cAAc,aAAa,YAAY,MAAM,GAAG,GAAG;KAC5F,IAAI,QAAQ,SAAS,cAAc,WAAW,cAAc;KAC5D,SAAS,cAAc;IACxB,OAAO,QAAQ,cAAc;IAC7B,IAAI,QAAQ,cAAc,UAAU,OAAO,GAAG;IAC9C,IAAI,QAAQ,cAAc,SAAS;KAClC,MAAM,UAAU,IAAI;KACpB,IAAI,YAAY,KAAK,GAAG;MACvB,MAAM,WAAW,OAAO,QAAA,CAAS;MACjC,IAAI,YAAY,KAAK,GAAG;OACvB,QAAQ;QACP,OAAO;QACP,MAAM;OACP;OACA,OAAO;MACR;MACA;KACD;IACD;IACA,KAAK,OAAO,UAAU,KAAK,GAAG;KAC7B,OAAO,KAAK;KACZ;IACD;IACA,OAAO,UAAU,KAAK,GAAG;KACxB,OAAO,MAAM;KACb,QAAQ,MAAM;KACd,IAAI,SAAS,KAAK,GAAG;MACpB,OAAO,KAAK;MACZ,SAAS;KACV;IACD;IACA;GACD,SAAS;EACV;EACA,SAAS,WAAW,MAAM,KAAK;GAC9B,IAAI;GACJ,IAAI,aAAa;GACjB,IAAI,QAAQ;GACZ,KAAK,GAAG;IACP,MAAM,MAAM,KAAK;IACjB,MAAM,QAAQ,IAAI;IAClB,IAAI,IAAI,QAAQ,cAAc,OAAO,QAAQ;SACxC,KAAK,SAAS,cAAc,UAAU,cAAc,aAAa,cAAc,UAAU,cAAc,QACvG;SAAA,OAAO,GAAG,GAAG;MAChB,MAAM,OAAO,IAAI;MACjB,IAAI,KAAK,YAAY,KAAK,GAAG,iBAAiB,IAAI;MAClD,QAAQ;KACT;WACM,KAAK,SAAS,cAAc,UAAU,cAAc,eAAe,cAAc,UAAU,cAAc,UAAU;KACzH,IAAI,KAAK,YAAY,KAAK,KAAK,KAAK,YAAY,KAAK,GAAG,QAAQ;MAC/D,OAAO;MACP,MAAM;KACP;KACA,OAAO,IAAI;KACX,MAAM;KACN,EAAE;KACF;IACD;IACA,IAAI,CAAC,OAAO;KACX,MAAM,UAAU,KAAK;KACrB,IAAI,YAAY,KAAK,GAAG;MACvB,OAAO;MACP;KACD;IACD;IACA,OAAO,cAAc;KACpB,MAAM,WAAW,IAAI;KACrB,MAAM,kBAAkB,SAAS,YAAY,KAAK;KAClD,IAAI,iBAAiB;MACpB,OAAO,MAAM;MACb,QAAQ,MAAM;KACf,OAAO,OAAO;KACd,IAAI,OAAO;MACV,IAAI,OAAO,GAAG,GAAG;OAChB,IAAI,iBAAiB,iBAAiB,QAAQ;OAC9C,MAAM,KAAK;OACX;MACD;MACA,QAAQ;KACT,OAAO,IAAI,SAAS,CAAC,cAAc;KACnC,MAAM,KAAK;KACX,MAAM,UAAU,KAAK;KACrB,IAAI,YAAY,KAAK,GAAG;MACvB,OAAO;MACP,SAAS;KACV;IACD;IACA,OAAO;GACR,SAAS;EACV;EACA,SAAS,iBAAiB,MAAM;GAC/B,GAAG;IACF,MAAM,MAAM,KAAK;IACjB,MAAM,QAAQ,IAAI;IAClB,KAAK,SAAS,cAAc,UAAU,cAAc,YAAY,cAAc,SAAS;KACtF,IAAI,QAAQ,QAAQ,cAAc;KAClC,KAAK,SAAS,cAAc,WAAW,cAAc,oBAAoB,cAAc,UAAU,OAAO,GAAG;IAC5G;GACD,UAAU,OAAO,KAAK,aAAa,KAAK;EACzC;EACA,SAAS,YAAY,WAAW,KAAK;GACpC,IAAI,OAAO,IAAI;GACf,OAAO,SAAS,KAAK,GAAG;IACvB,IAAI,SAAS,WAAW,OAAO;IAC/B,OAAO,KAAK;GACb;GACA,OAAO;EACR;CACD;;;CChLA,SAAS,WAAW,aAAa,cAAc,mBAAmB;EACjE,MAAM,aAAa,OAAO,gBAAgB;EAC1C,MAAM,OAAO,aAAa,cAAc,KAAK;EAC7C,OAAO;GACN,OAAO,aAAa,YAAY,OAAO,YAAA,EAAc,KAAK,IAAI;GAC9D,QAAQ,aAAa,YAAY,QAAQ,aAAA,EAAe,KAAK,IAAI;GACjE,WAAW,aAAa,YAAY,WAAW,kBAAA,EAAoB,KAAK,IAAI;EAC7E;CACD;CACA,MAAM,gBAAgB,CAAC;CACvB,IAAI,QAAQ;CACZ,MAAM,EAAE,MAAM,QAAQ,WAAW,YAAY,qBAAqC,qCAAqB;EACtG,OAAO,MAAM;GACZ,OAAO,KAAK,QAAQ;EACrB;EACA,OAAO,QAAQ;GACd,cAAc,yBAAyB;GACvC,OAAO,SAAS,CAAC,cAAc;EAChC;EACA,UAAU,MAAM;GACf,IAAI,KAAK,aAAa,KAAK,GAAG;IAC7B,KAAK,WAAW,KAAK;IACrB,KAAK,QAAQ,cAAc,UAAU,cAAc;IACnD,UAAU,IAAI;GACf;EACD;CACD,CAAC;CACD,IAAI,cAAc;CAClB,IAAI,sBAAsB;CAC1B,IAAI;CACJ,IAAI,aAAa;CACjB,SAAS,MAAM,IAAI;EAClB,IAAI;GACH,EAAE;GACF,GAAG;EACJ,UAAU;GACT,IAAI,CAAC,EAAE,YAAY,MAAM;EAC1B;CACD;CACA,SAAS,UAAU,KAAK;EACvB,MAAM,WAAW,IAAI;EACrB,IAAI,MAAM,aAAa,KAAK,IAAI,SAAS,UAAU,IAAI;EACvD,OAAO,QAAQ,KAAK,GAAG,MAAM,OAAO,KAAK,GAAG;CAC7C;CACA,SAAS,QAAQ;EAChB,IAAI,aAAa,GAAG;EACpB,OAAO,cAAc,qBAAqB;GACzC,MAAM,SAAS,cAAc;GAC7B,cAAc,iBAAiB,KAAK;GACpC,OAAO,OAAO;EACf;EACA,cAAc;EACd,sBAAsB;CACvB;CAoCA,SAAS,WAAW,WAAW,SAAS;EACvC,MAAM,aAAa,OAAO,cAAc;EACxC,MAAM,SAAS;EACf,MAAM,OAAO;GACZ,WAAW,aAAa,KAAK,IAAI;GACjC,MAAM,KAAK;GACX,UAAU,KAAK;GACf,MAAM,KAAK;GACX,UAAU,KAAK;GACf,OAAO,aAAa,cAAc,OAAO,cAAc;GACvD,MAAM;IACL,IAAI,cAAc,KAAK,GAAG,KAAK,MAAM,WAAW,KAAK;IACrD,OAAO,KAAK;GACb;GACA,UAAU,cAAc;IACvB,MAAM,MAAM,WAAW,YAAY;IACnC,MAAM,WAAW,EAAE,SAAS,MAAM;IAClC,MAAM,IAAI,aAAa;KACtB,KAAK,IAAI;KACT,IAAI,CAAC,SAAS,SAAS,SAAS,UAAU;UACrC,IAAI,OAAO,KAAK,SAAS;IAC/B,CAAC;IACD,OAAO,EAAE,mBAAmB;KAC3B,EAAE,KAAK;IACR,EAAE;GACH;GACA,QAAQ,UAAU;IACjB,MAAM,UAAU;IAChB,MAAM,UAAU,SAAS,WAAW,OAAO;IAC3C,IAAI,YAAY;KACf,YAAY;KACZ,EAAE;KACF,KAAK,WAAW,KAAK;IACtB,OAAO,IAAI,aAAa,KAAK,GAAG,OAAO;IACvC,IAAI,YAAY,KAAK,QAAQ,cAAc,UAAU,cAAc;IACnE,IAAI;KACH,MAAM,WAAW,KAAK;KACtB,MAAM,WAAW,OAAO,aAAa,aAAa,SAAS,QAAQ,IAAI,aAAa,KAAK,KAAK,aAAa,OAAO,QAAQ,IAAI;KAC9H,IAAI,aAAa,KAAK,KAAK,CAAC,QAAQ,UAAU,QAAQ,GAAG;MACxD,KAAK,YAAY;MACjB,OAAO;KACR;KACA,OAAO;IACR,UAAU;KACT,YAAY;KACZ,IAAI,YAAY,KAAK,SAAS,CAAC,cAAc;KAC7C,UAAU,IAAI;IACf;GACD;EACD;EACA,IAAI,YAAY;GACf,KAAK,QAAQ,cAAc,UAAU,cAAc;GACnD,KAAK,MAAM,WAAW;IACrB,MAAM,QAAQ,KAAK;IACnB,IAAI,QAAQ,cAAc,SAAS,QAAQ,cAAc,WAAW,WAAW,KAAK,MAAM,IAAI,GACzF;SAAA,KAAK,QAAQ,GAAG;MACnB,MAAM,OAAO,KAAK;MAClB,IAAI,SAAS,KAAK,GAAG,iBAAiB,IAAI;KAC3C;WACM,IAAI,QAAQ,cAAc,SAAS,KAAK,QAAQ,QAAQ,CAAC,cAAc;IAC9E,IAAI,cAAc,KAAK,GAAG,KAAK,MAAM,WAAW,KAAK;IACrD,OAAO,KAAK;GACb;EACD,OAAO,KAAK,MAAM,SAAS,WAAW;GACrC,IAAI,KAAK,QAAQ,SAAS,GAAG;IAC5B,MAAM,OAAO,KAAK;IAClB,IAAI,SAAS,KAAK,GAAG;KACpB,UAAU,IAAI;KACd,iBAAiB,IAAI;KACrB,MAAM;IACP;GACD;EACD;EACA,OAAO;CACR;CACA,SAAS,OAAO,IAAI;EACnB,MAAM,YAAY;GACjB,MAAM,UAAU;GAChB,YAAY;GACZ,EAAE;GACF,UAAU,WAAW,KAAK;GAC1B,UAAU,QAAQ,cAAc,WAAW,cAAc;GACzD,IAAI;IACH,OAAO,GAAG;GACX,UAAU;IACT,YAAY;IACZ,UAAU,SAAS,CAAC,cAAc;IAClC,UAAU,SAAS;GACpB;EACD;EACA,MAAM,YAAY;GACjB,MAAM,KAAK;GACX,UAAU,KAAK;GACf,MAAM,KAAK;GACX,UAAU,KAAK;GACf,OAAO,cAAc,WAAW,cAAc;GAC9C,SAAS;IACR,MAAM,QAAQ,KAAK;IACnB,IAAI,QAAQ,cAAc,SAAS,QAAQ,cAAc,WAAW,WAAW,KAAK,MAAM,IAAI,GAAG,IAAI;SAChG,KAAK,QAAQ,cAAc;GACjC;GACA,OAAO;IACN,KAAK,QAAQ,cAAc;IAC3B,KAAK,WAAW,KAAK;IACrB,UAAU,IAAI;GACf;EACD;EACA,IAAI;EACJ,OAAO;CACR;;;CCxMA,SAAS,QAAQ,MAAM,MAAM;EAC5B,IAAI,OAAO,GAAG,MAAM,IAAI,GAAG,OAAO;EAClC,IAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,OAAO,SAAS,YAAY,SAAS,MAAM,OAAO;EACnG,IAAI,gBAAgB,OAAO,gBAAgB,KAAK;GAC/C,IAAI,KAAK,SAAS,KAAK,MAAM,OAAO;GACpC,KAAK,MAAM,CAAC,GAAG,MAAM,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,GAAG,OAAO;GAClF,OAAO;EACR;EACA,IAAI,gBAAgB,OAAO,gBAAgB,KAAK;GAC/C,IAAI,KAAK,SAAS,KAAK,MAAM,OAAO;GACpC,KAAK,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,OAAO;GAC/C,OAAO;EACR;EACA,IAAI,gBAAgB,QAAQ,gBAAgB,MAAM;GACjD,IAAI,KAAK,QAAQ,MAAM,KAAK,QAAQ,GAAG,OAAO;GAC9C,OAAO;EACR;EACA,MAAM,QAAQ,WAAW,IAAI;EAC7B,IAAI,MAAM,WAAW,WAAW,IAAI,CAAC,CAAC,QAAQ,OAAO;EACrD,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,MAAM,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,MAAM,KAAK,KAAK,MAAM,GAAG,GAAG,OAAO;EACvJ,OAAO;CACR;CACA,SAAS,WAAW,KAAK;EACxB,OAAO,OAAO,KAAK,GAAG,CAAC,CAAC,OAAO,OAAO,sBAAsB,GAAG,CAAC;CACjE;;;;;;;;;;;;;;;CCVA,MAAM,6BAAa,IAAI,IAAmC;CAE1D,IAAA,eAAe;EACb,IAAI,SAAkB,KAAa,UAAyB;GAC1D,IAAI,CAAC,WAAW,IAAI,OAAO,GACzB,WAAW,IAAI,yBAAS,IAAI,IAAI,CAAC;GAGnC,MAAM,cAAc,WAAW,IAAI,OAAO;GAI1C,IAAI,CAAC,YAAY,IAAI,GAAG,KAAK,YAAY,SAAS,GAAG;IAEnD,QAAQ,MAAM,+EAA+E,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;IACjI;GACF;GAEA,YAAY,IAAI,KAAK,QAAQ;EAC/B;EAKA,IAAI,SAAyB,KAAkB;GAC7C,IAAI,WAAW,IAAI,OAAkB,GACnC,OAAO,WAAW,IAAI,OAAkB,CAAC,CAAE,IAAI,GAAG,KAAK;GAGzD,OAAO;EACT;EAEA,OAAO,SAAkB,KAAmB;GAC1C,IAAI,CAAC,WAAW,IAAI,OAAO,GACzB;GAGF,MAAM,cAAc,WAAW,IAAI,OAAO;GAE1C,YAAY,OAAO,GAAG;GAGtB,IAAI,YAAY,SAAS,GACvB,WAAW,OAAO,OAAO;EAE7B;CACF;;;CCjCA,MAAM,0BAA0B;CAChC,MAAM,iBAAiB;;;;;;CAOvB,MAAM,iBAAiB,aAA6B;EAGlD,IAAI,YAAa,OAAe,OAAQ,OAAe,IAAI,QAEzD,WAAW,SAAS,QAAQ,kBAAkB,OAAO,OAAe,IAAI,IAAI,OAAO,EAAE,GAAG;EAG1F,OAAO;CACT;CAGA,MAAM,UAAU,WAA4B;EAC1C,IAAI,WAAW,QAAQ,WAAW,KAAA,GAChC,OAAO,GAAG;EAGZ,OAAO,OAAO,UAAU,SAAS,KAAK,MAAM,CAAC,CAAC,MAAM,aAAa,CAAC,CAAE,EAAE,CAAC,YAAY;CACrF;CAcA,MAAM,oCAAoC,YAAoC;EAC5E,IAAI,CAAC,SACH,OAAO;EAIT,IAAI,EAAE,oBAAoB,oBAAoB,OAAO,iBAAiB,OAAO;EAM7E,IAAI,CAJ4B,OAAO,WAAW,kBAIvB,KAAK,CAHH,OAAO,WAAW,eAGK,GAClD,OAAO;EAIT,qBAAqB,mBAAmB,MAAM,GAAG,CAAC,CAAC;EACnD,kBAAkB,gBAAgB,MAAM,GAAG,CAAC,CAAC;EAE7C,QAAQ,OAAO,WAAW,kBAAkB,IAAI,OAAO,WAAW,eAAe,KAAK;CACxF;CAEA,MAAM,wBAAwB,YAA2B;EACvD,QAAQ,cAAc,IAAI,MAAM,cAAc,CAAC;CACjD;CAEA,MAAM,aAAa,WAAuC;EACxD,IAAI,CAAC,UAAU,OAAO,WAAW,UAC/B,OAAO;EAGT,IAAI,OAAQ,OAAsB,WAAW,aAC3C,SAAU,OAAsB;EAGlC,OAAO,OAAQ,OAAmB,aAAa;CACjD;CAEA,MAAM,cAAc,WAAwC;EAE1D,IAAI,UAAU,MAAM,GAClB,OAAQ,OAAiC,SAAU,OAAiC,KAAK;EAG3F,IAAI,OAAO,WAAW,YAAY,OAAO,SAAS,GAChD,OAAO,SAAS,cAAc,cAAc,MAAM,CAAC;EAGrD,OAAO;CACT;CAkFA,MAAM,kBAAuC;EAC3C,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,aAAa,uBAAuB,GACtE,OAAO,OAAO;EAGhB,OAAO;CACT;CAEA,MAAM,4BAA+C,CAAC;CAEtD,MAAM,sBAAsB,aAA+B;EACzD,IAAI,SAAS,eAAe,WAAW;GAErC,IAAI,CAAC,0BAA0B,QAC7B,SAAS,iBAAiB,0BAA0B;IAClD,KAAK,MAAM,YAAY,2BACrB,SAAS;GAEb,CAAC;GAGH,0BAA0B,KAAK,QAAQ;EACzC,OACE,SAAS;CAEb;CAIA,MAAM,sBAAsB,WAA+B;EACzD,yBAAyB;GACvB,MAAM,IAAI,UAAU;;GAEpB,IAAI,GAAG;IACL,MAAM,OAAO,OAAO;IACpB,MAAM,qBAAqB,EAAE,GAAG;IAChC,EAAE,GAAG,QAAQ,OAAO;IACpB,EAAE,GAAG,KAAK,CAAC,cAAc;IACzB,EAAE,GAAG,KAAK,CAAC,mBAAmB;KAC5B,EAAE,GAAG,QAAQ;KACb,OAAO,OAAO;IAChB;GACF;EACF,CAAC;CACH;CAEA,MAAM,WAAoB,kBAAuD,OAAc,CAAC,GAAG,eAAoD,qBAAwB;EAC7K,OAAO,OAAO,qBAAqB,aAAc,iBAAmD,KAAK,GAAG,IAAuB,IAAI;CACzI;CAEA,MAAM,0BAA0B,UAAsB,mBAA4B,oBAAoB,SAAe;EACnH,IAAI,CAAC,mBAAmB;GACtB,QAAQ,QAAQ;GAChB;EACF;EAGA,MAAM,mBAAmB,iCAAiC,iBAAiB,IAAI;EAE/E,IAAI,SAAS;EAEb,MAAM,WAAW,EAAE,aAA0B;GAC3C,IAAI,WAAW,mBACb;GAGF,SAAS;GACT,kBAAkB,oBAAoB,gBAAgB,OAAO;GAC7D,QAAQ,QAAQ;EAClB;EAEA,kBAAkB,iBAAiB,gBAAgB,OAAO;EAC1D,iBAAiB;GACf,IAAI,CAAC,QACH,qBAAqB,iBAAiB;EAE1C,GAAG,gBAAgB;CACrB;;;;;;;;;;;;;;;CC1OA,MAAM,iBAAiB;CACvB,MAAM,iBAAiB;CACvB,MAAM,gBAAgB;CACtB,MAAM,gBAAwD,CAAC;CAC/D,IAAI,WAAW;CACf,MAAM,eAAuC;EAC3C,YAAY;EACZ,YAAY;CACd;CAEA,MAAM,+BAAe,IAAI,IAAI;EAC3B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;;;;CAMD,SAAS,aAAa,SAAc,KAA+B;EACjE,OAAQ,OAAO,GAAG,IAAI,IAAI,gBAAiB,QAAQ,YAAY;CACjE;CAEA,SAAS,iBAAiB,SAAkE;EAC1F,MAAM,MAAM,aAAa,OAAO;EAEhC,QAAQ,WAAW;EACnB,cAAc,OAAO,cAAc,QAAQ,CAAC;EAE5C,OAAO,cAAc;CACvB;CAMA,SAAS,yBAAyB,OAA6B;EAC7D,MAAM,EAAE,gBAAgB,kBAAkB;EAE1C,OAAO,QAAQ,iBAAiB,eAAe,SAAS,aAAa,CAAC;CACxE;CAEA,SAAS,iBAAiB,SAAkB,IAAmB,kBAA0C;EACvG,MAAM,qBAAqB,oBAAoB;EAE/C,OAAO,SAAS,QAAQ,OAAc;GACpC,MAAM,cAAc,WAAW,OAAO,EAAE,gBAAgB,QAAQ,CAAC;GAEjE,IAAI,sBAAsB,yBAAyB,WAAW,GAC5D;GAGF,IAAK,QAA2B,QAC9B,aAAa,IAAI,SAAS,kBAAkB,EAAE;GAGhD,OAAO,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;EACxC;CACF;CAEA,SAAS,2BAA2B,SAAkB,UAAkB,IAAmB,kBAA0C;EACnI,MAAM,qBAAqB,oBAAoB;EAE/C,OAAO,SAAS,QAAuB,OAAc;GACnD,MAAM,cAAc,QAAQ,iBAAiB,QAAQ;GAErD,KAAK,IAAI,EAAE,WAAW,OAAO,UAAU,WAAW,MAAM,SAAU,OAAgB,YAChF,KAAK,MAAM,cAAc,aAAa;IACpC,IAAI,eAAe,QACjB;IAGF,MAAM,cAAc,WAAW,OAAO,EAAE,gBAAgB,OAAO,CAAC;IAEhE,IAAI,sBAAsB,yBAAyB,WAAW,GAC5D;IAGF,IAAK,QAA2B,QAC9B,aAAa,IAAI,SAAS,kBAAkB,UAAU,EAAE;IAG1D,OAAO,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC;GACvC;EAEJ;CACF;CAEA,SAAS,YAAY,QAAwC,UAAyB,kBAA0B,qBAAoC,MAAkC;EACpL,OAAO,OAAO,OAAO,MAAM,CAAC,CACzB,MAAK,UAAS,MAAM,aAAa,YAAY,MAAM,qBAAqB,oBAAoB,MAAM,uBAAuB,kBAAkB;CAChJ;CAKA,SAAS,oBAAoB,mBAA2B,SAAkC,oBAA0D;EAClJ,MAAM,cAAc,OAAO,YAAY;EAEvC,MAAM,WAAY,cAAc,qBAAsB,WAAW;EAEjE,MAAM,gBAAgB,kBAAkB,QAAQ,gBAAgB,EAAE;EAClE,IAAI,YAAY,aAAa,kBAAkB;EAE/C,IAAI,CAAC,aAAa,IAAI,SAAS,GAC7B,YAAY;EAGd,MAAM,mBAAmB,iBAAiB,eAAe,gBAAgB;EAEzE,OAAO;GACL;GAAa;GAAU;GAAW;EACpC;CACF;CAEA,SAAS,WAAW,SAAkB,mBAA2B,SAAkC,oBAAoC,QAAwB;EAC7J,IAAI,OAAO,sBAAsB,YAAY,CAAC,SAC5C;EAGF,MAAM,EAAE,aAAa,UAAU,WAAW,qBAAqB,oBAAoB,mBAAmB,SAAS,kBAAkB;EACjI,MAAM,SAAS,iBAAiB,OAAO;EACvC,MAAM,WAAW,OAAO,eAAe,OAAO,aAAa,CAAC;EAC5D,MAAM,mBAAmB,YAAY,UAAU,UAAU,kBAAkB,cAAe,UAAqB,IAAI;EAEnH,IAAI,kBAAkB;GACpB,iBAAiB,SAAS,iBAAiB,UAAU;GAErD;EACF;EAEA,MAAM,MAAM,aAAa,UAAU,kBAAkB,QAAQ,gBAAgB,EAAE,CAAC;EAChF,MAAM,KAAK,cACT,2BAA2B,SAAS,SAAmB,UAAU,gBAAgB,IACjF,iBAAiB,SAAS,UAAU,gBAAgB;EAEtD,GAAG,qBAAqB,cAAe,UAAqB;EAC5D,GAAG,WAAW;EACd,GAAG,mBAAmB;EACtB,GAAG,SAAS;EACZ,GAAG,WAAW;EACd,SAAS,OAAO;EAEhB,QAAQ,iBAAiB,WAAW,IAAI,WAAW;CACrD;CAEA,SAAS,cAAc,SAAkB,QAAuB,WAAmB,SAA+B;EAChH,QAAQ,oBAAoB,WAAW,SAAS,QAAQ,QAAQ,kBAAkB,CAAC;EACnF,OAAO,OAAO,UAAU,CAAC,QAAQ;CACnC;CAEA,SAAS,yBAAyB,SAAkB,QAAuB,WAAmB,WAAyB;EACrH,MAAM,oBAAoB,OAAO,cAAc,CAAC;EAEhD,KAAK,MAAM,CAAC,YAAY,UAAU,OAAO,QAAQ,iBAAiB,GAChE,IAAI,WAAW,SAAS,SAAS,GAC/B,cAAc,SAAS,QAAQ,WAAW,KAAK;CAGrD;CAEA,SAAS,aAAa,OAAuB;EAE3C,QAAQ,MAAM,QAAQ,gBAAgB,EAAE;EACxC,OAAO,aAAa,UAAU;CAChC;CAEA,MAAM,eAAe;EACnB,GAAG,SAA6B,OAAe,SAAkC,oBAA0C;GACzH,WAAW,SAAoB,OAAO,SAAS,oBAAoB,KAAK;EAC1E;EAEA,IAAI,SAA6B,OAAe,SAAkC,oBAA0C;GAC1H,WAAW,SAAoB,OAAO,SAAS,oBAAoB,IAAI;EACzE;EAEA,IAAI,SAA6B,mBAA2B,SAAkC,oBAA0C;GACtI,IAAI,OAAO,sBAAsB,YAAY,CAAC,SAC5C;GAGF,MAAM,EAAE,aAAa,UAAU,WAAW,qBAAqB,oBAAoB,mBAAmB,SAAS,kBAAkB;GAGjI,MAAM,cAAc,cAAc,qBAAqB,qBAAqB;GAC5E,MAAM,SAAS,iBAAiB,OAAkB;GAClD,MAAM,oBAAoB,OAAO,cAAc,CAAC;GAChD,MAAM,cAAc,kBAAkB,WAAW,GAAG;GAEpD,IAAI,OAAO,aAAa,aAAa;IAEnC,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC,QAClC;IAGF,MAAM,KAAK,YAAY,mBAAmB,UAAU,kBAAkB,cAAe,UAAqB,IAAI;IAE9G,IAAI,IACF,cAAc,SAAoB,QAAQ,WAAW,EAAE;IAGzD;GACF;GAEA,IAAI,aACF,KAAK,MAAM,gBAAgB,OAAO,KAAK,MAAM,GAC3C,yBAAyB,SAAoB,QAAQ,cAAc,kBAAkB,MAAM,CAAC,CAAC;GAIjG,KAAK,MAAM,CAAC,aAAa,UAAU,OAAO,QAAQ,iBAAiB,GAAG;IACpE,MAAM,aAAa,YAAY,QAAQ,eAAe,EAAE;IAExD,IAAI,MAAM,qBAAqB,qBAAqB,CAAC,eAAe,kBAAkB,SAAS,UAAU,IACvG,cAAc,SAAoB,QAAQ,WAAW,KAAK;GAE9D;EACF;EAEA,QAAQ,SAA6B,OAAe,MAAoD;GACtG,IAAI,OAAO,UAAU,YAAY,CAAC,SAChC,OAAO;GAGT,MAAM,IAAI,UAAU;GAEpB,MAAM,cAAc,UADF,aAAa,KACO;GAEtC,IAAI,cAAc;GAClB,IAAI,UAAU;GACd,IAAI,iBAAiB;GACrB,IAAI,mBAAmB;GAEvB,IAAI,eAAe,GAAG;IACpB,cAAc,EAAE,MAAM,OAAO,IAAI;IAEjC,EAAE,OAAO,CAAC,CAAC,QAAQ,WAAW;IAC9B,UAAU,CAAC,YAAY,qBAAqB;IAC5C,iBAAiB,CAAC,YAAY,8BAA8B;IAC5D,mBAAmB,YAAY,mBAAmB;GACpD;GAEA,MAAM,MAAM,WAAW,IAAI,MAAM,OAAO;IAAE;IAAS,YAAY;GAAK,CAAC,GAAG,IAAI;GAE5E,IAAI,kBACF,IAAI,eAAe;GAGrB,IAAI,gBACF,QAAQ,cAAc,GAAG;GAG3B,IAAI,IAAI,oBAAoB,aAC1B,YAAY,eAAe;GAG7B,OAAO;EACT;CACF;CAEA,SAAS,WAA6B,KAAQ,OAAgC,CAAC,GAA4B;EACzG,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,GAC5C,IAAI;GACF,IAAiC,OAAO;EAC1C,QAAQ;GACN,OAAO,eAAe,KAAK,KAAK;IAC9B,cAAc;IACd,MAAM;KACJ,OAAO;IACT;GACF,CAAC;EACH;EAGF,OAAO;CACT;;;;;;;;;;;;CC7WA,SAAS,cAAc,OAA2C;EAChE,IAAI,UAAU,QACZ,OAAO;EAGT,IAAI,UAAU,SACZ,OAAO;EAGT,IAAI,UAAU,OAAO,KAAK,CAAC,CAAC,SAAS,GACnC,OAAO,OAAO,KAAK;EAGrB,IAAI,UAAU,MAAM,UAAU,QAC5B,OAAO;EAGT,IAAI,OAAO,UAAU,UACnB,OAAO;EAGT,IAAI;GACF,OAAO,KAAK,MAAM,mBAAmB,KAAK,CAAC;EAC7C,QAAQ;GACN,OAAO;EACT;CACF;CAEA,SAAS,iBAAiB,KAAqB;EAC7C,OAAO,IAAI,QAAQ,WAAU,QAAO,IAAI,IAAI,YAAY,GAAG;CAC7D;CAEA,MAAM,cAAc;EAClB,iBAAiB,SAAkB,KAAa,OAAsB;GACpE,QAAQ,aAAa,eAAe,iBAAiB,GAAG,KAAK,KAAe;EAC9E;EAEA,oBAAoB,SAAkB,KAAmB;GACvD,QAAQ,gBAAgB,eAAe,iBAAiB,GAAG,GAAG;EAChE;EAEA,kBAAkB,SAAsD;GACtE,IAAI,CAAC,SACH,OAAO,CAAC;GAGV,MAAM,aAAsC,CAAC;GAC7C,MAAM,aAAa,OAAO,KAAK,QAAQ,OAAO,CAAC,CAAC,QAAO,QAAO,IAAI,WAAW,QAAQ,KAAK,CAAC,IAAI,WAAW,cAAc,CAAC;GAEzH,KAAK,MAAM,OAAO,YAAY;IAC5B,IAAI,UAAU,IAAI,QAAQ,WAAW,EAAE;IACvC,UAAU,QAAQ,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,QAAQ,MAAM,CAAC;IAC3D,WAAW,WAAW,cAAc,QAAQ,QAAQ,IAAI;GAC1D;GAEA,OAAO;EACT;EAEA,iBAAiB,SAAkB,KAAsB;GACvD,OAAO,cAAc,QAAQ,aAAa,eAAe,iBAAiB,GAAG,GAAG,CAAC;EACnF;CACF;;;;;;;;;;;;;;;CC9CA,IAAM,SAAN,MAAa;EAOX,WAAW,UAA2B;GACpC,OAAO,CAAC;EACV;EAEA,WAAW,cAA+B;GACxC,OAAO,CAAC;EACV;EAEA,WAAW,OAAe;GACxB,MAAM,IAAI,MAAM,uEAAqE;EACvF;EAEA,WAAW,QAAkD;GAC3D,SAAS,KAAK,gBAAgB,MAAM;GACpC,SAAS,KAAK,kBAAkB,MAAM;GACtC,KAAK,iBAAiB,MAAM;GAC5B,OAAO;EACT;EAEA,kBAAkB,QAA0C;GAC1D,OAAO;EACT;EAEA,gBAAgB,QAAiC,SAAoC;GACnF,MAAM,aAAa,UAAU,OAAO,IAAI,YAAY,iBAAiB,SAAS,QAAQ,IAAI,CAAC;GAE3F,OAAO;IACL,GAAG,KAAK,YAAY;IACpB,GAAI,OAAO,eAAe,WAAW,aAAa,CAAC;IACnD,GAAI,UAAU,OAAO,IAAI,YAAY,kBAAkB,OAAsB,IAAI,CAAC;IAClF,GAAI,OAAO,WAAW,WAAW,SAAS,CAAC;GAC7C;EACF;EAEA,iBAAiB,QAAyB,cAA+B,KAAK,YAAY,aAAmB;GAC3G,KAAK,MAAM,CAAC,UAAU,kBAAkB,OAAO,QAAQ,WAAW,GAAG;IACnE,MAAM,QAAQ,OAAO;IACrB,MAAM,YAAY,UAAU,KAAK,IAAI,YAAY,OAAO,KAAK;IAE7D,IAAI,CAAC,IAAI,OAAO,aAAa,CAAC,CAAC,KAAK,SAAS,GAC3C,MAAM,IAAI,UACR,GAAG,KAAK,YAAY,KAAK,YAAY,EAAE,YAAY,SAAS,mBAAmB,UAAU,uBAAuB,cAAc,GAChI;GAEJ;EACF;CACF;;;;;;;;;;;;;;;CC3DA,MAAM,UAAU;;;;CAMhB,IAAM,gBAAN,cAA4B,OAAO;EAKjC,YAAY,SAAmC,QAAiC;GAC9E,MAAM;GAEN,UAAU,WAAW,OAAO;GAC5B,IAAI,CAAC,SACH;GAGF,KAAK,WAAW;GAChB,KAAK,UAAU,KAAK,WAAW,MAAM;GAErC,aAAK,IAAI,KAAK,UAAU,KAAK,YAAY,UAAU,IAAI;EACzD;EAGA,UAAgB;GACd,aAAK,OAAO,KAAK,UAAU,KAAK,YAAY,QAAQ;GACpD,aAAa,IAAI,KAAK,UAAU,KAAK,YAAY,SAAS;GAE1D,KAAK,MAAM,gBAAgB,OAAO,oBAAoB,IAAI,GACxD,KAA8B,gBAAgB;EAElD;EAGA,eAAe,UAAsB,SAAkB,aAAa,MAAY;GAC9E,uBAAuB,UAAU,SAAS,UAAU;EACtD;EAEA,WAAoB,QAAkD;GACpE,SAAS,KAAK,gBAAgB,QAAQ,KAAK,QAAQ;GACnD,SAAS,KAAK,kBAAkB,MAAM;GACtC,KAAK,iBAAiB,MAAM;GAC5B,OAAO;EACT;EAGA,OAAO,YAAqD,SAA2D;GACrH,OAAOA,aAAK,IAAI,WAAW,OAAO,GAAG,KAAK,QAAQ;EACpD;EAEA,OAAO,oBAA6D,SAAmC,SAAiC,CAAC,GAAoB;GAC3J,OAAO,KAAK,YAAY,OAAO,KAAM,IAAI,KAAK,SAAS,OAAO,WAAW,WAAW,SAAS,IAAI;EACnG;EAEA,WAAW,UAAkB;GAC3B,OAAO;EACT;EAEA,WAAW,WAAmB;GAC5B,OAAO,UAAU,KAAK;EACxB;EAEA,WAAW,YAAoB;GAC7B,OAAO,IAAI,KAAK;EAClB;EAEA,OAAO,UAAU,MAAsB;GACrC,OAAO,GAAG,OAAO,KAAK;EACxB;CACF;;;CCxDA,MAAM,mBAAmB;CAEzB,MAAM,eAAe,UAAkB,cAAuC;EAC5E,IAAI,UAAU,SAAS,QAAQ,GAC7B,OAAO;EAGT,OAAO,UAAU,SAAS,IAAI,UAAU,KAAK;CAC/C;CAIA,MAAa,mBAAmB,MAAyB,YAAkD;EACzG,IAAI,CAAC,MACH,OAAO;EAGT,MAAM,WAAW,YAAY,KAAK,UAAU,QAAQ,SAAS;EAC7D,IAAI,aAAa,MACf,OAAO;EAGT,MAAM,SAAS,QAAQ,WAAW;EAClC,MAAM,WAAW,KAAK,WAAW,IAC/B,mBACA,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,UAAU,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC;EAE1D,IAAI,YAAY,KAAK,SAAS,GAC5B,OAAO;GAAE,UAAU;GAAkB;EAAS;EAGhD,OAAO;GAAE;GAAU;EAAS;CAC9B;CAIA,MAAa,qBACX,KACA,SACA,SACA,YAC4B;EAC5B,MAAM,EAAE,WAAW,UAAU,UAAU,WAAW,QAAQ;EAC1D,MAAM,cAAc,UAAU,QAAQ,QAAQ,QAAQ;EACtD,IAAI,gBAAgB,MAAM,UAAU,WAAW,GAC7C,OAAO;EAGT,MAAM,UAAU,WAAW;EAC3B,MAAM,aAAa,UAAU,SAAS;EACtC,MAAM,QAAQ,UAAkB,WAAqC,EACnE,MAAM;GAAE;GAAU,UAAU,UAAU;EAAO,EAC/C;EAEA,QAAQ,KAAR;GACE,KAAK,aACH,OAAO,MACL,KAAK,QAAQ,UAAU,KAAK,IAAI,cAAc,GAAG,UAAU,CAAC,IAC5D,KAAK,QAAQ,UAAU,KAAK,IAAI,cAAc,GAAG,CAAC,CAAC;GAGvD,KAAK,cACH,OAAO,MACL,KAAK,QAAQ,UAAU,KAAK,IAAI,cAAc,GAAG,CAAC,CAAC,IACnD,KAAK,QAAQ,UAAU,KAAK,IAAI,cAAc,GAAG,UAAU,CAAC;GAGhE,KAAK,WACH,OAAO,KAAK,KAAK,IAAI,QAAQ,WAAW,GAAG,gBAAgB,GAAG,WAAW;GAG3E,KAAK,aACH,OAAO,KAAK,KAAK,IAAI,QAAQ,WAAW,GAAG,OAAO,GAAG,WAAW;GAGlE,KAAK;IACH,IAAI,SACF,OAAO,KAAK,WAAW,IAAI,IAAI,kBAAkB,CAAC;IAGpD,OAAO,KAAK,QAAQ,UAAU,CAAC;GAGjC,KAAK;IACH,IAAI,SACF,OAAO,KAAK,WAAW,IAAI,UAAU,kBAAkB,UAAU;IAGnE,OAAO,KAAK,QAAQ,UAAU,UAAU;GAG1C,KAAK;IACH,IAAI,aAAa,QAAQ,aAAa,GACpC,OAAO;KAAE,GAAG,KAAK,GAAG,WAAW;KAAG,WAAW;IAAG;IAGlD,OAAO,KAAK,KAAK,IAAI,QAAQ,WAAW,UAAU,CAAC,GAAG,WAAW;GAGnE,KAAK;IACH,IAAI,aAAa,QAAQ,aAAa,SACpC,OAAO;KAAE,GAAG,KAAK,SAAS,WAAW;KAAG,WAAW;IAAE;IAGvD,OAAO,KAAK,KAAK,IAAI,QAAQ,WAAW,UAAU,OAAO,GAAG,WAAW;GAGzE,SACE,OAAO;EAEX;CACF;CAaA,MAAa,2BAA2B,aAA4C;EAClF,IAAI,UAA6B;EACjC,IAAI,iBAAiB;EAErB,OAAO;GACL,WAAW;GACX,IAAI,MAAM,UAAU,CAAC,GAAG;IACtB,MAAM,UAAU,CAAC,WAAW,QAAQ,aAAa,KAAK,YAAY,QAAQ,aAAa,KAAK;IAC5F,UAAU;IACV,IAAI,QAAQ,OACV,iBAAiB;IAGnB,IAAI,WAAW,QAAQ,OACrB,SAAS;GAEb;GACA,MAAM,SAAS;IACb,MAAM,OAAO,gBAAgB,SAAS,OAAO;IAC7C,MAAM,UAAU,QAAQ,OAAO,MAAM,QAAQ,IAAI,KAC9C,WAAW,SAAS,QAAQ,aAAa,KAAK,YAAY,QAAQ,aAAa,KAAK;IACvF,UAAU;IACV,IAAI,SACF,SAAS;GAEb;GACA,QAAQ;IACN,IAAI,SAAS;KACX,UAAU;KACV,iBAAiB;KACjB,SAAS;IACX;GACF;GACA,sBAAsB;IACpB,IAAI,CAAC,gBACH,OAAO;IAGT,iBAAiB;IACjB,OAAO;GACT;EACF;CACF;;;CChMA,MAAM,oBAAoB;CAkB1B,MAAa,oBAAoB,YAAmD;EAClF,IAAI,YAAY;EAChB,IAAI;EAEJ,OAAO;GACL,OAAO;IACL,aAAa,OAAO;IAGpB,MAAM,KAAK,EAAE;IACb,UAAU,WAAW,YAAY;KAC/B,QAAQ,gBAAgB,IAAI;KAE5B,IAAI;MACF,MAAM,UAAU,QAAQ,WAAW;MACnC,MAAM,WAAW,MAAM,QAAQ,SAAS,OAAO;MAC/C,IAAI,OAAO,WACT;MAGF,QAAQ,OAAO,UAAU,OAAO;KAClC,SAAS,OAAO;MACd,IAAI,OAAO,WACT;MAGF,QAAQ,QAAQ,KAAK;KACvB,UAAU;MACR,IAAI,OAAO,WACT,QAAQ,gBAAgB,KAAK;KAEjC;IACF,GAAG,iBAAiB;GACtB;GACA,UAAU;IACR,aAAa,OAAO;IACpB;GACF;EACF;CACF;;;CCpDA,MAAM,YAAY;CAClB,MAAM,gBAAgB;CAEtB,MAAM,mBAAmB;CA4BzB,MAAM,UAAU,SACb,UAAU,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,MAAM,MAAI,EAAE,KAAK;CAE5D,MAAa,0BAA0B,OAAuB,YAAuC;EACnG,MAAM,EAAE,SAAS,MAAM,YAAY;EAEnC,OAAO,MACJ,uBAAuB,CAAC,CACxB,KAAI,WAAU;GACb,MAAM,QAAkB,CAAC;GACzB,KAAK,IAAI,WAAW,OAAO,aAAa,YAAY,OAAO,aAAa,YAAY;IAClF,MAAM,MAAM,KAAK;IACjB,IAAI,CAAC,KACH;IAGF,MAAM,QAAkB,CAAC;IACzB,KAAK,IAAI,cAAc,OAAO,gBAAgB,eAAe,OAAO,gBAAgB,eAAe;KACjG,MAAM,SAAS,QAAQ;KACvB,IAAI,CAAC,QACH;KAGF,MAAM,QAAQ,IAAI,SAAS,OAAO,EAAE;KAGpC,MAAM,KAAK,OAAO,OAAO,YAAY,OAAO,UAAU,OAAO,IAAI,QAAQ,IAAI,OAAO,SAAS,EAAE,CAAC,CAAC;IACnG;IAEA,MAAM,KAAK,MAAM,KAAK,SAAS,CAAC;GAClC;GAEA,OAAO,MAAM,KAAK,aAAa;EACjC,CAAC,CAAC,CACD,QAAO,WAAU,WAAW,EAAE,CAAC,CAC/B,KAAK,gBAAgB;CAC1B;CAEA,MAAa,oBAAoB,OAAO,OAAuB,YAAgD;EAC7G,MAAM,OAAO,uBAAuB,OAAO,OAAO;EAClD,IAAI,SAAS,IACX,OAAO;EAGT,IAAI;GACF,MAAM,UAAU,UAAU,UAAU,IAAI;EAC1C,QAAQ;GAKN,MAAM,WAAW,SAAS,cAAc,UAAU;GAClD,SAAS,QAAQ;GACjB,SAAS,aAAa,eAAe,MAAM;GAC3C,SAAS,MAAM,WAAW;GAC1B,SAAS,MAAM,UAAU;GACzB,SAAS,KAAK,OAAO,QAAQ;GAC7B,SAAS,OAAO;GAChB,IAAI;IACF,SAAS,YAAY,MAAM;GAC7B,UAAU;IACR,SAAS,OAAO;GAClB;EACF;EAEA,OAAO;CACT;;;CChGA,MAAM,wBAAwB;CA4B9B,MAAM,aAAa,UAAkC;EACnD,IAAI,OAAO,MAAM,sBAAsB,YACrC,OAAO,MAAM,kBAAkB,CAAC,CAAC;EAGnC,IAAI,OAAO,MAAM,wBAAwB,YACvC,OAAO,MAAM,oBAAoB,CAAC,CAAC;EAGrC,OAAO,MAAM,gBAAgB,CAAC,CAAC;CACjC;CAEA,MAAa,oBACX,OACA,SACA,UAAwB,CAAC,MACT;EAChB,MAAM,OAAO,SAAS,cAAc,KAAK;EACzC,KAAK,YAAY;EAEjB,IAAI,QAAQ,OAAO;GACjB,MAAM,UAAU,SAAS,cAAc,IAAI;GAC3C,QAAQ,cAAc,QAAQ;GAC9B,KAAK,OAAO,OAAO;EACrB;EAEA,MAAM,eAAe,SAAS,cAAc,OAAO;EACnD,aAAa,UAAU,IAAI,OAAO;EAElC,MAAM,OAAO,SAAS,cAAc,OAAO;EAC3C,MAAM,UAAU,SAAS,cAAc,IAAI;EAC3C,KAAK,MAAM,UAAU,SAAS;GAC5B,MAAM,OAAO,SAAS,cAAc,IAAI;GACxC,KAAK,QAAQ;GACb,KAAK,cAAc,OAAO;GAC1B,QAAQ,OAAO,IAAI;EACrB;EAEA,KAAK,OAAO,OAAO;EAEnB,MAAM,OAAO,SAAS,cAAc,OAAO;EAC3C,KAAK,MAAM,OAAO,UAAU,KAAK,GAAG;GAClC,MAAM,aAAa,SAAS,cAAc,IAAI;GAC9C,KAAK,MAAM,UAAU,SAAS;IAC5B,MAAM,OAAO,SAAS,cAAc,IAAI;IACxC,MAAM,QAAQ,IAAI,SAAS,OAAO,EAAE;IAIpC,KAAK,cAAc,OAAO,YAAY,OAAO,UAAU,OAAO,IAAI,QAAQ,IAAI,OAAO,SAAS,EAAE;IAChG,WAAW,OAAO,IAAI;GACxB;GAEA,KAAK,OAAO,UAAU;EACxB;EAEA,aAAa,OAAO,MAAM,IAAI;EAC9B,KAAK,OAAO,YAAY;EAExB,OAAO;CACT;CAEA,MAAa,aAAa,OAAmB,SAAwB,UAAwB,CAAC,MAAY;EACxG,MAAM,OAAO,iBAAiB,OAAO,SAAS,OAAO;EACrD,SAAS,KAAK,OAAO,IAAI;EAKzB,MAAM,gBAAgB;GACpB,KAAK,OAAO;GACZ,OAAO,oBAAoB,cAAc,OAAO;EAClD;EAEA,OAAO,iBAAiB,cAAc,OAAO;EAE7C,IAAI;GACF,OAAO,MAAM;EACf,UAAU;GACR,QAAQ;EACV;CACF;;;;;;;;;CC1GA,MAAM,mBAAmB;CACzB,MAAM,uBAAuB;CAC7B,MAAM,sBAAsB;CAC5B,MAAM,yBAAyB;CAC/B,MAAM,qBAAqB;CAC3B,MAAM,0BAA0B;CAIhC,MAAM,iBAAiB;CAIvB,MAAM,kBAAkB;CAGxB,MAAM,YAAY;CAClB,MAAM,iBAAiB;CAEvB,MAAM,eAAe;CAGrB,MAAM,2BAA2B;CAuDjC,MAAM,YAAY,SAAyB,KAAK,QAAQ,QAAQ,GAAG,CAAC,CAAC,KAAK;CAI1E,MAAM,oBAAoB,MAAc,QAAgB,UACrD,SAAS,OAAQ,QAAQ,SAAS,SAAS,IAAM,QAAQ,SAAS,IAAI;CAEzE,MAAM,gBAAgB,UAAiB;EACrC,MAAM,eAAe;EACrB,MAAM,gBAAgB;CACxB;CAEA,MAAM,2BAA2B;EAC/B,SAAS,oBAAoB,SAAS,cAAc,EAAE,SAAS,KAAK,CAAC;CACvE;CAKA,MAAM,mBAAmC,EAAE,UAAU,CAAC,EAAE;CAExD,MAAa,wBAAwB,YAAmD;EACtF,IAAI,OAAO,aAAa,aACtB,OAAO;EAGT,MAAM,EAAE,MAAM,SAAS;EACvB,MAAM,aAAa,SAAS;EAE5B,IAAI,YAA4B;EAChC,IAAI,WAAW;EAWf,IAAI,WAAW;EACf,IAAI,SAAS;GAAE,GAAG;GAAG,GAAG;EAAE;EAC1B,IAAI,UAAU;GAAE,GAAG;GAAG,GAAG;EAAE;EAC3B,IAAI,OAAwB;EAC5B,IAAI,QAA4B;EAChC,IAAI,YAAgC;EACpC,IAAI,cAAc;EAClB,IAAI,YAAY;EAChB,IAAI,aAAa;EAEjB,IAAI,SAA4C;EAIhD,MAAM,gCAAgB,IAAI,IAAoB;EAG9C,MAAM,iCAAiB,IAAI,IAAY;EAIvC,MAAM,gCAAgB,IAAI,IAAoB;EAC9C,MAAM,+BAAe,IAAI,IAAoB;EAI7C,MAAM,gBAAgB,SAA0B;GAC9C,IAAI,CAAC,YACH,OAAO,KAAK;GAGd,OAAO,aAAa,IAAI,KAAK,OAAO,CAAC,KAAK;EAC5C;EAEA,MAAM,uBAAgC,aAAa,QAAQ,IAAI,WAAW,QAAQ;EAElF,MAAM,uBAAuB;GAC3B,IAAI,aAAa;IACf,qBAAqB,WAAW;IAChC,cAAc;GAChB;EACF;EAEA,MAAM,mBAAmB;GACvB,cAAc;GACd,MAAM,gBAAgB,QAAQ,iBAAiB;GAC/C,IAAI,CAAC,iBAAiB,CAAC,UACrB;GAGF,MAAM,OAAO,cAAc,sBAAsB;GACjD,MAAM,WAAW,aAAa,QAAQ,IAAI,QAAQ;GAClD,MAAM,QAAQ,aAAa,KAAK,OAAO,KAAK;GAC5C,MAAM,MAAM,aAAa,KAAK,QAAQ,KAAK;GAI3C,IAAI,QAAQ;GACZ,IAAI,WAAW,QAAQ,WACrB,QAAQ,MAAkB,KAAK,IAAI,IAAI,QAAQ,YAAY,YAAY,SAAS;QAC3E,IAAI,WAAW,MAAM,WAC1B,QAAQ,iBAAiB,KAAK,IAAI,IAAI,YAAY,MAAM,cAAc,SAAS;GAGjF,IAAI,UAAU,GAAG;IACf,IAAI,YACF,cAAc,cAAc;SAE5B,cAAc,aAAa;IAK7B,aAAa;IACb,cAAc,sBAAsB,UAAU;GAChD;EACF;EAIA,MAAM,kBAAkB;GACtB,IAAI,OACF,MAAM,MAAM,YAAY,aAAa,QAAQ,IAAI,aAAa,MAAM,QAAQ,IAAI,aAAa;EAEjG;EAEA,MAAM,sBAAsB;GAC1B,IAAI,WACF,UAAU,SAAS;EAEvB;EAEA,MAAM,iBAAiB,QAAqB,UAAmB;GAC7D,IAAI,CAAC,WACH;GAGF,MAAM,OAAO,OAAO,sBAAsB;GAC1C,MAAM,WAAW,KAAK,sBAAsB;GAC5C,UAAU,SAAS;GACnB,IAAI,YAAY;IAEd,MAAM,WAAW,WAAW,aAAa;IACzC,UAAU,MAAM,OAAO,GAAG,WAAW,KAAK,QAAQ,KAAK,KAAK;IAC5D,UAAU,MAAM,MAAM,GAAG,SAAS,IAAI;IACtC,UAAU,MAAM,SAAS,GAAG,SAAS,OAAO;GAC9C,OAAO;IACL,UAAU,MAAM,OAAO,GAAG,SAAS,KAAK;IACxC,UAAU,MAAM,MAAM,GAAG,QAAQ,KAAK,SAAS,KAAK,IAAI;IACxD,UAAU,MAAM,QAAQ,GAAG,SAAS,MAAM;GAC5C;EACF;EAEA,MAAM,kBAAkB;GACtB,WAAW;GACX,WAAW,cAAc,iBAAiB,IAAI,CAAC,CAAC,cAAc,QAAQ,KAAK;GAQ3E,MAAM,SAAS,SAAS;GACxB,IAAI,kBAAkB,eAAe,KAAK,SAAS,MAAM,GACvD,OAAO,KAAK;GAGd,KAAK,UAAU,IAAI,sBAAsB;GACzC,UAAW,QAAQ,UAAU,IAAI,mBAAmB;GAEpD,MAAM,OAAO,UAAW,QAAQ,sBAAsB;GACtD,QAAQ,SAAS,cAAc,KAAK;GACpC,MAAM,YAAY;GAClB,MAAM,aAAa,eAAe,MAAM;GACxC,MAAM,MAAM,QAAQ,GAAG,KAAK,MAAM;GAClC,MAAM,MAAM,SAAS,GAAG,KAAK,OAAO;GACpC,MAAM,cAAc,QAAQ,aAC1B,QAAQ,WAAW,SAAU,IAC7B,SAAS,UAAW,QAAQ,eAAe,EAAE;GAM/C,IAAI,CAAC,QAAQ,SAAS;IACpB,YAAY,SAAS,cAAc,KAAK;IACxC,UAAU,YAAY,GAAG,qBAAqB,GAAG,qBAAqB,GAAG;IACzE,UAAU,aAAa,eAAe,MAAM;IAC5C,UAAU,SAAS;IACnB,KAAK,OAAO,SAAS;GACvB;GAEA,KAAK,OAAO,KAAK;GACjB,UAAU;GACV,cAAc;EAChB;EAaA,MAAM,sBAA8B;GAClC,MAAM,gBAAgB,QAAQ,iBAAiB;GAC/C,IAAI,CAAC,eACH,OAAO;GAGT,MAAM,OAAO,cAAc,sBAAsB;GAGjD,OAAO,aACL,aAAa,IAAI,IAAK,WAAW,cAAc,aAC/C,KAAK,MAAM,cAAc;EAC7B;EAEA,MAAM,eAAe,IAAY,WAA4B;GAC3D,MAAM,UAAU,QAAQ,MAAM,YAAY,EAAE,CAAC,CAAC;GAC9C,IAAI,CAAC,SACH,OAAO;GAGT,MAAM,OAAO,QAAQ,sBAAsB;GAG3C,MAAM,QAAQ,aAAa,IAAI,KAAK,cAAc,IAAI,EAAE,KAAK;GAC7D,cAAc,IAAI,IAAI,QAAQ,MAAM;GACpC,aAAa,IAAI,IAAI,aAAa,KAAK,QAAQ,KAAK,MAAM;GAC1D,OAAO;EACT;EAEA,MAAM,sBAAsB;GAC1B,cAAc,MAAM;GACpB,aAAa,MAAM;GACnB,MAAM,SAAS,cAAc;GAC7B,KAAK,MAAM,MAAM,QAAQ,MAAM,cAAc,GAC3C,YAAY,IAAI,MAAM;EAE1B;EAEA,MAAM,qBAAqB;GACzB,MAAM,WAAW,eAAe;GAChC,MAAM,SAAS,cAAc;GAE7B,MAAM,QAA4D,CAAC;GACnE,KAAK,MAAM,MAAM,QAAQ,MAAM,cAAc,GAAG;IAC9C,IAAI,CAAC,cAAc,IAAI,EAAE,KAAK,CAAC,YAAY,IAAI,MAAM,GACnD;IAGF,MAAM,KAAK;KAAE;KAAI,OAAO,SAAS,cAAc,IAAI,EAAE;KAAI,MAAM,aAAa,IAAI,EAAE;IAAG,CAAC;GACxF;GAEA,IAAI,MAA6C;GACjD,MAAM,WAAW,MAAM,MAAM,SAAS;GACtC,MAAM,YAAY,MAAM,WAAU,SAAQ,KAAK,OAAO,UAAW,EAAE;GAEnE,IAAI,YAAY,WAAW,SAAS,QAAQ,SAAS,MAAM;IAIzD,SAAS;IACT,KAAK,IAAI,QAAQ,MAAM,SAAS,GAAG,SAAS,GAAG,SAC7C,IAAI,QAAQ,QAAQ,UAAW,IAAI,MAAM,MAAM,CAAC,EAAE,GAAG;KACnD,MAAM;MAAE,IAAI,MAAM,MAAM,CAAC;MAAI,OAAO;KAAK;KACzC;IACF;GAEJ,OAAO,IAAI,YAAY,WAAW,MAAM,EAAE,CAAC,OAAO;IAChD,SAAS;IACT,KAAK,MAAM,QAAQ,OACjB,IAAI,QAAQ,QAAQ,UAAW,IAAI,KAAK,EAAE,GAAG;KAC3C,MAAM;MAAE,IAAI,KAAK;MAAI,OAAO;KAAM;KAClC;IACF;GAEJ,OAAO,IAAI,QAAQ,UAAU,YAAY,OAAO,KAAK,mBAAmB,YAAY,OAAO,KAAK,iBAG9F,MAAM;QAEN,KAAK,IAAI,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS;IACjD,MAAM,OAAO,MAAM;IACnB,MAAM,WAAW,MAAM,QAAQ;IAC/B,MAAM,YAAY,MAAM,QAAQ;IAMhC,MAAM,KAAK,YAAY,SAAS,QAAQ,SAAS,OAAO,KAAK,SAAS,IAAI,KAAK;IAC/E,MAAM,KAAK,aAAa,KAAK,QAAQ,KAAK,OAAO,UAAU,SAAS,IAAI,KAAK,QAAQ,KAAK;IAC1F,IAAI,WAAW,MAAM,WAAW,IAC9B;IAGF,IAAI,QAAQ,QAAQ,UAAW,IAAI,KAAK,EAAE,GAAG;KAM3C,MAAM;MACJ,IAAI,KAAK;MACT,OAAO,cAAc,KAAK,WAAW,KAAK,QAAS,KAAK,OAAO,IAAK,QAAQ;KAC9E;KACA,SAAS;MAAE;MAAI;KAAG;IACpB;IAEA;GACF;GAGF,IAAI,CAAC,KAAK;IACR,OAAO;IACP,SAAS;IACT,cAAc;IACd,aAAa;IACb;GACF;GAEA,OAAO;GACP,cAAc,QAAQ,MAAM,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK;GAC7D,aAAa;EACf;EAEA,MAAM,qBAAqB;GACzB,KAAK,MAAM,MAAM,gBACf,KAAK,MAAM,WAAW,QAAQ,MAAM,YAAY,EAAE,GAAG;IACnD,QAAQ,MAAM,YAAY;IAC1B,QAAQ,UAAU,OAAO,kBAAkB;GAC7C;GAGF,aAAa;GACb,cAAc,MAAM;GACpB,eAAe,MAAM;EACvB;EAEA,MAAM,oBAAoB;GACxB,cAAc,MAAM;GACpB,aAAa,MAAM;EACrB;EAEA,MAAM,qBAAqB;GACzB,IAAI,CAAC,QAAQ,WAAW,CAAC,WACvB;GAGF,MAAM,MAAM,QAAQ,MAAM,cAAc;GACxC,MAAM,OAAO,IAAI,QAAQ,UAAU,EAAE;GACrC,MAAM,SAAS,OAAO,IAAI,QAAQ,KAAK,EAAE,IAAI;GAC7C,MAAM,KAAK,SAAS,MAAM,WAAW,KAAK,OAAO,iBAAiB,MAAM,QAAQ,KAAM,KAAK;GAQ3F,MAAM,MAAM,OAAO,EAAE;GACrB,IAAI,QAAQ,YACV;GAGF,aAAa;GAEb,MAAM,uBAAO,IAAI,IAAoB;GACrC,IAAI,SAAS,MAAM,OAAO,MAAM;IAG9B,MAAM,UAAU,UAA0B,aAAa,IAAI,IAAI,MAAM,KAAK;IAC1E,MAAM,UAAU,KAAK;IACrB,MAAM,QAAQ,UAAU,OAAO,IAAI;IACnC,MAAM,OAAO,UAAU,KAAK,OAAO;IACnC,MAAM,aAAa,OAAO,IAAI;IAC9B,IAAI,YAAY;IAEhB,KAAK,IAAI,QAAQ,OAAO,SAAS,MAAM,SAAS;KAC9C,aAAa,OAAO,KAAK;KACzB,KAAK,IAAI,IAAI,QAAQ,UAAU,CAAC,aAAa,UAAU;IACzD;IAIA,KAAK,IAAI,IAAI,OAAO,UAAU,YAAY,CAAC,SAAS;GACtD;GAMA,KAAK,MAAM,MAAM,cAAc,KAAK,GAClC,IAAI,CAAC,KAAK,IAAI,EAAE,GACd,KAAK,MAAM,WAAW,QAAQ,MAAM,YAAY,EAAE,GAChD,QAAQ,MAAM,YAAY;GAKhC,KAAK,MAAM,CAAC,IAAI,UAAU,MAAM;IAC9B,IAAI,cAAc,IAAI,EAAE,MAAM,OAC5B;IAGF,KAAK,MAAM,WAAW,QAAQ,MAAM,YAAY,EAAE,GAAG;KACnD,QAAQ,MAAM,YAAY,aACxB,cAAc,WAAW,MAAM,OAC/B,cAAc,MAAM;KACtB,QAAQ,UAAU,IAAI,kBAAkB;IAC1C;IAEA,eAAe,IAAI,EAAE;GACvB;GAEA,cAAc,MAAM;GACpB,KAAK,MAAM,CAAC,IAAI,UAAU,MACxB,cAAc,IAAI,IAAI,KAAK;EAE/B;EAKA,MAAM,eAAe,GAAW,MAAc;GAC5C,IAAI,CAAC,OACH;GAGF,MAAM,UAAU;GAEhB,QAAQ;GACR,QAAQ,UAAU,IAAI,uBAAuB;GAC7C,QAAQ,MAAM,YAAY,aAAa,EAAE,MAAM,EAAE;GACjD,QAAQ,MAAM,UAAU;GAExB,IAAI,UAAU;GACd,MAAM,eAAe;IACnB,IAAI,CAAC,SAAS;KACZ,UAAU;KACV,QAAQ,OAAO;IACjB;GACF;GAEA,QAAQ,iBAAiB,iBAAiB,MAAM;GAChD,WAAW,QAAQ,wBAAwB;EAC7C;EAKA,MAAM,gBAAgB,cAAwD;GAC5E,IAAI,CAAC,WACH,OAAO;GAGT,MAAM,OAAO,UAAU,QAAQ,sBAAsB;GACrD,IAAI,WACF,OAAO;IAAE,GAAG,KAAK;IAAM,GAAG,KAAK;GAAI;GAGrC,MAAM,QAAQ,cAAc,IAAI,UAAU,EAAE,KAAK;GACjD,OAAO,aACL;IAAE,GAAG,KAAK,OAAQ,WAAW;IAAQ,GAAG,KAAK;GAAI,IACjD;IAAE,GAAG,KAAK;IAAM,GAAG,KAAK,MAAM;GAAM;EACxC;EAEA,MAAM,gBAAgB;GACpB,aAAa;GACb,YAAY;GACZ,eAAe;GACf,KAAK,UAAU,OAAO,sBAAsB;GAC5C,WAAW,QAAQ,UAAU,OAAO,mBAAmB;GACvD,OAAO,OAAO;GACd,WAAW,OAAO;GAClB,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,WAAW;GACX,OAAO;GACP,SAAS;GACT,YAAY;GACZ,SAAS,oBAAoB,eAAe,aAAa;GACzD,SAAS,oBAAoB,aAAa,WAAW;GACrD,SAAS,oBAAoB,iBAAiB,MAAM;GACpD,SAAS,oBAAoB,WAAW,SAAS;EACnD;EAEA,SAAS,SAAS;GAChB,IAAI,UAAU;IACZ,MAAM,OAAO,aAAa,KAAK;IAC/B,IAAI,MACF,YAAY,KAAK,GAAG,KAAK,CAAC;GAE9B;GAEA,QAAQ;EACV;EAEA,SAAS,UAAU,OAAsB;GACvC,IAAI,MAAM,QAAQ,UAAU;IAC1B,MAAM,eAAe;IACrB,OAAO;GACT;EACF;EAEA,SAAS,cAAc,OAAqB;GAC1C,IAAI,MAAM,cAAc,aAAa,CAAC,WACpC;GAGF,UAAU;IAAE,GAAG,MAAM;IAAS,GAAG,MAAM;GAAQ;GAE/C,IAAI,CAAC,UAAU;IAEb,IADkB,KAAK,IAAI,KAAK,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,QAAQ,IAAI,OAAO,CAAC,CAC5E,IAAI,gBACd;IAGF,UAAU;GACZ;GAIA,MAAM,eAAe;GACrB,UAAU;GACV,aAAa;GAEb,IAAI,CAAC,aACH,cAAc,sBAAsB,UAAU;EAElD;EAEA,SAAS,YAAY,OAAqB;GACxC,IAAI,MAAM,cAAc,WACtB;GAGF,MAAM,WAAW,WAAW;GAC5B,MAAM,SAAS,WAAW;GAC1B,MAAM,UAAU;GAChB,MAAM,cAAc;GACpB,IAAI,aAAa;IACf,MAAM,YAAY,QAAQ,WAAW,QAAQ,OAAO,QAAQ;IAC5D,MAAM,UAAU,aAAa,SAAS;IACtC,IAAI,SACF,YAAY,QAAQ,GAAG,QAAQ,CAAC;GAEpC;GAEA,QAAQ;GAER,IAAI,CAAC,aACH;GAQF,IAAI,QAAQ,SAAS,MAAM,MAAc,GAAG;IAC1C,SAAS,iBAAiB,SAAS,cAAc;KAAE,SAAS;KAAM,MAAM;IAAK,CAAC;IAC9E,WAAW,oBAAoB,CAAC;GAClC;GAEA,IAAI,YAAY,WAAW,QAAQ,OAAO,UACxC,QAAQ,OAAO,UAAU,OAAO;EAEpC;EAEA,MAAM,iBAAiB,UAAwB;GAG7C,IAAI,CAAC,MAAM,aAAc,MAAM,gBAAgB,WAAW,MAAM,WAAW,KAAM,WAC/E;GAGF,MAAM,UAAW,MAAM,QAA+B,QAAqB,QAAQ,MAAM;GACzF,IAAI,CAAC,SACH;GAGF,MAAM,MAAM,QAAQ,cAAc,SAAS,MAAM,MAAqB;GACtE,IAAI,CAAC,KACH;GAGF,YAAY;GACZ,YAAY,MAAM;GAClB,SAAS;IAAE,GAAG,MAAM;IAAS,GAAG,MAAM;GAAQ;GAC9C,UAAU;GAEV,SAAS,iBAAiB,eAAe,aAAa;GACtD,SAAS,iBAAiB,aAAa,WAAW;GAClD,SAAS,iBAAiB,iBAAiB,MAAM;GACjD,SAAS,iBAAiB,WAAW,SAAS;EAChD;EAEA,KAAK,iBAAiB,eAAe,aAAa;EAElD,OAAO,EACL,UAAU;GACR,KAAK,oBAAoB,eAAe,aAAa;GACrD,mBAAmB;GACnB,QAAQ;EACV,EACF;CACF;CAEA,MAAM,4BAA4B;CAClC,MAAMC,qBAAmB;CAGzB,MAAM,wBAAwB;CAM9B,MAAM,eAAe,UAAkC;EACrD,qBACE,CAAC,GAAG,KAAK,iBAAuC,6CAA6C,CAAC,CAAC,CAC5F,KAAI,SAAQ,KAAK,QAAQ,gBAAgB,EAAE;EAChD,YAAY,IAAI;GACd,MAAM,SAAS,KAAK,cAAoC,gCAAgC,GAAG,GAAG;GAC9F,IAAI,CAAC,QACH,OAAO,CAAC;GAGV,MAAM,EAAE,cAAc;GACtB,MAAM,WAA0B,CAAC;GACjC,KAAK,MAAM,OAAO,KAAK,iBAAsC,qBAAqB,GAAG;IACnF,MAAM,OAAO,IAAI,SAAS;IAC1B,IAAI,MACF,SAAS,KAAK,IAAI;GAEtB;GAEA,OAAO;EACT;CACF;CAaA,MAAa,8BAA8B,YACzC,qBAAqB;EACnB,MAAM;EACN,MAAM,QAAQ;EACd,QAAQ;EACR,kBAAkB,QAAQ;EAC1B,cAAc,SAAS,QAAQ;GAE7B,IAAI,OAAO,QAAQA,kBAAgB,GACjC,OAAO;GAGT,MAAM,KAAK,QAAQ,QAAQ;GAC3B,OAAO,KAAK;IAAE;IAAI;GAAQ,IAAI;EAChC;EACA,OAAO,YAAY,QAAQ,IAAI;EAG/B,UAAU,UAAU,aAClB,aAAa,YACb,QAAQ,QAAQ,KAAK,cAAc,0BAA0B,SAAS,0BAA0B,CAAC,KACjG,QAAQ,QAAQ,UAAU,QAAQ;EACpC,SAAS;EACT,SAAS,WAAW,SAAS,QAAQ,UAAU,WAAW,KAAK,IAAI,KAAK,KAAK;CAC/E,CAAC;CAEH,MAAM,sBAAsB;CAC5B,MAAM,eAAe;CAErB,MAAM,YAAY,UAAkC;EAClD,qBACE,CAAC,GAAG,KAAK,iBAA8B,SAAS,cAAc,CAAC,CAAC,CAAC,KAAI,QAAO,IAAI,QAAQ,eAAe,EAAE;EAC3G,YAAY,IAAI;GACd,MAAM,MAAM,KAAK,cAA2B,+BAA+B,GAAG,GAAG;GACjF,OAAO,MAAM,CAAC,GAAG,IAAI,CAAC;EACxB;CACF;CAWA,MAAa,2BAA2B,YACtC,qBAAqB;EACnB,MAAM;EACN,MAAM,QAAQ;EACd,QAAQ;EACR,kBAAkB,QAAQ;EAC1B,cAAc,QAAQ;GACpB,MAAM,MAAM,OAAO,QAAqB,YAAY;GACpD,MAAM,KAAK,KAAK,QAAQ;GACxB,OAAO,OAAO,KAAK;IAAE;IAAI,SAAS;GAAI,IAAI;EAC5C;EACA,OAAO,SAAS,QAAQ,IAAI;EAC5B,UAAU,UAAU,aAAa,aAAa;EAO9C,aAAY,WACV,SACE,OAAO,QAAQ,cACb,gEACF,CAAC,EAAE,eAAe,EACpB;EACF,SAAS;EACT,SAAS,UAAU,SAAS,QAAQ,UAAU,OAAO,QAAQ,GAAG,OAAO,KAAK,EAAE,GAAG,KAAK,KAAK;CAC7F,CAAC;;;CCnzBH,MAAa,mBAAmB,UAAiC;EAC/D,IAAI,YAAY;EAChB,IAAI,WAAW;EAEf,MAAM,YAAY;GAChB,YAAY;GACZ,IAAI,CAAC,UACH,MAAM;EAEV;EAEA,OAAO;GACL,WAAW;IACT,IAAI,aAAa,UACf;IAGF,YAAY;IACZ,IAAI,OAAO,OAAO,0BAA0B,YAAY;KACtD,OAAO,sBAAsB,GAAG;KAChC;IACF;IAEA,WAAW,KAAK,EAAE;GACpB;GACA,UAAU;IACR,WAAW;GACb;EACF;CACF;;;;;;;;CCnCA,SAAS,iBAAiB,SAAS,OAAO;EACzC,OAAO,OAAO,YAAY,aAAa,QAAQ,KAAK,IAAI;CACzD;;;;;;CAMA,SAAS,WAAW,OAAO;EAC1B,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,IAAI,UAAU;EACrD,IAAI,SAAS,OAAO,UAAU,UAAU;GACvC,MAAM,QAAQ,OAAO,eAAe,KAAK;GACzC,IAAI,UAAU,OAAO,aAAa,UAAU,MAAM,OAAO;GACzD,MAAM,OAAO,UAAU,OAAO,cAAc,IAAI,CAAC;GACjD,MAAM,OAAO,OAAO,KAAK,KAAK;GAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;IACrC,MAAM,MAAM,KAAK;IACjB,OAAO,eAAe,MAAM,KAAK;KAChC,cAAc;KACd,YAAY;KACZ,OAAO,WAAW,MAAM,IAAI;KAC5B,UAAU;IACX,CAAC;GACF;GACA,OAAO;EACR;EACA,OAAO;CACR;;;;;;CAMA,SAAS,mCAAmC,QAAQ,QAAQ;EAC3D,MAAM,OAAO,OAAO,KAAK,MAAM;EAC/B,MAAM,eAAe;EACrB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACrC,MAAM,MAAM,KAAK;GACjB,IAAI,CAAC,IAAI,WAAW,QAAQ,KAAK,QAAQ,eAAe,aAAa,OAAO,OAAO;EACpF;EACA,OAAO;CACR;;;;;;;CAOA,SAAS,gBAAgB;EACxB,OAAO,OAAO,OAAO,IAAI;CAC1B;;;;CAIA,SAAS,OAAO,KAAK,KAAK;EACzB,OAAO,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG;CACrD;;;;;;CAMA,SAAS,iBAAiB,KAAK,UAAU;EACxC,QAAQ,YAAY;GACnB,CAAC,SAAS,QAAQ,QAAQ,QAAQ,SAAS,UAAU,KAAA,CAAM,KAAK,QAAQ,iBAAiB,SAAS,GAAG,CAAC;EACvG;CACD;;;;CAIA,SAAS,WAAW,GAAG;EACtB,OAAO,aAAa;CACrB;;;;;;CAMA,SAAS,UAAU,KAAK,aAAa;EACpC,MAAM,OAAO,CAAC;EACd,MAAM,WAAW,WAAW;GAC3B,OAAO,SAAS,SAAS;IACxB,KAAK,KAAK,IAAI;IACd,MAAM,WAAW,YAAY,IAAI;IACjC,IAAI,SAAS,QAAQ,QAAQ,QAAQ;GACtC,CAAC;EACF;EACA,QAAQ,GAAG;EACX,OAAO;CACR;;;;;;CAMA,MAAMC,UAAQ,EAAE,IAAI,UAAU,gBAAgB,eAAe,iBAAiB,qBAAqB;EAClG,IAAI,OAAO,CAAC;EACZ,IAAI;EACJ,MAAM,cAAc,YAAY;GAC/B,kBAAkB;GAClB,MAAM,UAAU,WAAW,OAAO;GAClC,IAAI,cAAc,CAAC,WAAW,QAAQ,WAAW,MAAM;GACvD,IAAI,CAAC,eAAe,SACd;SAAA,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,IAAI,QAAQ,OAAO,KAAK,IAAI;KACpE,cAAc;KACd;IACD;;GAED,iBAAiB,WAAW;GAC5B,IAAI,CAAC,aAAa,OAAO;GACzB,OAAO;GACP,iBAAiB;GACjB,SAAS,GAAG,GAAG,WAAW,CAAC,CAAC;GAC5B,gBAAgB,MAAM;GACtB,OAAO;EACR;EACA,OAAO;CACR;;;;;;;;;CASA,SAAS,aAAa,IAAI;EACzB,IAAI,SAAS;EACb,aAAa;GACZ,IAAI,CAAC,QAAQ;IACZ,SAAS;IACT;GACD;GACA,GAAG;EACJ;CACD;;;;;;CAWA,SAAS,UAAU,EAAE,SAAS,QAAQ,UAAU,eAAe,OAAO,GAAG,eAAe;EAyBvF,MAAM,6BAA6B;GAClC,IAAI,CAAC,eAAe;GACpB,MAAM,EAAE,UAAU,YAAY,MAAM;GACpC,eAAe,cAAc,cAAc,CAAC,CAAC;EAC9C;EACA,MAAM,eAaF,EAAE,qBAAqB;GAC1B,qBAAqB;EACtB,EAAE;EACF,OAAOA,OAAK;GACX,GAAG;GACH,GAAG;EACJ,CAAC;CACF;;;;CAIA,SAAS,oBAAoB,cAAc,UAAU,KAAK;EACzD,MAAM,CAAC,YAAY,SAAS,aAAa,MAAM,OAAO;EACtD,OAAO;GACN;GACA,QAAQ,GAAG,WAAW,GAAG;GACzB;EACD;CACD;;;;;CAKA,SAAS,gBAAgB,SAAS,OAAO,MAAM;EAC9C,KAAK,MAAM,CAAC,cAAc,EAAE,IAAI,eAAe,OAAO,QAAQ,IAAI,GAAG;GACpE,MAAM,EAAE,OAAO,WAAW,oBAAoB,YAAY;GAC1D,MAAM,SAAS,WAAW,UAAU;IACnC;IACA;IACA;IACA;IACA;GACD,CAAC,IAAI;EACN;CACD;;;;;;;;CAQA,SAAS,oBAAoB,SAAS,WAAW,OAAO,MAAM;EAC7D,KAAK,MAAM,CAAC,cAAc,EAAE,IAAI,eAAe,OAAO,QAAQ,IAAI,GAAG;GACpE,MAAM,EAAE,OAAO,WAAW,oBAAoB,YAAY;GAC1D,IAAI,UAAU;IACb,MAAM,UAAU,SAAS;IACzB,UAAU,SAAS,SAAS,GAAG,MAAM;KACpC,IAAI,CAAC,KAAK,UAAU;MACnB,MAAM,OAAO;MACb,KAAK,WAAW,UAAU;OACzB,WAAW,YAAY,SAAS,MAAM,OAAO;OAC7C,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;OACjC;OACA,UAAU,KAAK;OACf;OACA;MACD,CAAC;KACF;KACA,OAAO,KAAK,QAAQ,CAAC,GAAG,IAAI;IAC7B;GACD,OAAO,UAAU,SAAS,SAAS,GAAG,MAAM;IAC3C,OAAO,GAAG,MAAM,GAAG,IAAI;GACxB;EACD;CACD;;;;CAIA,SAAS,mBAAmB,KAAK,OAAO,UAAU,GAAG,MAAM;EAC1D,OAAO,IAAI,MAAM,GAAG,GAAG,IAAI,KAAK,SAAS,KAAK,GAAG,IAAI;CACtD;;;;;;;;;;;;;;CC9PA,SAAS,cAAc,MAAM;EAC5B,OAAO,KAAK,IAAI,SAAS,KAAK,OAAO,EAAE;CACxC;;;;;;;;;;;;CAYA,SAAS,iBAAiB,MAAM;EAC/B,OAAO,KAAK,SAAS,KAAK,KAAK,MAAM,QAAQ;CAC9C;;;;;;;;;;;;CAYA,SAAS,gBAAgB,MAAM;EAC9B,OAAO;GACN,OAAO,KAAK;GACZ,QAAQ,KAAK;GACb,KAAK,KAAK;GACV;GACA,gBAAgB,KAAK,SAAS;GAC9B,mBAAmB,KAAK,YAAY;EACrC;CACD;;;;;;CC1CA,MAAM,mBAAmB,EAAE,sBAAsB,WAAW,UAAU;EACrE,oBAAoB,oBAAoB,WAAW,OAAO;GACzD,eAAe,EAAE,KAAK,SAAS,cAAc,IAAI,EAAE;GACnD,kBAAkB,EAAE,KAAK,SAAS,iBAAiB,IAAI,EAAE;GACzD,iBAAiB;IAChB,KAAK,SAAS,gBAAgB,IAAI;IAClC,WAAW,SAAS,CAAC,IAAI;GAC1B;EACD,CAAC;CACF,EAAE;;;;;;;CCXF,SAAS,mBAAmB,OAAO;EAClC,IAAI,CAAC,MAAM,kBAAkB;GAC5B,MAAM,mBAAmB,EAAE,MAAM;GACjC,MAAM,WAAW,OAAO,OAAO,MAAM,SAAS;GAC9C,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,SAAS,EAAE,CAAC,wBAAwB,MAAM,kBAAkB,KAAK;EAC5G;EACA,OAAO,MAAM;CACd;;;;;;CAMA,SAAS,gBAAgB,OAAO,QAAQ,SAAS;EAChD,MAAM,kBAAkB,mBAAmB,KAAK;EAChD,MAAM,SAAS,OAAO,OAAO,eAAe;EAC5C,OAAO,UAAU;EACjB,OAAO,SAAS;EAChB,OAAO,QAAQ,QAAQ;EACvB,OAAO,cAAc;EACrB,OAAO,KAAK,QAAQ,MAAM,OAAO;EACjC,OAAO,QAAQ,QAAQ;EACvB,OAAO,gBAAgB,CAAC,CAAC,QAAQ;EACjC,OAAO,gBAAgB,QAAQ;EAC/B,OAAO,UAAU;EACjB,OAAO,aAAa,CAAC;EACrB,MAAM,UAAU,MAAM;EACtB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,QAAQ,EAAE,CAAC,MAAM;EAC1D,OAAO;CACR;;;;;;;;;;;;;;CClBA,SAAS,+BAA+B;EACvC,OAAO;GACN,OAAO,CAAC;GACR,KAAK,CAAC;EACP;CACD;;;;;;;;;;;;;;;;;CAiBA,SAAS,WAAW,QAAQ,UAAU;EACrC,MAAM,cAAc,OAAO,eAAe;EAC1C,MAAM,YAAY,CAAC;EACnB,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;GAC5C,MAAM,KAAK,YAAY,EAAE,CAAC;GAC1B,IAAI,IAAI,UAAU,KAAK,EAAE;EAC1B;EACA,uBAAuB,OAAO,QAAQ,QAAQ;GAC7C,IAAI,aAAa,OAAO,OAAO;IAC9B,OAAO,IAAI,MAAM,QAAQ,MAAM,CAAC,UAAU,SAAS,CAAC,CAAC;IACrD,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,MAAM,CAAC,UAAU,SAAS,CAAC,CAAC,GAAG,GAAG,SAAS;GACrE;GACA,IAAI,aAAa,SAAS,OAAO;IAChC,OAAO,CAAC,GAAG,IAAI,MAAM,QAAQ,MAAM,CAAC,UAAU,SAAS,CAAC,CAAC,GAAG,GAAG,SAAS;IACxE,KAAK,IAAI,IAAI,QAAQ,MAAM,CAAC,UAAU,SAAS,CAAC,CAAC;GAClD;GACA,OAAO;IACN,OAAO,IAAI,MAAM,QAAQ,MAAM,CAAC,UAAU,SAAS,CAAC,CAAC;IACrD,KAAK,IAAI,IAAI,QAAQ,MAAM,CAAC,UAAU,SAAS,CAAC,CAAC;GAClD;EACD,CAAC;CACF;;;;;;;;;;;;CAYA,SAAS,iBAAiB,QAAQ;EACjC,OAAO,OAAO,eAAe,CAAC,CAAC,MAAM,gBAAgB,WAAW,UAAU,iBAAiB,UAAU,OAAO,MAAM,QAAQ,uBAAuB,KAAK;CACvJ;;;;;;;;;;;;;;;;CAgBA,SAAS,mBAAmB,QAAQ;EACnC,MAAM,cAAc,OAAO,eAAe;EAC1C,MAAM,EAAE,OAAO,QAAQ,OAAO,MAAM,MAAM,eAAe,IAAI,KAAK,6BAA6B;EAC/F,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK,IAAI,MAAM,SAAS,YAAY,EAAE,CAAC,EAAE,GAAG,OAAO;EAC3F,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK,IAAI,IAAI,SAAS,YAAY,EAAE,CAAC,EAAE,GAAG,OAAO;EACzF,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,sBAAsB,QAAQ;EACtC,MAAM,WAAW,mBAAmB,MAAM;EAC1C,OAAO,WAAW,OAAO,MAAM,MAAM,eAAe,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,OAAO,EAAE,KAAK,KAAK;CAClG;;;;;;;;;;;CAWA,SAAS,0BAA0B,KAAK;EACvC,MAAM,WAAW,mBAAmB,KAAK,mBAAmB,mBAAmB;EAC/E,MAAM,EAAE,OAAO,QAAQ,IAAI,MAAM,MAAM,eAAe,IAAI,KAAK,6BAA6B;EAC5F,IAAI,CAAC,MAAM,UAAU,CAAC,IAAI,QAAQ,OAAO;EACzC,MAAM,cAAc,CAAC,GAAG,OAAO,GAAG,GAAG;EACrC,OAAO,SAAS,QAAQ,MAAM,CAAC,YAAY,SAAS,EAAE,OAAO,EAAE,CAAC;CACjE;;;;;;;;;;;;CAYA,SAAS,yBAAyB,KAAK;EACtC,MAAM,EAAE,UAAU,IAAI,MAAM,MAAM,eAAe,IAAI,KAAK,6BAA6B;EACvF,IAAI,CAAC,MAAM,QAAQ,OAAO,CAAC;EAC3B,MAAM,kBAAkB,mBAAmB,KAAK,6BAA6B,6BAA6B;EAC1G,MAAM,QAAQ,CAAC;EACf,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACtC,MAAM,OAAO,gBAAgB,MAAM;GACnC,IAAI,MAAM;IACT,KAAK,WAAW;IAChB,MAAM,KAAK,IAAI;GAChB;EACD;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,uBAAuB,KAAK;EACpC,MAAM,EAAE,QAAQ,IAAI,MAAM,MAAM,eAAe,IAAI,KAAK,6BAA6B;EACrF,IAAI,CAAC,IAAI,QAAQ,OAAO,CAAC;EACzB,MAAM,kBAAkB,mBAAmB,KAAK,6BAA6B,6BAA6B;EAC1G,MAAM,QAAQ,CAAC;EACf,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;GACpC,MAAM,OAAO,gBAAgB,IAAI;GACjC,IAAI,MAAM;IACT,KAAK,WAAW;IAChB,MAAM,KAAK,IAAI;GAChB;EACD;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,uBAAuB,OAAO,SAAS;EAC/C,MAAM,QAAQ,wBAAwB,OAAO;CAC9C;;;;;;;;;;;;;;CAcA,SAAS,yBAAyB,OAAO,cAAc;EACtD,uBAAuB,OAAO,eAAe,6BAA6B,IAAI,WAAW,MAAM,aAAa,iBAAiB,6BAA6B,CAAC,CAAC;CAC7J;;;;;;;;;;;;CAYA,SAAS,6BAA6B,OAAO,UAAU;EACtD,MAAM,eAAe,MAAM,MAAM,eAAe,IAAI;EACpD,IAAI,CAAC,UAAU,OAAO,QAAQ,cAAc,MAAM,UAAU,cAAc,IAAI,MAAM;EACpF,OAAO,QAAQ,eAAe,SAAS,CAAC,MAAM;CAC/C;;;;;;;;;;;;CAYA,SAAS,2BAA2B,OAAO;EAC1C,MAAM,aAAa,MAAM,cAAc;EACvC,MAAM,kBAAkB,MAAM,sBAAsB;EACpD,MAAM,EAAE,UAAU,MAAM,MAAM,eAAe,IAAI,KAAK,6BAA6B;EACnF,MAAM,qBAAqB,CAAC;EAC5B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACtC,MAAM,SAAS,gBAAgB,MAAM;GACrC,IAAI,UAAU,mBAAmB,QAAQ,gBAAgB,mBAAmB,GAAG,mBAAmB,KAAK,MAAM;EAC9G;EACA,OAAO,kBAAkB,YAAY,oBAAoB,OAAO,OAAO;CACxE;;;;;;;;;;;;CAYA,SAAS,yBAAyB,OAAO;EACxC,MAAM,aAAa,MAAM,cAAc;EACvC,MAAM,kBAAkB,MAAM,sBAAsB;EACpD,MAAM,EAAE,QAAQ,MAAM,MAAM,eAAe,IAAI,KAAK,6BAA6B;EACjF,MAAM,qBAAqB,CAAC;EAC5B,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;GACpC,MAAM,SAAS,gBAAgB,IAAI;GACnC,IAAI,UAAU,mBAAmB,QAAQ,gBAAgB,mBAAmB,GAAG,mBAAmB,KAAK,MAAM;EAC9G;EACA,OAAO,kBAAkB,YAAY,oBAAoB,OAAO,KAAK;CACtE;;;;;;;;;;;;CAYA,SAAS,4BAA4B,OAAO;EAC3C,MAAM,aAAa,MAAM,cAAc;EACvC,IAAI,cAAc,mBAAmB,OAAO,yBAAyB,2BAA2B;EAChG,MAAM,EAAE,OAAO,QAAQ,MAAM,MAAM,eAAe,IAAI,KAAK,6BAA6B;EACxF,IAAI,MAAM,UAAU,IAAI,QAAQ;GAC/B,MAAM,cAAc,CAAC,GAAG,OAAO,GAAG,GAAG;GACrC,cAAc,YAAY,QAAQ,WAAW,CAAC,YAAY,SAAS,OAAO,EAAE,CAAC;EAC9E;EACA,OAAO,kBAAkB,YAAY,aAAa,OAAO,QAAQ;CAClE;;;;;;;;;;;CAWA,SAAS,2BAA2B,OAAO;EAC1C,OAAO,CAAC,GAAG,mBAAmB,OAAO,wBAAwB,0BAA0B,CAAC,CAAC,CAAC,QAAQ;CACnG;;;;;;;;;;;CAWA,SAAS,yBAAyB,OAAO;EACxC,OAAO,CAAC,GAAG,mBAAmB,OAAO,sBAAsB,wBAAwB,CAAC,CAAC,CAAC,QAAQ;CAC/F;;;;;;;;;;;CAWA,SAAS,4BAA4B,OAAO;EAC3C,OAAO,CAAC,GAAG,mBAAmB,OAAO,yBAAyB,2BAA2B,CAAC,CAAC,CAAC,QAAQ;CACrG;;;;;;;;;;;CAWA,SAAS,0BAA0B,OAAO;EACzC,MAAM,mBAAmB,mBAAmB,OAAO,wBAAwB,0BAA0B;EACrG,MAAM,SAAS,CAAC;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;GACjD,MAAM,UAAU,iBAAiB,EAAE,CAAC;GACpC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,OAAO,KAAK,QAAQ,EAAE;EAChE;EACA,OAAO;CACR;;;;;;;;;;;CAWA,SAAS,wBAAwB,OAAO;EACvC,MAAM,oBAAoB,mBAAmB,OAAO,sBAAsB,wBAAwB;EAClG,MAAM,SAAS,CAAC;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,kBAAkB,QAAQ,KAAK;GAClD,MAAM,UAAU,kBAAkB,EAAE,CAAC;GACrC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,OAAO,KAAK,QAAQ,EAAE;EAChE;EACA,OAAO;CACR;;;;;;;;;;;CAWA,SAAS,2BAA2B,OAAO;EAC1C,MAAM,qBAAqB,mBAAmB,OAAO,yBAAyB,2BAA2B;EACzG,MAAM,SAAS,CAAC;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,mBAAmB,QAAQ,KAAK;GACnD,MAAM,UAAU,mBAAmB,EAAE,CAAC;GACtC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,OAAO,KAAK,QAAQ,EAAE;EAChE;EACA,OAAO;CACR;;;;;;;;;;;CAWA,SAAS,0BAA0B,OAAO;EACzC,OAAO,mBAAmB,OAAO,uBAAuB,yBAAyB,CAAC,CAAC,QAAQ,WAAW,CAAC,OAAO,WAAW,MAAM;CAChI;;;;;;;;;;;CAWA,SAAS,wBAAwB,OAAO;EACvC,OAAO,mBAAmB,OAAO,qBAAqB,uBAAuB,CAAC,CAAC,QAAQ,WAAW,CAAC,OAAO,WAAW,MAAM;CAC5H;;;;;;;;;;;CAWA,SAAS,2BAA2B,OAAO;EAC1C,OAAO,mBAAmB,OAAO,wBAAwB,0BAA0B,CAAC,CAAC,QAAQ,WAAW,CAAC,OAAO,WAAW,MAAM;CAClI;;;;;;;;;;;;CAYA,SAAS,0BAA0B,OAAO;EACzC,MAAM,EAAE,UAAU,MAAM,MAAM,eAAe,IAAI,KAAK,6BAA6B;EACnF,MAAM,kBAAkB,MAAM,sBAAsB;EACpD,MAAM,SAAS,CAAC;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACtC,MAAM,SAAS,gBAAgB,MAAM;GACrC,IAAI,QAAQ,OAAO,KAAK,MAAM;EAC/B;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,wBAAwB,OAAO;EACvC,MAAM,EAAE,QAAQ,MAAM,MAAM,eAAe,IAAI,KAAK,6BAA6B;EACjF,MAAM,kBAAkB,MAAM,sBAAsB;EACpD,MAAM,SAAS,CAAC;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;GACpC,MAAM,SAAS,gBAAgB,IAAI;GACnC,IAAI,QAAQ,OAAO,KAAK,MAAM;EAC/B;EACA,OAAO;CACR;;;;;;;;;;;CAWA,SAAS,2BAA2B,OAAO;EAC1C,MAAM,EAAE,OAAO,QAAQ,MAAM,MAAM,eAAe,IAAI,KAAK,6BAA6B;EACxF,IAAI,CAAC,MAAM,UAAU,CAAC,IAAI,QAAQ,OAAO,MAAM,kBAAkB;EACjE,MAAM,cAAc,CAAC,GAAG,OAAO,GAAG,GAAG;EACrC,OAAO,MAAM,kBAAkB,CAAC,CAAC,QAAQ,MAAM,CAAC,YAAY,SAAS,EAAE,EAAE,CAAC;CAC3E;;;;;;;;;;;;CAYA,SAAS,2BAA2B,OAAO,UAAU;EACpD,OAAO,CAAC,WAAW,MAAM,kBAAkB,IAAI,aAAa,UAAU,mBAAmB,OAAO,uBAAuB,yBAAyB,IAAI,aAAa,QAAQ,mBAAmB,OAAO,qBAAqB,uBAAuB,IAAI,mBAAmB,OAAO,wBAAwB,0BAA0B;CAChU;;;;;;;;;;;CAWA,SAAS,iCAAiC,OAAO;EAChD,OAAO,mBAAmB,OAAO,uBAAuB,yBAAyB,CAAC,CAAC,QAAQ,WAAW,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAAC;CACtK;;;;;;;;;;;CAWA,SAAS,+BAA+B,OAAO;EAC9C,OAAO,mBAAmB,OAAO,qBAAqB,uBAAuB,CAAC,CAAC,QAAQ,WAAW,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAAC;CAClK;;;;;;;;;;;;CAYA,SAAS,kCAAkC,OAAO;EACjD,OAAO,mBAAmB,OAAO,wBAAwB,0BAA0B,CAAC,CAAC,QAAQ,WAAW,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAAC;CACxK;;;;;;;;;;;;CAYA,SAAS,kCAAkC,OAAO,UAAU;EAC3D,OAAO,CAAC,WAAW,mBAAmB,OAAO,yBAAyB,2BAA2B,IAAI,aAAa,UAAU,mBAAmB,OAAO,8BAA8B,gCAAgC,IAAI,aAAa,QAAQ,mBAAmB,OAAO,4BAA4B,8BAA8B,IAAI,mBAAmB,OAAO,+BAA+B,iCAAiC;CACha;;;;;;;;;;;;;;CCthBA,SAAS,kCAAkC;EAC1C,OAAO,cAAc;CACtB;;;;;;;;;;;;;;CAcA,SAAS,wBAAwB,QAAQ,SAAS;EACjD,IAAI,kBAAkB,MAAM,GAAG,0BAA0B,OAAO,QAAQ,QAAQ;GAC/E,MAAM,OAAO,OAAO,OAAO,cAAc,GAAG,GAAG;GAC/C,MAAM,cAAc,WAAW,CAAC,mBAAmB,QAAQ,gBAAgB,mBAAmB;GAC9F,MAAM,cAAc,OAAO,eAAe;GAC1C,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;IAC5C,MAAM,aAAa,YAAY;IAC/B,IAAI,kBAAkB,UAAU,GAAG,KAAK,WAAW,MAAM;GAC1D;GACA,OAAO;EACR,CAAC;CACF;;;;;;;;;;;;;CAaA,SAAS,oBAAoB,QAAQ;EACpC,MAAM,mBAAmB,OAAO,MAAM,MAAM,kBAAkB,IAAI;EAClE,IAAI,CAAC,kBAAkB,OAAO;EAC9B,MAAM,eAAe,OAAO;EAC5B,IAAI,aAAa,QAAQ,OAAO,aAAa,MAAM,gBAAgB,mBAAmB,aAAa,gBAAgB,mBAAmB,CAAC;EACvI,QAAQ,OAAO,kBAAkB,OAAO,EAAE,IAAI,iBAAiB,OAAO,MAAM,KAAK,MAAM;CACxF;;;;;;;;;;;CAWA,SAAS,kBAAkB,QAAQ;EAClC,QAAQ,OAAO,UAAU,gBAAgB,UAAU,OAAO,MAAM,QAAQ,gBAAgB;CACzF;;;;;;;;;;;;CAYA,SAAS,kCAAkC,QAAQ;EAClD,QAAQ,MAAM;GACb,wBAAwB,QAAQ,EAAE,OAAO,OAAO;EACjD;CACD;;;;;;;;;;;;CAYA,SAAS,oBAAoB,KAAK;EACjC,MAAM,WAAW,IAAI,YAAY;EACjC,MAAM,eAAe,CAAC;EACtB,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;GACzC,MAAM,OAAO,SAAS;GACtB,IAAI,mBAAmB,KAAK,QAAQ,gBAAgB,mBAAmB,GAAG,aAAa,KAAK,IAAI;EACjG;EACA,MAAM,EAAE,OAAO,QAAQ,IAAI,MAAM,MAAM,eAAe,IAAI,KAAK,6BAA6B;EAC5F,IAAI,CAAC,MAAM,UAAU,CAAC,IAAI,QAAQ,OAAO;EACzC,MAAM,yBAAyB,mBAAmB,KAAK,6BAA6B,6BAA6B;EACjH,MAAM,aAAa,CAAC;EACpB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACtC,MAAM,OAAO,uBAAuB,MAAM;GAC1C,IAAI,MAAM,WAAW,KAAK,IAAI;EAC/B;EACA,MAAM,WAAW,CAAC;EAClB,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;GACpC,MAAM,OAAO,uBAAuB,IAAI;GACxC,IAAI,MAAM,SAAS,KAAK,IAAI;EAC7B;EACA,MAAM,cAAc,CAAC;EACrB,KAAK,IAAI,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;GAC7C,MAAM,OAAO,aAAa;GAC1B,MAAM,KAAK,KAAK,OAAO;GACvB,IAAI,CAAC,MAAM,SAAS,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,GAAG,YAAY,KAAK,IAAI;EACpE;EACA,OAAO;GACN,GAAG;GACH,GAAG;GACH,GAAG;EACJ;CACD;;;;;;;;;;;CAWA,SAAS,8BAA8B,KAAK;EAC3C,MAAM,SAAS,cAAc;EAC7B,MAAM,WAAW,IAAI,YAAY;EACjC,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;GACzC,MAAM,OAAO,SAAS;GACtB,IAAI,mBAAmB,KAAK,QAAQ,gBAAgB,mBAAmB,GAAG,OAAO,KAAK,OAAO,MAAM;EACpG;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,4BAA4B,OAAO;EAC3C,OAAO,MAAM,kBAAkB,CAAC,CAAC,QAAQ,WAAW,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAAC;CACpH;;;;;;;;;;;;CAYA,SAAS,4BAA4B,OAAO;EAC3C,OAAO,MAAM,kBAAkB,CAAC,CAAC,QAAQ,WAAW,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAAC;CACpH;;;;;;;;;;;;CAYA,SAAS,0BAA0B,OAAO,SAAS;EAClD,MAAM,QAAQ,2BAA2B,OAAO;CACjD;;;;;;;;;;;;;CAaA,SAAS,4BAA4B,OAAO,cAAc;EACzD,0BAA0B,OAAO,eAAe,cAAc,IAAI,OAAO,OAAO,cAAc,GAAG,WAAW,MAAM,aAAa,oBAAoB,CAAC,CAAC,CAAC,CAAC;CACxJ;;;;;;;;;;;CAWA,SAAS,8BAA8B,OAAO,OAAO;EACpD,QAAQ,SAAS,CAAC,6BAA6B,KAAK;EACpD,MAAM,aAAa,cAAc;EACjC,MAAM,cAAc,MAAM,kBAAkB;EAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;GAC5C,MAAM,SAAS,YAAY;GAC3B,WAAW,OAAO,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,IAAI;EAC/D;EACA,0BAA0B,OAAO,UAAU;CAC5C;;;;;;;;;;;;CAYA,SAAS,6BAA6B,OAAO;EAC5C,OAAO,CAAC,MAAM,kBAAkB,CAAC,CAAC,MAAM,WAAW,CAAC,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAAC;CACpH;;;;;;;;;;;CAWA,SAAS,8BAA8B,OAAO;EAC7C,OAAO,MAAM,kBAAkB,CAAC,CAAC,MAAM,WAAW,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAAC;CAClH;;;;;;;;;;;;CAYA,SAAS,2CAA2C,OAAO;EAC1D,QAAQ,MAAM;GACb,8BAA8B,OAAO,EAAE,OAAO,OAAO;EACtD;CACD;;;CC3QA,SAAS,kBAAkB,SAAS,QAAQ,GAAG;EAC9C,IAAI,WAAW;EACf,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;GACxC,MAAM,SAAS,QAAQ;GACvB,IAAI,mBAAmB,QAAQ,gBAAgB,mBAAmB,KAAK,OAAO,QAAQ,QAAQ,WAAW,KAAK,IAAI,UAAU,kBAAkB,OAAO,SAAS,QAAQ,CAAC,CAAC;EACzK;EACA,OAAO;CACR;CACA,SAAS,oBAAoB,cAAc,OAAO;EACjD,OAAO,eAAe,GAAG,aAAa,GAAG,UAAU,OAAO,KAAK;CAChE;CACA,SAAS,eAAe,cAAc,OAAO,UAAU,eAAe;EACrE,IAAI,KAAK,gBAAgB;EACzB,IAAI,OAAO,KAAK,KAAK,GAAG,GAAG,GAAG,UAAU,OAAO,KAAK;EACpD,IAAI,UAAU,KAAK,KAAK,GAAG,GAAG,GAAG,aAAa;EAC9C,IAAI,eAAe,KAAK,KAAK,GAAG,GAAG,GAAG,kBAAkB;EACxD,OAAO;CACR;CACA,SAAS,6BAA6B,SAAS,QAAQ;EACtD,IAAI,QAAQ;EACZ,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,IAAI,QAAQ,EAAE,CAAC,WAAW,QAAQ;EAC3E,OAAO;CACR;CACA,SAAS,qBAAqB,gBAAgB,OAAO,OAAO,cAAc,cAAc,oBAAoB;EAC3G,MAAM,cAAc;GACnB;GACA,IAAI,oBAAoB,cAAc,KAAK;GAC3C,SAAS,CAAC;EACX;EACA,MAAM,uBAAuB,CAAC;EAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAK;GAC/C,IAAI,EAAE,KAAK,iBAAiB;GAC5B,MAAM,gBAAgB,eAAe;GACrC,MAAM,4BAA4B,qBAAqB,qBAAqB,SAAS;GACrF,MAAM,eAAe,cAAc,OAAO,UAAU,YAAY;GAChE,IAAI;GACJ,IAAI,gBAAgB;GACpB,IAAI,gBAAgB,cAAc,OAAO,QAAQ,SAAS,cAAc,OAAO;QAC1E;IACJ,SAAS,cAAc;IACvB,gBAAgB;GACjB;GACA,IAAI,6BAA6B,0BAA0B,WAAW,QAAQ,0BAA0B,WAAW,KAAK,aAAa;QAChI;IACJ,MAAM,SAAS,gBAAgB,OAAO,QAAQ;KAC7C,IAAI,eAAe,cAAc,OAAO,OAAO,IAAI,cAAc,EAAE;KACnE;KACA,eAAe,gBAAgB,OAAO,6BAA6B,sBAAsB,MAAM,CAAC,IAAI,KAAK;KACzG;KACA,OAAO,qBAAqB;IAC7B,CAAC;IACD,OAAO,WAAW,KAAK,aAAa;IACpC,qBAAqB,KAAK,MAAM;GACjC;GACA,YAAY,QAAQ,KAAK,aAAa;GACtC,cAAc,cAAc;EAC7B;EACA,KAAK,IAAI,IAAI,GAAG,IAAI,mBAAmB,QAAQ,KAAK,mBAAmB,EAAE,CAAC,WAAW;EACrF,aAAa,KAAK,WAAW;EAC7B,IAAI,QAAQ,GAAG,qBAAqB,sBAAsB,QAAQ,GAAG,OAAO,cAAc,cAAc,kBAAkB;CAC3H;CACA,SAAS,kBAAkB,SAAS;EACnC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;GACxC,MAAM,SAAS,QAAQ;GACvB,IAAI,CAAC,mBAAmB,OAAO,QAAQ,gBAAgB,mBAAmB,GAAG;GAC7E,IAAI,UAAU;GACd,IAAI,OAAO,WAAW,QAAQ;IAC7B,kBAAkB,OAAO,UAAU;IACnC,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,WAAW,QAAQ,KAAK;KAClD,MAAM,QAAQ,OAAO,WAAW;KAChC,IAAI,CAAC,mBAAmB,MAAM,QAAQ,gBAAgB,mBAAmB,GAAG;KAC5E,WAAW,MAAM;IAClB;GACD,OAAO,UAAU;GACjB,OAAO,UAAU;GACjB,IAAI,OAAO,iBAAiB,OAAO,WAAW,WAAW,KAAK,OAAO,WAAW,EAAE,CAAC,WAAW,OAAO,QAAQ;IAC5G,IAAI,UAAU;IACd,IAAI,aAAa,OAAO,WAAW;IACnC,OAAO,YAAY;KAClB,WAAW,UAAU;KACrB;KACA,aAAa,WAAW,WAAW,WAAW,KAAK,WAAW,WAAW,EAAE,CAAC,WAAW,OAAO,SAAS,WAAW,WAAW,KAAK,KAAK;IACxI;IACA,OAAO,UAAU;GAClB,OAAO,OAAO,UAAU;EACzB;CACD;;;;;;CAMA,SAAS,kBAAkB,YAAY,gBAAgB,OAAO,cAAc;EAC3E,MAAM,WAAW,kBAAkB,UAAU;EAC7C,MAAM,eAAe,CAAC;EACtB,MAAM,qBAAqB,MAAM;EACjC,MAAM,gBAAgB,IAAI,MAAM,eAAe,MAAM;EACrD,KAAK,IAAI,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAK;GAC/C,IAAI,EAAE,KAAK,iBAAiB;GAC5B,cAAc,KAAK,gBAAgB,OAAO,eAAe,IAAI;IAC5D,OAAO;IACP,OAAO;GACR,CAAC;EACF;EACA,qBAAqB,eAAe,WAAW,GAAG,OAAO,cAAc,cAAc,kBAAkB;EACvG,aAAa,QAAQ;EACrB,kBAAkB,aAAa,EAAE,EAAE,WAAW,CAAC,CAAC;EAChD,OAAO;CACR;;;;;;;CC5GA,SAAS,mBAAmB,OAAO;EAClC,IAAI,CAAC,MAAM,kBAAkB;GAC5B,MAAM,mBAAmB,EAAE,MAAM;GACjC,MAAM,WAAW,OAAO,OAAO,MAAM,SAAS;GAC9C,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,SAAS,EAAE,CAAC,wBAAwB,MAAM,kBAAkB,KAAK;EAC5G;EACA,OAAO,MAAM;CACd;;;;;;CAMA,SAAS,gBAAgB,OAAO,WAAW,OAAO,QAAQ;EACzD,MAAM,oBAAoB;GACzB,GAAG,MAAM,oBAAoB;GAC7B,GAAG;EACJ;EACA,MAAM,cAAc,kBAAkB;EACtC,MAAM,oBAAoB,gBAAgB,KAAK,IAAI,KAAK,IAAI,OAAO,WAAW;EAC9E,MAAM,KAAK,kBAAkB,MAAM,mBAAmB,WAAW,KAAK,GAAG,MAAM,OAAO,kBAAkB,WAAW,WAAW,kBAAkB,SAAS,KAAK;EAC9J,IAAI;EACJ,IAAI,kBAAkB,YAAY,aAAa,kBAAkB;OAC5D,IAAI,gBAAgB,KAAK,GAAG,IAAI,OAAO,gBAAgB,YAAY,YAAY,SAAS,GAAG,GAAG;GAClG,MAAM,OAAO,YAAY,MAAM,GAAG;GAClC,cAAc,gBAAgB;IAC7B,IAAI,SAAS;IACb,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;KACrC,MAAM,MAAM,KAAK;KACjB,SAAS,SAAS;IAEnB;IACA,OAAO;GACR;EACD,OAAO,cAAc,gBAAgB,YAAY,kBAAkB;EACnE,IAAI,CAAC,IAEJ,MAAM,IAAI,MAAM;EAEjB,MAAM,kBAAkB,mBAAmB,KAAK;EAChD,MAAM,SAAS,OAAO,OAAO,eAAe;EAC5C,OAAO,aAAa;EACpB,OAAO,YAAY;EACnB,OAAO,UAAU,CAAC;EAClB,OAAO,QAAQ;EACf,OAAO,KAAK,GAAG,OAAO,EAAE;EACxB,OAAO,SAAS;EAChB,MAAM,UAAU,MAAM;EACtB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,QAAQ,EAAE,CAAC,MAAM;EAC1D,OAAO;CACR;;;;;;;;;;;;;;CCxCA,SAAS,6BAA6B;EACrC,OAAO,CAAC;CACT;;;;;;;;;;;;CAYA,SAAS,uBAAuB,OAAO;EACtC,MAAM,gBAAgB,YAAY;GACjC,MAAM,UAAU,cAAc;GAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,EAAE,CAAC,MAAM;GAClE,OAAO;EACR;EACA,OAAO;GACN,KAAK,aAAa,kCAAkC,KAAK,CAAC;GAC1D,QAAQ,aAAa,kCAAkC,OAAO,QAAQ,CAAC;GACvE,OAAO,aAAa,kCAAkC,OAAO,OAAO,CAAC;GACrE,KAAK,aAAa,kCAAkC,OAAO,KAAK,CAAC;EAClE;CACD;;;;;;;;;;;;CAYA,SAAS,gBAAgB,QAAQ,UAAU;EAC1C,OAAO,mBAAmB,OAAO,OAAO,oBAAoB,sBAAsB,CAAC,CAAC,aAAa,UAAU,UAAU,aAAa,QAAQ,QAAQ,aAAa,WAAW,WAAW,MAAM,CAAC,OAAO,OAAO;CAC3M;;;;;;;;;;;CAWA,SAAS,wBAAwB,QAAQ,UAAU;EAClD,OAAO,kCAAkC,OAAO,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,OAAO,OAAO;CACpF;;;;;;;;;;;CAWA,SAAS,uBAAuB,QAAQ,UAAU;EACjD,MAAM,UAAU,kCAAkC,OAAO,OAAO,QAAQ;EACxE,OAAO,QAAQ,QAAQ,SAAS,EAAE,EAAE,OAAO,OAAO;CACnD;;;;;;;;;;;;CAYA,SAAS,qBAAqB,OAAO,SAAS;EAC7C,MAAM,QAAQ,sBAAsB,OAAO;CAC5C;;;;;;;;;;;;;CAaA,SAAS,uBAAuB,OAAO,cAAc;EACpD,qBAAqB,OAAO,eAAe,CAAC,IAAI,WAAW,MAAM,aAAa,eAAe,CAAC,CAAC,CAAC;CACjG;;;;;;;;;;;;CAYA,SAAS,wBAAwB,OAAO;EACvC,MAAM,cAAc,MAAM,MAAM,aAAa,IAAI;EACjD,QAAQ,YAAY;GACnB,IAAI,iBAAiB,CAAC;GACtB,IAAI,CAAC,aAAa,QAAQ,iBAAiB;QACtC;IACJ,MAAM,4BAA4B,IAAI,IAAI;IAC1C,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;KACxC,MAAM,SAAS,QAAQ;KACvB,UAAU,IAAI,OAAO,IAAI,MAAM;IAChC;IACA,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;KAC5C,MAAM,KAAK,YAAY;KACvB,MAAM,SAAS,UAAU,IAAI,EAAE;KAC/B,IAAI,QAAQ;MACX,eAAe,KAAK,MAAM;MAC1B,UAAU,OAAO,EAAE;KACpB;IACD;IACA,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;KACxC,MAAM,SAAS,QAAQ;KACvB,IAAI,UAAU,IAAI,OAAO,EAAE,GAAG,eAAe,KAAK,MAAM;IACzD;GACD;GACA,OAAO,aAAa,OAAO,cAAc;EAC1C;CACD;;;;;;;;;;;;;CAaA,SAAS,aAAa,OAAO,aAAa;EACzC,MAAM,WAAW,MAAM,MAAM,UAAU,IAAI,KAAK,CAAC;EACjD,MAAM,EAAE,sBAAsB,MAAM;EACpC,IAAI,CAAC,SAAS,UAAU,CAAC,mBAAmB,OAAO;EACnD,MAAM,qBAAqB,YAAY,QAAQ,QAAQ,CAAC,SAAS,SAAS,IAAI,EAAE,CAAC;EACjF,IAAI,sBAAsB,UAAU,OAAO;EAC3C,MAAM,kCAAkC,IAAI,IAAI;EAChD,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;GAC5C,MAAM,MAAM,YAAY;GACxB,gBAAgB,IAAI,IAAI,IAAI,GAAG;EAChC;EACA,MAAM,kBAAkB,CAAC;EACzB,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;GACzC,MAAM,MAAM,gBAAgB,IAAI,SAAS,EAAE;GAC3C,IAAI,KAAK,gBAAgB,KAAK,GAAG;EAClC;EACA,OAAO,CAAC,GAAG,iBAAiB,GAAG,kBAAkB;CAClD;;;;;;;;;;;;;;CCnKA,SAAS,sBAAsB,QAAQ;EACtC,OAAO,CAAC,QAAQ,GAAG,OAAO,QAAQ,SAAS,QAAQ,IAAI,eAAe,CAAC,CAAC;CACzE;;;;;;;;;;;;CAYA,SAAS,sBAAsB,QAAQ;EACtC,IAAI,OAAO,QAAQ,QAAQ;GAC1B,MAAM,cAAc,OAAO,QAAQ,SAAS,QAAQ,IAAI,eAAe,CAAC;GACxE,OAAO,mBAAmB,OAAO,OAAO,mBAAmB,uBAAuB,CAAC,CAAC,WAAW;EAChG;EACA,OAAO,CAAC,MAAM;CACf;;;;;;;;;;;;;CAaA,SAAS,0BAA0B,OAAO;EACzC,OAAO;GACN,SAAS,UAAU;IAClB,MAAM,oBAAoB,MAAM,OAAO,OAAO;IAC9C,IAAI,kBAAkB,aAAa,OAAO,kBAAkB;IAC5D,IAAI,kBAAkB,YAAY,OAAO,kBAAkB;IAC3D,OAAO;GACR;GACA,OAAO,UAAU,MAAM,YAAY,CAAC,EAAE,WAAW,KAAK;GACtD,GAAG,OAAO,OAAO,MAAM,SAAS,CAAC,CAAC,QAAQ,KAAK,YAAY;IAC1D,OAAO,OAAO,OAAO,KAAK,QAAQ,sBAAsB,CAAC;GAC1D,GAAG,CAAC,CAAC;GACL,GAAG,MAAM,QAAQ;EAClB;CACD;CACA,SAAS,iBAAiB,OAAO,YAAY,QAAQ,QAAQ,GAAG;EAC/D,MAAM,UAAU,IAAI,MAAM,WAAW,MAAM;EAC3C,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC3C,IAAI,EAAE,KAAK,aAAa;GACxB,MAAM,YAAY,WAAW;GAC7B,MAAM,SAAS,gBAAgB,OAAO,WAAW,OAAO,MAAM;GAC9D,MAAM,oBAAoB;GAC1B,OAAO,UAAU,kBAAkB,UAAU,iBAAiB,OAAO,kBAAkB,SAAS,QAAQ,QAAQ,CAAC,IAAI,CAAC;GACtH,QAAQ,KAAK;EACd;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,oBAAoB,OAAO;EACnC,OAAO,iBAAiB,OAAO,MAAM,QAAQ,OAAO;CACrD;;;;;;;;;;;;CAYA,SAAS,wBAAwB,OAAO;EACvC,OAAO,MAAM,cAAc,CAAC,CAAC,SAAS,WAAW,OAAO,eAAe,CAAC;CACzE;;;;;;;;;;;;CAYA,SAAS,4BAA4B,OAAO;EAC3C,MAAM,SAAS,cAAc;EAC7B,MAAM,cAAc,MAAM,kBAAkB;EAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;GAC5C,MAAM,SAAS,YAAY;GAC3B,OAAO,OAAO,MAAM;EACrB;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,wBAAwB,OAAO;EACvC,MAAM,cAAc,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,eAAe,CAAC;EAC3E,OAAO,mBAAmB,OAAO,mBAAmB,uBAAuB,CAAC,CAAC,WAAW;CACzF;;;;;;;;;;;;CAYA,SAAS,4BAA4B,OAAO;EAC3C,MAAM,SAAS,cAAc;EAC7B,MAAM,cAAc,MAAM,kBAAkB;EAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;GAC5C,MAAM,SAAS,YAAY;GAC3B,OAAO,OAAO,MAAM;EACrB;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,gBAAgB,OAAO,UAAU;EAGzC,OAFe,MAAM,sBAAsB,CAAC,CAAC;CAG9C;;;;;;CCvKA,MAAM,qBAAqB;EAC1B,wBAAwB,WAAW,UAAU;GAC5C,oBAAoB,sBAAsB,WAAW,OAAO;IAC3D,uBAAuB;KACtB,KAAK,WAAW,sBAAsB,MAAM;KAC5C,WAAW,WAAW,CAAC,OAAO,MAAM,QAAQ,OAAO;IACpD;IACA,uBAAuB;KACtB,KAAK,WAAW,sBAAsB,MAAM;KAC5C,WAAW,WAAW;MACrB,OAAO,MAAM,MAAM,aAAa,IAAI;MACpC,OAAO,MAAM,MAAM,UAAU,IAAI;MACjC,OAAO,MAAM,QAAQ;MACrB,OAAO,MAAM,QAAQ;KACtB;IACD;GACD,CAAC;EACF;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,sBAAsB,OAAO;IAC5C,2BAA2B;KAC1B,UAAU,0BAA0B,KAAK;KACzC,gBAAgB,CAAC,MAAM,QAAQ,aAAa;IAC7C;IACA,qBAAqB;KACpB,UAAU,oBAAoB,KAAK;KACnC,gBAAgB,CAAC,MAAM,QAAQ,OAAO;IACvC;IACA,yBAAyB;KACxB,UAAU,wBAAwB,KAAK;KACvC,gBAAgB,CAAC,MAAM,QAAQ,OAAO;IACvC;IACA,6BAA6B;KAC5B,UAAU,4BAA4B,KAAK;KAC3C,gBAAgB,CAAC,MAAM,QAAQ,OAAO;IACvC;IACA,yBAAyB;KACxB,UAAU,wBAAwB,KAAK;KACvC,gBAAgB;MACf,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;MACd,MAAM,QAAQ;KACf;IACD;IACA,6BAA6B;KAC5B,UAAU,4BAA4B,KAAK;KAC3C,gBAAgB,CAAC,MAAM,kBAAkB,CAAC;IAC3C;IACA,iBAAiB,EAAE,KAAK,aAAa,gBAAgB,OAAO,QAAQ,EAAE;GACvE,CAAC;EACF;CACD;;;CCrDA,SAAS,mBAAmB,QAAQ,aAAa;EAChD,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,WAAW,QAAQ,KAAK,mBAAmB,OAAO,WAAW,IAAI,WAAW;EACvG,YAAY,KAAK,MAAM;CACxB;;;;;;;;;;;;CAYA,SAAS,sBAAsB,QAAQ;EACtC,MAAM,cAAc,CAAC;EACrB,mBAAmB,QAAQ,WAAW;EACtC,OAAO;CACR;;;;;;;;;;;CAWA,SAAS,kBAAkB,QAAQ;EAClC,OAAO;GACN,QAAQ,OAAO;GACf;GACA,OAAO,OAAO,OAAO;EACtB;CACD;;;;;;;;;;;;CAYA,SAAS,sBAAsB,OAAO;EACrC,MAAM,EAAE,OAAO,QAAQ,MAAM,MAAM,eAAe,IAAI,KAAK,6BAA6B;EACxF,MAAM,aAAa,MAAM,cAAc;EACvC,MAAM,cAAc,mBAAmB,OAAO,yBAAyB,2BAA2B;EAClG,IAAI,CAAC,MAAM,UAAU,CAAC,IAAI,QAAQ,OAAO,kBAAkB,YAAY,aAAa,KAAK;EACzF,MAAM,kBAAkB,MAAM,sBAAsB;EACpD,MAAM,cAAc,CAAC;EACrB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACtC,MAAM,SAAS,gBAAgB,MAAM;GACrC,IAAI,UAAU,mBAAmB,QAAQ,gBAAgB,mBAAmB,GAAG,YAAY,KAAK,MAAM;EACvG;EACA,MAAM,eAAe,CAAC;EACtB,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;GACpC,MAAM,SAAS,gBAAgB,IAAI;GACnC,IAAI,UAAU,mBAAmB,QAAQ,gBAAgB,mBAAmB,GAAG,aAAa,KAAK,MAAM;EACxG;EACA,MAAM,gBAAgB,YAAY,QAAQ,WAAW,CAAC,MAAM,SAAS,OAAO,EAAE,KAAK,CAAC,IAAI,SAAS,OAAO,EAAE,CAAC;EAC3G,OAAO,kBAAkB,YAAY;GACpC,GAAG;GACH,GAAG;GACH,GAAG;EACJ,GAAG,KAAK;CACT;;;;;;;;;;;;CAYA,SAAS,sBAAsB,OAAO;EACrC,OAAO,CAAC,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,QAAQ;CAC7C;;;;;;;;;;;;CAYA,SAAS,qBAAqB,OAAO;EACpC,MAAM,eAAe,MAAM,gBAAgB;EAC3C,MAAM,SAAS,CAAC;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;GAC7C,MAAM,UAAU,aAAa,EAAE,CAAC;GAChC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,OAAO,KAAK,QAAQ,EAAE;EAChE;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,qBAAqB,OAAO;EACpC,MAAM,aAAa,MAAM,gBAAgB,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC;EAC3D,MAAM,SAAS,CAAC;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC3C,MAAM,cAAc,WAAW,EAAE,CAAC,eAAe;GACjD,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK,OAAO,KAAK,YAAY,EAAE;EACxE;EACA,OAAO;CACR;;;;;;CC3HA,MAAM,qBAAqB;EAC1B,wBAAwB,WAAW,UAAU;GAC5C,oBAAoB,sBAAsB,WAAW,OAAO;IAC3D,uBAAuB;KACtB,KAAK,WAAW,sBAAsB,MAAM;KAC5C,WAAW,WAAW,CAAC,OAAO,OAAO,MAAM,QAAQ,OAAO;IAC3D;IACA,mBAAmB;KAClB,KAAK,WAAW,kBAAkB,MAAM;KACxC,WAAW,WAAW,CAAC,OAAO,OAAO,MAAM,QAAQ,OAAO;IAC3D;GACD,CAAC;EACF;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,sBAAsB,OAAO;IAC5C,uBAAuB;KACtB,UAAU,sBAAsB,KAAK;KACrC,gBAAgB;MACf,MAAM,QAAQ;MACd,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,kBAAkB,IAAI;MAClC,MAAM,QAAQ;KACf;IACD;IACA,uBAAuB;KACtB,UAAU,sBAAsB,KAAK;KACrC,gBAAgB,CAAC,MAAM,gBAAgB,CAAC;IACzC;IACA,sBAAsB;KACrB,UAAU,qBAAqB,KAAK;KACpC,gBAAgB,CAAC,MAAM,gBAAgB,CAAC;IACzC;IACA,sBAAsB;KACrB,UAAU,qBAAqB,KAAK;KACpC,gBAAgB,CAAC,MAAM,gBAAgB,CAAC;IACzC;GACD,CAAC;EACF;CACD;;;;;;;CCxCA,SAAS,gBAAgB,OAAO;EAC/B,IAAI,CAAC,MAAM,eAAe;GACzB,MAAM,gBAAgB,EAAE,MAAM;GAC9B,MAAM,WAAW,OAAO,OAAO,MAAM,SAAS;GAC9C,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,SAAS,EAAE,CAAC,qBAAqB,MAAM,eAAe,KAAK;EACtG;EACA,OAAO,MAAM;CACd;;;;;;CAMA,MAAM,gBAAgB,OAAO,IAAI,UAAU,UAAU,OAAO,SAAS,aAAa;EACjF,MAAM,eAAe,gBAAgB,KAAK;EAC1C,MAAM,MAAM,OAAO,OAAO,YAAY;EACtC,IAAI,qBAAqB;EACzB,IAAI,qBAAqB,cAAc;EACvC,IAAI,eAAe,cAAc;EACjC,IAAI,QAAQ;EACZ,IAAI,KAAK;EACT,IAAI,QAAQ;EACZ,IAAI,WAAW;EACf,IAAI,WAAW;EACf,IAAI,UAAU,WAAW,CAAC;EAC1B,MAAM,UAAU,MAAM;EACtB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,QAAQ,EAAE,CAAC,GAAG;EACvD,OAAO;CACR;;;;;;;;;CC5BA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;CAyB5B,SAAS,gBAAgB,KAAK;EAC7B,MAAM,SAAS,OAAO,QAAQ,MAAM,MAAM,aAAa;GACtD,IAAI,aAAa,KAAK,SAAS,QAAQ;GACvC,IAAI,aAAa,KAAK,SAAS,QAAQ;GACvC,MAAM,mBAAmB,OAAO;GAChC,IAAI,kBAAkB;IACrB,aAAa,iBAAiB,UAAU;IACxC,aAAa,iBAAiB,UAAU;GACzC;GACA,OAAO,OAAO,KAAK,YAAY,YAAY,MAAM,MAAM,QAAQ;EAChE,GAAG,GAAG;EACN,OAAO;CACR;;;;;;CAMA,MAAM,sBAAsB,gBAAgB;EAC3C,mBAAmB,cAAc,SAAS,SAAS,CAAC,CAAC,YAAY;EACjE,OAAO,YAAY,eAAe,oBAAoB,YAAY,UAAU;CAC7E,CAAC;CAMwC,gBAAgB;EACxD,mBAAmB,cAAc,SAAS,SAAS;EACnD,OAAO,YAAY,eAAe,oBAAoB,YAAY,UAAU;CAC7E,CAAC;;;;;;CAMD,MAAM,cAAc,gBAAgB;EACnC,mBAAmB,cAAc,SAAS,SAAS,CAAC,CAAC,YAAY;EACjE,OAAO,YAAY,eAAe,aAAa,YAAY,UAAU;CACtE,CAAC;CAMgC,gBAAgB;EAChD,mBAAmB,cAAc,SAAS,SAAS;EACnD,OAAO,YAAY,eAAe,aAAa,YAAY,UAAU;CACtE,CAAC;;;;;;CAMD,MAAM,kBAAkB,gBAAgB;EACvC,mBAAmB,cAAc,gBAAgB,SAAS;EAC1D,OAAO,YAAY,eAAe,aAAa,aAAa,IAAI,aAAa,aAAa,KAAK;CAChG,CAAC;;;;;;CAMD,MAAM,eAAe,gBAAgB,EAAE,OAAO,YAAY,eAAe,aAAa,YAAY,UAAU,EAAE,CAAC;CAC/G,SAAS,aAAa,GAAG,GAAG;EAC3B,OAAO,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI;CAClC;CACA,SAAS,gBAAgB,OAAO;EAC/B,OAAO,iBAAiB,OAAO,MAAM,QAAQ,IAAI;CAClD;CACA,SAAS,SAAS,GAAG;EACpB,IAAI,OAAO,MAAM,UAAU;GAC1B,IAAI,MAAM,CAAC,KAAK,MAAM,YAAY,MAAM,WAAW,OAAO;GAC1D,OAAO,OAAO,CAAC;EAChB;EACA,IAAI,OAAO,MAAM,UAAU,OAAO;EAClC,OAAO;CACR;CACA,SAAS,oBAAoB,MAAM,MAAM;EACxC,IAAI,KAAK;EACT,IAAI,KAAK;EACT,MAAM,OAAO,KAAK;EAClB,MAAM,OAAO,KAAK;EAClB,OAAO,KAAK,QAAQ,KAAK,MAAM;GAC9B,MAAM,aAAa,QAAQ,KAAK,WAAW,EAAE,CAAC;GAC9C,MAAM,aAAa,QAAQ,KAAK,WAAW,EAAE,CAAC;GAC9C,MAAM,OAAO,aAAa,MAAM,IAAI,UAAU;GAC9C,MAAM,OAAO,aAAa,MAAM,IAAI,UAAU;GAC9C,IAAI,CAAC,cAAc,CAAC,YAAY;IAC/B,MAAM,mBAAmB,oBAAoB,MAAM,IAAI,MAAM,MAAM,IAAI,IAAI;IAC3E,IAAI,kBAAkB,OAAO;IAC7B,KAAK;IACL,KAAK;IACL;GACD;GACA,IAAI,eAAe,YAAY,OAAO,aAAa,IAAI;GACvD,MAAM,oBAAoB,qBAAqB,MAAM,IAAI,MAAM,MAAM,IAAI,IAAI;GAC7E,IAAI,mBAAmB,OAAO;GAC9B,KAAK;GACL,KAAK;EACN;EACA,OAAO,qBAAqB,MAAM,EAAE,IAAI,qBAAqB,MAAM,EAAE;CACtE;CACA,SAAS,QAAQ,UAAU;EAC1B,OAAO,YAAY,MAAM,YAAY;CACtC;CACA,SAAS,aAAa,KAAK,OAAO,WAAW;EAC5C,IAAI,MAAM,QAAQ;EAClB,OAAO,MAAM,IAAI,UAAU,QAAQ,IAAI,WAAW,GAAG,CAAC,MAAM,WAAW;EACvE,OAAO;CACR;CACA,SAAS,oBAAoB,MAAM,QAAQ,MAAM,MAAM,QAAQ,MAAM;EACpE,MAAM,UAAU,OAAO;EACvB,MAAM,UAAU,OAAO;EACvB,MAAM,YAAY,UAAU,UAAU,UAAU;EAChD,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,KAAK;GACnC,MAAM,QAAQ,KAAK,WAAW,SAAS,CAAC;GACxC,MAAM,QAAQ,KAAK,WAAW,SAAS,CAAC;GACxC,IAAI,QAAQ,OAAO,OAAO;GAC1B,IAAI,QAAQ,OAAO,OAAO;EAC3B;EACA,IAAI,UAAU,SAAS,OAAO;EAC9B,IAAI,UAAU,SAAS,OAAO;EAC9B,OAAO;CACR;CACA,SAAS,qBAAqB,MAAM,QAAQ,MAAM,MAAM,QAAQ,MAAM;EACrE,IAAI,oBAAoB;EACxB,OAAO,oBAAoB,QAAQ,KAAK,WAAW,iBAAiB,MAAM,IAAI;EAC9E,IAAI,oBAAoB;EACxB,OAAO,oBAAoB,QAAQ,KAAK,WAAW,iBAAiB,MAAM,IAAI;EAC9E,MAAM,qBAAqB,OAAO;EAClC,MAAM,qBAAqB,OAAO;EAClC,IAAI,uBAAuB,KAAK,uBAAuB,GAAG,OAAO;EACjE,IAAI,sBAAsB,MAAM,sBAAsB,IAAI;GACzD,MAAM,KAAK,cAAc,MAAM,mBAAmB,IAAI;GACtD,MAAM,KAAK,cAAc,MAAM,mBAAmB,IAAI;GACtD,IAAI,KAAK,IAAI,OAAO;GACpB,IAAI,KAAK,IAAI,OAAO;GACpB,OAAO;EACR;EACA,MAAM,KAAK,SAAS,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE;EAChD,MAAM,KAAK,SAAS,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE;EAChD,IAAI,KAAK,IAAI,OAAO;EACpB,IAAI,KAAK,IAAI,OAAO;EACpB,OAAO;CACR;CACA,SAAS,cAAc,KAAK,OAAO,KAAK;EACvC,IAAI,SAAS;EACb,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,KAAK,SAAS,SAAS,KAAK,IAAI,WAAW,CAAC,IAAI;EAC7E,OAAO;CACR;CACA,SAAS,qBAAqB,KAAK,OAAO;EACzC,IAAI,QAAQ;EACZ,IAAI,QAAQ;EACZ,OAAO,QAAQ,IAAI,QAAQ;GAC1B;GACA,QAAQ,aAAa,KAAK,OAAO,QAAQ,IAAI,WAAW,KAAK,CAAC,CAAC;EAChE;EACA,OAAO;CACR;;;CC9LA,SAAS,cAAc,GAAG,GAAG;EAC5B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE;CACtI;CACA,SAAS,6BAA6B,GAAG,GAAG;EAC3C,MAAM,eAAe;GACpB,aAAa,KAAK,IAAI,EAAE,aAAa,EAAE,WAAW;GAClD,aAAa,KAAK,IAAI,EAAE,aAAa,EAAE,WAAW;GAClD,gBAAgB,KAAK,IAAI,EAAE,gBAAgB,EAAE,cAAc;GAC3D,gBAAgB,KAAK,IAAI,EAAE,gBAAgB,EAAE,cAAc;EAC5D;EACA,OAAO,aAAa,eAAe,aAAa,eAAe,aAAa,kBAAkB,aAAa,iBAAiB,eAAe,KAAK;CACjJ;CACA,SAAS,4BAA4B,QAAQ,UAAU;EACtD,MAAM,eAAe,6BAA6B,QAAQ,QAAQ;EAClE,IAAI,CAAC,cAAc,OAAO,CAAC,MAAM;EACjC,MAAM,SAAS,CAAC;EAChB,IAAI,OAAO,cAAc,aAAa,aAAa,OAAO,KAAK;GAC9D,GAAG;GACH,aAAa,aAAa,cAAc;EACzC,CAAC;EACD,IAAI,aAAa,cAAc,OAAO,aAAa,OAAO,KAAK;GAC9D,GAAG;GACH,aAAa,aAAa,cAAc;EACzC,CAAC;EACD,IAAI,OAAO,iBAAiB,aAAa,gBAAgB,OAAO,KAAK;GACpE,aAAa,aAAa;GAC1B,aAAa,aAAa;GAC1B,gBAAgB,OAAO;GACvB,gBAAgB,aAAa,iBAAiB;EAC/C,CAAC;EACD,IAAI,aAAa,iBAAiB,OAAO,gBAAgB,OAAO,KAAK;GACpE,aAAa,aAAa;GAC1B,aAAa,aAAa;GAC1B,gBAAgB,aAAa,iBAAiB;GAC9C,gBAAgB,OAAO;EACxB,CAAC;EACD,OAAO;CACR;CACA,SAAS,UAAU,GAAG,GAAG;EACxB,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,MAAM,EAAE,iBAAiB,OAAO;GAC1K,aAAa,EAAE;GACf,aAAa,EAAE;GACf,gBAAgB,KAAK,IAAI,EAAE,gBAAgB,EAAE,cAAc;GAC3D,gBAAgB,KAAK,IAAI,EAAE,gBAAgB,EAAE,cAAc;EAC5D;EACA,IAAI,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,cAAc,MAAM,EAAE,eAAe,EAAE,cAAc,MAAM,EAAE,cAAc,OAAO;GAC1K,aAAa,KAAK,IAAI,EAAE,aAAa,EAAE,WAAW;GAClD,aAAa,KAAK,IAAI,EAAE,aAAa,EAAE,WAAW;GAClD,gBAAgB,EAAE;GAClB,gBAAgB,EAAE;EACnB;CACD;CACA,SAAS,iCAAiC,OAAO;EAChD,MAAM,SAAS,MAAM,MAAM;EAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;GACnF,MAAM,SAAS,UAAU,OAAO,IAAI,OAAO,EAAE;GAC7C,IAAI,CAAC,QAAQ;GACb,OAAO,OAAO,GAAG,CAAC;GAClB,OAAO,KAAK;GACZ,IAAI;GACJ;EACD;EACA,OAAO,OAAO,KAAK,aAAa;CACjC;CACA,SAAS,uBAAuB,UAAU,UAAU;EACnD,IAAI,YAAY,CAAC,QAAQ;EACzB,KAAK,MAAM,YAAY,UAAU;GAChC,YAAY,UAAU,SAAS,aAAa,4BAA4B,UAAU,QAAQ,CAAC;GAC3F,IAAI,CAAC,UAAU,QAAQ,OAAO,SAAS,MAAM;EAC9C;EACA,OAAO,iCAAiC,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;CACpE;;;;;;;;;;;CAWA,SAAS,0BAA0B,QAAQ,QAAQ;EAClD,IAAI,WAAW;EACf,IAAI,UAAU;EACd,OAAO,SAAS;GACf,UAAU;GACV,KAAK,MAAM,SAAS,QAAQ;IAC3B,IAAI,CAAC,6BAA6B,UAAU,KAAK,GAAG;IACpD,MAAM,QAAQ;KACb,aAAa,KAAK,IAAI,SAAS,aAAa,MAAM,WAAW;KAC7D,aAAa,KAAK,IAAI,SAAS,aAAa,MAAM,WAAW;KAC7D,gBAAgB,KAAK,IAAI,SAAS,gBAAgB,MAAM,cAAc;KACtE,gBAAgB,KAAK,IAAI,SAAS,gBAAgB,MAAM,cAAc;IACvE;IACA,IAAI,MAAM,gBAAgB,SAAS,eAAe,MAAM,gBAAgB,SAAS,eAAe,MAAM,mBAAmB,SAAS,kBAAkB,MAAM,mBAAmB,SAAS,gBAAgB;KACrM,WAAW;KACX,UAAU;IACX;GACD;EACD;EACA,OAAO;CACR;CACA,SAAS,mCAAmC,YAAY;EACvD,IAAI,WAAW,CAAC;EAChB,KAAK,MAAM,aAAa,YAAY;GACnC,MAAM,SAAS;IACd,aAAa,UAAU;IACvB,aAAa,UAAU;IACvB,gBAAgB,UAAU;IAC1B,gBAAgB,UAAU;GAC3B;GACA,IAAI,UAAU,cAAc,WAAW,WAAW,iCAAiC,SAAS,SAAS,UAAU,4BAA4B,OAAO,MAAM,CAAC,CAAC;QACrJ,WAAW,uBAAuB,UAAU,MAAM;EACxD;EACA,OAAO,SAAS,KAAK,aAAa;CACnC;;;;;;;;;;;;;;CCrGA,SAAS,+BAA+B;EACvC,OAAO,CAAC;CACT;;;;;;;;;CASA,SAAS,uBAAuB,OAAO,SAAS;EAC/C,MAAM,QAAQ,wBAAwB,OAAO;CAC9C;;;;;;;;;;;;CAYA,SAAS,yBAAyB,OAAO,cAAc;EACtD,uBAAuB,OAAO,eAAe,6BAA6B,IAAI,WAAW,MAAM,aAAa,aAAa,KAAK,6BAA6B,CAAC;CAC7J;;;;;;;;;;;;;;;;;CAiBA,SAAS,6BAA6B,OAAO;EAC5C,IAAI,CAAC,MAAM,MAAM,eAAe;EAChC,IAAI,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,0BAA0B,MAAM,MAAM,YAAY,eAAe,yBAAyB,KAAK,CAAC;CACjJ;;;;;;;;;;;;;;;CAeA,SAAS,yBAAyB,OAAO;EACxC,MAAM,UAAU,mBAAmB,OAAO,yBAAyB,2BAA2B;EAC9F,MAAM,UAAU,MAAM,MAAM,eAAe,IAAI;EAC/C,IAAI,CAAC,WAAW,CAAC,QAAQ,MAAM,UAAU,CAAC,QAAQ,IAAI,QAAQ,OAAO;EACrE,MAAM,OAAO,cAAc;EAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,KAAK,QAAQ,EAAE,CAAC,MAAM,QAAQ;EACvE,MAAM,QAAQ,CAAC;EACf,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,KAAK;GAC9C,MAAM,SAAS,KAAK,QAAQ,MAAM;GAClC,IAAI,QAAQ,MAAM,KAAK,MAAM;EAC9B;EACA,MAAM,MAAM,CAAC;EACb,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,IAAI,QAAQ,KAAK;GAC5C,MAAM,SAAS,KAAK,QAAQ,IAAI;GAChC,IAAI,QAAQ,IAAI,KAAK,MAAM;EAC5B;EACA,MAAM,SAAS,CAAC;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;GACxC,MAAM,SAAS,QAAQ;GACvB,IAAI,CAAC,QAAQ,MAAM,SAAS,OAAO,EAAE,KAAK,CAAC,QAAQ,IAAI,SAAS,OAAO,EAAE,GAAG,OAAO,KAAK,MAAM;EAC/F;EACA,OAAO;GACN,GAAG;GACH,GAAG;GACH,GAAG;EACJ;CACD;;;;;;;;;;;;;;CAcA,SAAS,oCAAoC,OAAO;EACnD,MAAM,UAAU,yBAAyB,KAAK;EAC9C,MAAM,UAAU,cAAc;EAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,EAAE,CAAC,MAAM;EAClE,OAAO;CACR;CACA,MAAM,qBAAqB,CAAC;CAC5B,SAAS,mBAAmB,OAAO;EAClC,OAAO,MAAM,mBAAmB;CACjC;;;;;;;;;;;;;;;;;;;CAmBA,SAAS,kCAAkC,OAAO;EACjD,MAAM,YAAY,mBAAmB,KAAK;EAC1C,IAAI,CAAC,WAAW,OAAO;EACvB,MAAM,gBAAgB,mBAAmB,OAAO,iCAAiC,mCAAmC;EACpH,MAAM,SAAS,CAAC;EAChB,KAAK,MAAM,YAAY,UAAU,UAAU;GAC1C,MAAM,cAAc,cAAc;GAClC,IAAI,gBAAgB,KAAK,GAAG;GAC5B,MAAM,QAAQ,UAAU,SAAS;GACjC,MAAM,kBAAkB,UAAU,cAAc;GAChD,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;IACtC,MAAM,OAAO,MAAM;IACnB,IAAI,QAAQ,GAAG;IACf,MAAM,WAAW,UAAU,KAAK,EAAE,CAAC,gBAAgB;IACnD,MAAM,SAAS,UAAU,KAAK,IAAI,OAAO,EAAE,CAAC,gBAAgB;IAC5D,IAAI,WAAW,KAAK,SAAS,aAAa,OAAO,GAAG;IACpD,MAAM,UAAU,oBAAoB,KAAK,IAAI,IAAI,KAAK,IAAI,UAAU,SAAS,EAAE,GAAG,oBAAoB,GAAG,CAAC;IAC1G,OAAO,KAAK;KACX,aAAa;KACb,aAAa;KACb,gBAAgB;KAChB,gBAAgB,cAAc,UAAU;IACzC,CAAC;GACF;EACD;EACA,IAAI,UAAU,SAAS,QAAQ;GAC9B,MAAM,sBAAsB,CAAC;GAC7B,KAAK,MAAM,YAAY,UAAU,eAAe,oBAAoB,UAAU,cAAc,aAAa;GACzG,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,SAAS,QAAQ,KAAK;IACnD,MAAM,cAAc,UAAU,SAAS;IACvC,IAAI,CAAC,aAAa;IAClB,MAAM,aAAa,UAAU,KAAK,EAAE,EAAE,gBAAgB,KAAK;IAC3D,IAAI,aAAa,GAAG;IACpB,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;KAC5C,MAAM,OAAO,YAAY;KACzB,IAAI,QAAQ,GAAG;KACf,MAAM,WAAW,oBAAoB;KACrC,IAAI,aAAa,KAAK,GAAG;KACzB,MAAM,WAAW,UAAU,SAAS;KACpC,IAAI,YAAY,SAAS,OAAO,GAAG;KACnC,MAAM,cAAc,cAAc;KAClC,IAAI,gBAAgB,KAAK,GAAG;KAC5B,OAAO,KAAK;MACX,aAAa;MACb,aAAa;MACb,gBAAgB;MAChB,gBAAgB,cAAc,OAAO;KACtC,CAAC;IACF;GACD;EACD;EACA,OAAO;CACR;CACA,SAAS,kBAAkB,QAAQ,UAAU,aAAa;EACzD,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;GACvC,MAAM,QAAQ,OAAO;GACrB,IAAI,YAAY,MAAM,eAAe,YAAY,MAAM,eAAe,eAAe,MAAM,kBAAkB,eAAe,MAAM,gBAAgB,OAAO;EAC1J;CACD;;;;;;;;CAQA,SAAS,gBAAgB,OAAO,MAAM,OAAO;EAC5C,MAAM,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,UAAU,MAAM,gBAAgB,CAAC,CAAC,SAAS;EAChG,IAAI,CAAC,KAAK,OAAO;EACjB,MAAM,QAAQ,IAAI,gBAAgB;EAClC,IAAI,QAAQ,KAAK,SAAS,KAAK,UAAU,KAAK,MAAM,EAAE,OAAO,OAAO,OAAO;EAC3E,OAAO;CACR;;;;;;;;;;;;;;;;CAgBA,SAAS,6BAA6B,OAAO;EAC5C,MAAM,SAAS,MAAM,MAAM,eAAe,IAAI;EAC9C,IAAI,CAAC,QAAQ,QAAQ,OAAO,CAAC;EAC7B,MAAM,OAAO,MAAM,sBAAsB;EACzC,MAAM,gBAAgB,mBAAmB,OAAO,iCAAiC,mCAAmC;EACpH,MAAM,aAAa,CAAC;EACpB,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;GACvC,MAAM,QAAQ,OAAO;GACrB,MAAM,iBAAiB,gBAAgB,OAAO,MAAM,MAAM,WAAW;GACrE,MAAM,gBAAgB,gBAAgB,OAAO,MAAM,MAAM,UAAU;GACnE,MAAM,oBAAoB,cAAc,MAAM,mBAAmB;GACjE,MAAM,mBAAmB,cAAc,MAAM,kBAAkB;GAC/D,IAAI,iBAAiB,KAAK,gBAAgB,KAAK,oBAAoB,KAAK,mBAAmB,GAAG;GAC9F,WAAW,KAAK;IACf,aAAa,KAAK,IAAI,gBAAgB,aAAa;IACnD,aAAa,KAAK,IAAI,gBAAgB,aAAa;IACnD,gBAAgB,KAAK,IAAI,mBAAmB,gBAAgB;IAC5D,gBAAgB,KAAK,IAAI,mBAAmB,gBAAgB;IAC5D,WAAW,MAAM,aAAa;GAC/B,CAAC;EACF;EACA,MAAM,SAAS,mBAAmB,OAAO,+BAA+B,iCAAiC;EACzG,IAAI,OAAO,QAAQ,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC9D,MAAM,YAAY,WAAW;GAC7B,MAAM,WAAW,0BAA0B,WAAW,MAAM;GAC5D,UAAU,cAAc,SAAS;GACjC,UAAU,cAAc,SAAS;GACjC,UAAU,iBAAiB,SAAS;GACpC,UAAU,iBAAiB,SAAS;EACrC;EACA,OAAO,mCAAmC,UAAU;CACrD;;;;CAIA,SAAS,eAAe,QAAQ,UAAU,aAAa;EACtD,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;GACvC,MAAM,QAAQ,OAAO;GACrB,IAAI,YAAY,MAAM,eAAe,YAAY,MAAM,eAAe,eAAe,MAAM,kBAAkB,eAAe,MAAM,gBAAgB,OAAO;EAC1J;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,kBAAkB,MAAM;EAChC,IAAI,KAAK,OAAO,UAAU,wBAAwB,OAAO,OAAO;EAChE,MAAM,UAAU,KAAK,MAAM,QAAQ;EACnC,IAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,IAAI;EACtD,OAAO,WAAW;CACnB;;;;;;;;;;CAUA,SAAS,oBAAoB,MAAM;EAClC,MAAM,QAAQ,KAAK;EACnB,MAAM,SAAS,mBAAmB,OAAO,0BAA0B,4BAA4B;EAC/F,IAAI,CAAC,OAAO,QAAQ,OAAO;EAC3B,IAAI,CAAC,mBAAmB,MAAM,gBAAgB,iBAAiB,GAAG,OAAO;EACzE,MAAM,WAAW,KAAK,IAAI,gBAAgB;EAC1C,IAAI,WAAW,GAAG,OAAO;EACzB,MAAM,cAAc,mBAAmB,OAAO,iCAAiC,mCAAmC,CAAC,CAAC,KAAK,OAAO,OAAO;EACvI,IAAI,cAAc,GAAG,OAAO;EAC5B,OAAO;GACN;GACA;GACA;EACD;CACD;;;;;;;;;;;;;CAaA,SAAS,mBAAmB,MAAM;EACjC,MAAM,WAAW,oBAAoB,IAAI;EACzC,IAAI,CAAC,UAAU,OAAO;EACtB,OAAO,eAAe,SAAS,QAAQ,SAAS,UAAU,SAAS,WAAW;CAC/E;;;;;;;;;CASA,SAAS,kBAAkB,MAAM;EAChC,MAAM,SAAS,KAAK,MAAM,MAAM,eAAe,IAAI;EACnD,MAAM,SAAS,SAAS,OAAO,SAAS;EACxC,IAAI,CAAC,QAAQ,OAAO;EACpB,OAAO,OAAO,gBAAgB,KAAK,IAAI,MAAM,OAAO,mBAAmB,KAAK,OAAO;CACpF;;;;;;;;;CASA,SAAS,iBAAiB,MAAM;EAC/B,OAAO,mBAAmB,MAAM,gBAAgB,iBAAiB,IAAI,IAAI;CAC1E;;;;;;;;;;;;;CAaA,SAAS,uBAAuB,MAAM;EACrC,MAAM,OAAO;GACZ,KAAK;GACL,OAAO;GACP,QAAQ;GACR,MAAM;EACP;EACA,MAAM,WAAW,oBAAoB,IAAI;EACzC,IAAI,CAAC,UAAU,OAAO;EACtB,MAAM,EAAE,QAAQ,UAAU,gBAAgB;EAC1C,IAAI,CAAC,eAAe,QAAQ,UAAU,WAAW,GAAG,OAAO;EAC3D,MAAM,SAAS,mBAAmB,KAAK,OAAO,+BAA+B,iCAAiC;EAC9G,MAAM,QAAQ,OAAO,SAAS,kBAAkB,QAAQ,UAAU,WAAW,IAAI,KAAK;EACtF,IAAI,CAAC,OAAO,OAAO;GAClB,KAAK,CAAC,eAAe,QAAQ,WAAW,GAAG,WAAW;GACtD,OAAO,CAAC,eAAe,QAAQ,UAAU,cAAc,CAAC;GACxD,QAAQ,CAAC,eAAe,QAAQ,WAAW,GAAG,WAAW;GACzD,MAAM,CAAC,eAAe,QAAQ,UAAU,cAAc,CAAC;EACxD;EACA,OAAO;GACN,KAAK,eAAe,QAAQ,MAAM,cAAc,GAAG,MAAM,gBAAgB,MAAM,gBAAgB,IAAI;GACnG,OAAO,eAAe,QAAQ,MAAM,iBAAiB,GAAG,MAAM,aAAa,MAAM,aAAa,KAAK;GACnG,QAAQ,eAAe,QAAQ,MAAM,cAAc,GAAG,MAAM,gBAAgB,MAAM,gBAAgB,IAAI;GACtG,MAAM,eAAe,QAAQ,MAAM,iBAAiB,GAAG,MAAM,aAAa,MAAM,aAAa,KAAK;EACnG;CACD;CACA,SAAS,eAAe,QAAQ,YAAY,MAAM,IAAI,YAAY;EACjE,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,eAAe,QAAQ,aAAa,aAAa,GAAG,aAAa,IAAI,UAAU,GAAG,OAAO;EAC/H,OAAO;CACR;;;;;;;;;;;;;CAaA,SAAS,qBAAqB,OAAO;EACpC,MAAM,SAAS,MAAM,MAAM,eAAe,IAAI;EAC9C,MAAM,SAAS,SAAS,OAAO,SAAS;EACxC,IAAI,CAAC,QAAQ,OAAO,KAAK;EACzB,QAAQ,MAAM,wBAAwB,CAAC,CAAC,SAAS,OAAO,gBAAgB,MAAM,gBAAgB,CAAC,CAAC,SAAS,OAAO,aAAA,EAAe,sBAAsB,CAAC,CAAC,OAAO;CAC/J;;;;;;;;;CASA,SAAS,qBAAqB,OAAO,OAAO,UAAU;EACrD,sBAAsB,OAAO;GAC5B,aAAa;GACb,gBAAgB;GAChB,YAAY;GACZ,eAAe;EAChB,CAAC;CACF;;;;;;;;;CASA,SAAS,sBAAsB,OAAO,OAAO,MAAM;EAClD,MAAM,OAAO,MAAM,SAAS,MAAM,WAAW,YAAY;EACzD,MAAM,EAAE,WAAW,YAAY,GAAG,gBAAgB;EAClD,MAAM,YAAY,SAAS,YAAY;GACtC,GAAG;GACH,WAAW;EACZ,IAAI;EACJ,uBAAuB,QAAQ,QAAQ,SAAS,YAAY,CAAC,SAAS,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC;CAC9F;;;;;;;;CAQA,SAAS,qBAAqB,OAAO;EACpC,MAAM,UAAU,yBAAyB,KAAK;EAC9C,IAAI,MAAM,QAAQ,wBAAwB,OAAO,OAAO,CAAC;EACzD,OAAO,QAAQ,QAAQ,WAAW,OAAO,UAAU,wBAAwB,KAAK;CACjF;;;;;;;;;CASA,SAAS,qBAAqB,OAAO;EACpC,MAAM,OAAO,MAAM,sBAAsB;EACzC,MAAM,UAAU,qBAAqB,KAAK;EAC1C,IAAI,CAAC,KAAK,UAAU,CAAC,QAAQ,QAAQ;EACrC,sBAAsB,OAAO;GAC5B,aAAa,KAAK,EAAE,CAAC;GACrB,gBAAgB,QAAQ,EAAE,CAAC;GAC3B,YAAY,KAAK,KAAK,SAAS,EAAE,CAAC;GAClC,eAAe,QAAQ,QAAQ,SAAS,EAAE,CAAC;EAC5C,CAAC;CACF;;;;CAIA,SAAS,kBAAkB,WAAW;EACrC,QAAQ,WAAR;GACC,KAAK,MAAM,OAAO;IACjB,UAAU;IACV,aAAa;GACd;GACA,KAAK,QAAQ,OAAO;IACnB,UAAU;IACV,aAAa;GACd;GACA,KAAK,QAAQ,OAAO;IACnB,UAAU;IACV,aAAa;GACd;GACA,SAAS,OAAO;IACf,UAAU;IACV,aAAa;GACd;EACD;CACD;;;;;;;;CAQA,SAAS,eAAe,OAAO,OAAO,UAAU,WAAW;EAC1D,MAAM,OAAO,MAAM,YAAY,CAAC,CAAC;EACjC,MAAM,UAAU,yBAAyB,KAAK;EAC9C,IAAI,CAAC,KAAK,UAAU,CAAC,QAAQ,QAAQ,OAAO;EAC5C,MAAM,EAAE,UAAU,gBAAgB,kBAAkB,SAAS;EAC7D,MAAM,WAAW,KAAK,WAAW,QAAQ,IAAI,OAAO,KAAK;EACzD,MAAM,cAAc,QAAQ,WAAW,WAAW,OAAO,OAAO,QAAQ;EACxE,IAAI,WAAW,KAAK,cAAc,GAAG,OAAO;EAC5C,MAAM,SAAS,mBAAmB,OAAO,+BAA+B,iCAAiC;EACzG,IAAI,eAAe,KAAK,SAAS,CAAC,gBAAgB;EAClD,IAAI,kBAAkB;EACtB,IAAI,OAAO,QAAQ;GAClB,MAAM,aAAa,kBAAkB,QAAQ,UAAU,WAAW;GAClE,IAAI,YAAY;IACf,IAAI,WAAW,GAAG,eAAe,WAAW;IAC5C,IAAI,WAAW,GAAG,eAAe,WAAW;IAC5C,IAAI,cAAc,GAAG,kBAAkB,WAAW;IAClD,IAAI,cAAc,GAAG,kBAAkB,WAAW;GACnD;EACD;EACA,IAAI,eAAe,WAAW;EAC9B,IAAI,YAAY,iBAAiB,KAAK,SAAS,CAAC,gBAAgB,GAAG;GAClE,MAAM,eAAe,KAAK,WAAW,QAAQ,IAAI,gBAAgB,MAAM,YAAY;GACnF,IAAI,eAAe,GAAG,OAAO;GAC7B,eAAe,eAAe;EAC/B;EACA,IAAI,eAAe,KAAK,gBAAgB,KAAK,QAAQ,OAAO;EAC5D,MAAM,sBAAsB,IAAI,IAAI,qBAAqB,KAAK,CAAC,CAAC,KAAK,WAAW,OAAO,EAAE,CAAC;EAC1F,IAAI,CAAC,oBAAoB,MAAM,OAAO;EACtC,IAAI,kBAAkB;EACtB,IAAI,aAAa;GAChB,mBAAmB;SACb,mBAAmB,KAAK,kBAAkB,QAAQ,UAAU,CAAC,oBAAoB,IAAI,QAAQ,gBAAgB,CAAC,EAAE;OAClH,IAAI,CAAC,oBAAoB,IAAI,QAAQ,GAAG,KAAK,IAAI,WAAW,GAAG,WAAW,QAAQ,QAAQ,YAAY;GAC1G,MAAM,SAAS,QAAQ,cAAc;GACrC,MAAM,QAAQ,QAAQ,cAAc;GACpC,IAAI,UAAU,oBAAoB,IAAI,OAAO,EAAE,GAAG;IACjD,kBAAkB,cAAc;IAChC;GACD;GACA,IAAI,SAAS,oBAAoB,IAAI,MAAM,EAAE,GAAG;IAC/C,kBAAkB,cAAc;IAChC;GACD;EACD;EACA,IAAI,kBAAkB,KAAK,mBAAmB,QAAQ,UAAU,CAAC,oBAAoB,IAAI,QAAQ,gBAAgB,CAAC,EAAE,GAAG,OAAO;EAC9H,IAAI,kBAAkB;EACtB,IAAI,qBAAqB;EACzB,IAAI,OAAO,QAAQ;GAClB,MAAM,eAAe,kBAAkB,QAAQ,KAAK,aAAa,CAAC,gBAAgB,GAAG,eAAe;GACpG,IAAI,cAAc;IACjB,kBAAkB,KAAK,WAAW,QAAQ,IAAI,gBAAgB,MAAM,aAAa,WAAW;IAC5F,IAAI,kBAAkB,GAAG,OAAO;IAChC,qBAAqB,aAAa;GACnC;EACD;EACA,MAAM,aAAa,KAAK;EACxB,MAAM,gBAAgB,QAAQ;EAC9B,IAAI,CAAC,cAAc,CAAC,eAAe,OAAO;EAC1C,OAAO;GACN,OAAO,WAAW;GAClB,UAAU,cAAc;EACzB;CACD;;;;;;;;;;;;CAYA,SAAS,wBAAwB,OAAO,WAAW;EAClD,MAAM,SAAS,MAAM,MAAM,eAAe,IAAI;EAC9C,MAAM,SAAS,SAAS,OAAO,SAAS;EACxC,IAAI,CAAC,QAAQ;GACZ,MAAM,OAAO,MAAM,YAAY,CAAC,CAAC;GACjC,MAAM,UAAU,qBAAqB,KAAK;GAC1C,IAAI,CAAC,KAAK,UAAU,CAAC,QAAQ,QAAQ;GACrC,qBAAqB,OAAO,KAAK,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE;GACrD;EACD;EACA,MAAM,OAAO,eAAe,OAAO,OAAO,aAAa,OAAO,gBAAgB,SAAS;EACvF,IAAI,CAAC,MAAM;EACX,qBAAqB,OAAO,KAAK,OAAO,KAAK,QAAQ;CACtD;;;;;;;;;CASA,SAAS,0BAA0B,OAAO,WAAW;EACpD,MAAM,SAAS,MAAM,MAAM,eAAe,IAAI;EAC9C,MAAM,SAAS,SAAS,OAAO,SAAS;EACxC,IAAI,CAAC,QAAQ;GACZ,wBAAwB,OAAO,SAAS;GACxC;EACD;EACA,MAAM,OAAO,eAAe,OAAO,OAAO,YAAY,OAAO,eAAe,SAAS;EACrF,IAAI,CAAC,MAAM;EACX,uBAAuB,QAAQ,QAAQ;GACtC,IAAI,CAAC,IAAI,QAAQ,OAAO;GACxB,MAAM,aAAa,IAAI,MAAM,GAAG,EAAE;GAClC,WAAW,KAAK;IACf,GAAG,IAAI,IAAI,SAAS;IACpB,YAAY,KAAK;IACjB,eAAe,KAAK;GACrB,CAAC;GACD,OAAO;EACR,CAAC;CACF;;;;;;;CAOA,SAAS,oBAAoB,OAAO,OAAO,cAAc,OAAO;EAC/D,MAAM,SAAS,mBAAmB,OAAO,0BAA0B,4BAA4B;EAC/F,IAAI,CAAC,OAAO,QAAQ;EACpB,MAAM,OAAO,MAAM,sBAAsB;EACzC,MAAM,UAAU,yBAAyB,KAAK;EAC9C,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;GACvC,MAAM,QAAQ,OAAO;GACrB,KAAK,IAAI,WAAW,MAAM,aAAa,YAAY,MAAM,aAAa,YAAY;IACjF,MAAM,MAAM,KAAK;IACjB,IAAI,CAAC,KAAK;IACV,MAAM,kBAAkB,IAAI,sBAAsB;IAClD,KAAK,IAAI,cAAc,MAAM,gBAAgB,eAAe,MAAM,gBAAgB,eAAe;KAChG,MAAM,SAAS,QAAQ;KACvB,IAAI,CAAC,QAAQ;KACb,MAAM,OAAO,gBAAgB,OAAO;KACpC,IAAI,CAAC,MAAM;KACX,IAAI,CAAC,mBAAmB,MAAM,gBAAgB,iBAAiB,GAAG;KAClE,IAAI,eAAe,KAAK,eAAe,GAAG;KAC1C,MAAM,MAAM,GAAG,WAAW,MAAM,aAAa,cAAc,MAAM,cAAc;IAChF;GACD;EACD;CACD;;;;;;;;;;;;CAYA,SAAS,yBAAyB,OAAO;EACxC,MAAM,MAAM,CAAC;EACb,MAAM,uBAAuB,IAAI,IAAI;EACrC,oBAAoB,QAAQ,SAAS;GACpC,IAAI,KAAK,IAAI,KAAK,EAAE,GAAG;GACvB,KAAK,IAAI,KAAK,EAAE;GAChB,IAAI,KAAK,KAAK,EAAE;EACjB,GAAG,IAAI;EACP,OAAO;CACR;;;;;;;;;;;;;CAaA,SAAS,gCAAgC,OAAO;EAC/C,MAAM,QAAQ,CAAC;EACf,oBAAoB,QAAQ,MAAM,YAAY,cAAc;GAC3D,MAAM,OAAO,MAAM,gBAAgB,CAAC;GACpC,CAAC,KAAK,eAAe,CAAC,EAAA,CAAG,KAAK,KAAK,SAAS,CAAC;EAC9C,CAAC;EACD,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,2BAA2B,OAAO;EAC1C,IAAI,MAAM,QAAQ,wBAAwB,OAAO,OAAO;EACxD,MAAM,SAAS,mBAAmB,OAAO,0BAA0B,4BAA4B;EAC/F,IAAI,CAAC,OAAO,QAAQ,OAAO;EAC3B,MAAM,SAAS,mBAAmB,OAAO,+BAA+B,iCAAiC;EACzG,IAAI,OAAO,MAAM,QAAQ,wBAAwB,cAAc,OAAO,QAAQ;GAC7E,MAAM,sBAAsB,IAAI,IAAI;GACpC,oBAAoB,QAAQ,SAAS,IAAI,IAAI,KAAK,EAAE,GAAG,IAAI;GAC3D,OAAO,IAAI;EACZ;EACA,MAAM,UAAU,yBAAyB,KAAK;EAC9C,IAAI,QAAQ;EACZ,KAAK,MAAM,SAAS,QAAQ;GAC3B,IAAI,oBAAoB;GACxB,KAAK,IAAI,cAAc,MAAM,gBAAgB,eAAe,MAAM,gBAAgB,eAAe;IAChG,MAAM,SAAS,QAAQ;IACvB,IAAI,CAAC,QAAQ;IACb,IAAI,OAAO,UAAU,wBAAwB,OAAO;GACrD;GACA,UAAU,MAAM,cAAc,MAAM,cAAc,KAAK;EACxD;EACA,OAAO;CACR;;;;;;;;;CASA,SAAS,6BAA6B,OAAO;EAC5C,MAAM,SAAS,mBAAmB,OAAO,0BAA0B,4BAA4B;EAC/F,IAAI,CAAC,OAAO,QAAQ,OAAO,CAAC;EAC5B,MAAM,OAAO,MAAM,sBAAsB;EACzC,MAAM,uBAAuB,IAAI,IAAI;EACrC,MAAM,MAAM,CAAC;EACb,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;GACvC,MAAM,QAAQ,OAAO;GACrB,KAAK,IAAI,QAAQ,MAAM,aAAa,SAAS,MAAM,aAAa,SAAS;IACxE,MAAM,MAAM,KAAK;IACjB,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,EAAE,GAAG;IAC9B,KAAK,IAAI,IAAI,EAAE;IACf,IAAI,KAAK,IAAI,EAAE;GAChB;EACD;EACA,OAAO;CACR;;;;;;;;;CASA,SAAS,gCAAgC,OAAO;EAC/C,MAAM,SAAS,mBAAmB,OAAO,0BAA0B,4BAA4B;EAC/F,IAAI,CAAC,OAAO,QAAQ,OAAO,CAAC;EAC5B,MAAM,UAAU,yBAAyB,KAAK;EAC9C,MAAM,uBAAuB,IAAI,IAAI;EACrC,MAAM,MAAM,CAAC;EACb,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;GACvC,MAAM,QAAQ,OAAO;GACrB,KAAK,IAAI,QAAQ,MAAM,gBAAgB,SAAS,MAAM,gBAAgB,SAAS;IAC9E,MAAM,SAAS,QAAQ;IACvB,IAAI,CAAC,UAAU,KAAK,IAAI,OAAO,EAAE,GAAG;IACpC,IAAI,OAAO,UAAU,wBAAwB,OAAO;IACpD,KAAK,IAAI,OAAO,EAAE;IAClB,IAAI,KAAK,OAAO,EAAE;GACnB;EACD;EACA,OAAO;CACR;;;;;;;;;;;;;;CAcA,SAAS,8BAA8B,MAAM,kBAAkB;EAC9D,MAAM,YAAY,kBAAkB,IAAI;EACxC,QAAQ,MAAM;GACb,IAAI,CAAC,WAAW;GAChB,MAAM,QAAQ,KAAK;GACnB,MAAM,UAAU,MAAM;GACtB,MAAM,kBAAkB,qBAAqB,OAAO,aAAa,cAAc,WAAW;GAC1F,MAAM,eAAe,QAAQ,6BAA6B,UAAU,QAAQ,4BAA4B,CAAC,KAAK;GAC9G,MAAM,oBAAoB,QAAQ,kCAAkC,UAAU,QAAQ,iCAAiC,CAAC,KAAK;GAC7H,IAAI,QAAQ,4BAA4B,SAAS,QAAQ,6BAA6B,SAAS,iBAAiB;IAC/G,MAAM,oBAAoB;IAC1B,MAAM,kBAAkB;KACvB,gBAAgB,oBAAoB,WAAW,SAAS;KACxD,MAAM,oBAAoB;IAC3B;IACA,gBAAgB,iBAAiB,WAAW,SAAS;GACtD;GACA,MAAM,QAAQ,KAAK,IAAI;GACvB,MAAM,WAAW,KAAK,OAAO;GAC7B,MAAM,gBAAgB,qBAAqB,mBAAmB,MAAM,iBAAiB,kBAAkB;GACvG,uBAAuB,QAAQ,QAAQ;IACtC,MAAM,SAAS,IAAI,IAAI,SAAS;IAChC,IAAI,gBAAgB,QAAQ;KAC3B,MAAM,SAAS,IAAI,MAAM,GAAG,EAAE;KAC9B,OAAO,KAAK;MACX,GAAG;MACH,YAAY;MACZ,eAAe;KAChB,CAAC;KACD,OAAO;IACR;IACA,MAAM,QAAQ;KACb,aAAa;KACb,gBAAgB;KAChB,YAAY;KACZ,eAAe;KACf,GAAG,gBAAgB,EAAE,WAAW,UAAU,IAAI,CAAC;IAChD;IACA,OAAO,oBAAoB,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK;GACpD,CAAC;EACF;CACD;;;;;;;;;;;;;CAaA,SAAS,+BAA+B,MAAM;EAC7C,MAAM,YAAY,kBAAkB,IAAI;EACxC,QAAQ,OAAO;GACd,IAAI,CAAC,WAAW;GAChB,MAAM,QAAQ,KAAK;GACnB,IAAI,CAAC,MAAM,mBAAmB;GAC9B,MAAM,SAAS,MAAM,MAAM,eAAe,IAAI;GAC9C,MAAM,SAAS,SAAS,OAAO,SAAS;GACxC,IAAI,CAAC,QAAQ;GACb,MAAM,QAAQ,KAAK,IAAI;GACvB,MAAM,WAAW,KAAK,OAAO;GAC7B,IAAI,OAAO,eAAe,SAAS,OAAO,kBAAkB,UAAU;GACtE,uBAAuB,QAAQ,QAAQ;IACtC,IAAI,CAAC,IAAI,QAAQ,OAAO;IACxB,MAAM,OAAO,IAAI,MAAM,GAAG,EAAE;IAC5B,KAAK,KAAK;KACT,GAAG,IAAI,IAAI,SAAS;KACpB,YAAY;KACZ,eAAe;IAChB,CAAC;IACD,OAAO;GACR,CAAC;EACF;CACD;;;;;;;;;;;;;;;CC90BA,SAAS,wBAAwB,OAAO;EACvC,IAAI,CAAC,MAAM,MAAM,UAAU;EAC3B,IAAI,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,qBAAqB,CAAC,MAAM,QAAQ,iBAAiB,MAAM,YAAY,eAAe,oBAAoB,KAAK,CAAC;CACjK;;;;;;;;;;;;CAYA,SAAS,kBAAkB,OAAO,SAAS;EAC1C,MAAM,QAAQ,mBAAmB,OAAO;CACzC;;;;;;;;;;;;;CAuCA,SAAS,oBAAoB,OAAO,cAAc;EACjD,MAAM,kBAAkB,MAAM,aAAa;EAC3C,kBAAkB,OAAO,eAAe,cAAc,IAAI,oBAAoB,OAAO,OAAO,OAAO,OAAO,cAAc,GAAG,WAAW,mBAAmB,CAAC,CAAC,CAAC,CAAC;CAC9J;;;;;;;;;;;;CA4IA,SAAS,kBAAkB,KAAK;EAC/B,MAAM,WAAW,IAAI,MAAM,MAAM,UAAU,IAAI,KAAK,CAAC;EACrD,OAAO,CAAC,EAAE,IAAI,MAAM,QAAQ,mBAAmB,GAAG,MAAM,aAAa,QAAQ,gBAAgB,UAAU,IAAI,EAAE;CAC9G;CACA,SAAS,gBAAgB,UAAU,OAAO;EACzC,OAAO,CAAC,EAAE,YAAY,aAAa,QAAQ,OAAO,UAAU,KAAK,KAAK,SAAS;CAChF;;;CCvOA,MAAM,mBAAmB;CACzB,MAAM,kBAAkB;;;;;;;;;;;;CAYxB,SAAS,4BAA4B;EACpC,OAAO;GACN,WAAW;GACX,UAAU;EACX;CACD;;;;;;;;;;;;;CAaA,SAAS,yBAAyB,OAAO;EACxC,IAAI,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,sBAAsB,CAAC,MAAM,QAAQ,kBAAkB,qBAAqB,OAAO,IAAI;CACxI;;;;;;;;;;;;;CAaA,SAAS,oBAAoB,OAAO,SAAS;EAC5C,MAAM,eAAe,QAAQ;GAC5B,OAAO,iBAAiB,SAAS,GAAG;EACrC;EACA,OAAO,MAAM,QAAQ,qBAAqB,WAAW;CACtD;;;;;;;;;;;;;;CAcA,SAAS,sBAAsB,OAAO,cAAc;EACnD,oBAAoB,OAAO,eAAe,0BAA0B,IAAI,WAAW,MAAM,aAAa,cAAc,0BAA0B,CAAC,CAAC;CACjJ;;;;;;;;;;;;CAYA,SAAS,mBAAmB,OAAO,SAAS;EAC3C,oBAAoB,QAAQ,QAAQ;GACnC,IAAI,YAAY,iBAAiB,SAAS,IAAI,SAAS;GACvD,MAAM,eAAe,OAAO,MAAM,QAAQ,cAAc,eAAe,MAAM,QAAQ,cAAc,KAAK,OAAO,mBAAmB,MAAM,QAAQ,YAAY;GAC5J,YAAY,KAAK,IAAI,GAAG,KAAK,IAAI,WAAW,YAAY,CAAC;GACzD,OAAO;IACN,GAAG;IACH;GACD;EACD,CAAC;CACF;;;;;;;;;;;;;CAaA,SAAS,qBAAqB,OAAO,cAAc;EAClD,MAAM,mBAAmB,MAAM,MAAM,YAAY,IAAI,CAAC,EAAE,aAAa;EACrE,MAAM,eAAe,eAAe,mBAAmB,MAAM,aAAa,YAAY,aAAa;EACnG,IAAI,iBAAiB,kBAAkB;EACvC,mBAAmB,OAAO,YAAY;CACvC;;;;;;;;;;;;;CAaA,SAAS,oBAAoB,OAAO,cAAc;EACjD,MAAM,kBAAkB,MAAM,MAAM,YAAY,IAAI,CAAC,EAAE,YAAY;EACnE,MAAM,cAAc,eAAe,kBAAkB,MAAM,aAAa,YAAY,YAAY;EAChG,IAAI,gBAAgB,iBAAiB;EACrC,kBAAkB,OAAO,WAAW;CACrC;;;;;;;;;;;;CAYA,SAAS,kBAAkB,OAAO,SAAS;EAC1C,oBAAoB,QAAQ,QAAQ;GACnC,MAAM,WAAW,KAAK,IAAI,GAAG,iBAAiB,SAAS,IAAI,QAAQ,CAAC;GACpE,MAAM,cAAc,IAAI,WAAW,IAAI;GACvC,MAAM,YAAY,KAAK,MAAM,cAAc,QAAQ;GACnD,OAAO;IACN,GAAG;IACH;IACA;GACD;EACD,CAAC;CACF;;;;;;;;;;;;CAYA,SAAS,qBAAqB,OAAO;EACpC,MAAM,YAAY,mBAAmB,KAAK;EAC1C,IAAI,cAAc,CAAC;EACnB,IAAI,aAAa,YAAY,GAAG,cAAc,CAAC,GAAG,IAAI,MAAM,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC;EAClG,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,yBAAyB,OAAO;EACxC,QAAQ,MAAM,MAAM,YAAY,IAAI,CAAC,EAAE,aAAa,KAAK;CAC1D;;;;;;;;;;;;CAYA,SAAS,qBAAqB,OAAO;EACpC,MAAM,YAAY,MAAM,MAAM,YAAY,IAAI,CAAC,EAAE,aAAa;EAC9D,MAAM,YAAY,mBAAmB,KAAK;EAC1C,IAAI,cAAc,IAAI,OAAO;EAC7B,IAAI,cAAc,GAAG,OAAO;EAC5B,OAAO,YAAY,YAAY;CAChC;;;;;;;;;;;;CAYA,SAAS,mBAAmB,OAAO;EAClC,OAAO,mBAAmB,QAAQ,QAAQ,MAAM,CAAC;CAClD;;;;;;;;;;;;CAYA,SAAS,eAAe,OAAO;EAC9B,OAAO,mBAAmB,QAAQ,QAAQ;GACzC,OAAO,MAAM;EACd,CAAC;CACF;;;;;;;;;;;CAWA,SAAS,gBAAgB,OAAO;EAC/B,OAAO,mBAAmB,OAAO,CAAC;CACnC;;;;;;;;;;;CAWA,SAAS,eAAe,OAAO;EAC9B,OAAO,mBAAmB,OAAO,mBAAmB,KAAK,IAAI,CAAC;CAC/D;;;;;;;;;;;;CAYA,SAAS,mBAAmB,OAAO;EAClC,OAAO,MAAM,QAAQ,aAAa,KAAK,KAAK,kBAAkB,KAAK,KAAK,MAAM,MAAM,YAAY,IAAI,CAAC,EAAE,YAAY,gBAAgB;CACpI;;;;;;;;;;;;;CAaA,SAAS,kBAAkB,OAAO;EACjC,OAAO,MAAM,QAAQ,YAAY,MAAM,wBAAwB,CAAC,CAAC,KAAK;CACvE;;;;;;;;;;;;;;CC9QA,SAAS,yBAAyB;EACjC,OAAO,CAAC;CACT;;;;;;;;;;;;CAYA,SAAS,iBAAiB,OAAO,SAAS;EACzC,MAAM,QAAQ,kBAAkB,OAAO;CACxC;;;;;;;;;;;;;CAaA,SAAS,mBAAmB,OAAO,cAAc;EAChD,iBAAiB,OAAO,eAAe,CAAC,IAAI,WAAW,MAAM,aAAa,WAAW,CAAC,CAAC,CAAC;CACzF;;;;;;;;;;;;CAYA,SAAS,uBAAuB,OAAO;EACtC,IAAI,CAAC,MAAM,MAAM,SAAS;EAC1B,IAAI,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,oBAAoB,OAAO,mBAAmB,KAAK;CACpG;;;;;;;;;;;;;CAaA,SAAS,qBAAqB,QAAQ;EACrC,MAAM,UAAU,OAAO,MAAM,aAAa;EAC1C,MAAM,YAAY,OAAO,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE;EACzE,IAAI;EACJ,IAAI,WAAW;EACf,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAC1C,MAAM,QAAQ,UAAU,EAAE,CAAC,SAAS,OAAO,EAAE;GAC7C,IAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,iBAAiB;IAC9D,aAAa;IACb;GACD;GACA,IAAI,OAAO,UAAU,UAAU;IAC9B,WAAW;IACX,IAAI,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,GAAG;KAChD,aAAa;KACb;IACD;GACD;EACD;EACA,IAAI,CAAC,cAAc,UAAU,aAAa;EAC1C,IAAI,YAAY;GACf,IAAI,SAAS,UAAU;GACvB,IAAI,CAAC,QAEA;QAAA,eAAe,gBAAgB,SAAS,SAAS;GAAA;GAEtD,IAAI,QAAQ,OAAO;EACpB;EACA,OAAO;CACR;;;;;;;;;;;;;;;CAeA,SAAS,sBAAsB,QAAQ;EACtC,MAAM,YAAY,OAAO,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE;EACzE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAC1C,MAAM,QAAQ,UAAU,EAAE,CAAC,SAAS,OAAO,EAAE;GAC7C,IAAI,SAAS,MAAM;GACnB,OAAO,OAAO,UAAU,WAAW,QAAQ;EAC5C;EACA,OAAO;CACR;;;;;;;;;;;;;CAaA,SAAS,iBAAiB,QAAQ;EACjC,MAAM,UAAU,OAAO,MAAM,aAAa;EAC1C,IAAI,WAAW,OAAO,UAAU,MAAM,GAAG,OAAO,OAAO,UAAU;EACjE,IAAI,OAAO,UAAU,WAAW,QAAQ,OAAO,qBAAqB,MAAM;EAG1E,OAFe,UAAU,OAAO,UAAU,WAEzB;CAClB;;;;;;;;;;;;;CAaA,SAAS,qBAAqB,QAAQ,MAAM,OAAO;EAClD,MAAM,mBAAmB,2BAA2B,QAAQ,SAAS,uBAAuB,MAAM,CAAC;EACnG,MAAM,iBAAiB,OAAO,SAAS;EACvC,iBAAiB,OAAO,QAAQ,QAAQ;GACvC,MAAM,gBAAgB,IAAI,WAAW,MAAM,EAAE,OAAO,OAAO,EAAE;GAC7D,MAAM,kBAAkB,kBAAkB,KAAK,KAAK,IAAI,IAAI;GAC5D,IAAI,aAAa,CAAC;GAClB,IAAI;GACJ,MAAM,WAAW,iBAAiB,OAAO,qBAAqB;GAC9D,MAAM,cAAc,CAAC,EAAE,IAAI,UAAU,uBAAuB,MAAM,KAAK;GACvE,IAAI,aAAa,IAAI,iBAAiB,aAAa;QAC9C,aAAa;QACb,IAAI,iBAAiB,aAAa;QAClC,aAAa;GAClB,IAAI,eAAe,UACd;QAAA,CAAC,gBACA;SAAA,CAAC,kBAAkB,aAAa;IAAA;GAAQ;GAG9C,IAAI,eAAe,OAAO;IACzB,aAAa,CAAC,GAAG,KAAK;KACrB,IAAI,OAAO;KACX,MAAM;IACP,CAAC;IACD,WAAW,OAAO,GAAG,WAAW,UAAU,OAAO,MAAM,QAAQ,wBAAwB,OAAO,iBAAiB;GAChH,OAAO,IAAI,eAAe,UAAU,aAAa,cAAc,IAAI,KAAK,MAAM;IAC7E,IAAI,EAAE,OAAO,OAAO,IAAI,OAAO;KAC9B,GAAG;KACH,MAAM;IACP;IACA,OAAO;GACR,CAAC,IAAI,CAAC;IACL,IAAI,OAAO;IACX,MAAM;GACP,CAAC;QACI,IAAI,eAAe,UAAU,aAAa,cAAc,IAAI,QAAQ,MAAM,EAAE,OAAO,OAAO,EAAE,IAAI,CAAC;QACjG,aAAa,CAAC;IAClB,IAAI,OAAO;IACX,MAAM;GACP,CAAC;GACD,OAAO;EACR,CAAC;CACF;;;;;;;;;;;;CAYA,SAAS,uBAAuB,QAAQ;EACvC,OAAO,OAAO,UAAU,iBAAiB,OAAO,MAAM,QAAQ,iBAAiB,sBAAsB,MAAM,MAAM,SAAS,SAAS;CACpI;;;;;;;;;;;;CAYA,SAAS,2BAA2B,QAAQ,OAAO;EAClD,MAAM,qBAAqB,uBAAuB,MAAM;EACxD,MAAM,WAAW,mBAAmB,MAAM;EAC1C,IAAI,CAAC,UAAU,OAAO;EACtB,IAAI,aAAa,uBAAuB,OAAO,MAAM,QAAQ,wBAAwB,UAAU,QAAQ,OAAO,MAAM,QAAQ,qBAAqB,OAAO,OAAO,OAAO;EACtK,OAAO,aAAa,SAAS,QAAQ;CACtC;;;;;;;;;;;;CAYA,SAAS,kBAAkB,QAAQ;EAClC,QAAQ,OAAO,UAAU,iBAAiB,UAAU,OAAO,MAAM,QAAQ,iBAAiB,SAAS,CAAC,CAAC,OAAO;CAC7G;;;;;;;;;;;;CAYA,SAAS,uBAAuB,QAAQ;EACvC,OAAO,OAAO,UAAU,mBAAmB,OAAO,MAAM,QAAQ,mBAAmB,CAAC,CAAC,OAAO;CAC7F;;;;;;;;;;;;CAYA,SAAS,mBAAmB,QAAQ;EACnC,MAAM,aAAa,OAAO,MAAM,MAAM,SAAS,IAAI,CAAC,EAAE,MAAM,MAAM,EAAE,OAAO,OAAO,EAAE;EACpF,OAAO,CAAC,aAAa,QAAQ,WAAW,OAAO,SAAS;CACzD;;;;;;;;;;;CAWA,SAAS,oBAAoB,QAAQ;EACpC,OAAO,OAAO,MAAM,MAAM,SAAS,IAAI,CAAC,EAAE,WAAW,MAAM,EAAE,OAAO,OAAO,EAAE,KAAK;CACnF;;;;;;;;;;;CAWA,SAAS,oBAAoB,QAAQ;EACpC,iBAAiB,OAAO,QAAQ,QAAQ,IAAI,SAAS,IAAI,QAAQ,MAAM,EAAE,OAAO,OAAO,EAAE,IAAI,CAAC,CAAC;CAChG;;;;;;;;;;;;CAYA,SAAS,+BAA+B,QAAQ;EAC/C,MAAM,UAAU,kBAAkB,MAAM;EACxC,QAAQ,MAAM;GACb,IAAI,CAAC,SAAS;GACd,qBAAqB,QAAQ,KAAK,GAAG,uBAAuB,MAAM,IAAI,OAAO,MAAM,QAAQ,mBAAmB,CAAC,IAAI,KAAK;EACzH;CACD;;;;;;;;CCnTA,SAAS,qBAAqB;EAC7B,QAAQ,UAAU;GACjB,OAAO,UAAU;IAChB,SAAS;IACT;IACA,QAAQ;IACR,gBAAgB,CAAC,MAAM,QAAQ,IAAI;IACnC,UAAU,oBAAoB,OAAO,MAAM,QAAQ,IAAI;IACvD,eAAe,mBAAmB;KACjC,wBAAwB,KAAK;KAC7B,yBAAyB,KAAK;KAC9B,uBAAuB,KAAK;KAC5B,6BAA6B,KAAK;IACnC,CAAC;GACF,CAAC;EACF;CACD;CACA,SAAS,WAAW,OAAO,UAAU,cAAc,QAAQ,GAAG,WAAW;EACxE,MAAM,OAAO,CAAC;EACd,KAAK,IAAI,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;GAC7C,MAAM,cAAc,aAAa;GACjC,MAAM,MAAM,aAAa,OAAO,MAAM,SAAS,aAAa,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,KAAK,GAAG,WAAW,EAAE;GACvH,SAAS,SAAS,KAAK,GAAG;GAC1B,SAAS,SAAS,IAAI,MAAM;GAC5B,KAAK,KAAK,GAAG;GACb,IAAI,MAAM,QAAQ,YAAY;IAC7B,IAAI,kBAAkB,MAAM,QAAQ,WAAW,aAAa,CAAC;IAC7D,IAAI,IAAI,iBAAiB,QAAQ,IAAI,UAAU,WAAW,OAAO,UAAU,IAAI,iBAAiB,QAAQ,GAAG,GAAG;GAC/G;EACD;EACA,OAAO;CACR;CACA,SAAS,oBAAoB,OAAO,MAAM;EACzC,MAAM,WAAW;GAChB,MAAM,CAAC;GACP,UAAU,CAAC;GACX,UAAU,cAAc;EACzB;EACA,SAAS,OAAO,WAAW,OAAO,UAAU,IAAI;EAChD,OAAO;CACR;;;;;;;;;;;;;;CCvCA,SAAS,sBAAsB,OAAO;EACrC,IAAI,CAAC,MAAM,WAAW,cAAc,MAAM,WAAW,eAAe,MAAM,QAAQ,SAAS,eAAe,KAAK,KAAK,mBAAmB,CAAC,CAAC,KAAK;EAC9I,OAAO,MAAM,WAAW,aAAa;CACtC;;;;;;;;;;;;CAYA,SAAS,6BAA6B,OAAO;EAC5C,OAAO,MAAM,gBAAgB;CAC9B;;;;;;;;;;;;;CAaA,SAAS,0BAA0B,OAAO;EACzC,IAAI,CAAC,MAAM,WAAW,kBAAkB,MAAM,WAAW,mBAAmB,MAAM,QAAQ,SAAS,mBAAmB,KAAK;EAC3H,IAAI,MAAM,QAAQ,mBAAmB,CAAC,MAAM,WAAW,kBAAkB,OAAO,MAAM,uBAAuB;EAC7G,OAAO,MAAM,WAAW,iBAAiB;CAC1C;;;;;;;;;;;CAWA,SAAS,4BAA4B,OAAO;EAC3C,OAAO,MAAM,oBAAoB;CAClC;;;;;;;;;;;;CAYA,SAAS,yBAAyB,OAAO;EACxC,IAAI,CAAC,MAAM,WAAW,iBAAiB,MAAM,WAAW,kBAAkB,MAAM,QAAQ,SAAS,kBAAkB,KAAK;EACxH,IAAI,MAAM,QAAQ,kBAAkB,CAAC,MAAM,WAAW,iBAAiB,OAAO,MAAM,sBAAsB;EAC1G,OAAO,MAAM,WAAW,gBAAgB;CACzC;;;;;;;;;;;CAWA,SAAS,2BAA2B,OAAO;EAC1C,OAAO,MAAM,mBAAmB;CACjC;;;;;;;;;;;;;CAaA,SAAS,wBAAwB,OAAO;EACvC,IAAI,CAAC,MAAM,WAAW,gBAAgB,MAAM,WAAW,iBAAiB,MAAM,QAAQ,SAAS,iBAAiB,KAAK;EACrH,IAAI,MAAM,QAAQ,iBAAiB,CAAC,MAAM,WAAW,gBAAgB,OAAO,MAAM,qBAAqB;EACvG,OAAO,MAAM,WAAW,eAAe;CACxC;;;;;;;;;;;CAWA,SAAS,6BAA6B,OAAO;EAC5C,OAAO,MAAM,kBAAkB;CAChC;;;;;;;;;;;;CAYA,SAAS,0BAA0B,OAAO;EACzC,IAAI,CAAC,MAAM,WAAW,kBAAkB,MAAM,WAAW,mBAAmB,MAAM,QAAQ,SAAS,mBAAmB,KAAK;EAC3H,IAAI,MAAM,QAAQ,mBAAmB,CAAC,MAAM,WAAW,kBAAkB,OAAO,MAAM,uBAAuB;EAC7G,OAAO,MAAM,WAAW,iBAAiB;CAC1C;;;;;;;;;;;;CAYA,SAAS,8BAA8B,OAAO;EAC7C,OAAO,MAAM,oBAAoB;CAClC;;;;;;;;;;;;;CAaA,SAAS,2BAA2B,OAAO;EAC1C,IAAI,CAAC,MAAM,WAAW,mBAAmB,MAAM,WAAW,oBAAoB,MAAM,QAAQ,SAAS,oBAAoB,KAAK;EAC9H,IAAI,MAAM,QAAQ,oBAAoB,CAAC,MAAM,WAAW,mBAAmB,OAAO,MAAM,wBAAwB;EAChH,OAAO,MAAM,WAAW,kBAAkB;CAC3C;;;;;;;;;;;;CAYA,SAAS,kBAAkB,OAAO;EACjC,OAAO,MAAM,qBAAqB;CACnC;;;;;;CC9KA,MAAM,uBAAuB,EAAE,qBAAqB,UAAU;EAC7D,gBAAgB,wBAAwB,OAAO;GAC9C,uBAAuB,EAAE,UAAU,sBAAsB,KAAK,EAAE;GAChE,8BAA8B,EAAE,UAAU,6BAA6B,KAAK,EAAE;GAC9E,2BAA2B,EAAE,UAAU,0BAA0B,KAAK,EAAE;GACxE,6BAA6B,EAAE,UAAU,4BAA4B,KAAK,EAAE;GAC5E,0BAA0B,EAAE,UAAU,yBAAyB,KAAK,EAAE;GACtE,4BAA4B,EAAE,UAAU,2BAA2B,KAAK,EAAE;GAC1E,yBAAyB,EAAE,UAAU,wBAAwB,KAAK,EAAE;GACpE,8BAA8B,EAAE,UAAU,6BAA6B,KAAK,EAAE;GAC9E,2BAA2B,EAAE,UAAU,0BAA0B,KAAK,EAAE;GACxE,+BAA+B,EAAE,UAAU,8BAA8B,KAAK,EAAE;GAChF,4BAA4B,EAAE,UAAU,2BAA2B,KAAK,EAAE;GAC1E,mBAAmB,EAAE,UAAU,kBAAkB,KAAK,EAAE;EACzD,CAAC;CACF,EAAE;;;;;;;CCjBF,SAAS,iBAAiB,OAAO;EAChC,IAAI,CAAC,MAAM,gBAAgB;GAC1B,MAAM,iBAAiB,EAAE,MAAM;GAC/B,MAAM,WAAW,OAAO,OAAO,MAAM,SAAS;GAC9C,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,SAAS,EAAE,CAAC,sBAAsB,MAAM,gBAAgB,KAAK;EACxG;EACA,OAAO,MAAM;CACd;;;;;;CAMA,SAAS,cAAc,QAAQ,KAAK,OAAO;EAC1C,MAAM,gBAAgB,iBAAiB,KAAK;EAC5C,MAAM,OAAO,OAAO,OAAO,aAAa;EACxC,KAAK,SAAS;EACd,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,OAAO;EAC9B,KAAK,MAAM;EACX,MAAM,UAAU,MAAM;EACtB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,QAAQ,EAAE,CAAC,IAAI;EACxD,OAAO;CACR;;;;;;;CCnBA,SAAS,oBAAoB,KAAK;EACjC,MAAM,OAAO,IAAI,MAAM,sBAAsB;EAC7C,MAAM,eAAe,IAAI;EACzB,OAAO,KAAK,kBAAkB,MAAM,eAAe;CACpD;;;;;;;;;CASA,SAAS,4BAA4B,OAAO;EAC3C,MAAM,OAAO,MAAM,wBAAwB,CAAC,CAAC;EAC7C,IAAI,MAAM,QAAQ,yBAAyB,OAAO;GACjD,MAAM,cAAc,CAAC;GACrB,MAAM,aAAa,QAAQ;IAC1B,IAAI,qBAAqB,YAAY;IACrC,YAAY,KAAK,GAAG;IACpB,IAAI,IAAI,QAAQ,UAAU,IAAI,gBAAgB,GAAG,IAAI,QAAQ,QAAQ,SAAS;GAC/E;GACA,KAAK,QAAQ,SAAS;GACtB,OAAO;EACR;EACA,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK,KAAK,EAAE,CAAC,qBAAqB;EACnE,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,aAAa,KAAK,UAAU;EACpC,IAAI,OAAO,IAAI,cAAc,QAAQ,GAAG,OAAO,IAAI,aAAa;EAChE,MAAM,SAAS,IAAI,MAAM,UAAU,QAAQ;EAC3C,IAAI,CAAC,QAAQ,YAAY;EACzB,IAAI,aAAa,YAAY,OAAO,WAAW,IAAI,UAAU,IAAI,KAAK;EACtE,OAAO,IAAI,aAAa;CACzB;;;;;;;;;;;;CAYA,SAAS,oBAAoB,KAAK,UAAU;EAC3C,IAAI,OAAO,IAAI,oBAAoB,QAAQ,GAAG,OAAO,IAAI,mBAAmB;EAC5E,MAAM,SAAS,IAAI,MAAM,UAAU,QAAQ;EAC3C,IAAI,CAAC,QAAQ,YAAY;EACzB,IAAI,CAAC,OAAO,UAAU,iBAAiB;GACtC,IAAI,mBAAmB,YAAY,CAAC,IAAI,SAAS,QAAQ,CAAC;GAC1D,OAAO,IAAI,mBAAmB;EAC/B;EACA,IAAI,mBAAmB,YAAY,OAAO,UAAU,gBAAgB,IAAI,UAAU,IAAI,KAAK;EAC3F,OAAO,IAAI,mBAAmB;CAC/B;;;;;;;;;;;;CAYA,SAAS,gBAAgB,KAAK,UAAU;EACvC,OAAO,IAAI,SAAS,QAAQ,KAAK,IAAI,MAAM,QAAQ;CACpD;;;;;;;;;;;CAWA,SAAS,gBAAgB,KAAK;EAC7B,OAAO,UAAU,IAAI,UAAU,MAAM,EAAE,OAAO;CAC/C;;;;;CAKA,SAAS,wBAAwB,OAAO;EACvC,MAAM,OAAO,MAAM,gBAAgB,CAAC,CAAC;EACrC,IAAI,WAAW;EACf,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK,WAAW,KAAK,IAAI,UAAU,KAAK,EAAE,CAAC,KAAK;EACjF,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,iBAAiB,KAAK;EAC9B,IAAI,CAAC,IAAI,UAAU;EACnB,OAAO,IAAI,MAAM,gBAAgB,CAAC,CAAC,SAAS,IAAI,aAAa,IAAI,MAAM,OAAO,IAAI,UAAU,IAAI;CACjG;;;;;;;;;;;CAWA,SAAS,kBAAkB,KAAK;EAC/B,MAAM,aAAa,CAAC;EACpB,IAAI,aAAa;EACjB,OAAO,MAAM;GACZ,MAAM,YAAY,WAAW,aAAa;GAC1C,IAAI,CAAC,WAAW;GAChB,WAAW,KAAK,SAAS;GACzB,aAAa;EACd;EACA,OAAO,WAAW,QAAQ;CAC3B;;;;;;;;;;;;CAYA,SAAS,gBAAgB,KAAK;EAC7B,MAAM,UAAU,IAAI,MAAM,kBAAkB;EAC5C,IAAI,QAAQ,IAAI;EAChB,IAAI,CAAC,OAAO,QAAQ,IAAI,8BAA8B,IAAI,QAAQ;EAClE,MAAM,QAAQ,IAAI,MAAM,QAAQ,MAAM;EACtC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;GACxC,MAAM,SAAS,QAAQ;GACvB,IAAI,OAAO,MAAM,IAAI,MAAM;GAC3B,IAAI,CAAC,MAAM;IACV,OAAO,cAAc,QAAQ,KAAK,IAAI,KAAK;IAC3C,MAAM,IAAI,QAAQ,IAAI;GACvB;GACA,MAAM,KAAK;EACZ;EACA,OAAO;CACR;;;;;;;;;;;CAWA,SAAS,0BAA0B,KAAK;EACvC,MAAM,SAAS,cAAc;EAC7B,MAAM,QAAQ,IAAI,YAAY;EAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACtC,MAAM,OAAO,MAAM;GACnB,OAAO,KAAK,OAAO,MAAM;EAC1B;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,eAAe,aAAa,OAAO,OAAO,QAAQ;EAC1D,OAAO,MAAM,QAAQ,WAAW,aAAa,OAAO,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,GAAG,UAAU,OAAO,KAAK;CAChH;;;;;;;;;;;;CAYA,SAAS,aAAa,OAAO,OAAO,WAAW;EAC9C,IAAI,OAAO,YAAY,MAAM,wBAAwB,IAAI,MAAM,YAAY,EAAA,CAAG,SAAS;EACvF,IAAI,CAAC,KAAK;GACT,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS;GACvC,IAAI,CAAC,KAEJ,MAAM,IAAI,MAAM;EAElB;EACA,OAAO;CACR;;;;;;CC/NA,MAAM,kBAAkB;EACvB,qBAAqB,WAAW,UAAU;GACzC,oBAAoB,mBAAmB,WAAW,OAAO;IACxD,qBAAqB,EAAE,KAAK,QAAQ,oBAAoB,GAAG,EAAE;IAC7D,2BAA2B;KAC1B,KAAK,QAAQ,0BAA0B,GAAG;KAC1C,WAAW,QAAQ,CAAC,IAAI,YAAY,CAAC;IACtC;IACA,iBAAiB;KAChB,KAAK,QAAQ,gBAAgB,GAAG;KAChC,WAAW,QAAQ,CAAC,IAAI,MAAM,kBAAkB,CAAC;IAClD;IACA,iBAAiB;KAChB,KAAK,QAAQ,gBAAgB,GAAG;KAChC,WAAW,QAAQ,CAAC,IAAI,OAAO;IAChC;IACA,kBAAkB,EAAE,KAAK,QAAQ,iBAAiB,GAAG,EAAE;IACvD,mBAAmB,EAAE,KAAK,QAAQ,kBAAkB,GAAG,EAAE;IACzD,qBAAqB,EAAE,KAAK,KAAK,aAAa,oBAAoB,KAAK,QAAQ,EAAE;IACjF,cAAc,EAAE,KAAK,KAAK,aAAa,aAAa,KAAK,QAAQ,EAAE;IACnE,iBAAiB,EAAE,KAAK,KAAK,aAAa,gBAAgB,KAAK,QAAQ,EAAE;GAC1E,CAAC;EACF;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,mBAAmB,OAAO;IACzC,6BAA6B;KAC5B,UAAU,4BAA4B,KAAK;KAC3C,gBAAgB;MACf,MAAM,wBAAwB,CAAC,CAAC;MAChC,MAAM,QAAQ;MACd,MAAM,QAAQ,yBAAyB,QAAQ,MAAM,MAAM,UAAU,IAAI,IAAI,KAAK;KACnF;IACD;IACA,gBAAgB,EAAE,KAAK,aAAa,OAAO,WAAW,eAAe,aAAa,OAAO,OAAO,MAAM,EAAE;IACxG,cAAc,EAAE,KAAK,IAAI,cAAc,aAAa,OAAO,IAAI,SAAS,EAAE;IAC1E,yBAAyB;KACxB,UAAU,wBAAwB,KAAK;KACvC,gBAAgB,CAAC,MAAM,gBAAgB,CAAC;IACzC;GACD,CAAC;EACF;CACD;;;;;;;;;;;;;;;;;;;;;;;CCzBA,SAAS,mCAAmC,OAAO,eAAe,WAAW,cAAc,kBAAkB,iBAAiB,eAAe;EAC5I,MAAM,QAAQ,kBAAkB,KAAK,IAAI,MAAM,QAAQ,QAAQ;EAC/D,MAAM,YAAY,YAAY;GAC7B,IAAI,OAAO,KAAK,MAAM,OAAO,OAAO;IACnC,MAAM,WAAW,MAAM,UAAU;IACjC,IAAI,CAAC,UAAU;IACf,MAAM,mBAAmB,MAAM;IAC/B,MAAM,gBAAgB,qBAAqB,KAAK,IAAI,MAAM,aAAa,OAAO;IAC9E,IAAI,CAAC,QAAQ,MAAM,YAAY,cAAc,SAAS,IAAI,CAAC,GAAG,aAAa,GAAG,SAAS,UAAU,aAAa;GAC/G;EACD,CAAC;CACF;;;;;;;;CAQA,SAAS,2BAA2B,OAAO,OAAO,WAAW,cAAc,kBAAkB,iBAAiB,eAAe;EAC5H,MAAM,YAAY,YAAY;GAC7B,mCAAmC,OAAO,OAAO,OAAO;GACxD,MAAM,YAAY,SAAS;EAC5B,CAAC;CACF;;;;;;;;;;;;;CAaA,SAAS,YAAY,OAAO;EAC3B,MAAM,OAAO,WAAW,MAAM,YAAY;EAC1C,MAAM,YAAY,YAAY;GAC7B,MAAM,OAAO,OAAO,KAAK,IAAI;GAC7B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;IACrC,MAAM,MAAM,KAAK;IACjB,MAAM,UAAU,IAAI,CAAC,IAAI,KAAK,IAAI;GACnC;EACD,CAAC;EACD,MAAM,WAAW,OAAO,OAAO,MAAM,SAAS;EAC9C,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,SAAS,EAAE,CAAC,yBAAyB,KAAK;CACrF;;;;;;;;;;;;;;CAcA,SAAS,mBAAmB,OAAO,YAAY;EAC9C,MAAM,EAAE,UAAU,OAAO,iBAAiB,MAAM;EAChD,IAAI,CAAC,MAAM,QAAQ,cAAc,OAAO;GACvC,GAAG,MAAM;GACT,GAAG;GACH;GACA;GACA;EACD;EACA,MAAM,gBAAgB,MAAM,QAAQ,aAAa,MAAM,SAAS,UAAU;EAC1E,MAAM,cAAc,EAAE,GAAG,OAAO,0BAA0B,aAAa,EAAE;EACzE,OAAO,OAAO,iBAAiB,OAAO,OAAO,OAAO,eAAe,aAAa,CAAC,GAAG;GACnF,GAAG;GACH,UAAU;IACT,OAAO;IACP,YAAY;IACZ,cAAc;IACd,UAAU;GACX;GACA,OAAO;IACN,OAAO;IACP,YAAY;IACZ,cAAc;IACd,UAAU;GACX;GACA,cAAc;IACb,OAAO;IACP,YAAY;IACZ,cAAc;IACd,UAAU;GACX;EACD,CAAC;CACF;;;;;;;;;;;;;CAaA,SAAS,iBAAiB,OAAO,SAAS,SAAS;EAClD,MAAM,gBAAgB,mBAAmB,OAAO,iBAAiB,SAAS,MAAM,OAAO,CAAC;EACxF,IAAI,MAAM,cAAc,MAAM,aAAa,UAAU,aAAa;OAC7D,MAAM,UAAU;EACrB,IAAI,SAAS,sBAAsB,OAAO,2BAA2B,OAAO,cAAc,SAAS,IAAI;CACxG;;;;;;;;CE1HA,MAAM,eAAe;EACpB;EACA;EACA;EACA;EACA;EACA,qBDZ2B,qBAAqB,UAAU;GAC1D,gBAAgB,qBAAqB,OAAO;IAC3C,aAAa,EAAE,UAAU,YAAY,KAAK,EAAE;IAC5C,kBAAkB,EAAE,KAAK,YAAY,iBAAiB,OAAO,OAAO,EAAE;GACvE,CAAC;EACF,ECOC;CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CCqBA,SAAS,cAAc,UAAU;EAChC,OAAO;CACR;;;;;;;;;;;;;CChCA,SAAS,YAAY,MAAM;EAC1B,MAAM,QAAQ;EACd,OAAO,eAAe,MAAM,SAAS,EAAE,MAAM;GAC5C,OAAO,KAAK,IAAI;EACjB,EAAE,CAAC;EACH,IAAI,SAAS,MAAM,MAAM,WAAW,KAAK,IAAI,KAAK,IAAI;EACtD,OAAO;CACR;;;;;;;;CCNA,SAAS,qBAAqB,UAAU,eAAe,CAAC,GAAG;EAC1D,OAAO,OAAO,QAAQ,CAAC,CAAC,SAAS,YAAY;GAC5C,eAAe,QAAQ,kBAAkB,YAAY,KAAK;EAC3D,CAAC;EACD,OAAO,WAAW,YAAY;CAC/B;;;;;;CAMA,SAAS,eAAe,cAAc;EACrC,MAAM,cAAc,aAAa,SAAS;EAC1C,MAAM,EAAE,gBAAgB,YAAY,aAAa,cAAc,kBAAkB,qBAAqB,iBAAiB,qBAAqB,WAAW,YAAY,aAAa,kBAAkB,iBAAiB,mBAAmB,SAAS,gBAAgB,WAAW,YAAY,GAAG,aAAa,aAAa;EACnT,MAAM,QAAQ;GACb,sBAAsB,CAAC;GACvB,wBAAwB,CAAC;GACzB,WAAW;IACV,GAAG;IACH,GAAG;GACJ;GACA,6BAA6B,CAAC;GAC9B,wBAAwB,CAAC;GACzB;GACA,qBAAqB,CAAC;GACtB,cAAc;IACb;IACA;IACA;GACD;GACA,YAAY,CAAC;GACb,OAAO,CAAC;GACR,WAAW,CAAC;EACb;EACA,MAAM,eAAe,OAAO,OAAO,MAAM,SAAS;EAClD,MAAM,gBAAgB;GACrB,GAAG,aAAa,QAAQ,KAAK,YAAY;IACxC,OAAO,OAAO,OAAO,KAAK,QAAQ,yBAAyB,KAAK,CAAC;GAClE,GAAG,CAAC,CAAC;GACL,GAAG;EACJ;EACA,IAAI,YAAY,qBAAqB,cAAc,OAAO,KAAK,MAAM,CAAC,SAAS,UAAU,OAAO,QAAQ,cAAc,KAAK,GAAG;GAC7H,MAAM,OAAO;GACb,MAAM,cAAc,YAAY,mBAAmB,KAAK,IAAI,GAAG,EAAE,WAAW,gBAAgB,UAAU,CAAC;GACvG,cAAc,MAAM,WAAW;GAC/B,IAAI,eAAe;GACnB,MAAM,uBAAuB,KAAK,WAAW,UAAU;IACtD,IAAI,cAAc;IAClB,YAAY,IAAI,KAAK;GACtB,CAAC;GACD,MAAM,uBAAuB,YAAY,WAAW,UAAU;IAC7D,eAAe;IACf,KAAK,IAAI,KAAK;IACd,eAAe;GAChB,CAAC;GACD,YAAY,gBAAgB,oBAAoB;GAChD,YAAY,gBAAgB,oBAAoB;EACjD;EACA,IAAI,YAAY,oBAAoB;GACnC,MAAM,eAAe,YAAY,mBAAmB,eAAe,EAAE,WAAW,qBAAqB,CAAC;GACtG,OAAO,eAAe,OAAO,WAAW;IACvC,cAAc;IACd,YAAY;IACZ,MAAM;KACL,OAAO,MAAM,aAAa,IAAI;IAC/B;IACA,IAAI,OAAO;KACV,MAAM,aAAa,UAAU,KAAK;IACnC;GACD,CAAC;EACF,OAAO,MAAM,UAAU;EACvB,MAAM,eAAe,qBAAqB,MAAM,WAAW,MAAM,QAAQ,YAAY;EACrF,MAAM,YAAY,OAAO,KAAK,MAAM,YAAY;EAChD,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAC1C,MAAM,MAAM,UAAU;GACtB,MAAM,UAAU,OAAO,YAAY,mBAAmB,MAAM,aAAa,MAAM,EAAE,WAAW,mBAAmB,MAAM,CAAC;GACtH,MAAM,MAAM,OAAO,YAAY,yBAAyB;IACvD,MAAM,UAAU,MAAM;IACtB,MAAM,eAAe,QAAQ,QAAQ;IACrC,MAAM,gBAAgB,eAAe,aAAa,IAAI,IAAI,MAAM,UAAU,IAAI,CAAC,IAAI;IACnF,IAAI,cAAc,OAAO;IACzB,MAAM,kBAAkB,QAAQ;IAChC,IAAI,mBAAmB,OAAO,iBAAiB,GAAG,GAAG;KACpD,MAAM,kBAAkB,gBAAgB;KACxC,OAAO,oBAAoB,KAAK,IAAI,MAAM,aAAa,OAAO;IAC/D;IACA,OAAO;GACR,GAAG,EAAE,WAAW,eAAe,MAAM,CAAC;EACvC;EACA,mCAAmC,KAAK;EACxC,MAAM,QAAQ,YAAY,YAAY,yBAAyB;GAC9D,MAAM,WAAW,CAAC;GAClB,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;IAC1C,MAAM,MAAM,UAAU;IACtB,SAAS,OAAO,MAAM,MAAM,IAAI,CAAC,IAAI;GACtC;GACA,OAAO;EACR,GAAG;GACF,SAAS;GACT,WAAW;EACZ,CAAC,CAAC;EACF,KAAK,IAAI,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;GAC7C,MAAM,UAAU,aAAa;GAC7B,QAAQ,wBAAwB,KAAK;GACrC,IAAI,QAAQ,sBAAsB,MAAM,qBAAqB,KAAK,QAAQ,qBAAqB,KAAK,OAAO,CAAC;GAC5G,IAAI,QAAQ,wBAAwB,MAAM,uBAAuB,KAAK,QAAQ,uBAAuB,KAAK,OAAO,CAAC;GAClH,IAAI,QAAQ,6BAA6B,MAAM,4BAA4B,KAAK,QAAQ,4BAA4B,KAAK,OAAO,CAAC;GACjI,IAAI,QAAQ,wBAAwB,MAAM,uBAAuB,KAAK,QAAQ,uBAAuB,KAAK,OAAO,CAAC;GAClH,IAAI,QAAQ,qBAAqB,MAAM,oBAAoB,KAAK,QAAQ,oBAAoB,KAAK,OAAO,CAAC;GACzG,QAAQ,qBAAqB,KAAK;EACnC;EAuBA,OAAO;CACR;;;;;;CC3IA,MAAM,uBAAuB;EAC5B,wBAAwB,UAAU;GACjC,MAAM,oBAAoB;EAC3B;EACA,yBAAyB,UAAU;GAClC,MAAM,oBAAoB;EAC3B;EACA,kBAAkB,iBAAiB;GAClC,OAAO;IACN,eAAe,6BAA6B;IAC5C,GAAG;GACJ;EACD;EACA,yBAAyB,UAAU;GAClC,OAAO;IACN,uBAAuB,iBAAiB,iBAAiB,KAAK;IAC9D,wBAAwB;IACxB,qBAAqB;IACrB,0BAA0B;IAC1B,+BAA+B;IAC/B,yBAAyB;IACzB,4BAA4B,UAAU;KACrC,MAAM,aAAa;KACnB,OAAO,QAAQ,WAAW,YAAY,WAAW,aAAa,QAAQ;IACvE;IACA,iCAAiC,UAAU;KAC1C,MAAM,aAAa;KACnB,OAAO,QAAQ,WAAW,WAAW,WAAW,WAAW,WAAW,aAAa,WAAW,WAAW,aAAa,OAAO;IAC9H;GACD;EACD;EACA,sBAAsB,WAAW,UAAU;GAC1C,oBAAoB,wBAAwB,WAAW,OAAO;IAC7D,mBAAmB,EAAE,KAAK,SAAS,kBAAkB,IAAI,EAAE;IAC3D,oBAAoB,EAAE,KAAK,SAAS,mBAAmB,IAAI,EAAE;IAC7D,mBAAmB,EAAE,KAAK,SAAS,kBAAkB,IAAI,EAAE;IAC3D,kBAAkB,EAAE,KAAK,SAAS,iBAAiB,IAAI,EAAE;IACzD,wBAAwB,EAAE,KAAK,SAAS,uBAAuB,IAAI,EAAE;IACrE,+BAA+B,EAAE,KAAK,MAAM,oBAAoB,8BAA8B,MAAM,eAAe,EAAE;IACrH,gCAAgC,EAAE,KAAK,SAAS,+BAA+B,IAAI,EAAE;GACtF,CAAC;EACF;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,wBAAwB,OAAO;IAC9C,wBAAwB,EAAE,KAAK,YAAY,uBAAuB,OAAO,OAAO,EAAE;IAClF,0BAA0B,EAAE,KAAK,iBAAiB,yBAAyB,OAAO,YAAY,EAAE;IAChG,8BAA8B,EAAE,UAAU,6BAA6B,KAAK,EAAE;IAC9E,qCAAqC;KACpC,UAAU,oCAAoC,KAAK;KACnD,gBAAgB;MACf,MAAM,MAAM,kBAAkB,IAAI;MAClC,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;MACd,MAAM,QAAQ;KACf;IACD;IACA,mCAAmC;KAClC,UAAU,kCAAkC,KAAK;KACjD,gBAAgB;MACf,MAAM,mBAAmB;MACzB,MAAM,sBAAsB;MAC5B,mBAAmB,OAAO,iCAAiC,mCAAmC;KAC/F;IACD;IACA,8BAA8B;KAC7B,UAAU,6BAA6B,KAAK;KAC5C,gBAAgB;MACf,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,sBAAsB;MAC5B,mBAAmB,OAAO,iCAAiC,mCAAmC;MAC9F,mBAAmB,OAAO,+BAA+B,iCAAiC;KAC3F;IACD;IACA,uBAAuB,EAAE,KAAK,OAAO,SAAS,sBAAsB,OAAO,OAAO,IAAI,EAAE;IACxF,sBAAsB,EAAE,UAAU,qBAAqB,KAAK,EAAE;IAC9D,sBAAsB,EAAE,KAAK,OAAO,aAAa,qBAAqB,OAAO,OAAO,QAAQ,EAAE;IAC9F,sBAAsB,EAAE,UAAU,qBAAqB,KAAK,EAAE;IAC9D,yBAAyB,EAAE,KAAK,cAAc,wBAAwB,OAAO,SAAS,EAAE;IACxF,2BAA2B,EAAE,KAAK,cAAc,0BAA0B,OAAO,SAAS,EAAE;IAC5F,0BAA0B;KACzB,UAAU,yBAAyB,KAAK;KACxC,gBAAgB;MACf,mBAAmB,OAAO,0BAA0B,4BAA4B;MAChF,mBAAmB,OAAO,+BAA+B,iCAAiC;MAC1F,MAAM,sBAAsB;MAC5B,MAAM,QAAQ;KACf;IACD;IACA,iCAAiC;KAChC,UAAU,gCAAgC,KAAK;KAC/C,gBAAgB;MACf,mBAAmB,OAAO,0BAA0B,4BAA4B;MAChF,MAAM,sBAAsB;MAC5B,MAAM,QAAQ;KACf;IACD;IACA,4BAA4B;KAC3B,UAAU,2BAA2B,KAAK;KAC1C,gBAAgB;MACf,mBAAmB,OAAO,0BAA0B,4BAA4B;MAChF,mBAAmB,OAAO,+BAA+B,iCAAiC;MAC1F,MAAM,sBAAsB;MAC5B,MAAM,QAAQ;KACf;IACD;IACA,8BAA8B;KAC7B,UAAU,6BAA6B,KAAK;KAC5C,gBAAgB,CAAC,mBAAmB,OAAO,0BAA0B,4BAA4B,GAAG,MAAM,sBAAsB,CAAC;IAClI;IACA,iCAAiC;KAChC,UAAU,gCAAgC,KAAK;KAC/C,gBAAgB,CAAC,mBAAmB,OAAO,0BAA0B,4BAA4B,CAAC;IACnG;GACD,CAAC;EACF;CACD;;;;;;;;;;;;;;CC9GA,SAAS,8BAA8B,QAAQ,OAAO;EACrD,MAAM,sBAAsB,MAAM,WAAW,wBAAwB,cAAc;EACnF,IAAI,wBAAwB,oBAAoB,OAAO;EACvD,IAAI,CAAC,uBAAuB,wBAAwB,oBAAoB,OAAO,MAAM,MAAM,QAAQ,SAAS,sBAAsB,OAAO,OAAO,EAAE,YAAY,KAAK;EACnK,OAAO,sBAAsB;CAC9B;;;;;;;;;;;;;CAaA,SAAS,0BAA0B,QAAQ,OAAO;EACjD,MAAM,WAAW,QAAQ,MAAM;EAC/B,MAAM,mBAAmB,MAAM,WAAW,qBAAqB,cAAc;EAC7E,IAAI,oBAAoB,iBAAiB;EACzC,IAAI,CAAC,mBAAmB,oBAAoB,iBAAiB,YAAY,MAAM,QAAQ,SAAS,kBAAkB,OAAO,QAAQ,YAAY,MAAM,uBAAuB;EAC1K,OAAO,kBAAkB;CAC1B;;;;;;;;;;;;CAYA,SAAS,8BAA8B,QAAQ,OAAO;EACrD,MAAM,sBAAsB,MAAM,WAAW,wBAAwB,cAAc;EACnF,IAAI,wBAAwB,oBAAoB,OAAO;EACvD,IAAI,CAAC,uBAAuB,wBAAwB,oBAAoB,OAAO,MAAM,MAAM,QAAQ,SAAS,sBAAsB,OAAO,OAAO,EAAE,KAAK,uBAAuB;EAC9K,OAAO,sBAAsB;CAC9B;CACA,SAAS,yBAAyB;EACjC,MAAM,2BAA2B,IAAI,IAAI;EACzC,aAAa;CACd;;;;;;;;;;;;CAYA,SAAS,mCAAmC,OAAO;EAClD,IAAI,CAAC,MAAM,WAAW,2BAA2B,MAAM,WAAW,4BAA4B,MAAM,QAAQ,SAAS,sBAAsB,OAAO,YAAY,YAAY,KAAK;EAC/K,MAAM,wBAAwB,MAAM,WAAW;EAC/C,OAAO,sBAAsB;CAC9B;;;;;;;;;;;;;CAaA,SAAS,+BAA+B,OAAO;EAC9C,IAAI,CAAC,MAAM,WAAW,uBAAuB,MAAM,WAAW,wBAAwB,MAAM,QAAQ,SAAS,kBAAkB,OAAO,YAAY,YAAY,MAAM,uBAAuB;EAC3L,MAAM,oBAAoB,MAAM,WAAW;EAC3C,OAAO,kBAAkB;CAC1B;;;;;;;;;;;;CAYA,SAAS,mCAAmC,OAAO;EAClD,IAAI,CAAC,MAAM,WAAW,2BAA2B,MAAM,WAAW,4BAA4B,MAAM,QAAQ,SAAS,sBAAsB,OAAO,YAAY,KAAK,uBAAuB;EAC1L,MAAM,wBAAwB,MAAM,WAAW;EAC/C,OAAO,sBAAsB;CAC9B;;;;;;;;;;;;CC/FA,MAAM,wBAAwB;EAC7B,wBAAwB,WAAW,UAAU;GAC5C,oBAAoB,yBAAyB,WAAW,OAAO;IAC9D,2BAA2B,EAAE,KAAK,WAAW,0BAA0B,QAAQ,OAAO,KAAK,EAAE;IAC7F,+BAA+B,EAAE,KAAK,WAAW,8BAA8B,QAAQ,OAAO,KAAK,EAAE;IACrG,+BAA+B,EAAE,KAAK,WAAW,8BAA8B,QAAQ,OAAO,KAAK,EAAE;GACtG,CAAC;EACF;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,yBAAyB,OAAO;IAC/C,gCAAgC,EAAE,UAAU,+BAA+B,KAAK,EAAE;IAClF,oCAAoC,EAAE,UAAU,mCAAmC,KAAK,EAAE;IAC1F,oCAAoC,EAAE,UAAU,mCAAmC,KAAK,EAAE;GAC3F,CAAC;EACF;CACD;;;;;;;;;;;;;;CCdA,SAAS,+BAA+B;EACvC,OAAO,CAAC;CACT;;;;;;;;;;;;;;;;;CAiBA,SAAS,uBAAuB,QAAQ;EACvC,MAAM,YAAY,OAAO,MAAM,aAAa;EAC5C,MAAM,OAAO,OAAO,MAAM,gBAAgB,CAAC,CAAC;EAC5C,IAAI;EACJ,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACrC,MAAM,WAAW,KAAK,EAAE,CAAC,SAAS,OAAO,EAAE;GAC3C,IAAI,aAAa,QAAQ,aAAa,KAAK,GAAG;IAC7C,QAAQ;IACR;GACD;EACD;EACA,IAAI;EACJ,IAAI,OAAO,UAAU,UAAU,eAAe;OACzC,IAAI,OAAO,UAAU,UAAU,eAAe;OAC9C,IAAI,OAAO,UAAU,WAAW,eAAe;OAC/C,IAAI,MAAM,QAAQ,KAAK,GAAG,eAAe;OACzC,IAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,iBAAiB,eAAe;OAC9E,IAAI,UAAU,QAAQ,OAAO,UAAU,UAAU,eAAe;OAChE,eAAe;EAGpB,OAFiB,YAAY;CAG9B;;;;;;;;;;;;;CAaA,SAAS,mBAAmB,QAAQ;EACnC,IAAI,WAAW;EACf,MAAM,YAAY,OAAO,MAAM,aAAa;EAC5C,WAAW,WAAW,OAAO,UAAU,QAAQ,IAAI,OAAO,UAAU,WAAW,OAAO,UAAU,aAAa,SAAS,uBAAuB,MAAM,IAAI,YAAY,OAAO,UAAU;EAEpL,OAAO,YAAY,KAAK;CACzB;;;;;;;;;;;;CAYA,SAAS,oBAAoB,QAAQ;EACpC,QAAQ,OAAO,UAAU,sBAAsB,UAAU,OAAO,MAAM,QAAQ,uBAAuB,UAAU,OAAO,MAAM,QAAQ,iBAAiB,SAAS,CAAC,CAAC,OAAO;CACxK;;;;;;;;;;;;CAYA,SAAS,qBAAqB,QAAQ;EACrC,OAAO,sBAAsB,MAAM,IAAI;CACxC;;;;;;;;;;;CAWA,SAAS,sBAAsB,QAAQ;EACtC,OAAO,OAAO,MAAM,MAAM,eAAe,IAAI,CAAC,EAAE,MAAM,MAAM,EAAE,OAAO,OAAO,EAAE,CAAC,EAAE;CAClF;;;;;;;;;;;CAWA,SAAS,sBAAsB,QAAQ;EACtC,OAAO,OAAO,MAAM,MAAM,eAAe,IAAI,CAAC,EAAE,WAAW,MAAM,EAAE,OAAO,OAAO,EAAE,KAAK;CACzF;;;;;;;;;;;;CAYA,SAAS,sBAAsB,QAAQ,OAAO;EAC7C,uBAAuB,OAAO,QAAQ,QAAQ;GAC7C,MAAM,WAAW,mBAAmB,MAAM;GAC1C,MAAM,iBAAiB,IAAI,MAAM,MAAM,EAAE,OAAO,OAAO,EAAE;GACzD,MAAM,YAAY,iBAAiB,OAAO,iBAAiB,eAAe,QAAQ,KAAK,CAAC;GACxF,IAAI,uBAAuB,UAAU,WAAW,MAAM,GAAG,OAAO,IAAI,QAAQ,MAAM,EAAE,OAAO,OAAO,EAAE;GACpG,MAAM,eAAe;IACpB,IAAI,OAAO;IACX,OAAO;GACR;GACA,IAAI,gBAAgB,OAAO,IAAI,KAAK,MAAM;IACzC,IAAI,EAAE,OAAO,OAAO,IAAI,OAAO;IAC/B,OAAO;GACR,CAAC;GACD,IAAI,IAAI,QAAQ,OAAO,CAAC,GAAG,KAAK,YAAY;GAC5C,OAAO,CAAC,YAAY;EACrB,CAAC;CACF;;;;;;;;;;;;;CAaA,SAAS,uBAAuB,OAAO,SAAS;EAC/C,MAAM,kBAAkB,MAAM,sBAAsB;EACpD,MAAM,YAAY,QAAQ;GACzB,OAAO,iBAAiB,SAAS,GAAG,CAAC,CAAC,QAAQ,WAAW;IACxD,MAAM,SAAS,gBAAgB,OAAO;IACtC,IAAI,QACC;SAAA,uBAAuB,mBAAmB,MAAM,GAAG,OAAO,OAAO,MAAM,GAAG,OAAO;IAAA;IAEtF,OAAO;GACR,CAAC;EACF;EACA,MAAM,QAAQ,wBAAwB,QAAQ;CAC/C;;;;;;;;;;;;;CAaA,SAAS,yBAAyB,OAAO,cAAc;EACtD,uBAAuB,OAAO,eAAe,CAAC,IAAI,WAAW,MAAM,aAAa,iBAAiB,CAAC,CAAC,CAAC;CACrG;;;;;;;;;;;;;;;;CAgBA,SAAS,uBAAuB,UAAU,OAAO,QAAQ;EACxD,IAAI,OAAO,UAAU,aAAa,OAAO;EACzC,IAAI,UAAU,YAAY,OAAO,CAAC,CAAC,SAAS,WAAW,OAAO,MAAM;EACpE,OAAO,OAAO,UAAU,YAAY,CAAC;CACtC;;;;;;CClNA,MAAM,yBAAyB;EAC9B,kBAAkB,iBAAiB;GAClC,OAAO;IACN,eAAe,6BAA6B;IAC5C,GAAG;GACJ;EACD;EACA,2BAA2B;GAC1B,OAAO,EAAE,UAAU,OAAO;EAC3B;EACA,yBAAyB,UAAU;GAClC,OAAO;IACN,uBAAuB,iBAAiB,iBAAiB,KAAK;IAC9D,oBAAoB;IACpB,uBAAuB;GACxB;EACD;EACA,wBAAwB,WAAW,UAAU;GAC5C,oBAAoB,0BAA0B,WAAW,OAAO;IAC/D,wBAAwB,EAAE,KAAK,WAAW,uBAAuB,MAAM,EAAE;IACzE,oBAAoB,EAAE,KAAK,WAAW,mBAAmB,MAAM,EAAE;IACjE,qBAAqB,EAAE,KAAK,WAAW,oBAAoB,MAAM,EAAE;IACnE,sBAAsB,EAAE,KAAK,WAAW,qBAAqB,MAAM,EAAE;IACrE,uBAAuB,EAAE,KAAK,WAAW,sBAAsB,MAAM,EAAE;IACvE,uBAAuB,EAAE,KAAK,WAAW,sBAAsB,MAAM,EAAE;IACvE,uBAAuB,EAAE,KAAK,QAAQ,UAAU,sBAAsB,QAAQ,KAAK,EAAE;GACtF,CAAC;EACF;EACA,sBAAsB,QAAQ;GAC7B,IAAI,gBAAgB,cAAc;GAClC,IAAI,oBAAoB,cAAc;EACvC;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,0BAA0B,OAAO;IAChD,wBAAwB,EAAE,KAAK,YAAY,uBAAuB,OAAO,OAAO,EAAE;IAClF,0BAA0B,EAAE,KAAK,iBAAiB,yBAAyB,OAAO,YAAY,EAAE;GACjG,CAAC;EACF;CACD;;;;;;CCtCA,MAAM,wBAAwB;EAC7B,kBAAkB,iBAAiB;GAClC,OAAO;IACN,aAAa,2BAA2B;IACxC,GAAG;GACJ;EACD;EACA,yBAAyB,UAAU;GAClC,OAAO,EAAE,qBAAqB,iBAAiB,eAAe,KAAK,EAAE;EACtE;EACA,wBAAwB,WAAW,UAAU;GAC5C,oBAAoB,yBAAyB,WAAW,OAAO;IAC9D,iBAAiB,EAAE,KAAK,QAAQ,aAAa,gBAAgB,QAAQ,QAAQ,EAAE;IAC/E,yBAAyB,EAAE,KAAK,QAAQ,aAAa,wBAAwB,QAAQ,QAAQ,EAAE;IAC/F,wBAAwB,EAAE,KAAK,QAAQ,aAAa,uBAAuB,QAAQ,QAAQ,EAAE;GAC9F,CAAC;EACF;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,yBAAyB,OAAO;IAC/C,wBAAwB;KACvB,UAAU,uBAAuB,KAAK;KACtC,gBAAgB;MACf,MAAM,QAAQ;MACd,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,kBAAkB,IAAI;MAClC,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;KACf;IACD;IACA,sBAAsB,EAAE,KAAK,YAAY,qBAAqB,OAAO,OAAO,EAAE;IAC9E,wBAAwB,EAAE,KAAK,iBAAiB,uBAAuB,OAAO,YAAY,EAAE;IAC5F,yBAAyB;KACxB,UAAU,wBAAwB,KAAK;KACvC,gBAAgB;MACf,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;KACf;IACD;GACD,CAAC;EACF;CACD;;;;;;;;;;;CCpCA,MAAM,uBAAuB;EAC5B,kBAAkB,iBAAiB;GAClC,OAAO;IACN,eAAe;KACd,GAAG,6BAA6B;KAChC,GAAG,aAAa;IACjB;IACA,GAAG;GACJ;EACD;EACA,yBAAyB,UAAU;GAClC,OAAO,EAAE,uBAAuB,iBAAiB,iBAAiB,KAAK,EAAE;EAC1E;EACA,wBAAwB,WAAW,UAAU;GAC5C,oBAAoB,wBAAwB,WAAW,OAAO;IAC7D,YAAY,EAAE,KAAK,QAAQ,aAAa,WAAW,QAAQ,QAAQ,EAAE;IACrE,kBAAkB,EAAE,KAAK,WAAW,iBAAiB,MAAM,EAAE;IAC7D,uBAAuB,EAAE,KAAK,WAAW,sBAAsB,MAAM,EAAE;IACvE,oBAAoB,EAAE,KAAK,WAAW,mBAAmB,MAAM,EAAE;GAClE,CAAC;EACF;EACA,qBAAqB,WAAW,UAAU;GACzC,oBAAoB,wBAAwB,WAAW,OAAO;IAC7D,2BAA2B;KAC1B,KAAK,QAAQ,0BAA0B,GAAG;KAC1C,WAAW,QAAQ;MAClB,IAAI,YAAY;MAChB,IAAI,MAAM,MAAM,eAAe,IAAI;MACnC,IAAI,MAAM,MAAM,kBAAkB,IAAI;KACvC;IACD;IACA,0BAA0B;KACzB,KAAK,QAAQ,yBAAyB,GAAG;KACzC,WAAW,QAAQ;MAClB,IAAI,YAAY;MAChB,IAAI,MAAM,MAAM,eAAe,IAAI,CAAC,EAAE;MACtC,IAAI,MAAM,MAAM,kBAAkB,IAAI;KACvC;IACD;IACA,wBAAwB;KACvB,KAAK,QAAQ,uBAAuB,GAAG;KACvC,WAAW,QAAQ;MAClB,IAAI,YAAY;MAChB,IAAI,MAAM,MAAM,eAAe,IAAI,CAAC,EAAE;MACtC,IAAI,MAAM,MAAM,kBAAkB,IAAI;KACvC;IACD;GACD,CAAC;EACF;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,wBAAwB,OAAO;IAC9C,wBAAwB,EAAE,KAAK,YAAY,uBAAuB,OAAO,OAAO,EAAE;IAClF,0BAA0B,EAAE,KAAK,iBAAiB,yBAAyB,OAAO,YAAY,EAAE;IAChG,8BAA8B,EAAE,KAAK,aAAa,6BAA6B,OAAO,QAAQ,EAAE;IAChG,4BAA4B;KAC3B,UAAU,2BAA2B,KAAK;KAC1C,gBAAgB;MACf,MAAM,cAAc;MACpB,mBAAmB,OAAO,yBAAyB,2BAA2B;MAC9E,MAAM,MAAM,eAAe,IAAI,CAAC,EAAE;MAClC,MAAM,MAAM,aAAa,IAAI;KAC9B;IACD;IACA,6BAA6B;KAC5B,UAAU,4BAA4B,KAAK;KAC3C,gBAAgB;MACf,MAAM,cAAc;MACpB,mBAAmB,OAAO,yBAAyB,2BAA2B;MAC9E,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,aAAa,IAAI;KAC9B;IACD;IACA,0BAA0B;KACzB,UAAU,yBAAyB,KAAK;KACxC,gBAAgB;MACf,MAAM,cAAc;MACpB,mBAAmB,OAAO,yBAAyB,2BAA2B;MAC9E,MAAM,MAAM,eAAe,IAAI,CAAC,EAAE;MAClC,MAAM,MAAM,aAAa,IAAI;KAC9B;IACD;IACA,4BAA4B;KAC3B,UAAU,2BAA2B,KAAK;KAC1C,gBAAgB,CAAC,mBAAmB,OAAO,wBAAwB,0BAA0B,CAAC;IAC/F;IACA,6BAA6B;KAC5B,UAAU,4BAA4B,KAAK;KAC3C,gBAAgB,CAAC,mBAAmB,OAAO,yBAAyB,2BAA2B,CAAC;IACjG;IACA,0BAA0B;KACzB,UAAU,yBAAyB,KAAK;KACxC,gBAAgB,CAAC,mBAAmB,OAAO,sBAAsB,wBAAwB,CAAC;IAC3F;IACA,2BAA2B;KAC1B,UAAU,0BAA0B,KAAK;KACzC,gBAAgB,CAAC,mBAAmB,OAAO,wBAAwB,0BAA0B,CAAC;IAC/F;IACA,yBAAyB;KACxB,UAAU,wBAAwB,KAAK;KACvC,gBAAgB,CAAC,mBAAmB,OAAO,sBAAsB,wBAAwB,CAAC;IAC3F;IACA,4BAA4B;KAC3B,UAAU,2BAA2B,KAAK;KAC1C,gBAAgB,CAAC,mBAAmB,OAAO,yBAAyB,2BAA2B,CAAC;IACjG;IACA,2BAA2B;KAC1B,UAAU,0BAA0B,KAAK;KACzC,gBAAgB,CAAC,mBAAmB,OAAO,wBAAwB,0BAA0B,CAAC;IAC/F;IACA,yBAAyB;KACxB,UAAU,wBAAwB,KAAK;KACvC,gBAAgB,CAAC,mBAAmB,OAAO,sBAAsB,wBAAwB,CAAC;IAC3F;IACA,4BAA4B;KAC3B,UAAU,2BAA2B,KAAK;KAC1C,gBAAgB,CAAC,mBAAmB,OAAO,yBAAyB,2BAA2B,CAAC;IACjG;IACA,2BAA2B;KAC1B,UAAU,0BAA0B,KAAK;KACzC,gBAAgB;MACf,MAAM,QAAQ;MACd,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;KACf;IACD;IACA,yBAAyB;KACxB,UAAU,wBAAwB,KAAK;KACvC,gBAAgB;MACf,MAAM,QAAQ;MACd,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;KACf;IACD;IACA,4BAA4B;KAC3B,UAAU,2BAA2B,KAAK;KAC1C,gBAAgB;MACf,MAAM,QAAQ;MACd,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;KACf;IACD;IACA,4BAA4B,EAAE,KAAK,aAAa,2BAA2B,OAAO,QAAQ,EAAE;IAC5F,kCAAkC;KACjC,UAAU,iCAAiC,KAAK;KAChD,gBAAgB;MACf,MAAM,QAAQ;MACd,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,kBAAkB,IAAI;MAClC,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;KACf;IACD;IACA,mCAAmC;KAClC,UAAU,kCAAkC,KAAK;KACjD,gBAAgB;MACf,MAAM,QAAQ;MACd,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,kBAAkB,IAAI;MAClC,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;KACf;IACD;IACA,gCAAgC;KAC/B,UAAU,+BAA+B,KAAK;KAC9C,gBAAgB;MACf,MAAM,QAAQ;MACd,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,kBAAkB,IAAI;MAClC,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;KACf;IACD;IACA,mCAAmC,EAAE,KAAK,aAAa,kCAAkC,OAAO,QAAQ,EAAE;GAC3G,CAAC;EACF;CACD;;;;;;;;;;;;;;CCtLA,SAAS,8BAA8B;EACtC,OAAO,cAAc;CACtB;;;;;;;;;;;;;CAaA,SAAS,kCAAkC;EAC1C,OAAO;GACN,MAAM;GACN,SAAS;GACT,SAAS,OAAO;EACjB;CACD;;;;;;;;;;;;CAYA,SAAS,eAAe,QAAQ;EAC/B,MAAM,eAAe,gCAAgC;EACrD,MAAM,eAAe,OAAO,MAAM,MAAM,cAAc,IAAI;EAC1D,MAAM,aAAa,gBAAgB,OAAO,cAAc,OAAO,EAAE,IAAI,aAAa,OAAO,MAAM,KAAK;EACpG,OAAO,KAAK,IAAI,KAAK,IAAI,OAAO,UAAU,WAAW,aAAa,SAAS,cAAc,OAAO,UAAU,QAAQ,aAAa,IAAI,GAAG,OAAO,UAAU,WAAW,aAAa,OAAO;CACvL;CACA,SAAS,mBAAmB,SAAS;EACpC,MAAM,SAAS,cAAc;EAC7B,MAAM,SAAS,cAAc;EAC7B,MAAM,QAAQ,IAAI,MAAM,QAAQ,MAAM;EACtC,IAAI,QAAQ;EACZ,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;GACxC,MAAM,SAAS,QAAQ;GACvB,MAAM,OAAO,mBAAmB,QAAQ,WAAW,cAAc;GACjE,MAAM,KAAK;GACX,OAAO,OAAO,MAAM;GACpB,SAAS;EACV;EACA,IAAI,QAAQ;EACZ,KAAK,IAAI,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,KAAK;GAC7C,OAAO,QAAQ,EAAE,CAAC,MAAM;GACxB,SAAS,MAAM;EAChB;EACA,OAAO;GACN;GACA;EACD;CACD;;;;;;;;;;;;;;CAcA,SAAS,uBAAuB,OAAO;EACtC,OAAO;GACN,KAAK,mBAAmB,kCAAkC,KAAK,CAAC;GAChE,QAAQ,mBAAmB,kCAAkC,OAAO,QAAQ,CAAC;GAC7E,OAAO,mBAAmB,kCAAkC,OAAO,OAAO,CAAC;GAC3E,KAAK,mBAAmB,kCAAkC,OAAO,KAAK,CAAC;EACxE;CACD;CACA,SAAS,aAAa,UAAU;EAC/B,OAAO,aAAa,UAAU,UAAU,aAAa,QAAQ,QAAQ,aAAa,WAAW,WAAW;CACzG;;;;;;;;;;;;;;;;CAgBA,SAAS,gBAAgB,QAAQ,UAAU;EAC1C,OAAO,mBAAmB,OAAO,OAAO,oBAAoB,sBAAsB,CAAC,CAAC,aAAa,QAAQ,EAAE,CAAC,OAAO,OAAO,OAAO;CAClI;;;;;;;;;;;;CAYA,SAAS,gBAAgB,QAAQ,UAAU;EAC1C,OAAO,mBAAmB,OAAO,OAAO,oBAAoB,sBAAsB,CAAC,CAAC,aAAa,QAAQ,EAAE,CAAC,OAAO,OAAO,OAAO;CAClI;;;;;;;;;;;;CAYA,SAAS,iBAAiB,QAAQ;EACjC,sBAAsB,OAAO,QAAQ,QAAQ;GAC5C,MAAM,OAAO,cAAc;GAC3B,MAAM,YAAY,OAAO,KAAK,GAAG;GACjC,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;IAC1C,MAAM,WAAW,UAAU;IAC3B,IAAI,aAAa,OAAO,IAAI,KAAK,YAAY,IAAI;GAClD;GACA,OAAO;EACR,CAAC;CACF;CACA,SAAS,cAAc,QAAQ;EAC9B,IAAI,CAAC,OAAO,WAAW,QAAQ,OAAO,eAAe,OAAO,MAAM;EAClE,IAAI,MAAM;EACV,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,WAAW,QAAQ,KAAK,OAAO,cAAc,OAAO,WAAW,EAAE;EAC5F,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,eAAe,QAAQ;EAC/B,OAAO,cAAc,MAAM;CAC5B;;;;;;;;;;;;CAYA,SAAS,gBAAgB,QAAQ;EAChC,IAAI,OAAO,QAAQ,GAAG;GACrB,MAAM,oBAAoB,OAAO,aAAa,QAAQ,OAAO,QAAQ;GACrE,IAAI,mBAAmB,OAAO,mBAAmB,mBAAmB,YAAY,eAAe,IAAI,mBAAmB,mBAAmB,WAAW,cAAc;EACnK;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,sBAAsB,OAAO,SAAS;EAC9C,MAAM,QAAQ,uBAAuB,OAAO;CAC7C;;;;;;;;;;;;;CAaA,SAAS,wBAAwB,OAAO,cAAc;EACrD,sBAAsB,OAAO,eAAe,cAAc,IAAI,OAAO,OAAO,cAAc,GAAG,WAAW,MAAM,aAAa,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAChJ;;;;;;;;;;;CAWA,SAAS,mBAAmB,OAAO;EAClC,OAAO,MAAM,gBAAgB,CAAC,CAAC,EAAE,EAAE,QAAQ,QAAQ,KAAK,WAAW;GAClE,OAAO,MAAM,eAAe,MAAM;EACnC,GAAG,CAAC,KAAK;CACV;;;;;;;;;;;CAWA,SAAS,wBAAwB,OAAO;EACvC,OAAO,mBAAmB,OAAO,wBAAwB,0BAA0B,CAAC,CAAC,EAAE,EAAE,QAAQ,QAAQ,KAAK,WAAW;GACxH,OAAO,MAAM,eAAe,MAAM;EACnC,GAAG,CAAC,KAAK;CACV;;;;;;;;;;;CAWA,SAAS,yBAAyB,OAAO;EACxC,OAAO,mBAAmB,OAAO,yBAAyB,2BAA2B,CAAC,CAAC,EAAE,EAAE,QAAQ,QAAQ,KAAK,WAAW;GAC1H,OAAO,MAAM,eAAe,MAAM;EACnC,GAAG,CAAC,KAAK;CACV;;;;;;;;;;;CAWA,SAAS,sBAAsB,OAAO;EACrC,OAAO,mBAAmB,OAAO,sBAAsB,wBAAwB,CAAC,CAAC,EAAE,EAAE,QAAQ,QAAQ,KAAK,WAAW;GACpH,OAAO,MAAM,eAAe,MAAM;EACnC,GAAG,CAAC,KAAK;CACV;;;;;;;;;;;;;;CCzQA,SAAS,gCAAgC;EACxC,OAAO;GACN,aAAa;GACb,WAAW;GACX,aAAa;GACb,iBAAiB;GACjB,kBAAkB;GAClB,mBAAmB,CAAC;EACrB;CACD;;;;;;;;;;;;CAYA,SAAS,oBAAoB,QAAQ;EACpC,QAAQ,OAAO,UAAU,kBAAkB,UAAU,OAAO,MAAM,QAAQ,wBAAwB;CACnG;;;;;;;;;;;CAWA,SAAS,qBAAqB,QAAQ;EACrC,OAAO,OAAO,MAAM,MAAM,gBAAgB,IAAI,CAAC,EAAE,qBAAqB,OAAO;CAC9E;;;;;;;;;;;;;CAaA,SAAS,wBAAwB,QAAQ,kBAAkB;EAC1D,MAAM,SAAS,OAAO,MAAM,UAAU,OAAO,OAAO,EAAE;EACtD,MAAM,YAAY,oBAAoB,MAAM;EAC5C,QAAQ,UAAU;GACjB,IAAI,CAAC,WAAW;GAChB,IAAI,kBAAkB,KAAK,GACtB;QAAA,MAAM,QAAQ,SAAS,GAAG;GAAA;GAE/B,MAAM,YAAY,eAAe,MAAM;GACvC,MAAM,oBAAoB,OAAO,eAAe,CAAC,CAAC,KAAK,eAAe,CAAC,WAAW,OAAO,IAAI,eAAe,WAAW,MAAM,CAAC,CAAC;GAC/H,MAAM,UAAU,kBAAkB,KAAK,IAAI,KAAK,MAAM,MAAM,QAAQ,EAAE,CAAC,OAAO,IAAI,MAAM;GACxF,MAAM,kBAAkB,cAAc;GACtC,MAAM,gBAAgB,WAAW,eAAe;IAC/C,IAAI,OAAO,eAAe,UAAU;IACpC,MAAM,QAAQ,OAAO;IACrB,MAAM,WAAW,MAAM,QAAQ,qBAAqB,cAAc,cAAc;IAChF,MAAM,YAAY,YAAY;KAC7B,wBAAwB,QAAQ,QAAQ;MACvC,MAAM,iBAAiB,MAAM,QAAQ,0BAA0B,QAAQ,KAAK;MAC5E,MAAM,eAAe,cAAc,IAAI,eAAe,MAAM;MAC5D,MAAM,YAAY,IAAI,aAAa;MACnC,MAAM,kBAAkB,KAAK,IAAI,YAAY,IAAI,cAAc,YAAY,GAAG,QAAQ;MACtF,IAAI,UAAU;OACb,MAAM,oBAAoB,IAAI;OAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,kBAAkB,QAAQ,KAAK;QAClD,MAAM,QAAQ,kBAAkB;QAChC,MAAM,aAAa,MAAM;QACzB,gBAAgB,MAAM,MAAM,KAAK,MAAM,KAAK,IAAI,aAAa,IAAI,aAAa,aAAa,kBAAkB,cAAc,kBAAkB,QAAQ,CAAC,IAAI,GAAG,IAAI;OAClK;MACD;MACA,OAAO;OACN,GAAG;OACH;OACA;MACD;KACD,CAAC;KACD,IAAI,UAAU,sBAAsB,QAAQ,QAAQ,OAAO,OAAO,cAAc,GAAG,KAAK,eAAe,CAAC;IACzG,CAAC;GACF;GACA,IAAI,YAAY;GAChB,IAAI,iBAAiB;GACrB,IAAI;GACJ,MAAM,kBAAkB;IACvB,IAAI,gBAAgB;KACnB,iBAAiB;KACjB,aAAa,QAAQ,WAAW;KAChC,YAAY,sBAAsB,SAAS;IAC5C,OAAO,YAAY;GACpB;GACA,MAAM,UAAU,eAAe;IAC9B,cAAc;IACd,IAAI,OAAO,0BAA0B,YAAY;KAChD,aAAa,QAAQ,UAAU;KAC/B;IACD;IACA,IAAI,cAAc,MAAM;KACvB,iBAAiB;KACjB;IACD;IACA,aAAa,QAAQ,UAAU;IAC/B,YAAY,sBAAsB,SAAS;GAC5C;GACA,MAAM,SAAS,eAAe;IAC7B,IAAI,cAAc,MAAM;KACvB,qBAAqB,SAAS;KAC9B,YAAY;KACZ,iBAAiB;IAClB;IACA,OAAO,MAAM,YAAY,YAAY;KACpC,aAAa,OAAO,cAAc,WAAW;KAC7C,wBAAwB,OAAO,QAAQ,SAAS;MAC/C,GAAG;MACH,kBAAkB;MAClB,aAAa;MACb,WAAW;MACX,aAAa;MACb,iBAAiB;MACjB,mBAAmB,CAAC;KACrB,EAAE;IACH,CAAC;GACF;GACA,MAAM,kBAAkB,qBAAqB,OAAO,aAAa,cAAc,WAAW;GAC1F,MAAM,cAAc;IACnB,cAAc,MAAM,OAAO,EAAE,OAAO;IACpC,YAAY,MAAM;KACjB,iBAAiB,oBAAoB,aAAa,YAAY,WAAW;KACzE,iBAAiB,oBAAoB,WAAW,YAAY,SAAS;KACrE,MAAM,EAAE,OAAO;IAChB;GACD;GACA,MAAM,cAAc;IACnB,cAAc,eAAe;KAC5B,IAAI,WAAW,YAAY;MAC1B,WAAW,eAAe;MAC1B,WAAW,gBAAgB;KAC5B;KACA,OAAO,WAAW,QAAQ,EAAE,CAAC,OAAO;KACpC,OAAO;IACR;IACA,YAAY,MAAM;KACjB,kBAAkB;KAClB,IAAI,EAAE,YAAY;MACjB,EAAE,eAAe;MACjB,EAAE,gBAAgB;KACnB;KACA,MAAM,EAAE,QAAQ,EAAE,EAAE,OAAO;IAC5B;IACA,qBAAqB;KACpB,kBAAkB;KAClB,MAAM;IACP;GACD;GACA,MAAM,0BAA0B;IAC/B,iBAAiB,oBAAoB,aAAa,YAAY,WAAW;IACzE,iBAAiB,oBAAoB,YAAY,YAAY,SAAS;IACtE,iBAAiB,oBAAoB,eAAe,YAAY,aAAa;GAC9E;GACA,MAAM,qBAAqB,sBAAsB,IAAI,EAAE,SAAS,MAAM,IAAI;GAC1E,IAAI,kBAAkB,KAAK,GAAG;IAC7B,iBAAiB,iBAAiB,aAAa,YAAY,aAAa,kBAAkB;IAC1F,iBAAiB,iBAAiB,YAAY,YAAY,WAAW,kBAAkB;IACvF,iBAAiB,iBAAiB,eAAe,YAAY,eAAe,kBAAkB;GAC/F,OAAO;IACN,iBAAiB,iBAAiB,aAAa,YAAY,aAAa,kBAAkB;IAC1F,iBAAiB,iBAAiB,WAAW,YAAY,WAAW,kBAAkB;GACvF;GACA,wBAAwB,OAAO,QAAQ,SAAS;IAC/C,GAAG;IACH,aAAa;IACb;IACA,aAAa;IACb,iBAAiB;IACjB;IACA,kBAAkB,OAAO;GAC1B,EAAE;EACH;CACD;;;;;;;;;;;;CAYA,SAAS,wBAAwB,OAAO,SAAS;EAChD,MAAM,QAAQ,yBAAyB,OAAO;CAC/C;;;;;;;;;;;;;;CAcA,SAAS,0BAA0B,OAAO,cAAc;EACvD,wBAAwB,OAAO,eAAe,8BAA8B,IAAI,WAAW,MAAM,aAAa,kBAAkB,8BAA8B,CAAC,CAAC;CACjK;CACA,IAAI,mBAAmB;;;;;;;;;;;;CAYvB,SAAS,wBAAwB;EAChC,IAAI,OAAO,qBAAqB,WAAW,OAAO;EAClD,IAAI,YAAY;EAChB,IAAI;GACH,MAAM,UAAU,EAAE,IAAI,UAAU;IAC/B,YAAY;IACZ,OAAO;GACR,EAAE;GACF,MAAM,aAAa,CAAC;GACpB,OAAO,iBAAiB,QAAQ,MAAM,OAAO;GAC7C,OAAO,oBAAoB,QAAQ,IAAI;EACxC,SAAS,KAAK;GACb,YAAY;EACb;EACA,mBAAmB;EACnB,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,kBAAkB,GAAG;EAC7B,OAAO,EAAE,SAAS;CACnB;;;;;;CC1QA,MAAM,wBAAwB;EAC7B,kBAAkB,iBAAiB;GAClC,OAAO;IACN,gBAAgB,8BAA8B;IAC9C,GAAG;GACJ;EACD;EACA,yBAAyB,UAAU;GAClC,OAAO;IACN,kBAAkB;IAClB,uBAAuB;IACvB,wBAAwB,iBAAiB,kBAAkB,KAAK;GACjE;EACD;EACA,wBAAwB,WAAW,UAAU;GAC5C,oBAAoB,yBAAyB,WAAW,OAAO;IAC9D,qBAAqB,EAAE,KAAK,WAAW,oBAAoB,MAAM,EAAE;IACnE,sBAAsB,EAAE,KAAK,WAAW,qBAAqB,MAAM,EAAE;GACtE,CAAC;EACF;EACA,wBAAwB,WAAW,UAAU;GAC5C,oBAAoB,yBAAyB,WAAW,OAAO,EAAE,yBAAyB,EAAE,KAAK,QAAQ,qBAAqB,wBAAwB,QAAQ,gBAAgB,EAAE,EAAE,CAAC;EACpL;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,yBAAyB,OAAO;IAC/C,yBAAyB,EAAE,KAAK,YAAY,wBAAwB,OAAO,OAAO,EAAE;IACpF,2BAA2B,EAAE,KAAK,iBAAiB,0BAA0B,OAAO,YAAY,EAAE;GACnG,CAAC;EACF;CACD;;;;;;CC7BA,MAAM,sBAAsB;EAC3B,kBAAkB,iBAAiB;GAClC,OAAO;IACN,cAAc,4BAA4B;IAC1C,GAAG;GACJ;EACD;EACA,2BAA2B;GAC1B,OAAO,gCAAgC;EACxC;EACA,yBAAyB,UAAU;GAClC,OAAO,EAAE,sBAAsB,iBAAiB,gBAAgB,KAAK,EAAE;EACxE;EACA,wBAAwB,WAAW,UAAU;GAC5C,oBAAoB,uBAAuB,WAAW,OAAO;IAC5D,gBAAgB;KACf,KAAK,WAAW,eAAe,MAAM;KACrC,WAAW,WAAW,CAAC,MAAM,QAAQ,SAAS,MAAM,MAAM,cAAc,IAAI,CAAC,GAAG,OAAO,GAAG;IAC3F;IACA,iBAAiB,EAAE,KAAK,QAAQ,aAAa,gBAAgB,QAAQ,QAAQ,EAAE;IAC/E,iBAAiB,EAAE,KAAK,QAAQ,aAAa,gBAAgB,QAAQ,QAAQ,EAAE;IAC/E,kBAAkB,EAAE,KAAK,WAAW,iBAAiB,MAAM,EAAE;GAC9D,CAAC;EACF;EACA,wBAAwB,WAAW,UAAU;GAC5C,oBAAoB,uBAAuB,WAAW,OAAO;IAC5D,gBAAgB;KACf,KAAK,WAAW,eAAe,MAAM;KACrC,WAAW,WAAW,CAAC,MAAM,QAAQ,SAAS,OAAO,OAAO,QAAQ,SAAS,IAAI,MAAM,MAAM,cAAc,IAAI,IAAI,MAAM,MAAM,cAAc,IAAI,CAAC,GAAG,OAAO,OAAO,GAAG;IACvK;IACA,iBAAiB;KAChB,KAAK,WAAW,gBAAgB,MAAM;KACtC,gBAAgB;MACf,MAAM,QAAQ;MACd,MAAM,MAAM,cAAc,IAAI;MAC9B,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,kBAAkB,IAAI;MAClC,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;KACf;IACD;GACD,CAAC;EACF;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,uBAAuB,OAAO;IAC7C,wBAAwB;KACvB,UAAU,uBAAuB,KAAK;KACtC,gBAAgB;MACf,MAAM,QAAQ;MACd,MAAM,MAAM,cAAc,IAAI;MAC9B,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,kBAAkB,IAAI;MAClC,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;KACf;IACD;IACA,uBAAuB,EAAE,KAAK,YAAY,sBAAsB,OAAO,OAAO,EAAE;IAChF,yBAAyB,EAAE,KAAK,iBAAiB,wBAAwB,OAAO,YAAY,EAAE;IAC9F,oBAAoB;KACnB,UAAU,mBAAmB,KAAK;KAClC,gBAAgB,CAAC,MAAM,MAAM,cAAc,IAAI,GAAG,MAAM,gBAAgB,CAAC;IAC1E;IACA,yBAAyB;KACxB,UAAU,wBAAwB,KAAK;KACvC,gBAAgB,CAAC,MAAM,MAAM,cAAc,IAAI,GAAG,MAAM,gBAAgB,CAAC;IAC1E;IACA,0BAA0B;KACzB,UAAU,yBAAyB,KAAK;KACxC,gBAAgB,CAAC,MAAM,MAAM,cAAc,IAAI,GAAG,MAAM,gBAAgB,CAAC;IAC1E;IACA,uBAAuB;KACtB,UAAU,sBAAsB,KAAK;KACrC,gBAAgB,CAAC,MAAM,MAAM,cAAc,IAAI,GAAG,MAAM,gBAAgB,CAAC;IAC1E;GACD,CAAC;EACF;CACD;;;;;;CC9EA,MAAM,0BAA0B;EAC/B,kBAAkB,iBAAiB;GAClC,OAAO;IACN,kBAAkB,gCAAgC;IAClD,GAAG;GACJ;EACD;EACA,yBAAyB,UAAU;GAClC,OAAO,EAAE,0BAA0B,iBAAiB,oBAAoB,KAAK,EAAE;EAChF;EACA,wBAAwB,WAAW,UAAU;GAC5C,oBAAoB,2BAA2B,WAAW,OAAO;IAChE,qBAAqB;KACpB,KAAK,WAAW,oBAAoB,MAAM;KAC1C,WAAW,WAAW;MACrB,MAAM,QAAQ;MACd,MAAM,MAAM,kBAAkB,IAAI;MAClC,OAAO;KACR;IACD;IACA,mBAAmB,EAAE,KAAK,WAAW,kBAAkB,MAAM,EAAE;IAC/D,mCAAmC,EAAE,KAAK,WAAW,kCAAkC,MAAM,EAAE;IAC/F,yBAAyB,EAAE,KAAK,QAAQ,YAAY,wBAAwB,QAAQ,OAAO,EAAE;GAC9F,CAAC;EACF;EACA,qBAAqB,WAAW,UAAU;GACzC,oBAAoB,2BAA2B,WAAW,OAAO;IAChE,qBAAqB;KACpB,KAAK,QAAQ,oBAAoB,GAAG;KACpC,WAAW,QAAQ;MAClB,IAAI,YAAY;MAChB,MAAM,MAAM,eAAe,IAAI;MAC/B,MAAM,MAAM,kBAAkB,IAAI;KACnC;IACD;IACA,+BAA+B;KAC9B,KAAK,QAAQ,8BAA8B,GAAG;KAC9C,WAAW,QAAQ,CAAC,IAAI,YAAY,GAAG,MAAM,MAAM,kBAAkB,IAAI,CAAC;IAC3E;GACD,CAAC;EACF;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,2BAA2B,OAAO;IACjD,6BAA6B;KAC5B,UAAU,4BAA4B,KAAK;KAC3C,gBAAgB;MACf,MAAM,MAAM,kBAAkB,IAAI;MAClC,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;MACd,MAAM,QAAQ;KACf;IACD;IACA,6BAA6B;KAC5B,UAAU,4BAA4B,KAAK;KAC3C,gBAAgB;MACf,MAAM,MAAM,kBAAkB,IAAI;MAClC,MAAM,MAAM,aAAa,IAAI;MAC7B,MAAM,MAAM,UAAU,IAAI;MAC1B,MAAM,QAAQ;MACd,MAAM,QAAQ;KACf;IACD;IACA,2BAA2B,EAAE,KAAK,YAAY,0BAA0B,OAAO,OAAO,EAAE;IACxF,6BAA6B,EAAE,KAAK,iBAAiB,4BAA4B,OAAO,YAAY,EAAE;IACtG,+BAA+B,EAAE,KAAK,UAAU,8BAA8B,OAAO,KAAK,EAAE;IAC5F,8BAA8B,EAAE,UAAU,6BAA6B,KAAK,EAAE;IAC9E,+BAA+B,EAAE,UAAU,8BAA8B,KAAK,EAAE;IAChF,4CAA4C,EAAE,UAAU,2CAA2C,KAAK,EAAE;GAC3G,CAAC;EACF;CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CC/CA,SAAS,kBAAkB,KAAK;EAC/B,MAAM,WAAW,OAAO,QAAQ,KAAK,UAAU,aAAa,YAAY;GACvE,MAAM,WAAW,IAAI,SAAS,QAAQ;GACtC,MAAM,YAAY,SAAS,mBAAmB,SAAS,iBAAiB,QAAQ,IAAI;GACpF,OAAO,SAAS,OAAO,WAAW,aAAa,KAAK,UAAU,OAAO;EACtE,GAAG,GAAG;EACN,OAAO;CACR;CAMwB,kBAAkB;EACzC,SAAS,WAAW,gBAAgB,cAAc;EAClD,aAAa,QAAQ,UAAU,GAAG;CACnC,CAAC;CAO2B,kBAAkB;EAC7C,SAAS,WAAW,gBAAgB,aAAa;EACjD,aAAa,QAAQ,UAAU,GAAG;CACnC,CAAC;CAMwC,kBAAkB;EAC1D,SAAS,WAAW,gBAAgB,QAAQ,WAAW,SAAS,WAAW,CAAC;EAC5E,aAAa,QAAQ,UAAU,GAAG;EAClC,qBAAqB,QAAQ,OAAO,GAAG;EACvC,mBAAmB,QAAQ,OAAO,OAAO,KAAK,IAAI,OAAO,GAAG;CAC7D,CAAC;;;;;;;CAOD,MAAM,0BAA0B,kBAAkB;EACjD,SAAS,WAAW,gBAAgB,QAAQ,WAAW,SAAS,WAAW,CAAC;EAC5E,aAAa,QAAQ,UAAU,GAAG;EAClC,qBAAqB,QAAQ,OAAO,GAAG,CAAC,CAAC,YAAY;EACrD,mBAAmB,QAAQ,OAAO,OAAO,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,YAAY;CAC3E,CAAC;CAO6B,kBAAkB;EAC/C,SAAS,WAAW,gBAAgB,cAAc;EAClD,aAAa,QAAQ,UAAU,GAAG;EAClC,qBAAqB,QAAQ,OAAO,GAAG,CAAC,CAAC,YAAY;EACrD,mBAAmB,QAAQ,OAAO,OAAO,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,YAAY;CAC3E,CAAC;CAMsC,kBAAkB;EACxD,SAAS,WAAW,gBAAgB,cAAc;EAClD,aAAa,QAAQ,UAAU,GAAG;EAClC,qBAAqB,QAAQ,OAAO,GAAG;EACvC,mBAAmB,QAAQ,OAAO,OAAO,KAAK,IAAI,OAAO,GAAG;CAC7D,CAAC;CAO2B,kBAAkB;EAC7C,SAAS,WAAW,gBAAgB,QAAQ,WAAW,WAAW,WAAW,CAAC;EAC9E,aAAa,QAAQ,UAAU,GAAG;EAClC,qBAAqB,QAAQ,OAAO,GAAG,CAAC,CAAC,YAAY;EACrD,mBAAmB,QAAQ,OAAO,OAAO,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,YAAY;CAC3E,CAAC;CAOyB,kBAAkB;EAC3C,SAAS,WAAW,gBAAgB,QAAQ,WAAW,SAAS,WAAW,CAAC;EAC5E,aAAa,QAAQ,UAAU,GAAG;EAClC,qBAAqB,QAAQ,OAAO,GAAG,CAAC,CAAC,YAAY;EACrD,mBAAmB,QAAQ,OAAO,OAAO,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,YAAY;CAC3E,CAAC;CAQsB,kBAAkB;EACxC,SAAS,cAAc,eAAe,SAAS;EAC/C,aAAa,QAAQ,UAAU,GAAG,KAAK,QAAQ;CAChD,CAAC;CAQyB,kBAAkB;EAC3C,SAAS,cAAc,CAAC,eAAe,SAAS;EAChD,aAAa,QAAQ,UAAU,GAAG,KAAK,QAAQ;CAChD,CAAC;CAO4B,kBAAkB;EAC9C,SAAS,WAAW,gBAAgB,mBAAmB,WAAW,WAAW;EAC7E,aAAa,QAAQ,UAAU,GAAG;CACnC,CAAC;CAMqC,kBAAkB;EACvD,SAAS,WAAW,gBAAgB,4BAA4B,WAAW,WAAW;EACtF,aAAa,QAAQ,UAAU,GAAG;CACnC,CAAC;CAMyB,kBAAkB;EAC3C,SAAS,WAAW,gBAAgB,CAAC,4BAA4B,WAAW,WAAW;EACvF,aAAa,QAAQ,UAAU,GAAG;CACnC,CAAC;CAMkC,kBAAkB;EACpD,SAAS,WAAW,gBAAgB,CAAC,mBAAmB,WAAW,WAAW;EAC9E,aAAa,QAAQ,UAAU,GAAG;CACnC,CAAC;CAMwB,kBAAkB;EAC1C,SAAS,WAAW,iBAAiB,eAAe,WAAW,cAAc,KAAK;EAClF,aAAa,QAAQ,UAAU,GAAG,KAAK,MAAM,QAAQ,GAAG,KAAK,UAAU,IAAI,EAAE,KAAK,UAAU,IAAI,EAAE;CACnG,CAAC;CAMiC,kBAAkB;EACnD,SAAS,WAAW,iBAAiB,eAAe,WAAW,cAAc,IAAI;EACjF,aAAa,QAAQ,UAAU,GAAG,KAAK,MAAM,QAAQ,GAAG,KAAK,UAAU,IAAI,EAAE,KAAK,UAAU,IAAI,EAAE;CACnG,CAAC;CAS8B,kBAAkB;EAChD,SAAS,WAAW,gBAAgB;GACnC,IAAI,OAAO,cAAc,YAAY,OAAO,MAAM,SAAS,GAAG,OAAO;GACrE,MAAM,CAAC,KAAK,OAAO;GACnB,OAAO,aAAa,OAAO,aAAa;EACzC;EACA,qBAAqB,QAAQ;GAC5B,MAAM,CAAC,WAAW,aAAa;GAC/B,MAAM,YAAY,OAAO,cAAc,WAAW,WAAW,SAAS,IAAI;GAC1E,MAAM,YAAY,OAAO,cAAc,WAAW,WAAW,SAAS,IAAI;GAC1E,IAAI,MAAM,cAAc,QAAQ,OAAO,MAAM,SAAS,IAAI,YAAY;GACtE,IAAI,MAAM,cAAc,QAAQ,OAAO,MAAM,SAAS,IAAI,WAAW;GACrE,IAAI,MAAM,KAAK;IACd,MAAM,OAAO;IACb,MAAM;IACN,MAAM;GACP;GACA,OAAO,CAAC,KAAK,GAAG;EACjB;EACA,aAAa,QAAQ,UAAU,GAAG,KAAK,MAAM,QAAQ,GAAG,KAAK,UAAU,IAAI,EAAE,KAAK,UAAU,IAAI,EAAE;CACnG,CAAC;CAQ4B,kBAAkB;EAC9C,SAAS,WAAW,gBAAgB;GACnC,MAAM,CAAC,KAAK,OAAO;GACnB,OAAO,aAAa,OAAO,aAAa;EACzC;EACA,qBAAqB,QAAQ;GAC5B,MAAM,CAAC,WAAW,aAAa;GAC/B,MAAM,YAAY,gBAAgB,SAAS;GAC3C,MAAM,YAAY,gBAAgB,SAAS;GAC3C,IAAI,MAAM,OAAO,MAAM,SAAS,IAAI,YAAY;GAChD,IAAI,MAAM,OAAO,MAAM,SAAS,IAAI,WAAW;GAC/C,IAAI,MAAM,KAAK;IACd,MAAM,OAAO;IACb,MAAM;IACN,MAAM;GACP;GACA,OAAO,CAAC,KAAK,GAAG;EACjB;EACA,mBAAmB,QAAQ,gBAAgB,GAAG;EAC9C,aAAa,QAAQ,UAAU,GAAG,KAAK,MAAM,QAAQ,GAAG,KAAK,UAAU,IAAI,EAAE,KAAK,UAAU,IAAI,EAAE;CACnG,CAAC;CAIuB,kBAAkB;EACzC,SAAS,WAAW,gBAAgB;GACnC,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK,IAAI,cAAc,YAAY,IAAI,OAAO;GACtF,OAAO;EACR;EACA,aAAa,QAAQ,UAAU,GAAG,KAAK,CAAC,KAAK;CAC9C,CAAC;CAI4B,kBAAkB;EAC9C,SAAS,WAAW,gBAAgB;GACnC,IAAI,OAAO,cAAc,YAAY,CAAC,MAAM,QAAQ,SAAS,GAAG,OAAO;GACvE,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK,IAAI,UAAU,SAAS,YAAY,EAAE,GAAG,OAAO;GAC5F,OAAO;EACR;EACA,aAAa,QAAQ,UAAU,GAAG,KAAK,CAAC,KAAK;CAC9C,CAAC;CAI+B,kBAAkB;EACjD,SAAS,WAAW,gBAAgB;GACnC,IAAI,CAAC,MAAM,QAAQ,SAAS,GAAG,OAAO;GACtC,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK,IAAI,CAAC,UAAU,SAAS,YAAY,EAAE,GAAG,OAAO;GAC7F,OAAO;EACR;EACA,aAAa,QAAQ,UAAU,GAAG,KAAK,CAAC,KAAK;CAC9C,CAAC;CAIgC,kBAAkB;EAClD,SAAS,WAAW,gBAAgB;GACnC,IAAI,CAAC,MAAM,QAAQ,SAAS,GAAG,OAAO;GACtC,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK,IAAI,UAAU,SAAS,YAAY,EAAE,GAAG,OAAO;GAC5F,OAAO;EACR;EACA,aAAa,QAAQ,UAAU,GAAG,KAAK,CAAC,KAAK;CAC9C,CAAC;CAkCD,SAAS,UAAU,KAAK;EACvB,OAAO,QAAQ,KAAK,KAAK,QAAQ,QAAQ,QAAQ;CAClD;CACA,SAAS,eAAe,WAAW;EAClC,OAAO,aAAa,QAAQ,OAAO,SAAS,CAAC,CAAC,KAAK,MAAM;CAC1D;CACA,SAAS,gBAAgB,OAAO;EAC/B,IAAI,iBAAiB,MAAM,OAAO,MAAM,QAAQ;EAChD,IAAI,OAAO,UAAU,UAAU,OAAO;EACtC,IAAI,SAAS,QAAQ,UAAU,IAAI,OAAO;EAC1C,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,QAAQ;CAChC;CACA,SAAS,mBAAmB,WAAW,aAAa;EACnD,MAAM,mBAAmB,aAAa,OAAO,IAAI,CAAC;EAClD,MAAM,qBAAqB,OAAO,WAAW;EAC7C,IAAI,CAAC,MAAM,kBAAkB,KAAK,CAAC,MAAM,gBAAgB,GAAG,OAAO,mBAAmB;EACtF,OAAO,OAAO,aAAa,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,OAAO,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK;CAC9F;CACA,SAAS,4BAA4B,WAAW,aAAa;EAC5D,OAAO,cAAc,eAAe,mBAAmB,WAAW,WAAW;CAC9E;CACA,SAAS,eAAe,WAAW,cAAc,WAAW;EAC3D,MAAM,MAAM,aAAa;EACzB,MAAM,SAAS,QAAQ,MAAM,QAAQ,KAAK;EAC1C,IAAI,QACC;OAAA,EAAE,YAAY,4BAA4B,WAAW,GAAG,IAAI,mBAAmB,WAAW,GAAG,IAAI,OAAO;EAAA;EAE7G,MAAM,MAAM,aAAa;EACzB,IAAI,QAAQ,MAAM,QAAQ,KAAK,GAAG,OAAO;EACzC,IAAI,QAAQ;GACX,MAAM,aAAa,OAAO,GAAG;GAC7B,MAAM,aAAa,OAAO,GAAG;GAC7B,IAAI,CAAC,MAAM,UAAU,KAAK,CAAC,MAAM,UAAU,KAAK,aAAa,YAAY,OAAO;EACjF;EACA,OAAO,YAAY,CAAC,mBAAmB,WAAW,GAAG,IAAI,CAAC,4BAA4B,WAAW,GAAG;CACrG;;;;;;;;;;;;;;CCtWA,SAAS,0BAA0B,QAAQ;EAC1C,QAAQ,OAAO,UAAU,sBAAsB,UAAU,OAAO,MAAM,QAAQ,sBAAsB,UAAU,OAAO,MAAM,QAAQ,iBAAiB,UAAU,OAAO,MAAM,QAAQ,2BAA2B,MAAM,KAAK,SAAS,CAAC,CAAC,OAAO;CAC5O;;;;;;;;;;;;CAYA,SAAS,8BAA8B;EACtC,OAAO;CACR;;;;;;;;;;;;;CAaA,SAAS,wBAAwB,OAAO;EACvC,MAAM,EAAE,mBAAmB,MAAM;EACjC,MAAM,YAAY,MAAM,aAAa;EAGrC,OAFiB,WAAW,cAAc,IAAI,iBAAiB,mBAAmB,SAAS,4BAA4B,IAAI,YAAY;CAGxI;;;;;;;;;;;;CAYA,SAAS,sBAAsB,OAAO,SAAS;EAC9C,MAAM,QAAQ,uBAAuB,OAAO;CAC7C;;;;;;;;;;;;;CAaA,SAAS,wBAAwB,OAAO,cAAc;EACrD,sBAAsB,OAAO,eAAe,KAAK,IAAI,WAAW,MAAM,aAAa,YAAY,CAAC;CACjG;;;;;;CCxEA,MAAM,yBAAyB;EAC9B,kBAAkB,iBAAiB;GAClC,OAAO;IACN,cAAc,KAAK;IACnB,GAAG;GACJ;EACD;EACA,yBAAyB,UAAU;GAClC,OAAO;IACN,sBAAsB,iBAAiB,gBAAgB,KAAK;IAC5D,gBAAgB;IAChB,2BAA2B,WAAW;KACrC,IAAI,wBAAwB,OAAO,aAAa,OAAO,UAAU,uBAAuB,MAAM,OAAO;KACrG,MAAM,QAAQ,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,QAAQ,IAAI,sBAAsB,CAAC,CAAC,OAAO,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC,EAAE,sBAAsB,CAAC,CAAC,OAAO,GAAG,EAAE,SAAS;KACvK,OAAO,OAAO,UAAU,YAAY,OAAO,UAAU;IACtD;GACD;EACD;EACA,wBAAwB,WAAW,UAAU;GAC5C,oBAAoB,0BAA0B,WAAW,OAAO,EAAE,2BAA2B,EAAE,KAAK,WAAW,0BAA0B,MAAM,EAAE,EAAE,CAAC;EACrJ;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,0BAA0B,OAAO;IAChD,6BAA6B,EAAE,UAAU,4BAA4B,EAAE;IACvE,yBAAyB,EAAE,UAAU,wBAAwB,KAAK,EAAE;IACpE,uBAAuB,EAAE,KAAK,YAAY,sBAAsB,OAAO,OAAO,EAAE;IAChF,yBAAyB,EAAE,KAAK,iBAAiB,wBAAwB,OAAO,YAAY,EAAE;GAC/F,CAAC;EACF;CACD;;;;;;CC7BA,MAAM,uBAAuB;EAC5B,kBAAkB,iBAAiB;GAClC,OAAO;IACN,GAAG;IACH,YAAY;KACX,GAAG,0BAA0B;KAC7B,GAAG,aAAa;IACjB;GACD;EACD;EACA,yBAAyB,UAAU;GAClC,OAAO,EAAE,oBAAoB,iBAAiB,cAAc,KAAK,EAAE;EACpE;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,wBAAwB,OAAO;IAC9C,0BAA0B,EAAE,UAAU,yBAAyB,KAAK,EAAE;IACtE,qBAAqB,EAAE,KAAK,YAAY,oBAAoB,OAAO,OAAO,EAAE;IAC5E,uBAAuB,EAAE,KAAK,iBAAiB,sBAAsB,OAAO,YAAY,EAAE;IAC1F,oBAAoB,EAAE,KAAK,YAAY,mBAAmB,OAAO,OAAO,EAAE;IAC1E,sBAAsB,EAAE,KAAK,iBAAiB,qBAAqB,OAAO,YAAY,EAAE;IACxF,mBAAmB,EAAE,KAAK,YAAY,kBAAkB,OAAO,OAAO,EAAE;IACxE,oBAAoB,EAAE,UAAU,mBAAmB,KAAK,EAAE;IAC1D,qBAAqB,EAAE,KAAK,iBAAiB,oBAAoB,OAAO,YAAY,EAAE;IACtF,sBAAsB,EAAE,UAAU,qBAAqB,KAAK,EAAE;IAC9D,0BAA0B,EAAE,UAAU,yBAAyB,KAAK,EAAE;IACtE,sBAAsB,EAAE,UAAU,qBAAqB,KAAK,EAAE;IAC9D,oBAAoB,EAAE,UAAU,mBAAmB,KAAK,EAAE;IAC1D,gBAAgB,EAAE,UAAU,eAAe,KAAK,EAAE;IAClD,iBAAiB,EAAE,UAAU,gBAAgB,KAAK,EAAE;IACpD,gBAAgB,EAAE,UAAU,eAAe,KAAK,EAAE;IAClD,mBAAmB,EAAE,UAAU,kBAAkB,KAAK,EAAE;GACzD,CAAC;EACF;CACD;;;;;;;;;;;;;;CC1BA,SAAS,8BAA8B;EACtC,OAAO,cAAc;CACtB;;;;;;;;;;;;CAYA,SAAS,sBAAsB,OAAO,SAAS;EAC9C,MAAM,QAAQ,uBAAuB,OAAO;CAC7C;;;;;;;;;;;;;CAaA,SAAS,wBAAwB,OAAO,cAAc;EACrD,MAAM,qBAAqB;EAC3B,sBAAsB,OAAO,eAAe,cAAc,IAAI,OAAO,OAAO,cAAc,GAAG,WAAW,MAAM,aAAa,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAChJ;;;;;;;;;;;;;;;CAeA,SAAS,4BAA4B,OAAO,OAAO,MAAM;EACxD,MAAM,qBAAqB;EAC3B,sBAAsB,QAAQ,QAAQ;GACrC,QAAQ,OAAO,UAAU,cAAc,QAAQ,CAAC,mBAAmB,OAAO,wBAAwB,0BAA0B;GAC5H,IAAI,MAAM,eAAe,CAAC,OAAO,OAAO,cAAc;GACtD,MAAM,eAAe,OAAO,OAAO,cAAc,GAAG,GAAG;GACvD,MAAM,qBAAqB,MAAM,sBAAsB,CAAC,CAAC;GACzD,IAAI,OAAO;IACV,MAAM,+BAA+B,IAAI,IAAI;IAC7C,mBAAmB,SAAS,QAAQ;KACnC,IAAI,2BAA2B,KAAK,YAAY,GAAG,aAAa,IAAI,MAAM;IAC3E,CAAC;GACF,OAAO,mBAAmB,SAAS,QAAQ;IAC1C,IAAI,iBAAiB,GAAG,GAAG,OAAO,aAAa,IAAI;GACpD,CAAC;GACD,OAAO;EACR,CAAC;CACF;;;;;;;;;;;;CAYA,SAAS,gCAAgC,OAAO,OAAO,MAAM;EAC5D,MAAM,qBAAqB;EAC3B,sBAAsB,QAAQ,QAAQ;GACrC,MAAM,gBAAgB,OAAO,UAAU,cAAc,QAAQ,CAAC,mBAAmB,OAAO,4BAA4B,8BAA8B;GAClJ,IAAI,MAAM,eAAe,CAAC,eAAe,OAAO,cAAc;GAC9D,MAAM,eAAe,OAAO,OAAO,cAAc,GAAG,GAAG;GACvD,MAAM,YAAY,CAAC,CAAC,KAAK,SAAS,QAAQ;IACzC,oBAAoB,cAAc,IAAI,IAAI,eAAe,MAAM,OAAO,IAAI;GAC3E,CAAC;GACD,OAAO;EACR,CAAC;CACF;;;;;;;;;;;;CAYA,SAAS,6BAA6B,OAAO;EAC5C,OAAO,MAAM,gBAAgB;CAC9B;;;;;;;;;;;;CAYA,SAAS,0BAA0B,OAAO;EACzC,MAAM,WAAW,MAAM,gBAAgB;EACvC,IAAI,CAAC,mBAAmB,OAAO,yBAAyB,2BAA2B,GAAG,OAAO;GAC5F,MAAM,CAAC;GACP,UAAU,CAAC;GACX,UAAU,cAAc;EACzB;EACA,OAAO,aAAa,UAAU,KAAK;CACpC;;;;;;;;;;;;CAYA,SAAS,kCAAkC,OAAO;EACjD,MAAM,WAAW,MAAM,oBAAoB;EAC3C,IAAI,CAAC,mBAAmB,OAAO,yBAAyB,2BAA2B,GAAG,OAAO;GAC5F,MAAM,CAAC;GACP,UAAU,CAAC;GACX,UAAU,cAAc;EACzB;EACA,OAAO,aAAa,UAAU,KAAK;CACpC;;;;;;;;;;;;CAYA,SAAS,iCAAiC,OAAO;EAChD,MAAM,WAAW,MAAM,kBAAkB;EACzC,IAAI,CAAC,mBAAmB,OAAO,yBAAyB,2BAA2B,GAAG,OAAO;GAC5F,MAAM,CAAC;GACP,UAAU,CAAC;GACX,UAAU,cAAc;EACzB;EACA,OAAO,aAAa,UAAU,KAAK;CACpC;;;;;;;;;CASA,SAAS,wBAAwB,OAAO;EACvC,OAAO,OAAO,KAAK,MAAM,MAAM,cAAc,IAAI,KAAK,CAAC,CAAC;CACzD;;;;;;;;;;;;;CAaA,SAAS,2BAA2B,OAAO;EAC1C,MAAM,qBAAqB,MAAM,oBAAoB,CAAC,CAAC;EACvD,MAAM,eAAe,MAAM,MAAM,cAAc,IAAI,KAAK,CAAC;EACzD,IAAI,oBAAoB,QAAQ,mBAAmB,UAAU,OAAO,KAAK,YAAY,CAAC,CAAC,MAAM;EAC7F,IAAI,mBAAmB;GACtB,MAAM,+BAA+B,IAAI,IAAI;GAC7C,IAAI,mBAAmB,MAAM,QAAQ,CAAC,cAAc,KAAK,YAAY,KAAK,2BAA2B,KAAK,YAAY,CAAC,GAAG,oBAAoB;EAC/I;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,+BAA+B,OAAO;EAC9C,MAAM,qBAAqB,MAAM,qBAAqB,CAAC,CAAC;EACxD,MAAM,eAAe,MAAM,MAAM,cAAc,IAAI,KAAK,CAAC;EACzD,MAAM,+BAA+B,IAAI,IAAI;EAC7C,IAAI,mBAAmB;EACvB,KAAK,IAAI,IAAI,GAAG,IAAI,mBAAmB,QAAQ,KAAK;GACnD,MAAM,MAAM,mBAAmB;GAC/B,IAAI,CAAC,cAAc,KAAK,YAAY,GAC/B;QAAA,2BAA2B,KAAK,YAAY,GAAG,OAAO;GAAA,OACpD,IAAI,CAAC,oBAAoB,2BAA2B,KAAK,YAAY,GAAG,mBAAmB;EACnG;EACA,OAAO;CACR;;;;;;;;;;;CAWA,SAAS,4BAA4B,OAAO;EAC3C,OAAO,mBAAmB,OAAO,qBAAqB,uBAAuB,CAAC,CAAC,SAAS;CACzF;;;;;;;;;CASA,SAAS,gCAAgC,OAAO;EAC/C,OAAO,MAAM,qBAAqB,CAAC,CAAC,SAAS,QAAQ,QAAQ,iBAAiB,GAAG,CAAC,CAAC,CAAC,MAAM,QAAQ,kBAAkB,GAAG,KAAK,mBAAmB,KAAK,qBAAqB,qBAAqB,CAAC;CAChM;;;;;;;;;;;;CAYA,SAAS,sCAAsC,OAAO;EACrD,QAAQ,MAAM;GACb,4BAA4B,OAAO,EAAE,OAAO,OAAO;EACpD;CACD;;;;;;;;;;;;CAYA,SAAS,0CAA0C,OAAO;EACzD,QAAQ,MAAM;GACb,gCAAgC,OAAO,EAAE,OAAO,OAAO;EACxD;CACD;;;;;;;;;;;;;;;;;;CAkBA,SAAS,mBAAmB,KAAK,OAAO,MAAM;EAC7C,MAAM,aAAa,kBAAkB,GAAG;EACxC,sBAAsB,IAAI,QAAQ,QAAQ;GACzC,QAAQ,OAAO,UAAU,cAAc,QAAQ,CAAC;GAChD,MAAM,eAAe,OAAO,OAAO,cAAc,GAAG,GAAG;GACvD,oBAAoB,cAAc,IAAI,IAAI,QAAQ,MAAM,kBAAkB,SAAS,sBAAsB,GAAG,GAAG,IAAI,KAAK;GACxH,IAAI,CAAC,SAAS,MAAM,iBAAiB,oBAAoB,cAAc,GAAG;GAC1E,OAAO;EACR,CAAC;CACF;;;;;;;;;;;CAWA,SAAS,kBAAkB,KAAK;EAC/B,OAAO,cAAc,KAAK,IAAI,MAAM,MAAM,cAAc,IAAI,KAAK,CAAC,CAAC;CACpE;;;;;;;;;;;CAWA,SAAS,sBAAsB,KAAK;EACnC,OAAO,iBAAiB,GAAG,MAAM;CAClC;;;;;;;;;;;CAWA,SAAS,4BAA4B,KAAK;EACzC,OAAO,iBAAiB,GAAG,MAAM;CAClC;;;;;;;;;;;;CAYA,SAAS,iBAAiB,KAAK;EAC9B,MAAM,UAAU,IAAI,MAAM;EAC1B,IAAI,OAAO,QAAQ,uBAAuB,YAAY,OAAO,QAAQ,mBAAmB,GAAG;EAC3F,OAAO,QAAQ,sBAAsB;CACtC;;;;;;;;;;;;CAYA,SAAS,wBAAwB,KAAK;EACrC,MAAM,UAAU,IAAI,MAAM;EAC1B,IAAI,OAAO,QAAQ,0BAA0B,YAAY,OAAO,QAAQ,sBAAsB,GAAG;EACjG,OAAO,QAAQ,yBAAyB;CACzC;;;;;;;;;;;;CAYA,SAAS,sBAAsB,KAAK;EACnC,MAAM,UAAU,IAAI,MAAM;EAC1B,IAAI,OAAO,QAAQ,4BAA4B,YAAY,OAAO,QAAQ,wBAAwB,GAAG;EACrG,OAAO,QAAQ,2BAA2B;CAC3C;;;;;;;;;;;;;;;;CAgBA,SAAS,6BAA6B,KAAK,MAAM;EAChD,MAAM,YAAY,iBAAiB,GAAG;EACtC,QAAQ,MAAM;GACb,IAAI,CAAC,WAAW;GAChB,MAAM,QAAQ;GACd,MAAM,QAAQ,IAAI;GAClB,MAAM,UAAU,MAAM,OAAO;GAC7B,MAAM,WAAW,MAAM;GACvB,IAAI,EAAE,MAAM,QAAQ,4BAA4B,SAAS,aAAa,QAAQ,sBAAsB,GAAG,MAAM,MAAM,QAAQ,2BAA2B,CAAC,KAAK,WAAW,CAAC,eAAe,KAAK,UAAU,SAAS,IAAI,GAAG,mBAAmB,KAAK,SAAS,IAAI;GAC3P,MAAM,qBAAqB,IAAI;EAChC;CACD;;;;;;;;;;;;CAYA,SAAS,eAAe,KAAK,UAAU,OAAO,MAAM;EACnD,MAAM,kBAAkB,MAAM,kBAAkB;EAChD,MAAM,QAAQ,IAAI;EAClB,MAAM,OAAO,MAAM,sBAAsB;EACzC,MAAM,YAAY,MAAM,wBAAwB,CAAC,CAAC,SAAS,aAAa,MAAM,gBAAgB,CAAC,CAAC,SAAS;EACzG,IAAI,CAAC,WAAW,OAAO;EACvB,MAAM,cAAc,UAAU,gBAAgB;EAC9C,MAAM,WAAW,IAAI,gBAAgB;EACrC,MAAM,gBAAgB,KAAK;EAC3B,MAAM,aAAa,KAAK;EACxB,IAAI,cAAc,KAAK,WAAW,KAAK,eAAe,KAAK,UAAU,YAAY,KAAK,UAAU,eAAe,OAAO,UAAU,MAAM,YAAY,OAAO,IAAI,MAAM,CAAC,sBAAsB,SAAS,KAAK,CAAC,sBAAsB,GAAG,GAAG,OAAO;EAC5O,MAAM,QAAQ,KAAK,IAAI,aAAa,QAAQ;EAC5C,MAAM,MAAM,KAAK,IAAI,aAAa,QAAQ;EAC1C,sBAAsB,QAAQ,QAAQ;GACrC,MAAM,eAAe,OAAO,OAAO,cAAc,GAAG,GAAG;GACvD,KAAK,IAAI,QAAQ,OAAO,SAAS,KAAK,SAAS;IAC9C,MAAM,WAAW,KAAK;IACtB,IAAI,CAAC,iBAAiB,QAAQ,KAAK,CAAC,sBAAsB,QAAQ,GAAG;IACrE,oBAAoB,cAAc,SAAS,IAAI,OAAO,iBAAiB,KAAK;IAC5E,IAAI,CAAC,SAAS,MAAM,iBAAiB,oBAAoB,cAAc,QAAQ;GAChF;GACA,OAAO;EACR,CAAC;EACD,OAAO;CACR;CACA,SAAS,oBAAoB,cAAc,OAAO,OAAO,iBAAiB,OAAO,4BAA4B;EAC5G,MAAM,MAAM,MAAM,OAAO,OAAO,IAAI;EACpC,IAAI,OAAO;GACV,IAAI,CAAC,sBAAsB,GAAG,GAAG,OAAO,KAAK,YAAY,CAAC,CAAC,SAAS,QAAQ,OAAO,aAAa,IAAI;GACpG,IAAI,iBAAiB,GAAG,GAAG,aAAa,SAAS;EAClD,OAAO,IAAI,CAAC,8BAA8B,iBAAiB,GAAG,GAAG,OAAO,aAAa;EACrF,IAAI,mBAAmB,IAAI,QAAQ,UAAU,wBAAwB,GAAG,GAAG,IAAI,QAAQ,SAAS,MAAM,oBAAoB,cAAc,EAAE,IAAI,OAAO,iBAAiB,OAAO,0BAA0B,CAAC;CACzM;;;;;;;;;CASA,SAAS,2BAA2B,KAAK,cAAc;EACtD,IAAI,CAAC,iBAAiB,GAAG,GAAG,OAAO;EACnC,MAAM,QAAQ,IAAI;EAClB,IAAI,MAAM,QAAQ,0BAA0B,MAAM,OAAO;EACzD,MAAM,WAAW,IAAI;EACrB,IAAI,aAAa,KAAK,GAAG,OAAO;EAChC,MAAM,SAAS,aAAa,IAAI,QAAQ;EACxC,IAAI,WAAW,KAAK,GAAG,OAAO;EAC9B,MAAM,WAAW,MAAM,gBAAgB,CAAC,CAAC;EACzC,MAAM,UAAU,CAAC;EACjB,IAAI,aAAa;EACjB,IAAI,YAAY;EAChB,OAAO,cAAc,KAAK,GAAG;GAC5B,MAAM,QAAQ,aAAa,IAAI,SAAS;GACxC,IAAI,UAAU,KAAK,GAAG;IACrB,aAAa;IACb;GACD;GACA,QAAQ,KAAK,SAAS;GACtB,MAAM,SAAS,SAAS,cAAc,MAAM,OAAO,WAAW,IAAI;GAClE,IAAI,CAAC,wBAAwB,MAAM,GAAG;IACrC,aAAa;IACb;GACD;GACA,YAAY,OAAO;EACpB;EACA,QAAQ,SAAS,OAAO,aAAa,IAAI,IAAI,UAAU,CAAC;EACxD,OAAO;CACR;CACA,SAAS,oBAAoB,cAAc,KAAK;EAC/C,MAAM,WAAW,IAAI,MAAM,gBAAgB,CAAC,CAAC;EAC7C,IAAI,WAAW,IAAI;EACnB,OAAO,aAAa,KAAK,GAAG;GAC3B,OAAO,aAAa;GACpB,YAAY,SAAS,aAAa,IAAI,MAAM,OAAO,UAAU,IAAI,EAAA,CAAG;EACrE;CACD;CACA,SAAS,sBAAsB,MAAM,cAAc,kBAAkB,kBAAkB;EACtF,MAAM,SAAS,CAAC;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACrC,MAAM,MAAM,KAAK;GACjB,MAAM,aAAa,cAAc,KAAK,YAAY;GAClD,IAAI,YAAY;IACf,iBAAiB,KAAK,GAAG;IACzB,iBAAiB,IAAI,MAAM;GAC5B;GACA,IAAI,IAAI,QAAQ,QAAQ;IACvB,MAAM,aAAa,sBAAsB,IAAI,SAAS,cAAc,kBAAkB,gBAAgB;IACtG,IAAI,YAAY;KACf,MAAM,SAAS,OAAO,OAAO,OAAO,eAAe,GAAG,CAAC;KACvD,mCAAmC,QAAQ,GAAG;KAC9C,OAAO,UAAU;KACjB,OAAO,KAAK,MAAM;IACnB;GACD,OAAO,IAAI,YAAY,OAAO,KAAK,GAAG;EACvC;EACA,OAAO;CACR;;;;;;;;;;;;CAYA,SAAS,aAAa,UAAU,OAAO;EACtC,MAAM,sBAAsB,CAAC;EAC7B,MAAM,sBAAsB,cAAc;EAC1C,MAAM,eAAe,MAAM,MAAM,cAAc,IAAI,KAAK,CAAC;EACzD,OAAO;GACN,MAAM,sBAAsB,SAAS,MAAM,cAAc,qBAAqB,mBAAmB;GACjG,UAAU;GACV,UAAU;EACX;CACD;;;;;;;;;CASA,SAAS,cAAc,KAAK,cAAc;EACzC,OAAO,CAAC,EAAE,OAAO,cAAc,IAAI,EAAE,KAAK,aAAa,IAAI;CAC5D;;;;;;;;;;;CAWA,SAAS,iBAAiB,KAAK;EAC9B,IAAI,CAAC,IAAI,QAAQ,QAAQ,OAAO;EAChC,MAAM,eAAe,IAAI,MAAM,MAAM,cAAc,IAAI,KAAK,CAAC;EAC7D,IAAI,eAAe;EACnB,IAAI,sBAAsB;EAC1B,IAAI,iBAAiB;EACrB,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,QAAQ,KAAK;GAC5C,MAAM,SAAS,IAAI,QAAQ;GAC3B,IAAI,gBAAgB,CAAC,qBAAqB;GAC1C,IAAI,iBAAiB,MAAM,GAAG;IAC7B,iBAAiB;IACjB,IAAI,cAAc,QAAQ,YAAY,GAAG,eAAe;SACnD,sBAAsB;GAC5B;GACA,IAAI,OAAO,QAAQ,QAAQ;IAC1B,MAAM,yBAAyB,iBAAiB,MAAM;IACtD,IAAI,2BAA2B,OAAO;KACrC,eAAe;KACf,iBAAiB;IAClB,OAAO,IAAI,2BAA2B,QAAQ;KAC7C,eAAe;KACf,sBAAsB;KACtB,iBAAiB;IAClB,OAAO,sBAAsB;GAC9B;EACD;EACA,IAAI,CAAC,gBAAgB,OAAO;EAC5B,OAAO,sBAAsB,QAAQ,eAAe,SAAS;CAC9D;;;;;;CC3lBA,MAAM,sBAAsB;EAC3B,wBAAwB,UAAU;GACjC,MAAM,qBAAqB;EAC5B;EACA,yBAAyB,UAAU;GAClC,MAAM,qBAAqB;EAC5B;EACA,kBAAkB,iBAAiB;GAClC,OAAO;IACN,cAAc,4BAA4B;IAC1C,GAAG;GACJ;EACD;EACA,yBAAyB,UAAU;GAClC,OAAO;IACN,sBAAsB,iBAAiB,gBAAgB,KAAK;IAC5D,oBAAoB;IACpB,yBAAyB;IACzB,yBAAyB;IACzB,uBAAuB;IACvB,2BAA2B,UAAU;KACpC,MAAM,aAAa;KACnB,OAAO,QAAQ,WAAW,YAAY,WAAW,aAAa,QAAQ;IACvE;GACD;EACD;EACA,qBAAqB,WAAW,UAAU;GACzC,oBAAoB,uBAAuB,WAAW,OAAO;IAC5D,oBAAoB,EAAE,KAAK,KAAK,OAAO,SAAS,mBAAmB,KAAK,OAAO,IAAI,EAAE;IACrF,mBAAmB,EAAE,KAAK,QAAQ,kBAAkB,GAAG,EAAE;IACzD,uBAAuB;KACtB,KAAK,QAAQ,sBAAsB,GAAG;KACtC,WAAW,QAAQ;MAClB,IAAI;MACJ,IAAI,MAAM,MAAM,cAAc,IAAI;MAClC,IAAI,MAAM,QAAQ;KACnB;IACD;IACA,6BAA6B;KAC5B,KAAK,QAAQ,4BAA4B,GAAG;KAC5C,WAAW,QAAQ;MAClB,IAAI;MACJ,IAAI,MAAM,MAAM,cAAc,IAAI;MAClC,IAAI,MAAM,QAAQ;KACnB;IACD;IACA,kBAAkB,EAAE,KAAK,QAAQ,iBAAiB,GAAG,EAAE;IACvD,yBAAyB,EAAE,KAAK,QAAQ,wBAAwB,GAAG,EAAE;IACrE,uBAAuB,EAAE,KAAK,QAAQ,sBAAsB,GAAG,EAAE;IACjE,8BAA8B,EAAE,KAAK,KAAK,SAAS,6BAA6B,KAAK,IAAI,EAAE;GAC5F,CAAC;EACF;EACA,qBAAqB,UAAU;GAC9B,gBAAgB,uBAAuB,OAAO;IAC7C,uBAAuB,EAAE,KAAK,YAAY,sBAAsB,OAAO,OAAO,EAAE;IAChF,yBAAyB,EAAE,KAAK,iBAAiB,wBAAwB,OAAO,YAAY,EAAE;IAC9F,6BAA6B,EAAE,KAAK,OAAO,SAAS,4BAA4B,OAAO,OAAO,IAAI,EAAE;IACpG,iCAAiC,EAAE,KAAK,OAAO,SAAS,gCAAgC,OAAO,OAAO,IAAI,EAAE;IAC5G,8BAA8B,EAAE,UAAU,6BAA6B,KAAK,EAAE;IAC9E,2BAA2B;KAC1B,UAAU,0BAA0B,KAAK;KACzC,gBAAgB,CAAC,MAAM,MAAM,cAAc,IAAI,GAAG,MAAM,gBAAgB,CAAC;IAC1E;IACA,mCAAmC;KAClC,UAAU,kCAAkC,KAAK;KACjD,gBAAgB,CAAC,MAAM,MAAM,cAAc,IAAI,GAAG,MAAM,oBAAoB,CAAC;IAC9E;IACA,kCAAkC;KACjC,UAAU,iCAAiC,KAAK;KAChD,gBAAgB,CAAC,MAAM,MAAM,cAAc,IAAI,GAAG,MAAM,kBAAkB,CAAC;IAC5E;IACA,yBAAyB;KACxB,UAAU,wBAAwB,KAAK;KACvC,gBAAgB,CAAC,MAAM,MAAM,cAAc,IAAI,CAAC;IACjD;IACA,4BAA4B;KAC3B,UAAU,2BAA2B,KAAK;KAC1C,gBAAgB;MACf,MAAM,MAAM,cAAc,IAAI;MAC9B,MAAM,oBAAoB;MAC1B,MAAM,QAAQ;MACd,MAAM,QAAQ;KACf;IACD;IACA,gCAAgC;KAC/B,UAAU,+BAA+B,KAAK;KAC9C,gBAAgB;MACf,MAAM,MAAM,cAAc,IAAI;MAC9B,MAAM,qBAAqB;MAC3B,MAAM,QAAQ;MACd,MAAM,QAAQ;KACf;IACD;IACA,6BAA6B;KAC5B,UAAU,4BAA4B,KAAK;KAC3C,gBAAgB,CAAC,MAAM,MAAM,cAAc,IAAI,CAAC;IACjD;IACA,iCAAiC;KAChC,UAAU,gCAAgC,KAAK;KAC/C,gBAAgB;MACf,MAAM,MAAM,cAAc,IAAI;MAC9B,MAAM,qBAAqB;MAC3B,MAAM,QAAQ;KACf;IACD;IACA,uCAAuC,EAAE,UAAU,sCAAsC,KAAK,EAAE;IAChG,2CAA2C,EAAE,UAAU,0CAA0C,KAAK,EAAE;GACzG,CAAC;EACF;CACD;;;;;;CC7GA,MAAM,oBAAoB;EACzB,gBAAgB,cAAc;GAC7B,OAAO;IACN,SAAS,uBAAuB;IAChC,GAAG;GACJ;EACD;EACA,sBAAsB;GACrB,OAAO;IACN,QAAQ;IACR,eAAe;GAChB;EACD;EACA,uBAAuB,OAAO;GAC7B,OAAO;IACN,kBAAkB;IAClB,iBAAiB,iBAAiB,WAAW,KAAK;IAClD,mBAAmB,MAAM;KACxB,OAAO,EAAE;IACV;GACD;EACD;EACA,sBAAsB,WAAW,OAAO;GACvC,oBAAoB,qBAAqB,WAAW,OAAO;IAC1D,sBAAsB,EAAE,KAAK,WAAW,qBAAqB,MAAM,EAAE;IACrE,uBAAuB,EAAE,KAAK,WAAW,sBAAsB,MAAM,EAAE;IACvE,kBAAkB,EAAE,KAAK,WAAW,iBAAiB,MAAM,EAAE;IAC7D,sBAAsB,EAAE,KAAK,QAAQ,MAAM,UAAU,qBAAqB,QAAQ,MAAM,KAAK,EAAE;IAC/F,wBAAwB,EAAE,KAAK,WAAW,uBAAuB,MAAM,EAAE;IACzE,4BAA4B,EAAE,KAAK,QAAQ,UAAU,2BAA2B,QAAQ,KAAK,EAAE;IAC/F,mBAAmB,EAAE,KAAK,WAAW,kBAAkB,MAAM,EAAE;IAC/D,wBAAwB,EAAE,KAAK,WAAW,uBAAuB,MAAM,EAAE;IACzE,oBAAoB,EAAE,KAAK,WAAW,mBAAmB,MAAM,EAAE;IACjE,qBAAqB,EAAE,KAAK,WAAW,oBAAoB,MAAM,EAAE;IACnE,qBAAqB,EAAE,KAAK,WAAW,oBAAoB,MAAM,EAAE;IACnE,gCAAgC,EAAE,KAAK,WAAW,+BAA+B,MAAM,EAAE;GAC1F,CAAC;EACF;EACA,mBAAmB,OAAO;GACzB,gBAAgB,qBAAqB,OAAO;IAC3C,kBAAkB,EAAE,KAAK,YAAY,iBAAiB,OAAO,OAAO,EAAE;IACtE,oBAAoB,EAAE,KAAK,iBAAiB,mBAAmB,OAAO,YAAY,EAAE;GACrF,CAAC;EACF;CACD;;;;;;;;CC1CA,SAAS,WAAW,MAAM,eAAe,OAAO;EAC/C,IAAI,MAAM,QAAQ,oBAAoB,OAAO,wBAAwB,MAAM,eAAe,KAAK;EAC/F,OAAO,uBAAuB,MAAM,eAAe,KAAK;CACzD;CACA,SAAS,wBAAwB,cAAc,WAAW,OAAO;EAChE,MAAM,sBAAsB,CAAC;EAC7B,MAAM,sBAAsB,cAAc;EAC1C,MAAM,WAAW,MAAM,QAAQ,yBAAyB;EACxD,MAAM,qBAAqB,cAAc,QAAQ,MAAM;GACtD,MAAM,eAAe,CAAC;GACtB,KAAK,IAAI,OAAO,cAAc;IAC7B,MAAM,SAAS,aAAa,OAAO,IAAI,IAAI,IAAI,UAAU,IAAI,OAAO,IAAI,OAAO,KAAK,GAAG,IAAI,QAAQ;IACnG,OAAO,gBAAgB,IAAI;IAC3B,IAAI,IAAI,QAAQ,UAAU,QAAQ,UAAU;KAC3C,OAAO,UAAU,kBAAkB,IAAI,SAAS,QAAQ,CAAC;KACzD,MAAM;KACN,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,QAAQ,QAAQ;MAC7C,aAAa,KAAK,GAAG;MACrB,oBAAoB,IAAI,MAAM;MAC9B,oBAAoB,KAAK,GAAG;MAC5B;KACD;KACA,IAAI,UAAU,GAAG,KAAK,OAAO,QAAQ,QAAQ;MAC5C,aAAa,KAAK,GAAG;MACrB,oBAAoB,IAAI,MAAM;MAC9B,oBAAoB,KAAK,GAAG;MAC5B;KACD;IACD,OAAO;KACN,MAAM;KACN,IAAI,UAAU,GAAG,GAAG;MACnB,aAAa,KAAK,GAAG;MACrB,oBAAoB,IAAI,MAAM;MAC9B,oBAAoB,KAAK,GAAG;KAC7B;IACD;GACD;GACA,OAAO;EACR;EACA,OAAO;GACN,MAAM,kBAAkB,YAAY;GACpC,UAAU;GACV,UAAU;EACX;CACD;CACA,SAAS,uBAAuB,cAAc,WAAW,OAAO;EAC/D,MAAM,sBAAsB,CAAC;EAC7B,MAAM,sBAAsB,cAAc;EAC1C,MAAM,WAAW,MAAM,QAAQ,yBAAyB;EACxD,MAAM,qBAAqB,cAAc,QAAQ,MAAM;GACtD,MAAM,eAAe,CAAC;GACtB,KAAK,IAAI,OAAO,cAAc,IAAI,UAAU,GAAG,GAAG;IACjD,IAAI,IAAI,QAAQ,UAAU,QAAQ,UAAU;KAC3C,MAAM,SAAS,aAAa,OAAO,IAAI,IAAI,IAAI,UAAU,IAAI,OAAO,IAAI,OAAO,KAAK,GAAG,IAAI,QAAQ;KACnG,OAAO,UAAU,kBAAkB,IAAI,SAAS,QAAQ,CAAC;KACzD,MAAM;IACP;IACA,aAAa,KAAK,GAAG;IACrB,oBAAoB,KAAK,GAAG;IAC5B,oBAAoB,IAAI,MAAM;IAC9B,IAAI,IAAI,QAAQ,UAAU,SAAS,UAAU,uBAAuB,IAAI,SAAS,qBAAqB,mBAAmB;GAC1H;GACA,OAAO;EACR;EACA,OAAO;GACN,MAAM,kBAAkB,YAAY;GACpC,UAAU;GACV,UAAU;EACX;CACD;CACA,SAAS,uBAAuB,SAAS,UAAU,UAAU;EAC5D,KAAK,MAAM,UAAU,SAAS;GAC7B,SAAS,KAAK,MAAM;GACpB,SAAS,OAAO,MAAM;GACtB,IAAI,OAAO,QAAQ,QAAQ,uBAAuB,OAAO,SAAS,UAAU,QAAQ;EACrF;CACD;;;;;;;;CC5EA,SAAS,wBAAwB;EAChC,QAAQ,QAAQ,aAAa;GAC5B,MAAM,QAAQ;GACd,OAAO,UAAU;IAChB,SAAS;IACT;IACA,QAAQ;IACR,gBAAgB;KACf,MAAM,uBAAuB;KAC7B,MAAM,MAAM,eAAe,IAAI;KAC/B,MAAM,MAAM,cAAc,IAAI;KAC9B,MAAM,oBAAoB;IAC3B;IACA,KAAK,aAAa,eAAe,iBAAiB,uBAAuB,OAAO,UAAU,aAAa,eAAe,YAAY;GACnI,CAAC;EACF;CACD;CACA,SAAS,uBAAuB,OAAO,UAAU,aAAa,eAAe,cAAc;EAC1F,MAAM,kBAAkB,iBAAiB,KAAK,KAAK,iBAAiB,QAAQ,iBAAiB;EAC7F,IAAI,CAAC,YAAY,KAAK,UAAU,CAAC,eAAe,UAAU,CAAC,iBAAiB,OAAO;EACnF,MAAM,gBAAgB,CAAC;EACvB,IAAI,eAAe,KAAK,IAAI,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;GACjE,MAAM,KAAK,cAAc,EAAE,CAAC;GAC5B,IAAI,OAAO,UAAU,cAAc,KAAK,EAAE;EAC3C;EACA,IAAI,mBAAmB,aAAa,cAAc,cAAc,KAAK,YAAY;EACjF,IAAI,CAAC,cAAc,QAAQ,OAAO;EAClC,MAAM,kBAAkB,QAAQ;GAC/B,KAAK,IAAI,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK,IAAI,IAAI,gBAAgB,cAAc,QAAQ,OAAO,OAAO;GAC3G,OAAO;EACR;EACA,OAAO,WAAW,YAAY,MAAM,gBAAgB,KAAK;CAC1D;;;;;;;;CC/BA,SAAS,4BAA4B;EACpC,QAAQ,QAAQ,aAAa;GAC5B,MAAM,QAAQ;GACd,OAAO,UAAU;IAChB,SAAS;IACT;IACA,QAAQ;IACR,gBAAgB;KACf,IAAI,aAAa,cAAc,OAAO,CAAC,mBAAmB,OAAO,4BAA4B,8BAA8B,CAAC,CAAC,QAAQ;KACrI,MAAM,SAAS,MAAM,UAAU,QAAQ;KACvC,IAAI,CAAC,QAAQ,OAAO,CAAC,MAAM,uBAAuB,CAAC,CAAC,QAAQ;KAC5D,OAAO,CAAC,mBAAmB,QAAQ,sBAAsB,2BAA2B,KAAK,CAAC,CAAC,QAAQ;IACpG;IACA,KAAK,aAAa,2BAA2B,OAAO,UAAU,QAAQ;GACvE,CAAC;EACF;CACD;CACA,SAAS,2BAA2B,OAAO,UAAU,UAAU;EAC9D,MAAM,YAAY,aAAa,eAAe,MAAM,kBAAkB,CAAC,CAAC,QAAQ,WAAW,0BAA0B,MAAM,CAAC,CAAC,CAAC,KAAK,WAAW,OAAO,EAAE,IAAI,CAAC,QAAQ;EACpK,MAAM,sCAAsC,IAAI,IAAI;EACpD,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GACpF,MAAM,SAAS,SAAS,EAAE,CAAC,gBAAgB,UAAU,EAAE;GACvD,IAAI,CAAC,QAAQ;GACb,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;IACvC,MAAM,QAAQ,OAAO;IACrB,MAAM,gBAAgB,oBAAoB,IAAI,KAAK;IACnD,oBAAoB,IAAI,OAAO,kBAAkB,KAAK,IAAI,IAAI,gBAAgB,CAAC;GAChF;EACD;EACA,OAAO;CACR;;;;;;;;;;;;;;;CCpBA,SAAS,yBAAyB;EACjC,QAAQ,WAAW;GAClB,MAAM,QAAQ;GACd,OAAO,UAAU;IAChB,SAAS;IACT;IACA,QAAQ;IACR,gBAAgB;KACf,MAAM,uBAAuB;KAC7B,MAAM,MAAM,eAAe,IAAI;KAC/B,MAAM,MAAM,cAAc,IAAI;IAC/B;IACA,UAAU,wBAAwB,KAAK;IACvC,eAAe,mBAAmB,yBAAyB,KAAK,CAAC;GAClE,CAAC;EACF;CACD;CACA,SAAS,wBAAwB,OAAO;EACvC,MAAM,WAAW,MAAM,uBAAuB;EAC9C,MAAM,gBAAgB,MAAM,MAAM,eAAe,IAAI;EACrD,MAAM,eAAe,MAAM,MAAM,cAAc,IAAI;EACnD,MAAM,kBAAkB,iBAAiB,KAAK,KAAK,iBAAiB,QAAQ,iBAAiB;EAC7F,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC,eAAe,UAAU,CAAC,iBAAiB;GACxE,MAAM,WAAW,SAAS;GAC1B,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;IACzC,MAAM,MAAM,SAAS;IACrB,IAAI,gBAAgB,cAAc;IAClC,IAAI,oBAAoB,cAAc;GACvC;GACA,OAAO;EACR;EACA,MAAM,wBAAwB,CAAC;EAC/B,MAAM,wBAAwB,CAAC;EAC/B,eAAe,SAAS,iBAAiB;GACxC,MAAM,SAAS,gBAAgB,OAAO,aAAa,EAAE;GACrD,IAAI,CAAC,QAAQ;GACb,MAAM,WAAW,mBAAmB,MAAM;GAC1C,IAAI,CAAC,UAAU;GACf,sBAAsB,KAAK;IAC1B,IAAI,aAAa;IACjB;IACA,eAAe,SAAS,qBAAqB,aAAa,KAAK,KAAK,aAAa;GAClF,CAAC;EACF,CAAC;EACD,MAAM,gBAAgB,eAAe,KAAK,MAAM,EAAE,EAAE,KAAK,CAAC;EAC1D,MAAM,iBAAiB,wBAAwB,KAAK;EACpD,MAAM,4BAA4B,MAAM,kBAAkB,CAAC,CAAC,QAAQ,WAAW,0BAA0B,MAAM,CAAC;EAChH,IAAI,mBAAmB,kBAAkB,0BAA0B,QAAQ;GAC1E,cAAc,KAAK,YAAY;GAC/B,0BAA0B,SAAS,WAAW;IAC7C,sBAAsB,KAAK;KAC1B,IAAI,OAAO;KACX,UAAU;KACV,eAAe,eAAe,qBAAqB,YAAY,KAAK;IACrE,CAAC;GACF,CAAC;EACF;EACA,MAAM,WAAW,SAAS;EAC1B,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;GACzC,MAAM,MAAM,SAAS;GACrB,IAAI,gBAAgB,cAAc;GAClC,IAAI,oBAAoB,cAAc;GACtC,IAAI,sBAAsB,QAAQ,KAAK,IAAI,IAAI,GAAG,IAAI,sBAAsB,QAAQ,KAAK;IACxF,MAAM,sBAAsB,sBAAsB;IAClD,MAAM,KAAK,oBAAoB;IAC/B,IAAI,cAAc,MAAM,oBAAoB,SAAS,KAAK,IAAI,oBAAoB,gBAAgB,eAAe;KAChH,IAAI,CAAC,IAAI,mBAAmB,IAAI,oBAAoB,cAAc;KAClE,IAAI,kBAAkB,MAAM;IAC7B,CAAC;GACF;GACA,IAAI,sBAAsB,QAAQ;IACjC,KAAK,IAAI,IAAI,GAAG,IAAI,sBAAsB,QAAQ,KAAK;KACtD,MAAM,sBAAsB,sBAAsB;KAClD,MAAM,KAAK,oBAAoB;KAC/B,IAAI,oBAAoB,SAAS,KAAK,IAAI,oBAAoB,gBAAgB,eAAe;MAC5F,IAAI,CAAC,IAAI,mBAAmB,IAAI,oBAAoB,cAAc;MAClE,IAAI,kBAAkB,MAAM;KAC7B,CAAC,GAAG;MACH,IAAI,cAAc,aAAa;MAC/B;KACD;IACD;IACA,IAAI,IAAI,cAAc,eAAe,MAAM,IAAI,cAAc,aAAa;GAC3E;EACD;EACA,MAAM,kBAAkB,QAAQ;GAC/B,KAAK,IAAI,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK,IAAI,IAAI,cAAc,cAAc,QAAQ,OAAO,OAAO;GACzG,OAAO;EACR;EACA,OAAO,WAAW,SAAS,MAAM,gBAAgB,KAAK;CACvD;;;;;;;;CCxEA,SAAS,WAAW,UAAU;EAC7B,MAAM,eAAe,CAAC;EACtB,MAAM,aAAa,QAAQ;GAC1B,aAAa,KAAK,GAAG;GACrB,IAAI,IAAI,QAAQ,UAAU,kBAAkB,GAAG,GAAG,IAAI,QAAQ,QAAQ,SAAS;EAChF;EACA,SAAS,KAAK,QAAQ,SAAS;EAC/B,OAAO;GACN,MAAM;GACN,UAAU,SAAS;GACnB,UAAU,SAAS;EACpB;CACD;;;;;;;;CCxCA,SAAS,0BAA0B;EAClC,QAAQ,WAAW;GAClB,MAAM,QAAQ;GACd,OAAO,UAAU;IAChB,SAAS;IACT;IACA,QAAQ;IACR,gBAAgB;KACf,MAAM,wBAAwB;KAC9B,MAAM,MAAM,YAAY,IAAI;KAC5B,CAAC,MAAM,QAAQ,uBAAuB,MAAM,MAAM,UAAU,IAAI,IAAI,KAAK;IAC1E;IACA,UAAU,yBAAyB,KAAK;GACzC,CAAC;EACF;CACD;CACA,SAAS,yBAAyB,OAAO;EACxC,MAAM,uBAAuB,MAAM,wBAAwB;EAC3D,MAAM,aAAa,MAAM,MAAM,YAAY,IAAI;EAC/C,IAAI,CAAC,qBAAqB,KAAK,QAAQ,OAAO;EAC9C,MAAM,EAAE,UAAU,cAAc,cAAc,0BAA0B;EACxE,MAAM,EAAE,MAAM,UAAU,aAAa;EACrC,MAAM,YAAY,WAAW;EAC7B,MAAM,UAAU,YAAY;EAC5B,MAAM,gBAAgB,KAAK,MAAM,WAAW,OAAO;EACnD,IAAI;EACJ,IAAI,CAAC,MAAM,QAAQ,sBAAsB,oBAAoB,WAAW;GACvE,MAAM;GACN;GACA;EACD,CAAC;OACI,oBAAoB;GACxB,MAAM;GACN;GACA;EACD;EACA,kBAAkB,WAAW,CAAC;EAC9B,MAAM,+BAA+B,IAAI,IAAI;EAC7C,MAAM,aAAa,QAAQ;GAC1B,IAAI,aAAa,IAAI,IAAI,EAAE,GAAG;GAC9B,aAAa,IAAI,IAAI,EAAE;GACvB,kBAAkB,SAAS,KAAK,GAAG;GACnC,IAAI,IAAI,QAAQ,QAAQ,IAAI,QAAQ,QAAQ,SAAS;EACtD;EACA,kBAAkB,KAAK,QAAQ,SAAS;EACxC,OAAO;CACR;;;;;;;;;;;;;;;CCvCA,SAAS,uBAAuB;EAC/B,QAAQ,WAAW;GAClB,MAAM,QAAQ;GACd,OAAO,UAAU;IAChB,SAAS;IACT;IACA,QAAQ;IACR,gBAAgB,CAAC,MAAM,MAAM,SAAS,IAAI,GAAG,MAAM,qBAAqB,CAAC;IACzE,UAAU,sBAAsB,KAAK;IACrC,eAAe,mBAAmB,yBAAyB,KAAK,CAAC;GAClE,CAAC;EACF;CACD;CACA,SAAS,sBAAsB,OAAO;EACrC,MAAM,oBAAoB,MAAM,qBAAqB;EACrD,MAAM,UAAU,MAAM,MAAM,SAAS,IAAI;EACzC,IAAI,CAAC,kBAAkB,KAAK,UAAU,CAAC,SAAS,QAAQ,OAAO;EAC/D,MAAM,iBAAiB,CAAC;EACxB,MAAM,mBAAmB,QAAQ,QAAQ,SAAS;GACjD,MAAM,SAAS,MAAM,UAAU,KAAK,EAAE;GACtC,OAAO,SAAS,kBAAkB,MAAM,IAAI;EAC7C,CAAC;EACD,IAAI,CAAC,iBAAiB,QAAQ,OAAO;EACrC,MAAM,kBAAkB,CAAC;EACzB,KAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;GACjD,MAAM,YAAY,iBAAiB;GACnC,MAAM,SAAS,MAAM,UAAU,UAAU,EAAE;GAC3C,IAAI,CAAC,QAAQ;GACb,gBAAgB,KAAK;IACpB,IAAI,UAAU;IACd,MAAM,UAAU;IAChB,eAAe,OAAO,UAAU;IAChC,eAAe,OAAO,UAAU;IAChC,QAAQ,iBAAiB,MAAM;GAChC,CAAC;EACF;EACA,MAAM,eAAe,MAAM,SAAS;GACnC,KAAK,IAAI,IAAI,GAAG,IAAI,gBAAgB,QAAQ,KAAK;IAChD,MAAM,YAAY,gBAAgB;IAClC,MAAM,gBAAgB,UAAU;IAChC,MAAM,SAAS,UAAU;IACzB,IAAI,UAAU;IACd,IAAI,eAAe;KAClB,MAAM,SAAS,KAAK,SAAS,UAAU,EAAE;KACzC,MAAM,SAAS,KAAK,SAAS,UAAU,EAAE;KACzC,MAAM,aAAa,WAAW,KAAK;KACnC,MAAM,aAAa,WAAW,KAAK;KACnC,IAAI,cAAc,YAAY;KAC9B,IAAI,cAAc,YAAY;MAC7B,IAAI,kBAAkB,SAAS,OAAO,aAAa,KAAK;MACxD,IAAI,kBAAkB,QAAQ,OAAO,aAAa,IAAI;MACtD,UAAU,aAAa,gBAAgB,CAAC;KACzC;IACD;IACA,IAAI,YAAY,GAAG,UAAU,UAAU,OAAO,MAAM,MAAM,UAAU,EAAE;IACtE,IAAI,YAAY,GAAG;KAClB,IAAI,QAAQ,WAAW;KACvB,IAAI,UAAU,eAAe,WAAW;KACxC,OAAO;IACR;GACD;GACA,OAAO,KAAK,QAAQ,KAAK;EAC1B;EACA,MAAM,YAAY,SAAS;GAC1B,MAAM,aAAa,KAAK,MAAM;GAC9B,WAAW,KAAK,WAAW;GAC3B,IAAI,UAAU;GACd,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;IAC3C,MAAM,MAAM,WAAW;IACvB,IAAI,QAAQ,KAAK,IAAI,UAAU;IAC/B,IAAI,IAAI,QAAQ,QAAQ;KACvB,MAAM,gBAAgB,SAAS,IAAI,OAAO;KAC1C,IAAI,cAAc,SAAS;MAC1B,MAAM,SAAS,OAAO,OAAO,OAAO,eAAe,GAAG,CAAC;MACvD,mCAAmC,QAAQ,GAAG;MAC9C,OAAO,UAAU,cAAc;MAC/B,WAAW,KAAK;MAChB,eAAe,KAAK,MAAM;MAC1B,UAAU;KACX,OAAO,eAAe,KAAK,GAAG;IAC/B,OAAO,eAAe,KAAK,GAAG;GAC/B;GACA,OAAO;IACN,MAAM;IACN;GACD;EACD;EACA,OAAO;GACN,MAAM,SAAS,kBAAkB,IAAI,CAAC,CAAC;GACvC,UAAU;GACV,UAAU,kBAAkB;EAC7B;CACD;;;CC5FA,MAAa,mBAA4F;EACvG,MAAM;GAAC;GAAY;GAAe;GAAU;GAAa;GAAc;GAAY;GAAS;EAAU;EACtG,QAAQ;GACN;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;EACA,MAAM;GACJ;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;CAEA,MAAa,sCAA2D,IAAI,IAAI,CAAC,SAAS,UAAU,CAAC;CAErG,MAAM,WAAW,UACf,UAAU,QAAQ,UAAU,KAAA,KAAa,OAAO,KAAK,CAAC,CAAC,KAAK,MAAM;CAEpE,MAAM,gBAAgB,OAAgB,eAAkD;EACtF,IAAI,eAAe,QAAQ;GACzB,MAAM,OAAO,iBAAiB,OAAO,MAAM,QAAQ,IAAI,IAAI,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ;GACvF,OAAO,OAAO,MAAM,IAAI,IAAI,OAAO;EACrC;EAEA,MAAM,UAAU,OAAO,UAAU,WAAW,QAAQ,OAAO,KAAK;EAChE,OAAO,OAAO,SAAS,OAAO,IAAI,UAAU;CAC9C;CAEA,MAAM,qBACJ,WACA,WACA,eACY;EACZ,MAAM,EAAE,aAAa;EAErB,IAAI,aAAa,SACf,OAAO,QAAQ,SAAS;EAG1B,IAAI,aAAa,YACf,OAAO,CAAC,QAAQ,SAAS;EAK3B,IAAI,QAAQ,UAAU,KAAK,GACzB,OAAO;EAGT,IAAI,eAAe,YAAY,eAAe,QAAQ;GACpD,MAAM,OAAO,aAAa,WAAW,UAAU;GAC/C,MAAM,QAAQ,aAAa,UAAU,OAAO,UAAU;GACtD,IAAI,SAAS,QAAQ,UAAU,MAC7B,OAAO;GAGT,QAAQ,UAAR;IACE,KAAK,UACH,OAAO,SAAS;IAGlB,KAAK,aACH,OAAO,SAAS;IAGlB,KAAK,eACH,OAAO,OAAO;IAGhB,KAAK,sBACH,OAAO,QAAQ;IAGjB,KAAK,YACH,OAAO,OAAO;IAGhB,KAAK,mBACH,OAAO,QAAQ;IAGjB,KAAK,WAAW;KACd,MAAM,QAAQ,aAAa,UAAU,QAAQ,UAAU;KACvD,OAAO,UAAU,OAAO,QAAQ,QAAQ,QAAQ,SAAS,QAAQ;IACnE;IAEA,SACE,OAAO;GAEX;EACF;EAEA,MAAM,OAAO,OAAO,aAAa,EAAE,CAAC,CAAC,YAAY;EACjD,MAAM,SAAS,OAAO,UAAU,KAAK,CAAC,CAAC,YAAY;EAEnD,QAAQ,UAAR;GACE,KAAK,YACH,OAAO,KAAK,SAAS,MAAM;GAG7B,KAAK,eACH,OAAO,CAAC,KAAK,SAAS,MAAM;GAG9B,KAAK,UACH,OAAO,SAAS;GAGlB,KAAK,aACH,OAAO,SAAS;GAGlB,KAAK,cACH,OAAO,KAAK,WAAW,MAAM;GAG/B,KAAK,YACH,OAAO,KAAK,SAAS,MAAM;GAG7B,SACE,OAAO;EAEX;CACF;CAEA,MAAa,wBACX,WACA,aACA,aAAiC,WACrB;EACZ,IAAI,OAAO,gBAAgB,UACzB,OAAO,OAAO,aAAa,EAAE,CAAC,CAC3B,YAAY,CAAC,CACb,SAAS,YAAY,YAAY,CAAC;EAGvC,IAAI,gBAAgB,aAAa;GAC/B,MAAM,UAAU,YAAY,WAAW,KAAI,cACzC,kBAAkB,WAAW,WAAW,UAAU,CACpD;GACA,OAAO,YAAY,SAAS,OAAO,QAAQ,KAAK,OAAO,IAAI,QAAQ,MAAM,OAAO;EAClF;EAEA,OAAO,YAAY,MAAM,MAAK,cAAa,OAAO,SAAS,MAAM,OAAO,SAAS,CAAC;CACpF;;;;;;;;;CCjKA,MAAa,gBAAgB,YAC3B,OAAO,qBAAqB,cAAc,UACxC,iBAAiB,OAAO,CAAC,CAAC,cAAc,QACxC;CAWJ,MAAa,uBACX,OACA,YACS;EACT,MAAM,YAAY,aAAa,OAAO,IAAI,QAAQ;EAClD,IAAI,MAAM,QAAQ,0BAA0B,WAC1C,MAAM,YAAW,cAAa;GAAE,GAAG;GAAU,uBAAuB;EAAU,EAAW;CAE7F;;;CC1BA,MAAM,qBAAqB;CAC3B,MAAM,qBAAqB;CAC3B,MAAM,oBAAoB;CAgD1B,MAAa,kBAAkB,YAA8C;EAC3E,MAAM,EAAE,YAAY;EACpB,MAAM,mBAAmB,QAAQ,QAAQ,gBAAgB;EAEzD,IAAI,YAAY,MACd,OAAO;GACL,SAAS;GACT,QAAQ;GACR,eAAe,CAAC;GAChB,SAAS,QAAQ;GACjB,OAAO;GACP,QAAQ;EACV;EAGF,IAAI,OAAO,YAAY,UAAU;GAC/B,MAAM,eAAe,QAAQ,UAAU;GACvC,OAAO;IACL,UAAU,QAAQ,WAAW,UAAU;IACvC,QAAQ,QAAQ,YAAY;IAC5B,eAAe,OAAO,iBAAiB,WAAW,eAAe,CAAC;IAClE,UAAU,QAAQ,WAAW,UAAU,QAAQ;IAC/C,OAAO,QAAQ,SAAS;IACxB,SAAS,QAAQ,UAAU,UAAU,QAAQ,QAAQ,YAAY;GACnE;EACF;EAEA,OAAO;GACL,SAAS;GACT,QAAQ;GACR,eAAe,CAAC;GAChB,SAAS;GACT,OAAO;GACP,QAAQ,QAAQ,QAAQ,YAAY;EACtC;CACF;CAEA,MAAa,yBAAyB,YACpC,eAAe,OAAO,CAAC,CAAC;CAE1B,MAAM,sBAAsB,MAAc,OAAe,kBAA6C;EACpG,MAAM,SAAS,SAAS,cAAc,QAAQ;EAC9C,OAAO,OAAO;EACd,OAAO,UAAU,IAAI,OAAO,aAAa,QAAQ;EACjD,OAAO,YAAY;EACnB,OAAO,aAAa,eAAe,EAAE;EACrC,OAAO,aAAa,uBAAuB,KAAK;EAChD,MAAM,OAAO,SAAS,cAAc,MAAM;EAC1C,KAAK,UAAU,IAAI,iBAAiB;EACpC,KAAK,cAAc;EACnB,OAAO,OAAO,IAAI;EAClB,OAAO;CACT;CAEA,MAAa,iBAAiB,YAA6C;EACzE,MAAM,UAAU,SAAS,cAAc,KAAK;EAC5C,QAAQ,UAAU,IAAI,kBAAkB;EAExC,IAAI,QAAQ,WAAW,QAAQ,UAAU,QAAQ,SAAS,QAAQ,SAAS;GACzE,MAAM,UAAU,SAAS,cAAc,KAAK;GAC5C,QAAQ,UAAU,IAAI,kBAAkB;GAExC,IAAI,QAAQ,SACV,QAAQ,OACN,mBAAmB,QAAQ,MAAM,SAAS,QAAQ,OAAO,gBAAgB,6BAA6B,CACxG;GAGF,IAAI,QAAQ,QACV,QAAQ,OACN,mBAAmB,QAAQ,MAAM,QAAQ,QAAQ,OAAO,eAAe,4BAA4B,CACrG;GAGF,IAAI,QAAQ,OACV,QAAQ,OACN,mBAAmB,QAAQ,MAAM,OAAO,QAAQ,OAAO,cAAc,2BAA2B,CAClG;GAGF,IAAI,QAAQ,SAAS;IACnB,MAAM,aAAa,mBAAmB,QAAQ,MAAM,MAAM,QAAQ,OAAO,aAAa,0BAA0B;IAChH,MAAM,aAAa,mBAAmB,QAAQ,MAAM,MAAM,QAAQ,OAAO,aAAa,0BAA0B;IAChH,WAAW,WAAW;IACtB,WAAW,WAAW;IACtB,QAAQ,OAAO,YAAY,UAAU;GACvC;GAEA,QAAQ,OAAO,OAAO;EACxB;EAEA,IAAI,QAAQ,QAAQ;GAClB,MAAM,SAAS,SAAS,cAAc,KAAK;GAC3C,OAAO,UAAU,IAAI,iBAAiB;GAEtC,MAAM,QAAQ,SAAS,cAAc,OAAO;GAC5C,MAAM,OAAO;GACb,MAAM,UAAU,IAAI,gBAAgB,iBAAiB;GACrD,MAAM,cAAc,QAAQ,OAAO;GACnC,MAAM,aAAa,cAAc,QAAQ,OAAO,iBAAiB;GACjE,MAAM,QAAQ,qBAAqB;GAEnC,OAAO,OAAO,KAAK;GACnB,QAAQ,OAAO,MAAM;EACvB;EAEA,OAAO,EAAE,QAAQ;CACnB;;;CC3IA,MAAM,gBAAgF;EACpF,CAAC,iBAAiB,CAAC,sBAAsB,CAAC;EAC1C,CAAC,iBAAiB,CAAC,0BAA0B,kBAAkB,CAAC;EAChE,CAAC,eAAe,CAAC,uBAAuB,CAAC;EAGzC,CAAC,iBAAiB;GAAC;GAAwB;GAAuB;EAAyB,CAAC;EAC5F,CAAC,gBAAgB,CAAC,yBAAyB,qBAAqB,CAAC;EACjE,CAAC,oBAAoB,CAAC,yBAAyB,CAAC;EAChD,CAAC,gBAAgB;GAAC;GAAoB;GAAa;EAAwB,CAAC;EAC5E,CAAC,cAAc,CAAC,qBAAqB,sBAAsB,CAAC;EAC5D,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;EACxC,CAAC,iBAAiB;GAAC;GAAyB;GAAmB;EAAqB,CAAC;EACrF,CAAC,WAAW,CAAC,qBAAqB,gBAAgB,CAAC;CACrD;CAEA,MAAa,yBACX,eACA,UACA,UACS;EACT,KAAK,MAAM,CAAC,MAAM,iBAAiB,eAAe;GAChD,IAAI,CAAC,MAAM,OACT;GAGF,MAAM,QAAQ,SAAS,kBAAkB,0CAAwC;GACjF,KAAK,MAAM,OAAO,cAChB,IAAI,EAAE,OAAO,WACX,MAAM,IAAI,UACR,GAAG,cAAc,YAAY,EAAE,YAAY,MAAM,sBAAsB,IAAI,iBAC7E;EAGN;CACF;;;;;;;;;CC9CA,MAAM,wBAAwB,OAAO;CACrC,MAAM,4BAA4B;CAElC,MAAM,sBAAsB,WAAqE;EAC/F,MAAM,EAAE,aAAa;EACrB,IAAI,UACF,QAAQ,KAAK,UAAU,gBAAgB,SAAS,IAAI,SAAS,QAAQ,GAAG,aAAa,IAAI,QAAQ;EAGnG,QAAQ,KAAK,UAAU,gBACrB,qBAAqB,IAAI,SAAS,QAAQ,GAAG,aAA0C,OAAO,UAAU;CAC5G;CAEA,MAAa,mBACX,SACA,eACkB;EAClB,MAAM,iBAAiB,OAAO,QAAQ,YAAY,WAAW,QAAQ,UAAU,CAAC;EAChF,MAAM,gBAAgB,OAAO,QAAQ,iBAAiB,WAAW,QAAQ,eAAe,CAAC;EACzF,MAAM,oBAAoB,OAAO,QAAQ,eAAe,WAAW,QAAQ,aAAa,CAAC;EACzF,MAAM,aAAa,QAAQ,QAAQ,YAAY;EAC/C,MAAM,gBAAgB,QAAQ,QAAQ,YAAY;EAClD,MAAM,iBAAiB,QAAQ,QAAQ,aAAa;EAIpD,MAAM,gBAAgB,iBAAiB;EACvC,MAAM,YAAY,QAAQ,QAAQ,UAAU,KAAK;EACjD,MAAM,kBAAkB,OAAO,QAAQ,mBAAmB,WAAW,QAAQ,iBAAiB,CAAC;EAE/F,IAAI,QAAQ,gBAAgB;GAC1B,IAAI,CAAC,YACH,MAAM,IAAI,UAAU,iEAA6D;GAGnF,IAAI,QAAQ,YACV,MAAM,IAAI,UAAU,8EAA0E;GAGhG,IAAI,CAAC,QAAQ,gBACX,MAAM,IAAI,UAAU,mEAA+D;EAEvF;EAMA,MAAM,EAAE,aAAa;EACrB,IAAI,CAAC,UACH,MAAM,IAAI,UAAU,6CAA2C;EAGjE,sBAAsB,aAAa,UAAU;GAC3C,eAAe,QAAQ;GACvB,eAAe,QAAQ;GACvB,aAAa,QAAQ,QAAQ,WAAW;GACxC,eAAe;GACf,cAAc;GACd,kBAAkB,QAAQ,QAAQ,gBAAgB;GAClD,cAAc,sBAAsB,OAAO;GAC3C,YAAY;GACZ,cAAc,QAAQ,QAAQ,YAAY;GAC1C,eAAe,QAAQ,iBAAiB,QAAQ,QAAQ,MAAK,WAAU,OAAO,eAAe,QAAQ;GACrG,SAAS,QAAQ,QAAQ,OAAO;EAClC,CAAC;EAED,MAAM,eAA4C;GAGhD,GAAI,0BAA0B,YAAY,EACxC,YAAY;IACV,WAAW;IACX,UAAU,QAAQ,iBAChB,gBAAgB,YAAY,4BAC3B,YAAY,kBAAkB,YAAY,KAAK;GACpD,EACF;GACA,GAAI,OAAO,QAAQ,kBAAkB,YAAY,EAC/C,eAAe;IAAE,OAAO,CAAC;IAAG,KAAK,CAAC;IAAG,GAAG,QAAQ;GAAc,EAChE;GACA,GAAI,MAAM,QAAQ,QAAQ,WAAW,KAAK,EAAE,aAAa,QAAQ,YAAY;GAC7E,GAAI,OAAO,QAAQ,qBAAqB,YAAY,EAAE,kBAAkB,QAAQ,iBAAiB;EACnG;EAEA,OAAO,eAA+C;GACpD,SAAS,QAAQ,QAAQ,KAAI,WAAU;IACrC,MAAM,OAAO,OAAO,SAAS;IAC7B,OAAO;KACL,aAAa,OAAO;KACpB,oBAAoB,OAAO,eAAe;KAC1C,cAAc,OAAO,aAAa;KAClC,gBAAgB,OAAO,cAAc;KACrC,eAAe,OAAO,aAAa;KACnC,UAAU,mBAAmB,MAAM;KACnC,IAAI,OAAO;KACX,MAAM;MAAE,OAAO,OAAO;MAAO,WAAW,OAAO;MAAW,OAAO,OAAO;KAAM;KAC9E,GAAI,iBAAiB,SAAS,QAAQ,EAAE,KAAK;IAC/C;GACF,CAAC;GACD,kBAAkB,cAAc,QAAQ;GAIxC,uBAAuB,aAAa,aAAa,CAAC,IAAI,QAAQ;GAC9D,MAAM,aAAa,CAAC,IAAI,QAAQ;GAChC,qBAAqB,QAAQ,QAAQ,aAAa;GAClD,qBAAqB,QAAQ,QAAQ,aAAa;GAClD,qBAAqB;GACrB,sBAAsB;GACtB,oBAAoB,sBAAsB,OAAO;GACjD,cAAc,QAAQ,QAAQ,gBAAgB;GAC9C,iBAAiB,eAAe,aAAa;GAC7C,oBAAoB,QAAQ,QAAQ,YAAY;GAChD,eAAe,QAAQ,QAAQ,OAAO;GACtC,sBAAsB,QAAQ,eAAe,SAAS;GACtD;GACA,gBAAgB;GAChB,GAAI,cAAc;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,UAAU;GACZ;GACA,GAAI,QAAQ,WAAW,EAAE,UAAU,QAAQ,QAAQ;GACnD;GACA,qBAAqB;EACvB,CAAC;CACH;CAKA,MAAa,yBACX,OACA,aACiB;EACjB,IAAI,WAAW,MAAM,MAAM;EAC3B,MAAM,eAAe,MAAM,MAAM,WAAU,SAAQ;GACjD,MAAM,OAAO;GACb,WAAW;GACX,SAAS,MAAM,IAAI;EACrB,CAAC;EAED,aAAa,aAAa,YAAY;CACxC;;;CClKA,SAAS,2BAA2B,OAAO,MAAM,YAAY;EAC3D,MAAM,QAAQ,IAAI,MAAM,KAAK;EAC7B,OAAO,IAAI,MAAM,OAAO,EACtB,IAAI,QAAQ,MAAM,UAAU;GAC1B,IAAI,OAAO,SAAS,UAAU;IAC5B,MAAM,IAAI,KAAK,WAAW,CAAC;IAC3B,IAAI,KAAK,MAAM,KAAK,IAAI;KACtB,MAAM,IAAI,CAAC;KACX,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO;MAC9C,IAAI,IAAI,OAAO;MACf,IAAI,CAAC,GAAG;OACN,MAAM,IAAI,KAAK,IAAI;OACnB,IAAI,OAAO,KAAK;QACd,OAAO;QACP,KAAK,WAAW,CAAC;QACjB,OAAO;QACP,MAAM,KAAK,IAAI,IAAI;QACnB,KAAK,IAAI,KAAK,IAAI,IAAI;QACtB,MAAM;OACR;MACF;MACA,OAAO;KACT;IACF;IACA,IAAI,SAAS,UAAU,OAAO;GAChC;GACA,OAAO,QAAQ,IAAI,QAAQ,MAAM,QAAQ;EAC3C,EACF,CAAC;CACH;;;CC7BA,SAAS,KAAK,SAAS,IAAI,MAAM;EAC/B,IAAI,OAAO,KAAK,eAAe,CAAC;EAChC,IAAI;EACJ,IAAI,YAAY;EAChB,SAAS,mBAAmB;GAK1B,MAAM,UAAU,QAAQ;GAExB,IAAI,EADgB,QAAQ,WAAW,KAAK,UAAU,QAAQ,MAAM,KAAK,UAAU,KAAK,WAAW,GAAG,IAEpG,OAAO;GAET,OAAO;GAGP,SAAS,GAAG,GAAG,OAAO;GAwBtB,KAAK,QAAQ,OAAO,KAAK,IAAI,KAAK,aAAa,EAAE,aAAa,KAAK,sBACjE,KAAK,SAAS,MAAM;GAEtB,YAAY;GACZ,OAAO;EACT;EACA,iBAAiB,cAAc,YAAY;GACzC,OAAO;EACT;EACA,OAAO;CACT;CACA,SAAS,aAAa,OAAO,KAAK;EAChC,IAAI,UAAU,KAAK,GACjB,MAAM,IAAI,MAAM,uBAAuB,MAAM,KAAK,QAAQ,IAAI;OAE9D,OAAO;CAEX;CACA,MAAM,eAAe,GAAG,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI;CAChD,MAAMC,cAAY,cAAc,IAAI,OAAO;EACzC,IAAI;EACJ,OAAO,SAAS,GAAG,MAAM;GACvB,aAAa,aAAa,SAAS;GACnC,YAAY,aAAa,iBAAiB,GAAG,MAAM,MAAM,IAAI,GAAG,EAAE;EACpE;CACF;;;CChEA,IAAI;CACJ,MAAM,oBAAoB;EACxB,IAAI,iBAAiB,KAAK,GAAG,OAAO;EACpC,IAAI,OAAO,cAAc,aAAa,OAAO,eAAe;EAC5D,IAAI,iBAAiB,KAAK,UAAU,SAAS,GAAG,OAAO,eAAe;EACtE,MAAM,MAAM,UAAU;EACtB,OAAO,eAAe,UAAU,aAAa,cAAc,QAAQ,KAAK,KAAK,MAAM;CACrF;CAIA,MAAM,WAAW,YAAY;EAC3B,MAAM,EAAE,aAAa,iBAAiB;EACtC,OAAO;GAAE,OAAO;GAAa,QAAQ;EAAa;CACpD;CACA,MAAM,uBAAuB,UAAU;CACvC,MAAM,yBAAyB,UAAU;EACvC,MAAM,QAAQ,KAAK,IAAI,MAAM,aAAa,MAAM,UAAU,CAAC;EAE3D,MAAM,MADM,KAAK,IAAI,MAAM,WAAW,MAAM,UAAU,MAAM,QAAQ,CACtD,IAAI,QAAQ;EAC1B,MAAM,MAAM,IAAI,MAAM,GAAG;EACzB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,KACvB,IAAI,KAAK,QAAQ;EAEnB,OAAO;CACT;CACA,MAAM,sBAAsB,UAAU,OAAO;EAC3C,MAAM,UAAU,SAAS;EACzB,IAAI,CAAC,SACH;EAEF,MAAM,eAAe,SAAS;EAC9B,IAAI,CAAC,cACH;EAEF,MAAM,WAAW,SAAS;GACxB,MAAM,EAAE,OAAO,WAAW;GAC1B,GAAG;IAAE,OAAO,KAAK,MAAM,KAAK;IAAG,QAAQ,KAAK,MAAM,MAAM;GAAE,CAAC;EAC7D;EACA,QAAQ,QAAQ,OAAO,CAAC;EACxB,IAAI,CAAC,aAAa,gBAChB,aAAa,CACb;EAEF,MAAM,WAAW,IAAI,aAAa,gBAAgB,YAAY;GAC5D,MAAM,YAAY;IAChB,MAAM,QAAQ,QAAQ;IACtB,IAAI,SAAS,OAAO,KAAK,IAAI,MAAM,eAAe;KAChD,MAAM,MAAM,MAAM,cAAc;KAChC,IAAI,KAAK;MACP,QAAQ;OAAE,OAAO,IAAI;OAAY,QAAQ,IAAI;MAAU,CAAC;MACxD;KACF;IACF;IACA,QAAQ,QAAQ,OAAO,CAAC;GAC1B;GACA,SAAS,QAAQ,sCAAsC,sBAAsB,GAAG,IAAI,IAAI;EAC1F,CAAC;EACD,SAAS,QAAQ,SAAS,EAAE,KAAK,aAAa,CAAC;EAC/C,aAAa;GACX,SAAS,UAAU,OAAO;EAC5B;CACF;CACA,MAAM,0BAA0B,EAC9B,SAAS,KACX;CAeA,MAAM,oBAAoB,OAAO,UAAU,cAAc,OAAO,iBAAiB;CACjF,MAAM,iBAAiB,UAAU,IAAI,eAAe;EAClD,MAAM,UAAU,SAAS;EACzB,IAAI,CAAC,SACH;EAEF,MAAM,eAAe,SAAS;EAC9B,IAAI,CAAC,cACH;EAEF,MAAM,yBAAyB,SAAS,QAAQ,qBAAqB;EACrE,IAAI,SAAS;EACb,MAAM,WAAW,yBAAyB,OAAOC,WAC/C,oBACM,GAAG,QAAQ,KAAK,GACtB,SAAS,QAAQ,qBACnB;EACA,MAAM,iBAAiB,sBAAsB;GAC3C,SAAS,WAAW,OAAO;GAC3B,WAAqC;GACrC,GAAG,QAAQ,WAAW;EACxB;EACA,MAAM,UAAU,cAAc,IAAI;EAClC,MAAM,aAAa,cAAc,KAAK;EACtC,QAAQ,iBAAiB,UAAU,SAAS,uBAAuB;EACnE,IAAI,wBACF,QAAQ,iBAAiB,aAAa,YAAY,uBAAuB;EAE3E,aAAa;GACX,QAAQ,oBAAoB,UAAU,OAAO;GAC7C,IAAI,wBACF,QAAQ,oBAAoB,aAAa,UAAU;EAEvD;CACF;CACA,MAAM,wBAAwB,UAAU,OAAO,cAAc,UAAU,KAAK,OAAO;EACjF,MAAM,EAAE,YAAY,UAAU,SAAS;EACvC,OAAO,aAAa,GAAG,cAAc,SAAS,MAAM,KAAK,GAAG;CAC9D,CAAC;CAMD,MAAM,kBAAkB,SAAS,OAAO,aAAa;EACnD,IAAI,SAAS,QAAQ,uBAAuB;GAC1C,MAAM,QAAQ,SAAS,iBAAiB,OAAO;GAC/C,MAAM,MAAM,SAAS,QAAQ,WAAW,KAAK;GAC7C,OAAO,SAAS,cAAc,IAAI,GAAG,KAAK,SAAS,QAAQ,aAAa,KAAK;EAC/E;EACA,IAAI,SAAS,OAAO,KAAK,IAAI,MAAM,eAAe;GAChD,MAAM,MAAM,MAAM,cAAc;GAChC,IAAI,KAIF,OAHa,KAAK,MAChB,IAAI,SAAS,QAAQ,aAAa,eAAe,YAEzC;EAEd;EACA,IAAI,CAAC,OAAO;GACV,MAAM,QAAQ,SAAS,iBAAiB,OAAO;GAC/C,MAAM,MAAM,SAAS,QAAQ,WAAW,KAAK;GAC7C,MAAM,aAAa,SAAS,cAAc,IAAI,GAAG;GACjD,IAAI,eAAe,KAAK,GACtB,OAAO;EAEX;EACA,OAAO,QAAQ,SAAS,QAAQ,aAAa,gBAAgB;CAC/D;CACA,MAAM,yBAAyB,QAAQ,EACrC,cAAc,GACd,YACC,aAAa;EACd,IAAI,IAAI;EACR,CAAC,MAAM,KAAK,SAAS,kBAAkB,OAAO,KAAK,IAAI,GAAG,aAAa,QAAgB,GAAG,KAAK,IAAI;IAChG,SAAS,QAAQ,aAAa,SAAS,QAAQ,SAAS;GACzD;EACF,CAAC;CACH;CAEA,MAAM,gBAAgB;CACtB,IAAM,cAAN,MAAkB;EAChB,YAAY,MAAM;GAChB,KAAK,SAAS,CAAC;GACf,KAAK,gBAAgB;GACrB,KAAK,eAAe;GACpB,KAAK,cAAc;GACnB,KAAK,cAAc;GACnB,KAAK,oBAAoB,CAAC;GAC1B,KAAK,oBAAoB;GACzB,KAAK,gCAAgC,IAAI,IAAI;GAC7C,KAAK,uBAAuB;GAC5B,KAAK,kCAAkC,IAAI,IAAI;GAC/C,KAAK,aAAa;GAClB,KAAK,YAAY,KAAK;GACtB,KAAK,mBAAmB;GACxB,KAAK,gBAAgB;GACrB,KAAK,sBAAsB;GAC3B,KAAK,aAAa;GAClB,KAAK,eAAe;GACpB,KAAK,kBAAkB;GACvB,KAAK,oBAAoB;GACzB,KAAK,yBAAyB;GAC9B,KAAK,eAAe;GACpB,KAAK,qBAAqB;GAC1B,KAAK,sBAAsB;GAC3B,KAAK,wBAAwB;GAC7B,KAAK,gCAAgC,IAAI,IAAI;GAC7C,KAAK,YAAY;IACf,IAAI,IAAI,IAAI;IACZ,SAAS,MAAM,MAAM,KAAK,KAAK,iBAAiB,OAAO,KAAK,IAAI,GAAG,gBAAgB,OAAO,KAAK,IAAI,GAAG,QAAQ,OAAO,KAAK,IAAI,GAAG,KAAK,EAAE,MAAM,KAAK,IAAI;GACzJ;GACA,KAAK,WAA2B,uBAAO;IACrC,IAAI,MAAM;IACV,MAAM,YAAY;KAChB,IAAI,KACF,OAAO;KAET,IAAI,CAAC,KAAK,gBAAgB,CAAC,KAAK,aAAa,gBAC3C,OAAO;KAET,OAAO,MAAM,IAAI,KAAK,aAAa,gBAAgB,YAAY;MAC7D,QAAQ,SAAS,UAAU;OACzB,MAAM,YAAY;QAChB,MAAM,OAAO,MAAM;QACnB,MAAM,QAAQ,KAAK,iBAAiB,IAAI;QACxC,IAAI,CAAC,KAAK,aAAa;SACrB,KAAK,SAAS,UAAU,IAAI;SAC5B,KAAK,MAAM,CAAC,UAAU,eAAe,KAAK,eACxC,IAAI,eAAe,MAAM;UACvB,KAAK,cAAc,OAAO,QAAQ;UAClC;SACF;SAEF;QACF;QACA,IAAI,KAAK,0BAA0B,KAAK,GACtC,KAAK,WACH,OACA,KAAK,QAAQ,eAAe,MAAM,OAAO,IAAI,CAC/C;OAEJ;OACA,KAAK,QAAQ,sCAAsC,sBAAsB,GAAG,IAAI,IAAI;MACtF,CAAC;KACH,CAAC;IACH;IACA,OAAO;KACL,kBAAkB;MAChB,IAAI;MACJ,CAAC,KAAK,IAAI,MAAM,QAAgB,GAAG,WAAW;MAC9C,MAAM;KACR;KACA,UAAU,WAAW;MACnB,IAAI;MACJ,QAAQ,KAAK,IAAI,MAAM,OAAO,KAAK,IAAI,GAAG,QAAQ,QAAQ,EAAE,KAAK,aAAa,CAAC;KACjF;KACA,YAAY,WAAW;MACrB,IAAI;MACJ,QAAQ,KAAK,IAAI,MAAM,OAAO,KAAK,IAAI,GAAG,UAAU,MAAM;KAC5D;IACF;GACF,EAAA,CAAG;GACH,KAAK,QAAQ;GACb,KAAK,cAAc,UAAU;IAC3B,IAAI,IAAI;IACR,MAAM,SAAS;KACb,OAAO;KACP,eAAe;KACf,UAAU;KACV,cAAc;KACd,YAAY;KACZ,oBAAoB;KACpB,kBAAkB;KAClB,YAAY;KACZ,YAAY;KACZ,gBAAgB;KAChB,gBAAgB,CAChB;KACA;KACA,aAAa;MAAE,OAAO;MAAG,QAAQ;KAAE;KACnC,cAAc;KACd,KAAK;KACL,gBAAgB;KAChB,0BAA0B,CAAC;KAC3B,OAAO;KACP,UAAU;KACV,gBAAgB;KAChB,oBAAoB;KACpB,uBAAuB;KACvB,SAAS;KACT,OAAO;KACP,mBAAmB;KACnB,qCAAqC;KACrC,oBAAoB;KACpB,uBAAuB;IACzB;IACA,KAAK,MAAM,OAAO,OAAO;KACvB,MAAM,IAAI,MAAM;KAChB,IAAI,MAAM,KAAK,GAAG,OAAO,OAAO;IAClC;IACA,MAAM,cAAc,KAAK;IACzB,IAAI,SAAS;IACb,IAAI,iBAAiB;IACrB,IAAI,kBAAkB;IACtB,IAAI,gBAAgB,KAAK,KAAK,YAAY,WAAW,OAAO,WAAW,OAAO,aAAa,SAAS,KAAK,kBAAkB,MAAM;KAC/H,MAAM,YAAY,YAAY;KAC9B,MAAM,YAAY,OAAO;KACzB,MAAM,eAAe,KAAK,gBAAgB;KAC1C,MAAM,eAAe,YAAY,MAAM,KAAK,aAAa,OAAO,OAAO,KAAK,IAAI,GAAG,QAAQ,YAAY,WAAW,CAAC,IAAI;KACvH,MAAM,cAAc,YAAY,MAAM,KAAK,aAAa,YAAY,OAAO,OAAO,KAAK,IAAI,GAAG,QAAQ,YAAY,WAAW,YAAY,CAAC,IAAI;KAG9I,IAFuB,cAAc,aACO,YAAY,KAAK,YAAY,MAAM,OAAO,WAAW,CAAC,MAAM,gBAAgB,OAAO,WAAW,YAAY,CAAC,MAAM,cACtI;MACrB,kBAAkB;MAClB,MAAM,OAAO,YAAY,IAAI,KAAK,wBAAwB,KAAK,gBAAgB,CAAC,KAAK,aAAa,KAAK;MACvG,IAAI,MACF,SAAS,CAAC,KAAK,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK;MAEzD,MAAM,WAAW,OAAO,mBAAmB,OAAO,SAAS,OAAO,kBAAkB;MACpF,IAAI,YAAY,YAAY,aAAa,KAAK,QAAQ,YAAY,kBAAkB,MAAM,cAAc,KAAK,OAAO,WAAW,YAAY,CAAC,MAAM,cAChJ,iBAAiB;KAErB;IACF;IACA,KAAK,UAAU;IACf,IAAI,iBAAiB;KACnB,KAAK,aAAa;KAClB,KAAK;IACP;IACA,IAAI,iBAAiB;IACrB,IAAI,cAAc;IAClB,IAAI,UAAU,KAAK,iBAAiB,MAAM;KACxC,MAAM,CAAC,WAAW,gBAAgB;KAClC,MAAM,kBAAkB,KAAK,gBAAgB;KAC7C,MAAM,EAAE,OAAO,eAAe,KAAK;KACnC,IAAI,MAAM;KACV,OAAO,MAAM,SAAS,WAAW,GAAG,MAAM,WACxC;KAEF,IAAI,MAAM,OAAO;MACf,MAAM,aAAa,gBAAgB;MACnC,IAAI,YAAY;OACd,MAAM,YAAY,WAAW,QAAQ;OACrC,IAAI,cAAc,KAAK,cAAc;QACnC,cAAc,YAAY,KAAK;QAC/B,KAAK,eAAe;QACpB,iBAAiB;OACnB;MACF;KACF;IACF;IACA,IAAI,kBAAkB,gBACpB,KAAK,sBAAsB;KACzB,iBAAiB,OAAO,KAAK;KAC7B,iBAAiB,OAAO,KAAK;KAC7B;KACA;IACF;GAEJ;GACA,KAAK,UAAU,SAAS;IACtB,IAAI,IAAI;IACR,CAAC,MAAM,KAAK,KAAK,QAAA,CAAS,aAAa,QAAgB,GAAG,KAAK,IAAI,MAAM,IAAI;GAC/E;GACA,KAAK,cAAc,WACX;IACJ,KAAK,eAAe;IACpB,OAAO;KACL,KAAK;KACL,KAAK,QAAQ,KAAK,MAAM,aAAa;KACrC,KAAK,QAAQ,KAAK,MAAM,WAAW;IACrC;GACF,IACC,gBAAgB;IACf,KAAK,OAAO,WAAW;GACzB,GACA;IACE,KAAK;IACL,aAAa,KAAK,QAAQ;IAC1B,aAAa;KACX,KAAK;KACL,KAAK,QAAQ,KAAK,MAAM,aAAa;KACrC,KAAK,QAAQ,KAAK,MAAM,WAAW;IACrC;GACF,CACF;GACA,KAAK,gBAAgB;IACnB,KAAK,OAAO,OAAO,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IAC9C,KAAK,SAAS,CAAC;IACf,KAAK,SAAS,WAAW;IACzB,IAAI,KAAK,SAAS,QAAQ,KAAK,cAAc;KAC3C,KAAK,aAAa,qBAAqB,KAAK,KAAK;KACjD,KAAK,QAAQ;IACf;IACA,KAAK,cAAc;IACnB,KAAK,yBAAyB;IAC9B,KAAK,eAAe;IACpB,KAAK,qBAAqB;IAC1B,KAAK,gBAAgB;IACrB,KAAK,eAAe;GACtB;GACA,KAAK,kBAAkB;IACrB,aAAa;KACX,KAAK,QAAQ;IACf;GACF;GACA,KAAK,oBAAoB;IACvB,IAAI;IACJ,MAAM,gBAAgB,KAAK,QAAQ,UAAU,KAAK,QAAQ,iBAAiB,IAAI;IAC/E,IAAI,KAAK,kBAAkB,eAAe;KACxC,KAAK,QAAQ;KACb,IAAI,CAAC,eAAe;MAClB,KAAK,YAAY;MACjB;KACF;KACA,KAAK,gBAAgB;KACrB,IAAI,KAAK,iBAAiB,mBAAmB,KAAK,eAChD,KAAK,eAAe,KAAK,cAAc,cAAc;UAErD,KAAK,iBAAiB,KAAK,KAAK,kBAAkB,OAAO,KAAK,IAAI,GAAG,WAAW;KAElF,KAAK,cAAc,SAAS,WAAW;MACrC,KAAK,SAAS,QAAQ,MAAM;KAC9B,CAAC;KACD,KAAK,OAAO,KACV,KAAK,QAAQ,mBAAmB,OAAO,SAAS;MAC9C,KAAK,aAAa;MAClB,KAAK,YAAY;KACnB,CAAC,CACH;KACA,KAAK,OAAO,KACV,KAAK,QAAQ,qBAAqB,OAAO,QAAQ,gBAAgB;MAC/D,IAAI,eAAe,KAAK,0BAA0B,QAAQ,WAAW,KAAK,cACxE;MAEF,IAAI,KAAK,0BAA0B,QAAQ,KAAK,IAAI,SAAS,KAAK,qBAAqB,IAAI,KACzF,SAAS,KAAK;MAEhB,KAAK,wBAAwB;MAC7B,KAAK,oBAAoB;MACzB,MAAM,aAAa,KAAK,gBAAgB;MACxC,KAAK,kBAAkB,cAAc,eAAe,SAAS,KAAK,kBAAkB,aAAa,SAAS,YAAY,aAAa;MACnI,KAAK,eAAe;MACpB,KAAK,cAAc;MACnB,KAAK,yBAAyB;MAC9B,IAAI,KAAK,aACP,KAAK,wBAAwB;MAE/B,KAAK,YAAY;KACnB,CAAC,CACH;KACA,IAAI,sBAAsB,KAAK,eAAe;MAC5C,MAAM,WAAW,KAAK;MACtB,MAAM,qBAAqB;OACzB,KAAK,eAAe;OACpB,KAAK,qBAAqB;OAC1B,IAAI,KAAK,wBAAwB,QAAQ,KAAK,gBAAgB,MAAM;QAClE,KAAK,aAAa,aAAa,KAAK,mBAAmB;QACvD,KAAK,sBAAsB;OAC7B;MACF;MACA,MAAM,mBAAmB;OACvB,KAAK,eAAe;OACpB,IAAI,CAAC,YAAY,KAAK,KAAK,gBAAgB,MACzC;OAEF,KAAK,qBAAqB;OAC1B,KAAK,sBAAsB,KAAK,aAAa,iBAAiB;QAC5D,KAAK,qBAAqB;QAC1B,KAAK,sBAAsB;QAC3B,KAAK,yBAAyB;OAChC,GAAG,GAAG;MACR;MACA,SAAS,iBACP,cACA,cACA,uBACF;MACA,SAAS,iBACP,YACA,YACA,uBACF;MACA,KAAK,OAAO,WAAW;OACrB,SAAS,oBAAoB,cAAc,YAAY;OACvD,SAAS,oBAAoB,YAAY,UAAU;OACnD,IAAI,KAAK,wBAAwB,QAAQ,KAAK,gBAAgB,MAAM;QAClE,KAAK,aAAa,aAAa,KAAK,mBAAmB;QACvD,KAAK,sBAAsB;OAC7B;MACF,CAAC;KACH;KACA,KAAK,gBAAgB,KAAK,gBAAgB,GAAG;MAC3C,aAAa,KAAK;MAClB,UAAU,KAAK;KACjB,CAAC;IACH;IACA,MAAM,SAAS,KAAK;IACpB,KAAK,sBAAsB;IAC3B,IAAI,UAAU,KAAK,iBAAiB,KAAK,QAAQ,SAAS;KACxD,MAAM,CAAC,KAAK,SAAS,gBAAgB,eAAe;KACpD,IAAI,QAAQ,QAAQ,CAAC,gBAAgB;MACnC,IAAI,YAAY,MAAM,KAAK,eAAe,KAAK,gBAAgB,KAAK,qBAC9D;WAAA,gBAAgB,GAClB,KAAK,0BAA0B;MAAA,OAGjC,KAAK,gBAAgB,KAAK,gBAAgB,GAAG;OAC3C,aAAa,KAAK;OAClB,UAAU,KAAK;MACjB,CAAC;KAEL;KACA,IAAI,gBACF,KAAK,YAAY,EAAE,UAAU,eAAe,CAAC;IAEjD;GACF;GACA,KAAK,iCAAiC;IACpC,IAAI,KAAK,2BAA2B,GAAG;IACvC,IAAI,KAAK,aAAa;IACtB,IAAI,KAAK,cAAc;IACvB,IAAI,KAAK,oBAAoB;IAC7B,MAAM,MAAM,KAAK,gBAAgB;IACjC,MAAM,MAAM,KAAK,mBAAmB;IACpC,IAAI,MAAM,KAAK,MAAM,KAAK;IAC1B,MAAM,QAAQ,KAAK;IACnB,KAAK,yBAAyB;IAC9B,KAAK,gBAAgB,KAAK;KACxB,aAAa,KAAK,qBAAqB;KACvC,UAAU,KAAK;IACjB,CAAC;GACH;GACA,KAAK,QAAQ;GACb,KAAK,gBAAgB;IACnB,IAAI,CAAC,KAAK,QAAQ,SAAS;KACzB,KAAK,aAAa;KAClB,OAAO;IACT;IACA,KAAK,aAAa,KAAK,cAAc,KAAK,QAAQ;IAClD,OAAO,KAAK,WAAW,KAAK,QAAQ,aAAa,UAAU;GAC7D;GACA,KAAK,wBAAwB;IAC3B,IAAI,CAAC,KAAK,QAAQ,SAAS;KACzB,KAAK,eAAe;KACpB,OAAO;IACT;IACA,KAAK,eAAe,KAAK,iBAAiB,OAAO,KAAK,QAAQ,kBAAkB,aAAa,KAAK,QAAQ,cAAc,IAAI,KAAK,QAAQ;IACzI,OAAO,KAAK;GACd;GACA,KAAK,wBAAwB,WACrB;IACJ,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,QAAQ;GACf,IACC,OAAO,cAAc,cAAc,YAAY,SAAS,OAAO,oBAAoB,QAAQ;IAE1F,IADqB,KAAK,cAAc,KAAK,KAAK,KAAK,cAAc,OAEnE,KAAK,mBAAmB;IAE1B,KAAK,YAAY;IACjB,KAAK,aAAa;IAClB,OAAO;KACL;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IACF;GACF,GACA,EACE,KAAK,MACP,CACF;GACA,KAAK,kBAAkB,WACf,CAAC,KAAK,sBAAsB,GAAG,KAAK,oBAAoB,IAC7D,EACC,OACA,cACA,cACA,YACA,SACA,OACA,oBACA,OACC,0BAA0B;IAC3B,MAAM,gBAAgB,KAAK;IAC3B,IAAI,CAAC,SAAS;KACZ,KAAK,oBAAoB,CAAC;KAC1B,KAAK,cAAc,MAAM;KACzB,KAAK,gBAAgB,MAAM;KAC3B,OAAO,CAAC;IACV;IACA,IAAI,KAAK,gBAAgB,OAAO,OACzB;UAAA,MAAM,SAAS,KAAK,gBAAgB,KAAK,GAC5C,IAAI,SAAS,OACX,KAAK,gBAAgB,OAAO,KAAK;IAAA;IAIvC,IAAI,KAAK,kBAAkB;KACzB,KAAK,mBAAmB;KACxB,KAAK,gBAAgB;KACrB,KAAK,oBAAoB,CAAC;KAC1B,KAAK,cAAc,MAAM;KACzB,KAAK,gBAAgB,MAAM;KAC3B,KAAK,aAAa;IACpB;IACA,IAAI,KAAK,kBAAkB,WAAW,KAAK,CAAC,KAAK,eAAe;KAC9D,KAAK,oBAAoB,KAAK,QAAQ;KACtC,KAAK,kBAAkB,SAAS,SAAS;MACvC,KAAK,cAAc,IAAI,KAAK,KAAK,KAAK,IAAI;KAC5C,CAAC;IACH;IACA,MAAM,MAAM,KAAK,gBAAgB,IAAI,KAAK,cAAc;IACxD,KAAK,aAAa;IAClB,IAAI,KAAK,iBAAiB,KAAK,kBAAkB,WAAW,OAC1D,KAAK,gBAAgB;IAEvB,IAAI,UAAU,GAAG;KACf,MAAM,OAAO,QAAQ;KACrB,IAAI,OAAO,KAAK;KAChB,IAAI,CAAC,QAAQ,KAAK,SAAS,MAAM;MAC/B,MAAM,OAAO,IAAI,aAAa,IAAI;MAClC,IAAI,QAAQ,MAAM,GAAG,KAAK,IAAI,KAAK,SAAS,GAAG,MAAM,CAAC,CAAC;MACvD,OAAO;MACP,KAAK,oBAAoB;KAC3B;KACA,IAAI;KACJ,IAAI,QAAQ,GACV,eAAe,eAAe;UACzB;MACL,MAAM,UAAU,MAAM;MACtB,eAAe,KAAK,UAAU,KAAK,KAAK,UAAU,IAAI,KAAK;KAC7D;KACA,KAAK,IAAI,IAAI,KAAK,IAAI,OAAO,KAAK;MAChC,MAAM,MAAM,WAAW,CAAC;MACxB,MAAM,eAAe,cAAc,IAAI,GAAG;MAC1C,MAAM,OAAO,OAAO,iBAAiB,WAAW,eAAe,KAAK,QAAQ,aAAa,CAAC;MAC1F,KAAK,IAAI,KAAK;MACd,KAAK,IAAI,IAAI,KAAK;MAClB,gBAAgB,OAAO;KACzB;KACA,MAAM,OAAO,2BAA2B,OAAO,MAAM,UAAU;KAC/D,KAAK,oBAAoB;KACzB,OAAO;IACT;IACA,MAAM,eAAe,KAAK,kBAAkB,MAAM,GAAG,GAAG;IACxD,MAAM,gBAAgB,IAAI,MAAM,KAAK,CAAC,CAAC,KACrC,KAAK,CACP;IACA,MAAM,WAAW,IAAI,aAAa,KAAK;IACvC,IAAI,cAAc;IAClB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,KAAK;KAC5B,MAAM,OAAO,aAAa;KAC1B,IAAI,MAAM;MACR,IAAI,cAAc,KAAK,UAAU,KAAK,GAAG;MACzC,cAAc,KAAK,QAAQ;MAC3B,SAAS,KAAK,QAAQ,KAAK;KAC7B;IACF;IACA,KAAK,IAAI,IAAI,KAAK,IAAI,OAAO,KAAK;KAChC,MAAM,MAAM,WAAW,CAAC;KACxB,MAAM,aAAa,KAAK,gBAAgB,IAAI,CAAC;KAC7C,IAAI;KACJ,IAAI;KACJ,MAAM,kBAAkB,uBAAuB,cAAc,cAAc,IAAI,GAAG;KAClF,IAAI,eAAe,KAAK,KAAK,KAAK,QAAQ,QAAQ,GAAG;MACnD,OAAO;MACP,MAAM,YAAY,cAAc;MAChC,MAAM,aAAa,cAAc,KAAK,IAAI,aAAa,aAAa,KAAK;MACzE,QAAQ,aAAa,WAAW,MAAM,MAAM,eAAe;KAC7D,OAAO,IAAI,gBAAgB,OAAO;MAChC,IAAI,WAAW;MACf,IAAI,UAAU,SAAS;MACvB,IAAI,UAAU,cAAc;MAC5B,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,KAAK;OAC9B,MAAM,IAAI,SAAS;OACnB,IAAI,IAAI,WAAW,MAAM,WAAW,cAAc,KAAK,SAAS;QAC9D,WAAW;QACX,UAAU;QACV,UAAU,cAAc;OAC1B;MACF;MACA,OAAO;MACP,QAAQ,UAAU;MAClB,IAAI,iBACF,KAAK,gBAAgB,IAAI,GAAG,IAAI;KAEpC,OAAO;MACL,OAAO,IAAI,KAAK,QAAQ;MACxB,QAAQ,eAAe;MACvB,IAAI,iBACF,KAAK,gBAAgB,IAAI,GAAG,IAAI;KAEpC;KACA,MAAM,eAAe,cAAc,IAAI,GAAG;KAC1C,MAAM,OAAO,OAAO,iBAAiB,WAAW,eAAe,KAAK,QAAQ,aAAa,CAAC;KAC1F,MAAM,MAAM,QAAQ;KACpB,aAAa,KAAK;MAChB,OAAO;MACP;MACA;MACA;MACA;MACA;KACF;KACA,IAAI,cAAc,UAAU,KAAK,GAAG;KACpC,cAAc,QAAQ;KACtB,SAAS,QAAQ;IACnB;IACA,KAAK,oBAAoB;IACzB,OAAO;GACT,GACA;IACE,KAAK;IACL,aAAa,KAAK,QAAQ;GAC5B,CACF;GACA,KAAK,iBAAiB,WACd;IACJ,KAAK,gBAAgB;IACrB,KAAK,QAAQ;IACb,KAAK,gBAAgB;IACrB,KAAK,QAAQ;GACf,IACC,cAAc,WAAW,cAAc,UAAU;IAChD,IAAI,aAAa,WAAW,KAAK,cAAc,GAAG;KAChD,KAAK,QAAQ;KACb,OAAO;IACT;IACA,KAAK,QAAQ,mBACX,cACA,WACA,cACA,OAGA,UAAU,KAAK,KAAK,qBAAqB,OAAO,KAAK,oBAAoB,IAC3E;IACA,OAAO,KAAK;GACd,GACA;IACE,KAAK;IACL,aAAa,KAAK,QAAQ;GAC5B,CACF;GACA,KAAK,oBAAoB,WACjB;IACJ,IAAI,aAAa;IACjB,IAAI,WAAW;IACf,MAAM,QAAQ,KAAK,eAAe;IAClC,IAAI,OAAO;KACT,aAAa,MAAM;KACnB,WAAW,MAAM;IACnB;IACA,KAAK,YAAY,WAAW;KAAC,KAAK;KAAa;KAAY;IAAQ,CAAC;IACpE,OAAO;KACL,KAAK,QAAQ;KACb,KAAK,QAAQ;KACb,KAAK,QAAQ;KACb;KACA;IACF;GACF,IACC,gBAAgB,UAAU,OAAO,YAAY,aAAa;IACzD,OAAO,eAAe,QAAQ,aAAa,OAAO,CAAC,IAAI,eAAe;KACpE;KACA;KACA;KACA;IACF,CAAC;GACH,GACA;IACE,KAAK;IACL,aAAa,KAAK,QAAQ;GAC5B,CACF;GACA,KAAK,oBAAoB,SAAS;IAChC,MAAM,gBAAgB,KAAK,QAAQ;IACnC,MAAM,WAAW,KAAK,aAAa,aAAa;IAChD,IAAI,CAAC,UAAU;KACb,QAAQ,KACN,2BAA2B,cAAc,+BAC3C;KACA,OAAO;IACT;IACA,OAAO,SAAS,UAAU,EAAE;GAC9B;GACA,KAAK,6BAA6B,UAAU;IAC1C,IAAI;IACJ,IAAI,CAAC,KAAK,eAAe,KAAK,YAAY,aAAa,UACrD,OAAO;IAET,MAAM,cAAc,KAAK,YAAY,WAAW,KAAK,KAAK,wBAAwB,KAAK,YAAY,gBAAgB,MAAM,OAAO,KAAK,IAAI,GAAG;IAC5I,IAAI,gBAAgB,KAAK,KAAK,KAAK,OAAO;KACxC,MAAM,aAAa,KAAK,IACtB,KAAK,QAAQ,UACb,KAAK,MAAM,KAAK,MAAM,WAAW,KAAK,MAAM,cAAc,CAAC,CAC7D;KACA,MAAM,WAAW,KAAK,IAAI,GAAG,cAAc,UAAU;KACrD,MAAM,WAAW,KAAK,IACpB,KAAK,QAAQ,QAAQ,GACrB,cAAc,UAChB;KACA,OAAO,SAAS,YAAY,SAAS;IACvC;IACA,OAAO;GACT;GACA,KAAK,kBAAkB,SAAS;IAC9B,IAAI,CAAC,MAAM;KACT,KAAK,cAAc,SAAS,QAAQ,SAAS;MAC3C,IAAI,CAAC,OAAO,aAAa;OACvB,KAAK,SAAS,UAAU,MAAM;OAC9B,KAAK,cAAc,OAAO,IAAI;MAChC;KACF,CAAC;KACD;IACF;IACA,MAAM,QAAQ,KAAK,iBAAiB,IAAI;IACxC,MAAM,MAAM,KAAK,QAAQ,WAAW,KAAK;IACzC,MAAM,WAAW,KAAK,cAAc,IAAI,GAAG;IAC3C,IAAI,aAAa,MAAM;KACrB,IAAI,UACF,KAAK,SAAS,UAAU,QAAQ;KAElC,KAAK,SAAS,QAAQ,IAAI;KAC1B,KAAK,cAAc,IAAI,KAAK,IAAI;IAClC;IACA,KAAK,CAAC,KAAK,eAAe,KAAK,gBAAgB,KAAK,0BAA0B,KAAK,GACjF,KAAK,WAAW,OAAO,KAAK,QAAQ,eAAe,MAAM,KAAK,GAAG,IAAI,CAAC;GAE1E;GACA,KAAK,cAAc,OAAO,SAAS;IACjC,IAAI,IAAI;IACR,IAAI,QAAQ,KAAK,SAAS,KAAK,QAAQ,OAAO;IAC9C,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,MAAM,OAAO,KAAK;IAClB,IAAI,KAAK,QAAQ,UAAU,KAAK,SAAS,MAAM;KAC7C,MAAM,KAAK,QAAQ,WAAW,KAAK;KACnC,YAAY,KAAK,QAAQ;KACzB,aAAa,KAAK,QAAQ,IAAI;IAChC,OAAO;KACL,MAAM,OAAO,KAAK,kBAAkB;KACpC,IAAI,CAAC,MAAM;KACX,MAAM,KAAK;KACX,YAAY,KAAK;KACjB,aAAa,KAAK;IACpB;IAEA,MAAM,QAAQ,QADG,KAAK,cAAc,IAAI,GAAG,KAAK;IAEhD,IAAI,UAAU,GAAG;KACf,MAAM,WAAW,KAAK,QAAQ,aAAa,WAAW,KAAK,KAAK,gBAAgB,OAAO,KAAK,IAAI,GAAG,cAAc,YAAY,KAAK,0BAA0B,KAAK,KAAK,QAAQ;KAC9K,MAAM,gBAAgB,WAAW,KAAK,aAAa,IAAI;KACvD,MAAM,uBAAuB,KAAK,KAAK,gBAAgB,OAAO,KAAK,IAAI,GAAG,cAAc,aAAa,KAAK,+CAA+C,KAAK,IAAI,KAAK,2CAGrK,KAAK,kBAAkB,UAAU;MAC/B;MACA;MACA,OAAO;MACP,MAAM;MACN,KAAK,YAAY;MACjB,MAAM;KACR,GACA,OACA,IACF,IAOE,YAAY,KAAK,gBAAgB,IAAI,KAAK,sBAAsB,CAAC,KAAK,cAAc,IAAI,GAAG,KAAK,KAAK,oBAAoB;KAE3H,IAAI,KAAK,eAAe,QAAQ,QAAQ,KAAK,YAC3C,KAAK,aAAa;KAEpB,KAAK,cAAc,IAAI,KAAK,IAAI;KAChC,KAAK;KACL,IAAI,UACF,KAAK,sBAAsB,KAAK,aAAa,IAAI,aAAa;UACzD,IAAI,oBACT,KAAK,sBAAsB,KAAK;KAElC,KAAK,OAAO,KAAK;IACnB;GACF;GACA,KAAK,kBAAkB,WACf,CAAC,KAAK,kBAAkB,GAAG,KAAK,gBAAgB,CAAC,IACtD,SAAS,iBAAiB;IACzB,MAAM,eAAe,CAAC;IACtB,KAAK,IAAI,IAAI,GAAG,MAAM,QAAQ,QAAQ,IAAI,KAAK,KAAK;KAElD,MAAM,cAAc,aADV,QAAQ;KAElB,aAAa,KAAK,WAAW;IAC/B;IACA,OAAO;GACT,GACA;IACE,KAAK;IACL,aAAa,KAAK,QAAQ;GAC5B,CACF;GACA,KAAK,2BAA2B,WAAW;IACzC,MAAM,eAAe,KAAK,gBAAgB;IAC1C,IAAI,aAAa,WAAW,GAC1B;IAEF,MAAM,OAAO,KAAK;IAClB,MAAM,UAAU,KAAK,QAAQ,UAAU,KAAK,QAAQ;IAOpD,OAAO,aAAa,aANR,wBACV,GACA,aAAa,SAAS,GACtB,WAAW,MAAM,KAAK,IAAI,MAAM,MAAM,aAAa,aAAa,EAAE,CAAC,CAAC,OACpE,MAE+B,EAAI;GACvC;GACA,KAAK,2BAA2B;IAC9B,IAAI,CAAC,KAAK,eAAe,OAAO;IAChC,IAAI,kBAAkB,KAAK,eACzB,OAAO,KAAK,QAAQ,aAAa,KAAK,cAAc,cAAc,KAAK,cAAc,cAAc,KAAK,cAAc,eAAe,KAAK,cAAc;SACnJ;KACL,MAAM,MAAM,KAAK,cAAc,SAAS;KACxC,OAAO,KAAK,QAAQ,aAAa,IAAI,cAAc,KAAK,cAAc,aAAa,IAAI,eAAe,KAAK,cAAc;IAC3H;GACF;GACA,KAAK,kCAAkC;IACrC,OAAO,KAAK,IACV,KAAK,aAAa,IAAI,KAAK,QAAQ,IAAI,KAAK,gBAAgB,GAC5D,CACF;GACF;GACA,KAAK,2BAA2B;IAC9B,OAAO,KAAK,IAAI,KAAK,mBAAmB,IAAI,KAAK,gBAAgB,GAAG,CAAC;GACvE;GACA,KAAK,WAAW,YAAY,KAAK,QAAQ,uBAAuB;IAC9D,OAAO,KAAK,mBAAmB,KAAK;GACtC;GACA,KAAK,yBAAyB,UAAU,OAAO,WAAW,MAAM;IAC9D,IAAI,CAAC,KAAK,eAAe,OAAO;IAChC,MAAM,OAAO,KAAK,QAAQ;IAC1B,MAAM,eAAe,KAAK,gBAAgB;IAC1C,IAAI,UAAU,QACZ,QAAQ,YAAY,eAAe,OAAO,QAAQ;IAEpD,IAAI,UAAU,UACZ,aAAa,WAAW,QAAQ;SAC3B,IAAI,UAAU,OACnB,YAAY;IAEd,MAAM,YAAY,KAAK,mBAAmB;IAC1C,OAAO,KAAK,IAAI,KAAK,IAAI,WAAW,QAAQ,GAAG,CAAC;GAClD;GACA,KAAK,qBAAqB,OAAO,QAAQ,WAAW;IAClD,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,KAAK,QAAQ,QAAQ,CAAC,CAAC;IAC3D,MAAM,OAAO,KAAK,QAAQ;IAC1B,MAAM,eAAe,KAAK,gBAAgB;IAC1C,MAAM,OAAO,KAAK,kBAAkB;IACpC,IAAI,CAAC,MAAM;IACX,IAAI,UAAU,QAAQ;KACpB,IAAI,KAAK,OAAO,eAAe,OAAO,KAAK,QAAQ,kBACjD,QAAQ;UACH,IAAI,KAAK,SAAS,eAAe,KAAK,QAAQ,oBACnD,QAAQ;UAER,OAAO,CAAC,cAAc,KAAK;IAE/B;IACA,IAAI,UAAU,SAAS,UAAU,KAAK,QAAQ,QAAQ,GACpD,OAAO,CAAC,KAAK,mBAAmB,GAAG,KAAK;IAE1C,MAAM,WAAW,UAAU,QAAQ,KAAK,MAAM,KAAK,QAAQ,mBAAmB,KAAK,QAAQ,KAAK,QAAQ;IACxG,OAAO,CACL,KAAK,sBAAsB,UAAU,OAAO,KAAK,IAAI,GACrD,KACF;GACF;GACA,KAAK,kBAAkB,UAAU,EAAE,QAAQ,SAAS,WAAW,WAAW,CAAC,MAAM;IAC/E,MAAM,SAAS,KAAK,sBAAsB,UAAU,KAAK;IACzD,MAAM,MAAM,KAAK,IAAI;IACrB,KAAK,cAAc;KACjB,OAAO;KACP;KACA;KACA,WAAW;KACX,kBAAkB;KAClB,cAAc;IAChB;IACA,KAAK,gBAAgB,QAAQ;KAAE,aAAa,KAAK;KAAG;IAAS,CAAC;IAC9D,KAAK,wBAAwB;GAC/B;GACA,KAAK,iBAAiB,OAAO,EAC3B,OAAO,eAAe,QACtB,WAAW,WACT,CAAC,MAAM;IACT,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,KAAK,QAAQ,QAAQ,CAAC,CAAC;IAC3D,MAAM,aAAa,KAAK,kBAAkB,OAAO,YAAY;IAC7D,IAAI,CAAC,YACH;IAEF,MAAM,CAAC,QAAQ,SAAS;IACxB,MAAM,MAAM,KAAK,IAAI;IACrB,KAAK,cAAc;KACjB;KACA;KACA;KACA,WAAW;KACX,kBAAkB;KAClB,cAAc;IAChB;IACA,KAAK,gBAAgB,QAAQ;KAAE,aAAa,KAAK;KAAG;IAAS,CAAC;IAC9D,KAAK,wBAAwB;GAC/B;GACA,KAAK,YAAY,OAAO,EAAE,WAAW,WAAW,CAAC,MAAM;IACrD,MAAM,SAAS,KAAK,gBAAgB,IAAI;IACxC,MAAM,MAAM,KAAK,IAAI;IACrB,KAAK,cAAc;KACjB,OAAO;KACP,OAAO;KACP;KACA,WAAW;KACX,kBAAkB;KAClB,cAAc;IAChB;IACA,KAAK,gBAAgB,QAAQ;KAAE,aAAa,KAAK;KAAG;IAAS,CAAC;IAC9D,KAAK,wBAAwB;GAC/B;GACA,KAAK,eAAe,EAAE,WAAW,WAAW,CAAC,MAAM;IACjD,IAAI,KAAK,QAAQ,QAAQ,GAAG;KAC1B,KAAK,cAAc,KAAK,QAAQ,QAAQ,GAAG;MACzC,OAAO;MACP;KACF,CAAC;KACD;IACF;IACA,KAAK,eAAe,KAAK,IAAI,KAAK,aAAa,IAAI,KAAK,QAAQ,GAAG,CAAC,GAAG,EACrE,SACF,CAAC;GACH;GACA,KAAK,qBAAqB;IACxB,IAAI;IACJ,MAAM,eAAe,KAAK,gBAAgB;IAC1C,IAAI;IACJ,IAAI,aAAa,WAAW,GAC1B,MAAM,KAAK,QAAQ;SACd,IAAI,KAAK,QAAQ,UAAU,GAAG;KACnC,MAAM,UAAU,aAAa,SAAS;KACtC,MAAM,OAAO,KAAK;KAClB,IAAI,QAAQ,MACV,MAAM,KAAK,UAAU,KAAK,KAAK,UAAU,IAAI;UAE7C,QAAQ,KAAK,aAAa,aAAa,OAAO,KAAK,IAAI,GAAG,QAAQ;IAEtE,OAAO;KACL,MAAM,YAAY,MAAM,KAAK,QAAQ,KAAK,CAAC,CAAC,KAAK,IAAI;KACrD,IAAI,WAAW,aAAa,SAAS;KACrC,OAAO,YAAY,KAAK,UAAU,MAAM,QAAQ,QAAQ,IAAI,GAAG;MAC7D,MAAM,OAAO,aAAa;MAC1B,IAAI,UAAU,KAAK,UAAU,MAC3B,UAAU,KAAK,QAAQ,KAAK;MAE9B;KACF;KACA,MAAM,KAAK,IAAI,GAAG,UAAU,QAAQ,QAAQ,QAAQ,IAAI,CAAC;IAC3D;IACA,OAAO,KAAK,IACV,MAAM,KAAK,QAAQ,eAAe,KAAK,QAAQ,YAC/C,CACF;GACF;GACA,KAAK,qBAAqB;IACxB,MAAM,WAAW,CAAC;IAClB,IAAI,KAAK,cAAc,SAAS,GAAG,OAAO;IAC1C,MAAM,IAAI,KAAK,gBAAgB;IAC/B,KAAK,MAAM,QAAQ,GACjB,IAAI,QAAQ,KAAK,cAAc,IAAI,KAAK,GAAG,GACzC,SAAS,KAAK;KACZ,OAAO,KAAK;KACZ,KAAK,KAAK;KACV,OAAO,KAAK;KACZ,MAAM,KAAK;KACX,KAAK,KAAK;KACV,MAAM,KAAK;IACb,CAAC;IAGL,OAAO;GACT;GACA,KAAK,mBAAmB,QAAQ,EAC9B,aACA,eACI;IACJ,KAAK,wBAAwB,UAAU,eAAe;IACtD,KAAK,QAAQ,WAAW,QAAQ;KAAE;KAAU;IAAY,GAAG,IAAI;GACjE;GACA,KAAK,gBAAgB;IACnB,KAAK,aAAa;IAClB,KAAK,cAAc,MAAM;IACzB,KAAK,gBAAgB,MAAM;IAC3B,KAAK;IACL,KAAK,OAAO,KAAK;GACnB;GACA,KAAK,WAAW,IAAI;EACtB;EACA,sBAAsB,OAAO,UAAU;GACrC,IAAI,UAAU,GAAG;GAIjB,IAAI,YAAY,MAAM,KAAK,eAAe,KAAK,gBAAgB,KAAK,qBAClE,KAAK,0BAA0B;QAC1B;IACL,KAAK,gBAAgB,KAAK,gBAAgB,GAAG;KAC3C,aAAa,KAAK,qBAAqB;KACvC;IACF,CAAC;IACD,IAAI,KAAK,iBAAiB,MAAM;KAC9B,KAAK,gBAAgB,KAAK;KAC1B,KAAK,oBAAoB;IAC3B;GACF;EACF;EACA,0BAA0B;GACxB,IAAI,CAAC,KAAK,cAAc;IACtB,KAAK,cAAc;IACnB;GACF;GACA,IAAI,KAAK,SAAS,MAAM;GACxB,KAAK,QAAQ,KAAK,aAAa,4BAA4B;IACzD,KAAK,QAAQ;IACb,KAAK,gBAAgB;GACvB,CAAC;EACH;EACA,kBAAkB;GAChB,IAAI,CAAC,KAAK,aAAa;GAEvB,IAAI,CADO,KAAK,eACP;GAET,IAAI,KAAK,IAAI,IAAI,KAAK,YAAY,YAAY,KAAkB;IAC9D,KAAK,cAAc;IACnB;GACF;GACA,MAAM,aAAa,KAAK,YAAY,SAAS,OAAO,KAAK,kBAAkB,KAAK,YAAY,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK;GAClI,MAAM,eAAe,aAAa,WAAW,KAAK,KAAK,YAAY;GACnE,MAAM,gBAAgB;GACtB,MAAM,gBAAgB,iBAAiB,KAAK,YAAY;GACxD,IAAI,CAAC,iBAAiB,YAAY,cAAc,KAAK,gBAAgB,CAAC,GAAG;IACvE,KAAK,YAAY;IACjB,IAAI,KAAK,YAAY,gBAAgB,eAAe;KAClD,IAAI,KAAK,gBAAgB,MAAM,cAC7B,KAAK,gBAAgB,cAAc;MACjC,aAAa,KAAK;MAClB,UAAU;KACZ,CAAC;KAEH,KAAK,cAAc;KACnB;IACF;GACF,OAAO;IACL,KAAK,YAAY,eAAe;IAChC,IAAI,eAAe;KACjB,MAAM,WAAW,KAAK,QAAQ,KAAK;KACnC,MAAM,WAAW,KAAK,IAAI,eAAe,KAAK,gBAAgB,CAAC;KAC/D,MAAM,aAAa,KAAK,YAAY,aAAa,YAAY,WAAW;KACxE,KAAK,YAAY,mBAAmB;KACpC,IAAI,CAAC,YACH,KAAK,YAAY,WAAW;KAE9B,KAAK,gBAAgB,cAAc;MACjC,aAAa,KAAK;MAClB,UAAU,aAAa,WAAW;KACpC,CAAC;IACH;GACF;GACA,KAAK,wBAAwB;EAC/B;CACF;CACA,MAAM,2BAA2B,KAAK,MAAM,iBAAiB,UAAU;EACrE,OAAO,OAAO,MAAM;GAClB,MAAM,UAAU,MAAM,QAAQ,IAAI;GAClC,MAAM,eAAe,gBAAgB,MAAM;GAC3C,IAAI,eAAe,OACjB,MAAM,SAAS;QACV,IAAI,eAAe,OACxB,OAAO,SAAS;QAEhB,OAAO;EAEX;EACA,IAAI,MAAM,GACR,OAAO,MAAM;OAEb,OAAO;CAEX;CACA,SAAS,4BAA4B,MAAM,MAAM,OAAO;EACtD,IAAI,MAAM;EACV,OAAO,OAAO,MAAM;GAClB,MAAM,UAAU,MAAM,QAAQ,IAAI;GAClC,MAAM,eAAe,KAAK,SAAS;GACnC,IAAI,eAAe,OACjB,MAAM,SAAS;QACV,IAAI,eAAe,OACxB,OAAO,SAAS;QAEhB,OAAO;EAEX;EACA,OAAO,MAAM,IAAI,MAAM,IAAI;CAC7B;CACA,SAAS,mBAAmB,cAAc,WAAW,cAAc,OAAO,MAAM;EAC9E,MAAM,YAAY,aAAa,SAAS;EACxC,IAAI,aAAa,UAAU,OACzB,OAAO;GAAE,YAAY;GAAG,UAAU;EAAU;EAE9C,IAAI,UAAU,KAAK,SAAS,MAAM;GAChC,MAAM,cAAc,4BAClB,MACA,WACA,YACF;GACA,IAAI,YAAY;GAChB,MAAM,QAAQ,eAAe;GAC7B,OAAO,YAAY,aAAa,KAAK,YAAY,KAAK,KAAK,YAAY,IAAI,KAAK,OAC9E;GAEF,OAAO;IAAE,YAAY;IAAa,UAAU;GAAU;EACxD;EACA,MAAM,YAAY,UAAU,aAAa,MAAM,CAAC;EAChD,IAAI,aAAa,wBAAwB,GAAG,WAAW,UAAU,YAAY;EAC7E,IAAI,WAAW;EACf,IAAI,UAAU,GACZ,OAAO,WAAW,aAAa,aAAa,SAAS,CAAC,MAAM,eAAe,WACzE;OAEG,IAAI,QAAQ,GAAG;GACpB,MAAM,aAAa,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC;GACtC,OAAO,WAAW,aAAa,WAAW,MAAM,QAAQ,MAAM,eAAe,SAAS,GAAG;IACvF,MAAM,OAAO,aAAa;IAC1B,WAAW,KAAK,QAAQ,KAAK;IAC7B;GACF;GACA,MAAM,eAAe,MAAM,KAAK,CAAC,CAAC,KAAK,eAAe,SAAS;GAC/D,OAAO,cAAc,KAAK,aAAa,MAAM,QAAQ,OAAO,YAAY,GAAG;IACzE,MAAM,OAAO,aAAa;IAC1B,aAAa,KAAK,QAAQ,KAAK;IAC/B;GACF;GACA,aAAa,KAAK,IAAI,GAAG,aAAa,aAAa,KAAK;GACxD,WAAW,KAAK,IAAI,WAAW,YAAY,QAAQ,IAAI,WAAW,MAAM;EAC1E;EACA,OAAO;GAAE;GAAY;EAAS;CAChC;;;;;;;;;CCzrCA,MAAa,yBAAyB,YAAqD;EACzF,MAAM,WAAoC,IAAI,YAAY;GACxD,OAAO,QAAQ;GACf,oBAAoB,QAAQ;GAC5B,kBAAkB,QAAQ;GAC1B;GACA;GACA,UAAU,QAAQ;GAClB,UAAU,QAAQ;GAClB,YAAY;GACZ,GAAI,QAAQ,iBAAiB,EAAE,eAAe;EAChD,CAAC;EAED,MAAM,UAAU,SAAS,UAAU;EACnC,SAAS,YAAY;EAErB,OAAO;GACL;GACA,SAAS,OAAe;IACtB,IAAI,UAAU,SAAS,QAAQ,OAC7B,SAAS,WAAW;KAAE,GAAG,SAAS;KAAS;IAAM,CAAC;GAEtD;GACA,YAAY;IACV,IAAI,QAAQ,eACV,SAAS,QAAQ;GAErB;GACA,UAAU;IACR,QAAQ;GACV;EACF;CACF;;;;;;;;;CC7DA,MAAa,2BACX;CAEF,MAAa,sBACX;CAEF,MAAa,0BACX;CAEF,MAAa,+BACX;CAEF,MAAa,8BACX;CAEF,MAAa,4BACX;CAEF,MAAa,6BACX;CAEF,MAAa,4BACX;CAEF,MAAa,8BACX;CAEF,MAAa,+BACX;CAEF,MAAa,4BACX;CAMF,MAAM,WACJ;CAEF,MAAM,UACJ;CAEF,MAAa,yBACX,GAAG,QAAQ,+BAA+B,SAAS;CACrD,MAAa,uBACX,GAAG,QAAQ,2EAA2E,SAAS;CACjG,MAAa,qBACX;CACF,MAAa,0BACX;CACF,MAAa,wBACX;CACF,MAAa,2BACX;;;CCxDF,MAAa,iBAAiC;EAC5C,cAAc;EACd,aAAa;EACb,aAAa;EACb,WAAW;EACX,YAAY;EACZ,cAAc;EACd,cAAc;EACd,WAAW;EACX,mBAAmB;EACnB,yBAAyB;EACzB,YAAY;EACZ,WAAW;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW;EACX,SAAS;EACT,SAAS;EACT,WAAW;EACX,UAAU;EACV,iBAAiB;EACjB,eAAe;EACf,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,qBAAqB;EACrB,4BAA4B;EAC5B,kBAAkB;EAClB,yBAAyB;EACzB,kBAAkB;EAClB,qBAAqB;EACrB,mBAAmB;EACnB,oBAAoB;EACpB,eAAe;EACf,iBAAiB;EACjB,QAAQ;EACR,UAAU;EACV,cAAc;EACd,oBAAoB;EACpB,YAAY;EACZ,cAAc;EACd,qBAAqB;EACrB,cAAc;EACd,eAAe;EACf,iBAAiB;EACjB,WAAW;EACX,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,gBAAgB;EAChB,eAAe;EACf,cAAc;EACd,aAAa;EACb,aAAa;EACb,oBAAoB;EACpB,OAAO;CACT;CAEA,MAAa,eAAe,UAAkB,WAC5C,SAAS,QAAQ,eAAe,OAAe,UAC7C,SAAS,SAAS,OAAO,OAAO,MAAM,IAAI,KAC5C;;;;;;;;;CChEF,MAAM,cAAc;CACpB,MAAM,YAAY;CAClB,MAAM,mBAAmB;CACzB,MAAM,kBAAkB;CAgBxB,MAAa,mBAAmB,MAA4B,SAAsC;EAChG,KAAK,UAAU,OAAO,aAAa,WAAW,kBAAkB,eAAe;EAC/E,KAAK,MAAM,mBAAmB;EAC9B,KAAK,MAAM,iBAAiB;EAE5B,IAAI,CAAC,MACH;EAGF,IAAI,KAAK,SAAS,SAAS;GACzB,KAAK,UAAU,IAAI,WAAW;GAC9B,IAAI,KAAK,MACP,KAAK,UAAU,IAAI,gBAAgB;GAGrC,KAAK,MAAM,mBAAmB,KAAK,cACjC,iDAAiD,KAAK,OAAO,OAC7D,GAAG,KAAK,OAAO;EACnB,OAAO;GACL,KAAK,UAAU,IAAI,SAAS;GAC5B,IAAI,KAAK,MACP,KAAK,UAAU,IAAI,eAAe;GAGpC,KAAK,MAAM,iBAAiB,GAAG,KAAK,OAAO;EAC7C;CACF;;;CCzCA,MAAM,mBAAmB;CACzB,MAAMC,uBAAqB;CAC3B,MAAM,qBAAqB;CAC3B,MAAM,0BAA0B;CAChC,MAAM,2BAA2B;CACjC,MAAMC,2BAAyB;CAC/B,MAAM,mBAAmB;EAAC;EAAO;EAAS;EAAU;CAAM;CAC1D,MAAMC,2BAAyB;CAC/B,MAAM,oBAAoB;CAyC1B,MAAM,kBACJ,aACA,SACA,oBACS;EACT,IAAI,OAAO,YAAY,UAAU;GAC/B,YAAY,YAAY,gBAAgB,OAAO;GAC/C;EACF;EAIA,IAAI,YAAY,WAAW,WAAW,KAAK,YAAY,eAAe,SACpE;EAGF,YAAY,gBAAgB,OAAO;CACrC;CAEA,MAAa,cAAc,YAAuC;EAChE,MAAM,UAAU,SAAS,cAAc,OAAO;EAI9C,IAAI,iBAAmC,QAAQ,kBAAkB;EACjE,IAAI,kBAAkB,eAAe,KAAI,WAAU,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG;EAGvE,MAAM,gBAAgB,QAAQ,WAAW,IAAI,MAAM,QAAQ,YAAY,IAAI;EAC3E,IAAI,YAAY,eAAe,SAAS;EAExC,MAAM,iBAAiB,eAA0C;GAC/D,WAAW,gBAAgB;GAE3B,IAAI,QAAQ,gBACV,WAAW,aAAa,QAAQ,KAAK;GAGvC,MAAM,SAAS;GAEf,IAAI,QAAQ,UAAU;IACpB,MAAM,cAAc,SAAS,cAAc,IAAI;IAC/C,YAAY,UAAU,IAAID,wBAAsB;IAChD,MAAM,SAAS,SAAS,cAAc,MAAM;IAC5C,OAAO,UAAU,IAAI,sBAAsB;IAC3C,OAAO,QAAQ,kBAAkB;IACjC,OAAO,aAAa,eAAe,MAAM;IACzC,OAAO,YAAY,QAAQ;IAC3B,YAAY,OAAO,MAAM;IACzB,IAAI,QAAQ,gBAAgB;KAC1B,YAAY,aAAa,QAAQ,UAAU;KAC3C,YAAY,aAAa,iBAAiB,GAAG;IAC/C;IAEA,WAAW,OAAO,WAAW;GAC/B;GAEA,IAAI,QAAQ,WAAW;IACrB,MAAM,cAAc,SAAS,cAAc,IAAI;IAC/C,YAAY,UAAU,IAAIC,wBAAsB;IAChD,MAAM,QAAQ,SAAS,cAAc,OAAO;IAC5C,MAAM,OAAO;IACb,MAAM,UAAU,IAAI,kBAAkB;IACtC,MAAM,aAAa,cAAc,QAAQ,OAAO,SAAS;IACzD,MAAM,QAAQ,kBAAkB;IAChC,IAAI,QAAQ,gBAAgB;KAC1B,YAAY,aAAa,QAAQ,UAAU;KAC3C,YAAY,aAAa,iBAAiB,OAAO,QAAQ,WAAW,IAAI,CAAC,CAAC;KAC1E,MAAM,WAAW;IACnB;IAEA,YAAY,OAAO,KAAK;IACxB,WAAW,OAAO,WAAW;GAC/B;GAEA,KAAK,MAAM,CAAC,OAAO,WAAW,eAAe,QAAQ,GAAG;IACtD,MAAM,cAAc,SAAS,cAAc,IAAI;IAC/C,IAAI,QAAQ,gBAAgB;KAC1B,YAAY,aAAa,QAAQ,UAAU;KAC3C,YAAY,aAAa,iBAAiB,OAAO,SAAS,QAAQ,CAAC,CAAC;KACpE,YAAY,QAAQ,eAAe,OAAO;KAC1C,YAAY,WAAW;IACzB;IAEA,WAAW,OAAO,WAAW;GAC/B;GAEA,WAAW,QAAQ,eAAe;EACpC;EAEA,MAAM,yBAA8C;GAClD,MAAM,aAAa,SAAS,cAAc,IAAI;GAC9C,cAAc,UAAU;GACxB,OAAO;EACT;EAEA,MAAM,kBAAkB,YAAiC,KAAkB,UAAwB;GACjG,MAAM,SAAS;GACf,MAAM,cAAc,QAAQ,eAAe;GAE3C,KAAK,MAAM,CAAC,WAAW,WAAW,eAAe,QAAQ,GAAG;IAC1D,MAAM,cAAc,WAAW,SAAS,YAAY;IAEpD,IAAI,eAAe,YAAY,UAAU,IAAI,MAAM,YAAY,aAAa,OAAO,KAAK;KACtF,MAAM,gBAAgB,QAAQ,iBAAiB;KAC/C,IAAI,eAAe;MACjB,YAAY,gBAAgB,aAAa;MACzC;KACF;IACF;IAEA,IAAI,OAAO,QAAQ;KACjB,eAAe,aAAa,OAAO,OAAO,IAAI,UAAU,KAAK,GAAG,QAAQ,eAAe;KACvF,IAAI,QAAQ,gBACV,KAAK,MAAM,aAAa,YAAY,iBAA8BF,oBAAkB,GAClF,UAAU,WAAW;KAIzB;IACF;IAEA,MAAM,QAAQ,IAAI,SAAS,OAAO,GAAG;IACrC,YAAY,cAAc,OAAO,YAC/B,OAAO,UAAU,OAAO,IAAI,QAAQ,IACpC,OAAO,SAAS,EAAE;GACtB;EACF;EAEA,MAAM,oBAAoB,YAAiC,KAAkB,UAAwB;GACnG,IAAI,WAAW,QAAQ,iBAAiB,iBAAiB;IACvD,cAAc,UAAU;IACxB,OAAO,WAAW,QAAQ;GAC5B;GAEA,IAAI,QAAQ,WAAW;IAErB,MAAM,QADa,WAAW,SAAS,eAAe,EAC9B,CAAC;IACzB,MAAM,WAAW,IAAI,cAAc;IACnC,MAAM,UAAU;IAChB,WAAW,UAAU,OAAO,yBAAyB,QAAQ;IAC7D,WAAW,aAAa,iBAAiB,OAAO,QAAQ,CAAC;GAC3D;GAMA,MAAM,SAAS,GAAG,QAAQ,eAAe,EAAE,GAAG,IAAI;GAClD,IAAI,WAAW,QAAQ,cAAc,UAAU,WAAW,QAAQ,gBAAgB,OAAO,KAAK,GAAG;IAC/F,eAAe,YAAY,KAAK,KAAK;IACrC,WAAW,QAAQ,YAAY;GACjC;GAIA,IAAI,QAAQ,eAAe;IACzB,MAAM,QAAQ,IAAI,IAAI,IAAI,YAAY,CAAC,CAAC,KAAI,SAAQ,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC;IAC3E,KAAK,MAAM,CAAC,WAAW,WAAW,eAAe,QAAQ,GAAG;KAC1D,MAAM,cAAc,WAAW,SAAS,YAAY;KACpD,MAAM,OAAO,MAAM,IAAI,OAAO,GAAG;KACjC,MAAM,WAAW,MAAM,cAAc,KAAK;KAC1C,YAAY,UAAU,OAAO,0BAA0B,QAAQ;KAC/D,MAAM,QAAQ,YAAY,OAAO,KAAK,kBAAkB,IAAI;KAC5D,KAAK,MAAM,QAAQ,kBACjB,YAAY,UAAU,OAAO,GAAG,yBAAyB,GAAG,QAAQ,QAAQ,QAAQ,KAAK,CAAC;IAE9F;GACF;GAEA,WAAW,QAAQ,cAAc,OAAO,KAAK;GAC7C,WAAW,aAAa,iBAAiB,OAAO,QAAQ,iBAAiB,QAAQ,kBAAkB,IAAI,QAAQ,CAAC,CAAC;GACjH,WAAW,UAAU,OAAO,oBAAoB,QAAQ,MAAM,CAAC;GAE/D,IAAI,gBAAgB;IAClB,MAAM,UAAU;IAChB,MAAM,SAAS;IAGf,KAAK,IAAI,YAAY,GAAG,YAAY,cAAc,aAChD,gBAAgB,WAAW,SAAS,YAAoC,QAAQ,MAAM;IAGxF,KAAK,MAAM,CAAC,WAAW,WAAW,eAAe,QAAQ,GACvD,gBAAgB,WAAW,SAAS,YAAY,SAAiC,QAAQ,QAAQ,OAAO,QAAQ,IAAI;GAExH;EACF;EAEA,MAAM,qBAA0C;GAC9C,MAAM,aAAa,SAAS,cAAc,IAAI;GAC9C,WAAW,UAAU,IAAI,iBAAiB;GAC1C,WAAW,aAAa,eAAe,MAAM;GAE7C,MAAM,cAAc,SAAS,cAAc,IAAI;GAC/C,YAAY,UAAU,KAAK,IAAI,WAAW,CAAC;GAC3C,WAAW,OAAO,WAAW;GAE7B,OAAO;EACT;EAEA,MAAM,mBAAmB,eAAoC,WAAyB;GACpF,cAAc,MAAM,SAAS,GAAG,OAAO;GACvC,cAAe,kBAA2C,MAAM,SAAS,GAAG,OAAO;GACnF,cAAc,MAAM,UAAU,SAAS,IAAI,KAAK;EAClD;EAEA,MAAM,YAAY,aAAa;EAC/B,MAAM,eAAe,aAAa;EAClC,IAAI,kBAAkB;EACtB,IAAI,eAA2C;EAC/C,IAAI,cAAqC,CAAC;EAC1C,IAAI,iBAAqC;EACzC,MAAM,UAAiC,CAAC;EAExC,MAAM,oBAAoB;GACxB,kBAAkB;GAClB,QAAQ,KAAK,GAAG,WAAW;GAC3B,cAAc,CAAC;GAEf,IAAI,CAAC,cAAc;IACjB,eAAe,SAAS,cAAc,IAAI;IAC1C,aAAa,UAAU,IAAI,gBAAgB;IAC3C,aAAa,OAAO,SAAS,cAAc,IAAI,CAAC;GAClD;GAEA,MAAM,cAAc,aAAa;GACjC,YAAY,UAAU,KAAK,IAAI,WAAW,CAAC;GAC3C,eAAe,aAAa,QAAQ,YAAY,GAAG,QAAQ,eAAe;GAE1E,QAAQ,gBAAgB,YAAY;EACtC;EAEA,MAAM,aAAa,SAAwB;GACzC,IAAI,cACF,aAAa,OAAO;GAGtB,OAAO,YAAY,SAAS,KAAK,QAAQ;IACvC,MAAM,aAAa,YAAY,IAAI;IACnC,WAAW,OAAO;IAClB,QAAQ,KAAK,UAAU;GACzB;GAEA,OAAO,YAAY,SAAS,KAAK,QAAQ;IACvC,MAAM,aAAa,QAAQ,IAAI,KAAK,iBAAiB;IACrD,QAAQ,OAAO,UAAU;IACzB,YAAY,KAAK,UAAU;GAC7B;GAEA,KAAK,MAAM,CAAC,OAAO,QAAQ,KAAK,QAAQ,GACtC,iBAAiB,YAAY,QAAQ,KAAK,KAAK;EAEnD;EAEA,MAAM,gBAAgB,MAAqB,gBAAyC;GAClF,IAAI,CAAC,iBAAiB;IACpB,QAAQ,gBAAgB,WAAW,YAAY;IAC/C,kBAAkB;IAClB,cAAc,CAAC;GACjB;GAEA,MAAM,eAAe,YAAY,gBAAgB;GACjD,MAAM,YAAY,YAAY,aAAa;GAC3C,MAAM,aAAa,aAAa,SAAS,IAAI,aAAa,EAAE,CAAC,QAAQ;GACrE,MAAM,gBAAgB,aAAa,SAAS,IAC1C,YAAY,aAAa,aAAa,SAAS,EAAE,CAAC,MAClD;GAEF,gBAAgB,WAAW,UAAU;GACrC,gBAAgB,cAAc,aAAa;GAE3C,OAAO,YAAY,SAAS,aAAa,QAAQ;IAC/C,MAAM,aAAa,YAAY,IAAI;IACnC,WAAW,OAAO;IAClB,QAAQ,KAAK,UAAU;GACzB;GAEA,OAAO,YAAY,SAAS,aAAa,QAAQ;IAC/C,MAAM,aAAa,QAAQ,IAAI,KAAK,iBAAiB;IACrD,aAAa,OAAO,UAAU;IAC9B,YAAY,KAAK,UAAU;GAC7B;GAEA,KAAK,MAAM,CAAC,OAAO,gBAAgB,aAAa,QAAQ,GAAG;IACzD,MAAM,aAAa,YAAY;IAC/B,iBAAiB,YAAY,KAAK,YAAY,QAAQ,YAAY,KAAK;IAEvE,IAAI,QAAQ,eAAe;KAIzB,WAAW,QAAQ,QAAQ,OAAO,YAAY,KAAK;KACnD,YAAY,eAAe,UAAU;IACvC;GACF;EACF;EAEA,IAAI,mBAAkC;EAEtC,OAAO;GACL;GACA,SAAS;IACP,MAAM,OAAO,QAAQ,QAAQ;IAC7B,iBAAiB,QAAQ,WAAW;IAKpC,MAAM,cAAc,QAAQ,eAAe;IAC3C,MAAM,uBAAuB,cAAc,GAAG,YAAY,MAAM,GAAG,YAAY,aAAa;IAC5F,IAAI,yBAAyB,kBAAkB;KAC7C,mBAAmB;KACnB,KAAK,MAAM,cAAc,aACvB,OAAO,WAAW,QAAQ;IAE9B;IAEA,MAAM,UAAU,QAAQ,kBAAkB;IAC1C,MAAM,YAAY,QAAQ,KAAI,WAAU,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG;IAC5D,IAAI,cAAc,iBAAiB;KACjC,iBAAiB;KACjB,kBAAkB;KAClB,YAAY,eAAe,SAAS;KACpC,UAAW,kBAA2C,UAAU,KAAK,IAAI,WAAW,CAAC;KACrF,aAAc,kBAA2C,UAAU,KAAK,IAAI,WAAW,CAAC;IAC1F;IAEA,IAAI,KAAK,WAAW,GAAG;KACrB,YAAY;KACZ;IACF;IAEA,MAAM,cAAc,QAAQ,eAAe;IAE3C,IAAI,aAAa;KACf,aAAa,MAAM,WAAW;KAC9B;IACF;IAEA,UAAU,IAAI;GAChB;EACF;CACF;;;CCxYA,MAAM,oBAAoB;CAE1B,MAAM,oBAAoB,YAAmD;EAC3E,MAAM,QAAQ,SAAS,cAAc,OAAO;EAC5C,MAAM,OAAO;EACb,MAAM,UAAU,IAAI,gBAAgB,mBAAmB,iBAAiB;EACxE,MAAM,QAAQ,OAAO,QAAQ,SAAS,EAAE;EAExC,OAAO;GACL,SAAS;GACT,QAAQ;IACN,MAAM,MAAM;IACZ,MAAM,OAAO;GACf;GACA,gBAAgB,MAAM;EACxB;CACF;CAEA,MAAM,sBAAsB,SAAgC,YAAqD;EAC/G,MAAM,QAAQ,SAAS,cAAc,OAAO;EAC5C,MAAM,OAAO;EACb,MAAM,UAAU,IAAI,gBAAgB,mBAAmB,iBAAiB;EACxE,IAAI,QAAQ,QAAQ,KAAA,GAClB,MAAM,MAAM,OAAO,QAAQ,GAAG;EAGhC,IAAI,QAAQ,QAAQ,KAAA,GAClB,MAAM,MAAM,OAAO,QAAQ,GAAG;EAGhC,IAAI,QAAQ,SAAS,KAAA,GACnB,MAAM,OAAO,OAAO,QAAQ,IAAI;EAGlC,MAAM,QAAQ,QAAQ,UAAU,KAAA,KAAa,QAAQ,UAAU,OAAO,KAAK,OAAO,QAAQ,KAAK;EAE/F,OAAO;GACL,SAAS;GACT,QAAQ;IACN,MAAM,MAAM;IACZ,MAAM,OAAO;GACf;GACA,gBAAiB,MAAM,UAAU,KAAK,KAAA,IAAY,OAAO,MAAM,KAAK;EACtE;CACF;CAEA,MAAM,sBAAsB,SAAgC,YAAqD;EAC/G,MAAM,SAAS,SAAS,cAAc,QAAQ;EAC9C,OAAO,UAAU,IAAI,eAAe,kBAAkB,iBAAiB;EAIvE,MAAM,SAAoB,CAAC;EAC3B,KAAK,MAAM,UAAU,QAAQ,WAAW,CAAC,GAAG;GAC1C,MAAM,gBAAgB,SAAS,cAAc,QAAQ;GACrD,MAAM,QAAQ,OAAO,WAAW,YAAY,WAAW,OAAO,OAAO,QAAQ;GAC7E,cAAc,cAAc,OAAO,WAAW,YAAY,WAAW,OAAO,OAAO,QAAQ,OAAO,MAAM;GACxG,cAAc,QAAQ,OAAO,OAAO,MAAM;GAC1C,IAAI,UAAU,QAAQ,OACpB,cAAc,WAAW;GAG3B,OAAO,KAAK,KAAK;GACjB,OAAO,OAAO,aAAa;EAC7B;EAEA,OAAO;GACL,SAAS;GACT,aAAa,OAAO,MAAM;GAC1B,gBAAgB,OAAO,OAAO,OAAO,KAAK;EAC5C;CACF;CAEA,MAAa,uBACX,SACA,YACmB;EACnB,IAAI,QAAQ,SAAS,UACnB,OAAO,mBAAmB,SAAS,OAAO;EAG5C,IAAI,QAAQ,SAAS,UACnB,OAAO,mBAAmB,SAAS,OAAO;EAG5C,OAAO,iBAAiB,OAAO;CACjC;;;;;;;;;CCpFA,MAAM,oBAAoB;CAC1B,MAAM,yBAAyB;CAC/B,MAAM,0BAA0B;CAChC,MAAM,wBAAwB;CAC9B,MAAM,qBAAqB;CAC3B,MAAM,4BAA4B;CAClC,MAAM,yBAAyB;CAC/B,MAAM,yBAAyB;CAC/B,MAAM,sBAAsB;CAC5B,MAAM,yBAAyB;CAC/B,MAAM,uBAAuB;CAuD7B,MAAM,iBAAiB,eAAgE;EACrF,IAAI,CAAC,YACH,OAAO;EAGT,OAAO,WAAW,OAAO,eAAe;CAC1C;CAEA,MAAM,oBAAoB,WAA0B,UAA8C;EAChG,IAAI,cAAc,aAChB,OAAO,MAAM;EAGf,IAAI,cAAc,cAChB,OAAO,MAAM;EAGf,OAAO,MAAM;CACf;CAEA,MAAM,uBAAuB,YAA+F;EAC1H,MAAM,OAAO,SAAS,cAAc,IAAI;EACxC,KAAK,UAAU,IAAI,sBAAsB;EACzC,KAAK,aAAa,SAAS,KAAK;EAEhC,IAAI,CAAC,QAAQ,WACX,OAAO;GAAE;GAAM,OAAO;EAAK;EAG7B,MAAM,QAAQ,SAAS,cAAc,OAAO;EAC5C,MAAM,OAAO;EACb,MAAM,UAAU,IAAI,kBAAkB;EACtC,MAAM,aAAa,cAAc,QAAQ,OAAO,aAAa;EAC7D,MAAM,QAAQ,kBAAkB;EAChC,KAAK,OAAO,KAAK;EAEjB,OAAO;GAAE;GAAM;EAAM;CACvB;CAIA,MAAM,+BAAqD;EACzD,MAAM,OAAO,SAAS,cAAc,IAAI;EACxC,KAAK,UAAU,IAAI,sBAAsB;EACzC,KAAK,aAAa,SAAS,KAAK;EAChC,OAAO;CACT;CAEA,MAAM,sBAAmC;EACvC,MAAM,UAAU,SAAS,cAAc,MAAM;EAC7C,QAAQ,UAAU,IAAI,kBAAkB;EACxC,QAAQ,aAAa,eAAe,MAAM;EAC1C,QAAQ,QAAQ,gBAAgB;EAChC,OAAO;CACT;CAEA,MAAM,kBACJ,SACA,OACA,UACA,cAKG;EACH,MAAM,MAAM,SAAS,cAAc,IAAI;EACvC,IAAI,iBAA0C;EAC9C,MAAM,eAAuC,CAAC;EAE9C,IAAI,QAAQ,gBACV,IAAI,aAAa,QAAQ,KAAK;EAGhC,IAAI,QAAQ,UAAU;GACpB,MAAM,OAAO,uBAAuB;GACpC,IAAI,QAAQ,gBACV,KAAK,aAAa,QAAQ,cAAc;GAG1C,aAAa,KAAK,IAAI;GACtB,IAAI,OAAO,IAAI;EACjB;EAEA,IAAI,QAAQ,WAAW;GACrB,MAAM,EAAE,MAAM,UAAU,oBAAoB,OAAO;GACnD,iBAAiB;GACjB,aAAa,KAAK,IAAI;GACtB,IAAI,QAAQ,gBAAgB;IAC1B,KAAK,aAAa,QAAQ,cAAc;IACxC,IAAI,OACF,MAAM,WAAW;GAErB;GAEA,IAAI,OAAO,IAAI;EACjB;EAEA,KAAK,MAAM,UAAU,QAAQ,SAAS;GACpC,MAAM,OAAO,SAAS,cAAc,IAAI;GACxC,KAAK,aAAa,SAAS,KAAK;GAChC,KAAK,QAAQ,eAAe,OAAO;GACnC,IAAI,QAAQ,gBAAgB;IAC1B,KAAK,aAAa,QAAQ,cAAc;IACxC,KAAK,WAAW;GAClB;GAEA,IAAI,OAAO,OACT,OAAO,OAAO,KAAK,OAAO,OAAO,KAAK;GAGxC,IAAI,OAAO,UAAU,KAAA,GACnB,KAAK,MAAM,QAAQ,GAAG,OAAO,MAAM;GAGrC,MAAM,UAAU,SAAS,cAAc,KAAK;GAC5C,QAAQ,UAAU,IAAI,sBAAsB;GAE5C,IAAI,QAAQ,WAAW,MAAM,GAAG;IAC9B,KAAK,UAAU,IAAI,mBAAmB;IACtC,MAAM,SAAS,SAAS,cAAc,QAAQ;IAC9C,OAAO,OAAO;IACd,OAAO,UAAU,IAAI,sBAAsB;IAC3C,OAAO,OAAO,OAAO,SAAS,OAAO,GAAG;IACxC,MAAM,OAAO,SAAS,cAAc,MAAM;IAC1C,KAAK,UAAU,IAAI,oBAAoB;IACvC,KAAK,aAAa,eAAe,MAAM;IACvC,KAAK,YAAY,QAAQ,MAAM;IAC/B,KAAK,QAAQ,aAAa;IAC1B,OAAO,OAAO,IAAI;IAClB,UAAU,IAAI,OAAO,KAAK,IAAI;IAC9B,QAAQ,OAAO,MAAM;GACvB,OAAO;IACL,MAAM,QAAQ,SAAS,cAAc,MAAM;IAC3C,MAAM,UAAU,IAAI,uBAAuB;IAC3C,MAAM,cAAc,OAAO,SAAS,OAAO;IAC3C,QAAQ,OAAO,KAAK;GACtB;GAEA,IAAI,QAAQ,cAAc,MAAM,GAAG;IACjC,MAAM,SAAS,SAAS,cAAc,QAAQ;IAC9C,OAAO,OAAO;IACd,OAAO,UAAU,IAAI,OAAO,aAAa,UAAU,yBAAyB;IAC5E,OAAO,YAAY,QAAQ,MAAM;IACjC,OAAO,QAAQ,eAAe,OAAO;IACrC,OAAO,aAAa,iBAAiB,QAAQ;IAC7C,OAAO,aAAa,iBAAiB,OAAO;IAC5C,MAAM,cAAc,YAAY,QAAQ,OAAO,cAAc,EAAE,QAAQ,OAAO,SAAS,OAAO,IAAI,CAAC;IACnG,OAAO,aAAa,cAAc,WAAW;IAC7C,OAAO,aAAa,uBAAuB,WAAW;IACtD,QAAQ,OAAO,MAAM;GACvB;GAEA,IAAI,QAAQ,QAAQ,MAAM,GAAG;IAC3B,MAAM,SAAS,SAAS,cAAc,QAAQ;IAC9C,OAAO,OAAO;IACd,OAAO,UAAU,IAAI,OAAO,aAAa,UAAU,uBAAuB;IAC1E,OAAO,YAAY,QAAQ,MAAM;IACjC,OAAO,QAAQ,aAAa,OAAO;IACnC,OAAO,aAAa,iBAAiB,MAAM;IAC3C,OAAO,aAAa,iBAAiB,OAAO;IAC5C,MAAM,YAAY,YAAY,QAAQ,OAAO,YAAY,EAAE,QAAQ,OAAO,SAAS,OAAO,IAAI,CAAC;IAC/F,OAAO,aAAa,cAAc,SAAS;IAC3C,OAAO,aAAa,uBAAuB,SAAS;IACpD,QAAQ,OAAO,MAAM;GACvB;GAEA,KAAK,OAAO,OAAO;GAEnB,IAAI,QAAQ,gBACV,KAAK,MAAM,UAAU,QAAQ,iBAAiB,QAAQ,GACpD,OAAO,WAAW;GAItB,IAAI,QAAQ,aAAa,QAAQ,YAAY,MAAM,GAAG;IACpD,MAAM,UAAU,cAAc;IAC9B,SAAS,IAAI,OAAO,KAAK,OAAO;IAChC,KAAK,OAAO,OAAO;GACrB;GAEA,MAAM,IAAI,OAAO,KAAK,IAAI;GAC1B,IAAI,OAAO,IAAI;EACjB;EAEA,OAAO;GAAE;GAAK;GAAgB;EAAa;CAC7C;CAEA,MAAM,mBACJ,SACA,aACA,gBACuE;EACvE,MAAM,MAAM,SAAS,cAAc,IAAI;EACvC,IAAI,UAAU,IAAI,qBAAqB;EACvC,IAAI,QAAQ,gBACV,IAAI,aAAa,QAAQ,KAAK;EAGhC,MAAM,eAAuC,CAAC;EAE9C,KAAK,MAAM,WAAW,CAAC,QAAQ,UAAU,QAAQ,SAAS,GACxD,IAAI,SAAS;GACX,MAAM,OAAO,SAAS,cAAc,IAAI;GACxC,aAAa,KAAK,IAAI;GACtB,IAAI,OAAO,IAAI;EACjB;EAGF,KAAK,MAAM,UAAU,QAAQ,SAAS;GACpC,MAAM,OAAO,SAAS,cAAc,IAAI;GACxC,MAAM,cAAc,QAAQ,MAAM,UAAU,OAAO,GAAG;GACtD,IAAI,QAAQ,aAAa,MAAM,KAAK,OAAO,UAAU,aAAa;IAChE,MAAM,OAAO,OAAO,OAAO;KAAE,QAAQ;KAAa,OAAO,QAAQ;KAAO,QAAQ,QAAQ;IAAO,CAAC;IAChG,YAAY,KAAK,IAAI;IACrB,KAAK,OAAO,KAAK,OAAO;GAC1B;GAEA,YAAY,IAAI,OAAO,KAAK,IAAI;GAChC,IAAI,OAAO,IAAI;EACjB;EAEA,OAAO;GAAE;GAAK;EAAa;CAC7B;CAEA,MAAa,gBAAgB,YAA2C;EACtE,MAAM,UAAU,SAAS,cAAc,OAAO;EAC9C,QAAQ,UAAU,IAAI,iBAAiB;EAEvC,MAAM,wBAAQ,IAAI,IAAkC;EACpD,MAAM,2BAAW,IAAI,IAAyB;EAC9C,MAAM,4BAAY,IAAI,IAAyB;EAC/C,MAAM,8BAAc,IAAI,IAAkC;EAC1D,MAAM,cAA8B,CAAC;EACrC,MAAM,iBAAiB,IAAI,IAAI,QAAQ,QAAQ,KAAI,WAAU,CAAC,OAAO,KAAK,OAAO,YAAY,KAAK,CAAC,CAAC;EAEpG,MAAM,EAAE,KAAK,gBAAgB,iBAAiB,eAAe,SAAS,OAAO,UAAU,SAAS;EAChG,QAAQ,OAAO,GAAG;EAElB,IAAI,mBAA+C;EACnD,IAAI,qBAA6C,CAAC;EAClD,IAAI,QAAQ,WAAW;GACrB,MAAM,YAAY,gBAAgB,SAAS,aAAa,WAAW;GACnE,qBAAqB,UAAU;GAC/B,mBAAmB,UAAU;GAC7B,QAAQ,OAAO,UAAU,GAAG;EAC9B;EAKA,IAAI,iBAAgC;EACpC,MAAM,cAAc,UAAoB;GACtC,MAAM,UAAU,IAAI,IAAI,KAAK;GAC7B,MAAM,cACJ,YACA,SACA,YACG;IACH,MAAM,UAAkC,CAAC,GAAG,OAAO;IACnD,KAAK,MAAM,MAAM,OAAO;KACtB,MAAM,OAAO,QAAQ,IAAI,EAAE;KAC3B,IAAI,MACF,QAAQ,KAAK,IAAI;IAErB;IAEA,WAAW,OAAO,GAAG,OAAO;IAC5B,IAAI,QAAQ,gBACV,KAAK,MAAM,CAAC,OAAO,SAAS,QAAQ,QAAQ,GAC1C,KAAK,aAAa,iBAAiB,OAAO,QAAQ,CAAC,CAAC;IAIxD,KAAK,MAAM,CAAC,KAAK,SAAS,SACxB,IAAI,CAAC,QAAQ,IAAI,GAAG,GAClB,KAAK,OAAO;GAGlB;GAEA,WAAW,KAAK,OAAO,YAAY;GACnC,IAAI,kBACF,WAAW,kBAAkB,aAAa,kBAAkB;EAEhE;EAEA,OAAO;GACL;GACA,UAAU,QAAQ,YAAY,IAAI;GAClC,OAAO,OAAO;IACZ,MAAM,YAAY,MAAM,MAAM,KAAK,GAAG;IACtC,IAAI,cAAc,gBAAgB;KAChC,iBAAiB;KACjB,WAAW,MAAM,KAAK;IACxB;IAEA,KAAK,MAAM,CAAC,KAAK,SAAS,OAAO;KAC/B,MAAM,aAAa,MAAM,QAAQ,MAAK,SAAQ,KAAK,OAAO,GAAG;KAC7D,MAAM,YAAY,cAAc,UAAU;KAC1C,IAAI,cAAc,WAChB,KAAK,gBAAgB,WAAW;UAEhC,KAAK,aAAa,aAAa,SAAS;KAG1C,MAAM,WAAW,UAAU,IAAI,GAAG;KAClC,IAAI,YAAY,SAAS,QAAQ,eAAe,WAAW;MACzD,SAAS,QAAQ,aAAa;MAC9B,SAAS,YAAY,iBAAiB,WAAW,QAAQ,KAAK;KAChE;KAEA,IAAI,MAAM,SAAS,MAAM,MAAM,SAAS,KAAA,GACtC,KAAK,MAAM,QAAQ,GAAG,MAAM,MAAM,KAAK;KAGzC,IAAI,MAAM,SACR,gBAAgB,MAAM,MAAM,QAAQ,QAAQ,QAAQ,IAAI;IAE5D;IAKA,IAAI,QAAQ,WAAW;KACrB,MAAM,YAAY,QAAwB,MAAM,SAAS,QAAQ,IAAI,EAAE,QAAQ;KAC/E,MAAM,mCAAmB,IAAI,IAAoB;KACjD,KAAK,MAAM,OAAO,MAAM,OACtB,IAAI,eAAe,IAAI,GAAG,GAAG;MAC3B,MAAM,SAAS,SAAS,GAAG;MAC3B,iBAAiB,IAAI,SAAS,iBAAiB,IAAI,MAAM,KAAK,KAAK,CAAC;KACtE;KAGF,KAAK,MAAM,CAAC,KAAK,SAAS,OAExB,IADkB,QAAQ,eAAe,IAAI,GAAG,CAAC,MAAM,iBAAiB,IAAI,SAAS,GAAG,CAAC,KAAK,KAAK,GACpF;MACb,KAAK,QAAQ,kBAAkB;MAG/B,KAAK,MAAM,cAAc;KAC3B,OAAO;MACL,OAAO,KAAK,QAAQ;MACpB,KAAK,MAAM,cAAc;KAC3B;IAEJ;IAEA,KAAK,MAAM,CAAC,KAAK,YAAY,UAC3B,QAAQ,UAAU,OAAO,2BAA2B,MAAM,mBAAmB,GAAG;IAGlF,IAAI,MAAM,iBACR,KAAK,MAAM,CAAC,KAAK,SAAS,OACxB,KACG,cAAc,sBAAsB,CAAC,EACpC,UAAU,OAAO,oCAAoC,MAAM,gBAAgB,SAAS,GAAG,CAAC;IAIhG,IAAI,MAAM,SAAS;KACjB,KAAK,MAAM,CAAC,KAAK,SAAS,aACxB,gBAAgB,MAAM,MAAM,QAAQ,QAAQ,QAAQ,IAAI;KAK1D,KAAK,MAAM,QAAQ,CAAC,GAAG,cAAc,GAAG,kBAAkB,GACxD,gBAAgB,MAAM,MAAM,QAAQ,MAAM;IAE9C;IAEA,IAAI,kBAAkB,MAAM,WAAW;KACrC,eAAe,UAAU,MAAM,UAAU;KACzC,eAAe,gBAAgB,MAAM,UAAU;IACjD;IAEA,KAAK,MAAM,QAAQ,aACjB,KAAK,SAAS;GAElB;GACA,UAAU;IACR,KAAK,MAAM,QAAQ,aACjB,KAAK,UAAU;GAEnB;EACF;CACF;;;CCxcA,MAAM,qBAAqB;CAO3B,MAAa,iBAAiB,QAAwB,YAAY,uBAAoC;EACpG,MAAM,UAAU,SAAS,cAAc,KAAK;EAC5C,QAAQ,UAAU,IAAI,SAAS;EAC/B,QAAQ,SAAS;EAEjB,MAAM,UAAU,SAAS,cAAc,KAAK;EAC5C,QAAQ,UAAU,IAAI,gBAAgB;EACtC,QAAQ,aAAa,QAAQ,QAAQ;EAErC,MAAM,QAAQ,SAAS,cAAc,MAAM;EAC3C,MAAM,UAAU,IAAI,iBAAiB;EACrC,MAAM,cAAc,OAAO;EAC3B,QAAQ,OAAO,KAAK;EAEpB,QAAQ,OAAO,OAAO;EAEtB,OAAO;GACL;GACA,WAAW,SAAS;IAClB,QAAQ,SAAS,CAAC;GACpB;EACF;CACF;;;;;;;;;CCpBA,MAAM,yBAAyB;CAC/B,MAAM,uBAAuB;CAC7B,MAAM,kBAAkB;CACxB,MAAMG,sBAAoB;CAC1B,MAAM,oBAAoB;CAE1B,MAAM,mBAAmB;CACzB,MAAM,iBAAiB;CAEvB,MAAM,sBAA4E;EAChF,UAAU;EACV,aAAa;EACb,QAAQ;EACR,WAAW;EACX,YAAY;EACZ,UAAU;EACV,OAAO;EACP,UAAU;EACV,aAAa;EACb,oBAAoB;EACpB,UAAU;EACV,iBAAiB;EACjB,SAAS;CACX;CAiBA,IAAI,kBAAkB;CAEtB,MAAM,gBAAgB,eACnB,eAAe,WAAW,WAAY,eAAe,SAAS,SAAS;CAE1E,MAAa,oBAAoB,YAAmD;EAClF,MAAM,UAAU,SAAS,cAAc,KAAK;EAC5C,QAAQ,UAAU,IAAI,sBAAsB;EAC5C,QAAQ,aAAa,QAAQ,QAAQ;EACrC,QAAQ,KAAK,yBAAyB,EAAE;EAExC,IAAI,UAA8B;EAElC,MAAM,SAAS,UAAU,UAAU;GACjC,IAAI,CAAC,SACH;GAGF,QAAQ,aAAa,iBAAiB,OAAO;GAC7C,QAAQ,gBAAgB,eAAe;GACvC,IAAI,SACF,QAAQ,MAAM;GAGhB,UAAU;GACV,QAAQ,OAAO;GACf,SAAS,oBAAoB,eAAe,sBAAsB,IAAI;GACtE,OAAO,oBAAoB,UAAU,gBAAgB,IAAI;GACzD,OAAO,oBAAoB,UAAU,cAAc;EACrD;EAEA,MAAM,wBAAwB,UAAiB;GAC7C,MAAM,SAAS,MAAM;GACrB,IAAI,CAAC,QAAQ,SAAS,MAAM,KAAK,CAAC,SAAS,SAAS,MAAM,GACxD,MAAM;EAEV;EAEA,MAAM,kBAAkB,UAAkB;GACxC,IAAI,OAAO,kBAAkB,QAAQ,QAAQ,SAAS,MAAM,MAAM,GAChE;GAGF,MAAM;EACR;EAEA,MAAM,aAAa,UAAyB;GAC1C,IAAI,MAAM,QAAQ,UAAU;IAC1B,MAAM,gBAAgB;IACtB,MAAM,IAAI;GACZ;EACF;EAEA,QAAQ,iBAAiB,WAAW,SAAS;EAE7C,MAAM,qBACJ,YACA,cACgB;GAChB,MAAM,MAAM,SAAS,cAAc,KAAK;GACxC,IAAI,UAAU,IAAI,oBAAoB;GAEtC,MAAM,SAAS,SAAS,cAAc,QAAQ;GAC9C,OAAO,UAAU,IAAI,eAAe,gBAAgB;GACpD,OAAO,aAAa,cAAc,QAAQ,OAAO,YAAY;GAC7D,KAAK,MAAM,YAAY,iBAAiB,aAAa;IACnD,MAAM,SAAS,SAAS,cAAc,QAAQ;IAC9C,OAAO,QAAQ;IACf,OAAO,cAAc,QAAQ,OAAO,oBAAoB;IACxD,OAAO,OAAO,MAAM;GACtB;GAEA,OAAO,QAAQ,WAAW,YAAY,iBAAiB,WAAW,CAAC;GAEnE,MAAM,QAAQ,SAAS,cAAc,OAAO;GAC5C,MAAM,OAAO,aAAa,UAAU;GACpC,MAAM,UAAU,IAAI,gBAAgB,iBAAiB;GACrD,MAAM,QAAQ,oBAAoB;GAClC,MAAM,QAAQ,WAAW,UAAU,KAAA,IAAY,KAAK,OAAO,UAAU,KAAK;GAE1E,MAAM,SAAS,SAAS,cAAc,OAAO;GAC7C,OAAO,OAAO,aAAa,UAAU;GACrC,OAAO,UAAU,IAAI,gBAAgB,iBAAiB;GACtD,OAAO,QAAQ,qBAAqB;GACpC,OAAO,QAAQ,WAAW,WAAW,KAAA,IAAY,KAAK,OAAO,UAAU,MAAM;GAE7E,MAAM,uBAAuB;IAC3B,MAAM,WAAW,OAAO;IACxB,MAAM,SAAS,oBAAoB,IAAI,QAAQ;IAC/C,OAAO,SAAS,aAAa;GAC/B;GAEA,OAAO,iBAAiB,UAAU,cAAc;GAChD,IAAI,OAAO,QAAQ,OAAO,MAAM;GAChC,eAAe;GACf,OAAO;EACT;EAEA,MAAM,iBAAiB,QAAqD;GAC1E,MAAM,WAAW,IAAI,cAAc,QAAQ,CAAC,CAAE;GAC9C,MAAM,EAAE,UAAW,IAAI,cAAgC,4BAA4B;GACnF,MAAM,SAAS,IAAI,cAAgC,6BAA6B,CAAC,CAAE;GAEnF,IAAI,oBAAoB,IAAI,QAAQ,GAClC,OAAO,EAAE,SAAS;GAGpB,IAAI,MAAM,KAAK,MAAM,IACnB,OAAO;GAGT,OAAO;IACL;IACA;IACA,GAAI,aAAa,aAAa,OAAO,KAAK,MAAM,MAAM,EAAE,OAAO;GACjE;EACF;EAEA,MAAM,eAAe,SAAqB,cAAmC;GAC3E,MAAM,SAAS,SAAS,cAAc,KAAK;GAC3C,OAAO,UAAU,IAAIA,mBAAiB;GAEtC,MAAM,QAAQ,SAAS,cAAc,QAAQ;GAC7C,MAAM,OAAO;GACb,MAAM,UAAU,IAAI,OAAO,eAAe,QAAQ;GAClD,MAAM,cAAc,QAAQ,OAAO;GACnC,MAAM,iBAAiB,SAAS,OAAO;GAEvC,MAAM,QAAQ,SAAS,cAAc,QAAQ;GAC7C,MAAM,OAAO;GACb,MAAM,UAAU,IAAI,OAAO,yBAAyB,QAAQ;GAC5D,MAAM,cAAc,QAAQ,OAAO;GACnC,MAAM,iBAAiB,eAAe;IACpC,QAAQ,YAAY,SAAS;IAC7B,MAAM,IAAI;GACZ,CAAC;GAED,OAAO,OAAO,OAAO,KAAK;GAC1B,OAAO;EACT;EAEA,MAAM,0BAA0B,WAAmB,eAAsD;GACvG,MAAM,UAAU,QAAQ,eAAe,SAAS;GAChD,MAAM,aACJ,WAAW,OAAO,YAAY,YAAY,gBAAgB,UAAU,QAAQ,aAAa,CAAC;GAC5F,MAAM,OAAO,WAAW,OAAO,YAAY,YAAY,gBAAgB,UAAU,QAAQ,OAAO;GAEhG,MAAM,OAAsB,CAAC,kBAAkB,YAAY,WAAW,MAAM,IAAI,CAAC;GACjF,MAAM,OAAO,SAAS,cAAc,KAAK;GACzC,KAAK,OAAO,KAAK,EAAE;GAEnB,MAAM,UAAU,SAAS,cAAc,KAAK;GAC5C,QAAQ,UAAU,IAAI,eAAe;GACrC,MAAM,WAAW,GAAG,QAAQ,GAAG;GAC/B,KAAK,MAAM,UAAU,CAAC,OAAO,IAAI,GAAY;IAC3C,MAAM,QAAQ,SAAS,cAAc,OAAO;IAC5C,MAAM,QAAQ,SAAS,cAAc,OAAO;IAC5C,MAAM,OAAO;IACb,MAAM,UAAU,IAAI,kBAAkB;IACtC,MAAM,OAAO;IACb,MAAM,QAAQ;IACd,MAAM,UAAU,SAAS;IACzB,MAAM,OAAO,OAAO,IAAI,WAAW,QAAQ,QAAQ,OAAO,UAAU,QAAQ,OAAO,QAAQ;IAC3F,QAAQ,OAAO,KAAK;GACtB;GAEA,MAAM,YAAY,SAAS,cAAc,QAAQ;GACjD,UAAU,OAAO;GACjB,UAAU,UAAU,IAAI,OAAO,YAAY,QAAQ;GACnD,UAAU,cAAc,QAAQ,OAAO;GAEvC,MAAM,mBAAmB;IACvB,IAAI,KAAK,UAAU,gBACjB;IAGF,KAAK,KAAK,kBAAkB,YAAY,WAAW,MAAM,IAAI,CAAC;IAC9D,UAAU,OAAO,SAAS,KAAK,EAAE;IACjC,UAAU,SAAS;GACrB;GAEA,UAAU,iBAAiB,SAAS,UAAU;GAC9C,KAAK,OAAO,SAAS;GACrB,IAAI,WAAW,SAAS,GACtB,WAAW;GAGb,MAAM,gBAAgB;IACpB,MAAM,YAAY,KACf,KAAI,QAAO,cAAc,GAAG,CAAC,CAAC,CAC9B,QAAQ,cAAoD,cAAc,IAAI;IACjF,MAAM,YACH,QAAQ,cAAgC,eAAe,CAAC,EAAE,SAA0B;IACvF,QAAQ,YACN,WACA,UAAU,WAAW,IAAI,KAAA,IAAY;KAAE,YAAY;KAAW,MAAM;IAAU,CAChF;IACA,MAAM,IAAI;GACZ;GAEA,KAAK,OAAO,YAAY,SAAS,SAAS,CAAC;GAC3C,OAAO;EACT;EAEA,MAAM,sBAAsB,cAAsB;GAChD,MAAM,SAAS,QAAQ,iBAAiB,SAAS;GACjD,MAAM,UAAU,QAAQ,eAAe,SAAS;GAChD,MAAM,WACJ,WAAW,OAAO,YAAY,YAAY,cAAc,UACtD,IAAI,IAAI,QAAQ,MAAM,IAAI,MAAM,CAAC,IACjC;GAEJ,MAAM,OAAO,SAAS,cAAc,KAAK;GACzC,MAAM,OAAO,SAAS,cAAc,KAAK;GACzC,KAAK,UAAU,IAAI,iBAAiB;GAEpC,MAAM,aAAiC,CAAC;GACxC,MAAM,UAAU,WAAmB,YAAuC;IACxE,MAAM,QAAQ,SAAS,cAAc,OAAO;IAC5C,MAAM,UAAU,IAAI,YAAY;IAChC,MAAM,QAAQ,SAAS,cAAc,OAAO;IAC5C,MAAM,OAAO;IACb,MAAM,UAAU,IAAI,kBAAkB;IACtC,MAAM,UAAU;IAChB,MAAM,OAAO,SAAS,cAAc,MAAM;IAC1C,KAAK,UAAU,IAAI,kBAAkB;IACrC,KAAK,cAAc;IACnB,MAAM,OAAO,OAAO,IAAI;IACxB,KAAK,OAAO,KAAK;IACjB,OAAO;GACT;GAEA,MAAM,YAAY,OAAO,QAAQ,OAAO,iBAAiB,aAAa,IAAI;GAC1E,UAAU,QAAQ,wBAAwB;GAE1C,KAAK,MAAM,SAAS,QAAQ;IAC1B,MAAM,QAAQ,OAAO,OAAO,KAAK,GAAG,aAAa,QAAQ,SAAS,IAAI,OAAO,KAAK,CAAC,CAAC;IACpF,MAAM,QAAQ,qBAAqB,OAAO,KAAK;IAC/C,WAAW,KAAK,KAAK;GACvB;GAEA,MAAM,sBAAsB;IAC1B,UAAU,UAAU,WAAW,OAAM,UAAS,MAAM,OAAO;GAC7D;GAEA,UAAU,iBAAiB,gBAAgB;IACzC,KAAK,MAAM,SAAS,YAClB,MAAM,UAAU,UAAU;GAE9B,CAAC;GACD,KAAK,iBAAiB,WAAU,UAAS;IACvC,IAAI,MAAM,WAAW,WACnB,cAAc;GAElB,CAAC;GACD,cAAc;GAEd,IAAI,OAAO,SAAS,kBAAkB;IACpC,MAAM,SAAS,SAAS,cAAc,OAAO;IAC7C,OAAO,OAAO;IACd,OAAO,UAAU,IAAI,gBAAgB,iBAAiB;IACtD,OAAO,aAAa,cAAc,QAAQ,OAAO,YAAY;IAC7D,OAAO,cAAc,QAAQ,OAAO;IACpC,OAAO,iBAAiB,eAAe;KACrC,MAAM,SAAS,OAAO,MAAM,YAAY;KACxC,KAAK,MAAM,SAAS,YAClB,MAAM,QAAQ,OAAO,CAAC,CAAE,SAAS,CAAC,MAAM,QAAQ,mBAAoB,YAAY,CAAC,CAAC,SAAS,MAAM;IAErG,CAAC;IACD,KAAK,OAAO,MAAM;GACpB;GAEA,KAAK,OAAO,IAAI;GAEhB,MAAM,gBAAgB;IACpB,MAAM,UAAU,WAAW,QAAO,UAAS,MAAM,OAAO;IACxD,QAAQ,YACN,WACA,QAAQ,WAAW,WAAW,SAC5B,KAAA,IACA;KAAE,UAAU;KAAM,OAAO,QAAQ,KAAI,UAAS,MAAM,QAAQ,kBAAmB;IAAE,CACrF;IACA,MAAM,IAAI;GACZ;GAEA,KAAK,OAAO,YAAY,SAAS,SAAS,CAAC;GAC3C,OAAO;EACT;EAEA,MAAM,QAAQ,QAAqB,cAAsB;GACvD,MAAM;GACN,MAAM,SAAS,QAAQ,UAAU,SAAS;GAC1C,IAAI,CAAC,QACH;GAGF,QAAQ,aACN,cACA,YAAY,QAAQ,OAAO,cAAc,EAAE,QAAQ,OAAO,SAAS,OAAO,IAAI,CAAC,CACjF;GACA,MAAM,aAAa,OAAO,cAAc;GACxC,QAAQ,gBACN,eAAe,WAAW,mBAAmB,SAAS,IAAI,uBAAuB,WAAW,UAAU,CACxG;GAEA,UAAU;GACV,OAAO,aAAa,iBAAiB,MAAM;GAC3C,OAAO,aAAa,iBAAiB,QAAQ,EAAE;GAC/C,QAAQ,KAAK,OAAO,OAAO;GAE3B,MAAM,WAAW,QAAQ,KAAK,sBAAsB;GACpD,MAAM,aAAa,OAAO,sBAAsB;GAChD,QAAQ,MAAM,MAAM,GAAG,WAAW,SAAS,SAAS,IAAI;GACxD,QAAQ,MAAM,OAAO,GAAG,KAAK,IAAI,WAAW,QAAQ,SAAS,OAAO,QAAQ,aAAa,CAAC,EAAE;GAE5F,SAAS,iBAAiB,eAAe,sBAAsB,IAAI;GACnE,OAAO,iBAAiB,UAAU,gBAAgB,IAAI;GACtD,OAAO,iBAAiB,UAAU,cAAc;GAChD,QAAQ,cAA2B,eAAe,CAAC,EAAE,MAAM;EAC7D;EAEA,OAAO;GACL,OAAO,QAAQ,WAAW;IACxB,IAAI,YAAY,QAAQ;KACtB,MAAM,IAAI;KACV;IACF;IAEA,MAAM;IACN,KAAK,QAAQ,SAAS;GACxB;GACA,QAAQ;IACN,MAAM;GACR;GACA,UAAU;IACR,MAAM;IACN,QAAQ,oBAAoB,WAAW,SAAS;GAClD;EACF;CACF;;;CCpYA,MAAM,kBAAkB;CACxB,MAAM,uBAAuB;CAC7B,MAAM,4BAA4B;CAClC,MAAM,0BAA0B;CAahC,IAAI,YAAY;CAEhB,MAAa,cAAc,YAAuC;EAChE,MAAM,UAAU,SAAS,cAAc,KAAK;EAC5C,QAAQ,UAAU,IAAI,eAAe;EACrC,QAAQ,aAAa,QAAQ,MAAM;EACnC,QAAQ,KAAK,kBAAkB,EAAE;EAEjC,IAAI,UAA8B;EAElC,MAAM,cACJ,CAAC,GAAG,QAAQ,iBAAoC,IAAI,sBAAsB,CAAC;EAE7E,MAAM,SAAS,UAAU,UAAU;GACjC,IAAI,CAAC,SACH;GAGF,QAAQ,aAAa,iBAAiB,OAAO;GAC7C,QAAQ,gBAAgB,eAAe;GACvC,IAAI,SACF,QAAQ,MAAM;GAGhB,UAAU;GACV,QAAQ,OAAO;GACf,SAAS,oBAAoB,eAAe,sBAAsB,IAAI;GACtE,OAAO,oBAAoB,UAAU,gBAAgB,IAAI;GACzD,OAAO,oBAAoB,UAAU,cAAc;EACrD;EAEA,MAAM,wBAAwB,UAAiB;GAC7C,MAAM,SAAS,MAAM;GACrB,IAAI,CAAC,QAAQ,SAAS,MAAM,KAAK,CAAC,SAAS,SAAS,MAAM,GACxD,MAAM;EAEV;EAIA,MAAM,kBAAkB,UAAkB;GACxC,IAAI,OAAO,kBAAkB,QAAQ,QAAQ,SAAS,MAAM,MAAM,GAChE;GAGF,MAAM;EACR;EAEA,MAAM,iBAAiB,UAAyB;GAC9C,MAAM,UAAU,MAAM;GACtB,MAAM,cAAc,QAAQ,QAAQ,SAAS,aAAkC;GAE/E,QAAQ,MAAM,KAAd;IACE,KAAK;KACH,MAAM,gBAAgB;KACtB,MAAM,IAAI;KACV;IAGF,KAAK;KACH,MAAM;KACN;IAGF,KAAK;KACH,MAAM,eAAe;KACrB,SAAS,cAAc,KAAK,QAAQ,OAAO,EAAE,MAAM;KACnD;IAGF,KAAK;KACH,MAAM,eAAe;KACrB,SAAS,cAAc,IAAI,QAAQ,UAAU,QAAQ,OAAO,EAAE,MAAM;KACpE;IAGF,KAAK;KACH,MAAM,eAAe;KACrB,QAAQ,EAAE,EAAE,MAAM;KAClB;IAGF,KAAK;KACH,MAAM,eAAe;KACrB,QAAQ,QAAQ,SAAS,EAAE,EAAE,MAAM;GAKvC;EACF;EAEA,QAAQ,iBAAiB,WAAW,aAAa;EAEjD,MAAM,QAAQ,QAAqB,cAAsB;GACvD,MAAM,UAAU,QAAQ,WAAW,SAAS;GAC5C,IAAI,QAAQ,WAAW,GACrB;GAGF,MAAM,QAAgB,CAAC;GACvB,KAAK,MAAM,CAAC,OAAO,WAAW,QAAQ,QAAQ,GAAG;IAC/C,IAAI,QAAQ,KAAK,OAAO,UAAU,QAAQ,QAAQ,EAAE,CAAC,OAAO;KAC1D,MAAM,UAAU,SAAS,cAAc,KAAK;KAC5C,QAAQ,UAAU,IAAI,uBAAuB;KAC7C,QAAQ,aAAa,QAAQ,WAAW;KACxC,MAAM,KAAK,OAAO;IACpB;IAEA,MAAM,OAAO,SAAS,cAAc,QAAQ;IAC5C,KAAK,OAAO;IACZ,KAAK,UAAU,IAAI,oBAAoB;IACvC,KAAK,aAAa,QAAQ,UAAU;IACpC,IAAI,OAAO,MAAM;KACf,MAAM,OAAO,SAAS,cAAc,MAAM;KAC1C,KAAK,UAAU,IAAI,yBAAyB;KAC5C,KAAK,aAAa,eAAe,MAAM;KACvC,KAAK,YAAY,OAAO;KACxB,KAAK,OAAO,IAAI;IAClB;IAEA,KAAK,OAAO,OAAO,KAAK;IACxB,IAAI,OAAO,UACT,KAAK,aAAa,iBAAiB,MAAM;IAG3C,KAAK,iBAAiB,eAAe;KACnC,IAAI,OAAO,UACT;KAGF,MAAM,kBAAkB;KACxB,MAAM;KACN,OAAO,IAAI;KAGX,4BAA4B;MAG1B,MAAM,SAAS,SAAS;MACxB,IAAI,UAAU,WAAW,SAAS,QAAQ,QAAQ,KAAK,SAAS,MAAM,GACpE;MAGF,IAAI,iBAAiB,aACnB,gBAAgB,MAAM;WAEtB,QAAQ,KAAK,cAA2B,oBAAoB,CAAC,EAAE,MAAM;KAEzE,CAAC;IACH,CAAC;IACD,MAAM,KAAK,IAAI;GACjB;GAEA,QAAQ,gBAAgB,GAAG,KAAK;GAEhC,UAAU;GACV,OAAO,aAAa,iBAAiB,MAAM;GAC3C,OAAO,aAAa,iBAAiB,QAAQ,EAAE;GAC/C,QAAQ,KAAK,OAAO,OAAO;GAE3B,MAAM,WAAW,QAAQ,KAAK,sBAAsB;GACpD,MAAM,aAAa,OAAO,sBAAsB;GAChD,QAAQ,MAAM,MAAM,GAAG,WAAW,SAAS,SAAS,IAAI;GAGxD,QAAQ,MAAM,OAAO,GAAG,KAAK,IAAI,WAAW,QAAQ,SAAS,OAAO,QAAQ,aAAa,CAAC,EAAE;GAE5F,SAAS,iBAAiB,eAAe,sBAAsB,IAAI;GACnE,OAAO,iBAAiB,UAAU,gBAAgB,IAAI;GACtD,OAAO,iBAAiB,UAAU,cAAc;GAChD,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM;EACpB;EAEA,OAAO;GACL,OAAO,QAAQ,WAAW;IACxB,IAAI,YAAY,QAAQ;KACtB,MAAM,IAAI;KACV;IACF;IAEA,MAAM;IACN,KAAK,QAAQ,SAAS;GACxB;GACA,QAAQ;IACN,MAAM;GACR;GACA,UAAU;IACR,MAAM;IACN,QAAQ,oBAAoB,WAAW,aAAa;GACtD;EACF;CACF;;;;;;;;;CC/MA,MAAM,wBAAwB;CAC9B,MAAM,6BAA6B;CAEnC,MAAM,cAAc;CAapB,MAAM,kBACJ,OACA,MACA,UAAwE,CAAC,MACvD;EAClB,MAAM,OAAO,SAAS,cAAc,IAAI;EACxC,KAAK,UAAU,IAAI,WAAW;EAC9B,IAAI,QAAQ,QAAQ;GAClB,KAAK,UAAU,IAAI,QAAQ;GAC3B,KAAK,aAAa,gBAAgB,MAAM;EAC1C;EAEA,IAAI,QAAQ,UACV,KAAK,UAAU,IAAI,UAAU;EAG/B,MAAM,SAAS,SAAS,cAAc,QAAQ;EAC9C,OAAO,OAAO;EACd,OAAO,UAAU,IAAI,WAAW;EAChC,OAAO,cAAc;EACrB,OAAO,WAAW,QAAQ,QAAQ,QAAQ;EAC1C,OAAO,QAAQ,aAAa;EAC5B,IAAI,QAAQ,WACV,OAAO,aAAa,cAAc,QAAQ,SAAS;EAGrD,KAAK,OAAO,MAAM;EAElB,OAAO;CACT;CAEA,MAAa,oBAAoB,YAAmD;EAClF,MAAM,UAAU,SAAS,cAAc,KAAK;EAC5C,QAAQ,UAAU,IAAI,qBAAqB;EAE3C,MAAM,MAAM,SAAS,cAAc,KAAK;EACxC,IAAI,aAAa,cAAc,QAAQ,OAAO,eAAe;EAC7D,MAAM,OAAO,SAAS,cAAc,IAAI;EACxC,KAAK,UAAU,IAAI,cAAc,eAAe;EAChD,IAAI,OAAO,IAAI;EAEf,MAAM,OAAO,QAAQ,SAAS,QAAQ,OAAO,SAAS,cAAc,MAAM;EAC1E,IAAI,MACF,KAAK,UAAU,IAAI,0BAA0B;EAG/C,MAAM,SAAS,SAAS,cAAc,QAAQ;EAC9C,OAAO,UAAU,IAAI,eAAe,gBAAgB;EACpD,OAAO,aAAa,cAAc,QAAQ,OAAO,aAAa;EAC9D,OAAO,QAAQ,iBAAiB;EAChC,KAAK,MAAM,QAAQ,QAAQ,iBAAiB;GAC1C,MAAM,SAAS,SAAS,cAAc,QAAQ;GAC9C,OAAO,QAAQ,OAAO,IAAI;GAC1B,OAAO,cAAc,OAAO,IAAI;GAChC,OAAO,OAAO,MAAM;EACtB;EAEA,QAAQ,OAAO,KAAK,GAAI,OAAO,CAAC,IAAI,IAAI,CAAC,GAAI,MAAM;EAEnD,OAAO;GACL;GACA,OAAO,OAAO;IACZ,MAAM,gBAAgB,KAAK,IAAI,MAAM,YAAY,GAAG,CAAC;IACrD,MAAM,cAAc,KAAK,IACvB,KAAK,IAAI,MAAM,YAAY,KAAK,MAAM,cAAc,CAAC,GAAG,MAAM,YAAY,WAAW,GACrF,CACF;IAGA,MAAM,YAAY,MAAM,cAAc,IAAI,KAAK,KAAK,IAAI,cAAc,cAAc,GAAG,aAAa;IAEpG,MAAM,QAAQ,CACZ,eAAe,KAAK,SAAS;KAC3B,WAAW,QAAQ,OAAO;KAC1B,UAAU,MAAM,cAAc;IAChC,CAAC,GACD,eAAe,KAAK,QAAQ;KAC1B,WAAW,QAAQ,OAAO;KAC1B,UAAU,MAAM,cAAc;IAChC,CAAC,CACH;IACA,KAAK,IAAI,OAAO,aAAa,QAAQ,WAAW,QAC9C,MAAM,KAAK,eAAe,OAAO,OAAO,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,QAAQ,SAAS,MAAM,UAAU,CAAC,CAAC;IAGjG,MAAM,KACJ,eAAe,KAAK,QAAQ;KAC1B,WAAW,QAAQ,OAAO;KAC1B,UAAU,MAAM,aAAa;IAC/B,CAAC,GACD,eAAe,KAAK,QAAQ;KAC1B,WAAW,QAAQ,OAAO;KAC1B,UAAU,MAAM,aAAa;IAC/B,CAAC,CACH;IACA,KAAK,gBAAgB,GAAG,KAAK;IAE7B,IAAI,MAAM;KACR,IAAI,OAAO,QAAQ,SAAS,YAC1B,KAAK,cAAc,QAAQ,KAAK,KAAK;UAChC;MACL,MAAM,QAAQ,MAAM,cAAc,IAAI,IAAK,MAAM,YAAY,MAAM,WAAY;MAC/E,MAAM,OAAO,KAAK,KAAK,MAAM,YAAY,KAAK,MAAM,UAAU,MAAM,SAAS;MAC7E,KAAK,cAAc,YAAY,QAAQ,OAAO,WAAW;OACvD;OACA;OACA,OAAO,MAAM;MACf,CAAC;KACH;IACF;IAIA,IAAI,CAAC,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC,MAAK,WAAU,OAAO,UAAU,OAAO,MAAM,QAAQ,CAAC,GAAG;KAChF,MAAM,SAAS,SAAS,cAAc,QAAQ;KAC9C,OAAO,QAAQ,OAAO,MAAM,QAAQ;KACpC,OAAO,cAAc,OAAO,MAAM,QAAQ;KAC1C,OAAO,aAAa,QAAQ,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC,MAAK,SAAQ,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,KAAK,IAAI;IAC3G;IAEA,OAAO,QAAQ,OAAO,MAAM,QAAQ;GACtC;EACF;CACF;;;CC5IA,MAAM,4BAA4B;CAClC,MAAM,oBAAoB;CAC1B,MAAM,oBAAoB;CAwB1B,IAAI,qBAAqB;CAEzB,MAAa,uBAAuB,YAAyD;EAC3F,MAAM,UAAU,SAAS,cAAc,KAAK;EAC5C,QAAQ,UAAU,IAAI,yBAAyB;EAC/C,QAAQ,aAAa,QAAQ,QAAQ;EACrC,QAAQ,aAAa,cAAc,QAAQ,OAAO,cAAc;EAChE,QAAQ,KAAK,4BAA4B,EAAE;EAE3C,IAAI,UAA8B;EAElC,MAAM,SAAS,UAAU,UAAU;GACjC,IAAI,CAAC,SACH;GAGF,QAAQ,aAAa,iBAAiB,OAAO;GAC7C,QAAQ,gBAAgB,eAAe;GACvC,IAAI,SACF,QAAQ,MAAM;GAGhB,UAAU;GACV,QAAQ,OAAO;GACf,SAAS,oBAAoB,eAAe,sBAAsB,IAAI;GACtE,OAAO,oBAAoB,UAAU,gBAAgB,IAAI;GACzD,OAAO,oBAAoB,UAAU,cAAc;EACrD;EAEA,MAAM,wBAAwB,UAAiB;GAC7C,MAAM,SAAS,MAAM;GACrB,IAAI,CAAC,QAAQ,SAAS,MAAM,KAAK,CAAC,SAAS,SAAS,MAAM,GACxD,MAAM;EAEV;EAEA,MAAM,kBAAkB,UAAkB;GACxC,IAAI,OAAO,kBAAkB,QAAQ,QAAQ,SAAS,MAAM,MAAM,GAChE;GAGF,MAAM;EACR;EAEA,MAAM,aAAa,UAAyB;GAC1C,IAAI,MAAM,QAAQ,UAAU;IAC1B,MAAM,gBAAgB;IACtB,MAAM,IAAI;GACZ;EACF;EAEA,QAAQ,iBAAiB,WAAW,SAAS;EAE7C,MAAM,qBAAqB;GACzB,MAAM,OAAO,SAAS,cAAc,KAAK;GAEzC,KAAK,MAAM,UAAU,QAAQ,WAAW,GAAG;IACzC,MAAM,QAAQ,SAAS,cAAc,OAAO;IAC5C,MAAM,UAAU,IAAI,cAAc,iBAAiB;IACnD,MAAM,QAAQ,SAAS,cAAc,OAAO;IAC5C,MAAM,OAAO;IACb,MAAM,UAAU,IAAI,kBAAkB;IACtC,MAAM,UAAU,OAAO;IACvB,MAAM,QAAQ,4BAA4B,OAAO;IACjD,IAAI,CAAC,OAAO,SAAS;KACnB,MAAM,WAAW;KACjB,MAAM,aAAa,iBAAiB,MAAM;IAC5C;IAEA,MAAM,iBAAiB,gBAAgB;KACrC,QAAQ,iBAAiB,OAAO,IAAI,MAAM,OAAO;IACnD,CAAC;IACD,MAAM,OAAO,SAAS,cAAc,MAAM;IAC1C,KAAK,UAAU,IAAI,kBAAkB;IACrC,KAAK,cAAc,OAAO;IAC1B,MAAM,OAAO,OAAO,IAAI;IACxB,KAAK,OAAO,KAAK;GACnB;GAEA,MAAM,SAAS,SAAS,cAAc,KAAK;GAC3C,OAAO,UAAU,IAAI,iBAAiB;GAEtC,MAAM,UAAU,SAAS,cAAc,QAAQ;GAC/C,QAAQ,OAAO;GACf,QAAQ,UAAU,IAAI,OAAO,YAAY,QAAQ;GACjD,QAAQ,cAAc,QAAQ,OAAO;GACrC,QAAQ,QAAQ,6BAA6B;GAC7C,QAAQ,iBAAiB,eAAe;IACtC,QAAQ,QAAQ;IAChB,QAAQ,gBAAgB,aAAa,CAAC;GACxC,CAAC;GAED,MAAM,QAAQ,SAAS,cAAc,QAAQ;GAC7C,MAAM,OAAO;GACb,MAAM,UAAU,IAAI,OAAO,YAAY,QAAQ;GAC/C,MAAM,cAAc,QAAQ,OAAO;GACnC,MAAM,QAAQ,2BAA2B;GACzC,MAAM,iBAAiB,eAAe;IACpC,QAAQ,MAAM;IACd,QAAQ,gBAAgB,aAAa,CAAC;GACxC,CAAC;GAED,OAAO,OAAO,SAAS,KAAK;GAE5B,MAAM,UAAU,SAAS,uBAAuB;GAChD,QAAQ,OAAO,MAAM,MAAM;GAC3B,OAAO;EACT;EAEA,MAAM,QAAQ,WAAwB;GACpC,MAAM;GACN,QAAQ,gBAAgB,aAAa,CAAC;GAEtC,UAAU;GACV,OAAO,aAAa,iBAAiB,MAAM;GAC3C,OAAO,aAAa,iBAAiB,QAAQ,EAAE;GAC/C,QAAQ,KAAK,OAAO,OAAO;GAE3B,MAAM,WAAW,QAAQ,KAAK,sBAAsB;GACpD,MAAM,aAAa,OAAO,sBAAsB;GAChD,QAAQ,MAAM,MAAM,GAAG,WAAW,SAAS,SAAS,IAAI;GACxD,QAAQ,MAAM,OAAO,GAAG,KAAK,IAAI,WAAW,OAAO,SAAS,MAAM,CAAC,EAAE;GAErE,SAAS,iBAAiB,eAAe,sBAAsB,IAAI;GACnE,OAAO,iBAAiB,UAAU,gBAAgB,IAAI;GACtD,OAAO,iBAAiB,UAAU,cAAc;GAChD,QAAQ,cAA2B,sBAAsB,CAAC,EAAE,MAAM;EACpE;EAEA,OAAO;GACL,OAAO,QAAQ;IACb,IAAI,YAAY,QAAQ;KACtB,MAAM,IAAI;KACV;IACF;IAEA,MAAM;IACN,KAAK,MAAM;GACb;GACA,QAAQ;IACN,MAAM;GACR;GACA,UAAU;IACR,MAAM;IACN,QAAQ,oBAAoB,WAAW,SAAS;GAClD;EACF;CACF;;;;;;;;;CC/KA,MAAM,qBAAqB;CAC3B,MAAM,YAAY;CAClB,MAAM,WAAW,IAAI,UAAU;CAC/B,MAAM,aAAa;CACnB,MAAM,MAAM;CACZ,MAAM,OAAO;CAUb,MAAa,iBAAiB,SAAmC;EAC/D,MAAM,UAAU,SAAS,cAAc,KAAK;EAC5C,QAAQ,YAAY;EACpB,QAAQ,aAAa,QAAQ,SAAS;EACtC,QAAQ,aAAa,eAAe,MAAM;EAC1C,QAAQ,SAAS;EACjB,KAAK,OAAO,OAAO;EAEnB,IAAI,SAA6B;EACjC,IAAI;EAEJ,MAAM,cAAc,WAAmD;GACrE,MAAM,WAAW,kBAAkB,UAAU,OAAO,QAAQ,QAAQ,IAAI;GACxE,OAAO,oBAAoB,eAAe,SAAS,aAAa,SAAS,IAAI,WAAW;EAC1F;EAEA,MAAM,iBAAuB;GAC3B,IAAI,CAAC,QACH;GAGF,MAAM,OAAO,OAAO,sBAAsB;GAC1C,MAAM,QAAQ,QAAQ;GACtB,MAAM,SAAS,QAAQ;GACvB,MAAM,QAAQ,KAAK,MAAM,SAAS;GAClC,MAAM,MAAM,SAAS,IAAI,QAAQ,KAAK,SAAS;GAC/C,MAAM,OAAO,KAAK,IAAI,MAAM,KAAK,IAAI,KAAK,QAAS,KAAK,QAAQ,SAAS,GAAI,OAAO,aAAa,QAAQ,IAAI,CAAC;GAC9G,QAAQ,MAAM,MAAM,GAAG,IAAI;GAC3B,QAAQ,MAAM,OAAO,GAAG,KAAK;GAC7B,QAAQ,MAAM,aAAa;EAC7B;EAEA,MAAM,QAAQ,WAA8B;GAC1C,SAAS;GACT,QAAQ,cAAc,OAAO,aAAa,SAAS;GACnD,QAAQ,MAAM,aAAa;GAC3B,QAAQ,SAAS;GACjB,SAAS;EACX;EAEA,MAAM,aAAmB;GACvB,aAAa,SAAS;GACtB,SAAS;GACT,QAAQ,SAAS;EACnB;EAEA,MAAM,iBAAiB,UAA8B;GACnD,MAAM,SAAS,WAAW,MAAM,MAAM;GACtC,IAAI,CAAC,UAAU,WAAW,QACxB;GAGF,aAAa,SAAS;GACtB,YAAY,iBAAiB,KAAK,MAAM,GAAG,UAAU;EACvD;EAEA,MAAM,gBAAgB,UAA8B;GAClD,IAAI,UAAU,MAAM,yBAAyB,QAAQ,OAAO,SAAS,MAAM,aAAa,GACtF;GAGF,KAAK;EACP;EAEA,MAAM,aAAa,UAA4B;GAC7C,MAAM,SAAS,WAAW,MAAM,MAAM;GACtC,IAAI,QACF,KAAK,MAAM;EAEf;EAEA,KAAK,iBAAiB,eAAe,aAA8B;EACnE,KAAK,iBAAiB,cAAc,YAA6B;EACjE,KAAK,iBAAiB,eAAe,IAAI;EACzC,KAAK,iBAAiB,WAAW,SAA0B;EAC3D,KAAK,iBAAiB,YAAY,IAAI;EACtC,OAAO,iBAAiB,UAAU,MAAM,IAAI;EAE5C,OAAO,EACL,UAAU;GACR,aAAa,SAAS;GACtB,KAAK,oBAAoB,eAAe,aAA8B;GACtE,KAAK,oBAAoB,cAAc,YAA6B;GACpE,KAAK,oBAAoB,eAAe,IAAI;GAC5C,KAAK,oBAAoB,WAAW,SAA0B;GAC9D,KAAK,oBAAoB,YAAY,IAAI;GACzC,OAAO,oBAAoB,UAAU,MAAM,IAAI;GAC/C,QAAQ,OAAO;EACjB,EACF;CACF;;;CClEA,MAAa,WAAW,OAAoB,UAAgD;EAC1F,IAAI,UAAU,OACZ,OAAO,MAAM,gBAAgB,CAAC,CAAC;EAGjC,IAAI,UAAU,YACZ,OAAO,MAAM,sBAAsB,CAAC,CAAC,QAAQ,CAAC;EAGhD,QAAQ,MAAM,qBAAqB,MAAM,uBAAuB,MAAM,gBAAA,CAAiB,CAAC,CAAC;CAC3F;CAIA,MAAa,cAAc,UAAuC;EAChE,IAAI,MAAM,6BACR,OAAO;GACL,GAAI,MAAM,6BAA6B,KAAK,CAAC;GAC7C,GAAG,MAAM,4BAA4B;GACrC,GAAI,MAAM,2BAA2B,KAAK,CAAC;EAC7C;EAGF,OAAO,MAAM,wBAAwB,KAAK,MAAM,kBAAkB;CACpE;CAEA,MAAa,aAAa,WACxB,OAAQ,OAAO,UAAU,MAA2B,SAAS,OAAO,EAAE;CAIxE,MAAa,gBAAgB,WAC1B,OAAO,UAAU,MAA2B;;;;;;;;;CCtD/C,MAAM,eAAe,OAAe,cAClC,UAAU,KAAK,KAAK,KAAK,MAAM,SAAS,SAAS,IAAI,IAAI,MAAM,QAAQ,MAAM,MAAI,EAAE,KAAK;CAI1F,MAAM,iBAAiB,UACrB,eAAe,KAAK,KAAK,IAAI,IAAI,UAAU;CAE7C,MAAa,aAAa,OAAiB,UAAsB,CAAC,MAAc;EAC9E,MAAM,YAAY,QAAQ,aAAa;EACvC,MAAM,UAAU,WAAW,KAAK;EAEhC,MAAM,WAAW,UAAkB,YAAY,QAAQ,WAAW,cAAc,KAAK,IAAI,OAAO,SAAS;EACzG,MAAM,QAAQ,WAAqB,OAAO,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS;EAYrE,MAAM,MAAM,CAVG,KAAK,QAAQ,KAAI,WAAU,UAAU,MAAM,CAAC,CAUzC,GAAG,GATR,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAI,QAC7C,KAAK,QAAQ,KAAI,WAAU;GACzB,MAAM,QAAQ,IAAI,SAAS,OAAO,EAAE;GACpC,MAAM,YAAY,aAAa,MAAM;GAErC,OAAO,YAAY,OAAO,UAAU,OAAO,IAAI,QAAQ,KAAK,EAAE,IAAI,OAAO,SAAS,EAAE;EACtF,CAAC,CAAC,CAGuB,CAAC,CAAC,CAAC,KAAK,MAAM;EACzC,OAAO,QAAQ,MAAM,SAAS,QAAQ;CACxC;CAEA,MAAa,eAAe,OAAiB,UAA8B,CAAC,MAAY;EACtF,MAAM,OAAO,IAAI,KAAK,CAAC,UAAU,OAAO,OAAO,CAAC,GAAG,EAAE,MAAM,0BAA0B,CAAC;EACtF,MAAM,MAAM,IAAI,gBAAgB,IAAI;EACpC,MAAM,SAAS,SAAS,cAAc,GAAG;EACzC,OAAO,OAAO;EACd,OAAO,WAAW,QAAQ,YAAY;EACtC,OAAO,MAAM,UAAU;EAEvB,SAAS,KAAK,OAAO,MAAM;EAC3B,OAAO,MAAM;EACb,OAAO,OAAO;EACd,iBAAiB,IAAI,gBAAgB,GAAG,CAAC;CAC3C;;;;;;;;;CC1DA,MAAa,YACX,UACA,UAC8B;EAC9B,IAAI;EAEJ,QAAQ,GAAG,SAAe;GACxB,aAAa,OAAO;GACpB,UAAU,iBAAiB,SAAS,GAAG,IAAI,GAAG,KAAK;EACrD;CACF;CCDA,MAAa,mBAAuC;EAElD,KAAK;GAAC;GAAS;GAAO;GAAM;GAAQ;GAAQ;EAAsB;EAClE,GAAG;GAAC;GAAU;GAAQ;GAAS;EAAK;EACpC,MAAM,CAAC;EACP,GAAG,CAAC;EACJ,IAAI,CAAC;EACL,KAAK,CAAC;EACN,MAAM,CAAC;EACP,IAAI,CAAC;EACL,KAAK,CAAC;EACN,IAAI,CAAC;EACL,IAAI,CAAC;EACL,IAAI,CAAC;EACL,IAAI,CAAC;EACL,IAAI,CAAC;EACL,IAAI,CAAC;EACL,IAAI,CAAC;EACL,IAAI,CAAC;EACL,IAAI,CAAC;EACL,IAAI,CAAC;EACL,GAAG,CAAC;EACJ,KAAK;GAAC;GAAO;GAAU;GAAO;GAAS;GAAS;EAAQ;EACxD,IAAI,CAAC;EACL,IAAI,CAAC;EACL,GAAG,CAAC;EACJ,KAAK,CAAC;EACN,GAAG,CAAC;EACJ,OAAO,CAAC;EACR,MAAM,CAAC;EACP,KAAK,CAAC;EACN,KAAK,CAAC;EACN,QAAQ,CAAC;EACT,GAAG,CAAC;EACJ,IAAI,CAAC;CACP;CAIA,MAAa,eAAmC;EAC9C,GAAG;EACH,KAAK;GAAC;GAAS;GAAW;GAAe;GAAS;GAAU;GAAW;GAAuB;GAAe;GAAQ;GAAa;GAAQ;GAAU;GAAgB;GAAkB;EAAiB;EACvM,GAAG;GAAC;GAAM;GAAS;GAAa;EAAO;EACvC,MAAM;GAAC;GAAM;GAAS;GAAK;GAAQ;GAAgB;GAAa;GAAU;GAAgB;GAAkB;GAAmB;GAAqB;GAAoB;GAAqB;EAAgB;EAC7M,QAAQ;GAAC;GAAM;GAAS;GAAM;GAAM;GAAK;GAAQ;GAAgB;GAAU;GAAgB;EAAgB;EAC3G,MAAM;GAAC;GAAM;GAAS;GAAK;GAAK;GAAS;GAAU;GAAM;GAAM;GAAQ;GAAgB;GAAU;GAAgB;EAAgB;EACjI,SAAS;GAAC;GAAM;GAAS;GAAM;GAAM;GAAM;GAAM;GAAQ;GAAgB;GAAU;GAAgB;EAAgB;EACnH,MAAM;GAAC;GAAM;GAAS;GAAM;GAAM;GAAM;GAAM;GAAU;GAAgB;GAAkB;EAAgB;EAC1G,SAAS;GAAC;GAAM;GAAS;GAAU;GAAQ;GAAgB;GAAU;GAAgB;EAAgB;EACrG,UAAU;GAAC;GAAM;GAAS;GAAU;GAAQ;GAAgB;GAAU;GAAgB;EAAgB;EACtG,MAAM;GAAC;GAAM;GAAS;GAAK;GAAK;GAAM;GAAM;GAAe;GAAe;GAAa;GAAe;GAAQ;GAAgB;GAAU;GAAgB;EAAgB;EACxK,OAAO;GAAC;GAAM;GAAS;GAAK;GAAK;GAAM;GAAM;GAAe;GAAe;GAAa;GAAe;GAAQ;GAAgB;GAAU;GAAgB;EAAgB;EACzK,MAAM,CAAC;EACP,QAAQ;GAAC;GAAM;GAAS;GAAW;EAAqB;EACxD,KAAK;GAAC;GAAM;GAAS;GAAK;GAAK;GAAS;GAAU;EAAM;EACxD,OAAO;GAAC;GAAM;GAAS;GAAK;GAAK;GAAS;GAAU;GAAQ;GAAuB;EAAY;EAC/F,SAAS;GAAC;GAAM;GAAS;GAAK;GAAK;GAAS;GAAU;GAAgB;GAAuB;GAAoB;EAAqB;EACtI,gBAAgB;GAAC;GAAM;GAAS;GAAiB;GAAM;GAAM;GAAM;GAAM;GAAgB;EAAmB;EAC5G,gBAAgB;GAAC;GAAM;GAAS;GAAiB;GAAM;GAAM;GAAK;GAAM;GAAM;GAAgB;EAAmB;EACjH,MAAM;GAAC;GAAM;GAAS;GAAK;GAAK;GAAS;GAAU;GAAa;GAAoB;EAAe;EACnG,UAAU;GAAC;GAAM;GAAS;EAAe;EACzC,QAAQ;GAAC;GAAM;GAAS;GAAe;GAAe;GAAgB;GAAU;GAAuB;GAAW;GAAQ;EAAM;EAChI,OAAO,CAAC;EACR,MAAM,CAAC;CACT;CAeA,MAAM,gCAAgB,IAAI,IAAI;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;;;;;;;CAQD,MAAM,mBAAmB;CAEzB,MAAM,oBAAoB,WAAiB,yBAA0D;EACnG,MAAM,gBAAgB,UAAU,SAAS,YAAY;EAErD,IAAI,qBAAqB,SAAS,aAAa,GAAG;GAChD,IAAI,cAAc,IAAI,aAAa,GACjC,OAAO,QAAQ,iBAAiB,KAAK,UAAU,SAAU,CAAC;GAG5D,OAAO;EACT;EAGA,OAAO,qBAAqB,QAAO,mBAAkB,0BAA0B,MAAM,CAAC,CACnF,MAAK,UAAS,MAAM,KAAK,aAAa,CAAC;CAC5C;CAEA,SAAgB,aAAa,YAAoB,WAA+B,kBAAoE;EAClJ,IAAI,CAAC,WAAW,QACd,OAAO;EAGT,IAAI,oBAAoB,OAAO,qBAAqB,YAClD,OAAO,iBAAiB,UAAU;EAIpC,MAAM,kBAAkB,IADF,OAAO,UACG,CAAC,CAAC,gBAAgB,YAAY,WAAW;EACzE,MAAM,WAAY,CAAC,CAAC,CAAe,OAAO,GAAG,gBAAgB,KAAK,iBAAiB,GAAG,CAAC;EAEvF,KAAK,MAAM,WAAW,UAAU;GAC9B,MAAM,cAAc,QAAQ,SAAS,YAAY;GAEjD,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,SAAS,WAAW,GAAG;IACjD,QAAQ,OAAO;IAEf;GACF;GAEA,MAAM,gBAAiB,CAAC,CAAC,CAAY,OAAO,GAAG,QAAQ,UAAU;GACjE,MAAM,oBAAqB,CAAC,CAAC,CAA4B,OAAO,UAAU,QAAQ,CAAC,GAAG,UAAU,gBAAgB,CAAC,CAAC;GAElH,KAAK,MAAM,aAAa,eACtB,IAAI,CAAC,iBAAiB,WAAW,iBAAiB,GAChD,QAAQ,gBAAgB,UAAU,QAAQ;EAGhD;EAEA,OAAO,gBAAgB,KAAK;CAC9B;;;;;;;;;;;;CCzGA,MAAM,OAAO;CAEb,MAAM,YAAY;CAElB,MAAM,eAAe,SAAS;CAC9B,MAAM,cAAc,QAAQ;CAC5B,MAAM,mBAAmB,YAAY;CACrC,MAAM,kBAAkB,WAAW;CACnC,MAAM,iBAAiB,WAAW;CAClC,MAAM,oBAAoB,aAAa;CACvC,MAAM,oBAAoB,aAAa;CACvC,MAAM,mBAAmB,YAAY;CACrC,MAAM,sBAAsB,eAAe;CAC3C,MAAM,cAAc,QAAQ;CAC5B,MAAM,kBAAkB,WAAW;CACnC,MAAM,qBAAqB,cAAc;CACzC,MAAM,yBAAyB,iBAAiB;CAChD,MAAM,0BAA0B,mBAAmB;CACnD,MAAM,uBAAuB,gBAAgB;CAC7C,MAAM,yBAAyB,kBAAkB;CACjD,MAAM,sBAAsB,eAAe;CAC3C,MAAM,uBAAuB,gBAAgB;CAC7C,MAAM,0BAA0B,mBAAmB;CAEnD,MAAM,gBAAgB,UAAU;CAChC,MAAM,iBAAiB,WAAW;CAClC,MAAM,gBAAgB,UAAU;CAEhC,MAAM,kBAAkB,YAAY;CACpC,MAAM,mBAAmB,aAAa;CACtC,MAAM,oBAAoB,cAAc;CACxC,MAAM,mBAAmB,aAAa;CAEtC,MAAM,6BAA6B;CACnC,MAAM,uBAAuB;CAC7B,MAAM,0BAA0B;CAChC,MAAM,0BAA0B;CAChC,MAAM,4BAA4B;CAClC,MAAM,oBAAoB;CAC1B,MAAM,uBAAuB;CAC7B,MAAM,mBAAmB;CACzB,MAAM,sBAAsB;CAE5B,MAAM,qBAAqB;CAC3B,MAAM,yBAAyB;CAC/B,MAAM,uBAAuB;CAC7B,MAAM,yBAAyB;CAC/B,MAAM,yBAAyB;CAC/B,MAAM,gBAAgB;CACtB,MAAM,qBAAqB;CAC3B,MAAM,mBAAmB;CACzB,MAAM,sBAAsB;CAC5B,MAAM,sBAAsB;CAC5B,MAAM,uBAAuB;CAC7B,MAAM,2BAA2B;CACjC,MAAM,0BAA0B;CAChC,MAAM,yBAAyB;CAC/B,MAAM,wBAAwB;CAC9B,MAAM,wBAAwB;CAE9B,MAAM,qBAAqB;CAC3B,MAAM,4BAA4B;EAAC;EAAG;EAAI;EAAI;CAAE;CAEhD,IAAI,mBAAmB;CAYvB,MAAM,uBAAuB;CAC7B,MAAM,6BAA6B;CACnC,MAAM,gBAAgB;CAGtB,MAAM,kBAAsD;EAC1D,WAAW;EACX,YAAY;CACd;CAEA,MAAM,4BAA0F;EAC9F,WAAW;EACX,WAAW;EACX,YAAY;EACZ,SAAS;CACX;CAEA,MAAM,qBAAqB;CAE3B,MAAM,iBAAiB,aAA0B,eAAwB;EACvE,MAAM,QAAQ,aAAa,IAAI;EAC/B,IAAI,YAAY,aAAa,OAC3B,YAAY,WAAW;CAE3B;CAEA,MAAM,UAA2B;EAC/B,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,eAAe;EACf,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,eAAe;EACf,cAAc;EACd,kBAAkB;EAClB,SAAS,CAAC;EACV,cAAc;EACd,SAAS;EACT,OAAO;EACP,UAAU;EACV,YAAY;EACZ,cAAc;EACd,gBAAgB;EAChB,SAAS;EACT,gBAAgB;EAChB,SAAS;EACT,OAAO,CAAC;EACR,QAAQ,CAAC;EACT,aAAa;EACb,eAAe;EACf,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,cAAc;EACd,YAAY;EACZ,eAAe;EACf,WAAW;EACX,UAAU;EACV,cAAc;EACd,UAAU;EACV,YAAY;EACZ,OAAO,CAAC;EACR,mBAAmB;EACnB,oBAAoB;EACpB,iBAAiB;EACjB,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,SAAS;EACT,oBAAoB;EACpB,mBAAmB;EACnB,kBAAkB;EAClB,iBAAiB;EACjB,iBAAiB;EACjB,WAAW;EACX,gBAAgB;CAClB;CAEA,MAAM,cAAc;EAClB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,eAAe;EACf,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,eAAe;EACf,cAAc;EACd,kBAAkB;EAClB,SAAS;EACT,cAAc;EACd,SAAS;EACT,OAAO;EACP,UAAU;EACV,YAAY;EACZ,cAAc;EACd,gBAAgB;EAChB,SAAS;EACT,gBAAgB;EAChB,SAAS;EACT,OAAO;EACP,QAAQ;EACR,aAAa;EACb,eAAe;EACf,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,cAAc;EACd,YAAY;EACZ,eAAe;EACf,WAAW;EACX,UAAU;EACV,cAAc;EACd,UAAU;EACV,YAAY;EACZ,OAAO;EACP,mBAAmB;EACnB,oBAAoB;EACpB,iBAAiB;EACjB,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,SAAS;EACT,oBAAoB;EACpB,mBAAmB;EACnB,kBAAkB;EAClB,iBAAiB;EACjB,iBAAiB;EACjB,WAAW;EACX,gBAAgB;CAClB;;;;CAMA,IAAMC,aAAN,MAAMA,mBAAqE,cAAc;EAyDvF,YAAY,SAA2B,QAA8C;GACnF,MAAM,SAAS,MAAM;GApD0B,KAAA,oBAAA;GAEF,KAAA,eAAA;GAGP,KAAA,WAAA;GAC2D,KAAA,eAAA,CAAC;GAC1D,KAAA,aAAA;GACG,KAAA,cAAA;GACN,KAAA,WAAA;GACI,KAAA,eAAA;GACrB,KAAA,cAAA;GAGiB,KAAA,eAAA,CAAC;GACb,KAAA,mBAAA;GACC,KAAA,oBAAA;GACL,KAAA,eAAA;GAGmB,KAAA,cAAA;GAEK,KAAA,wBAAA;GACC,KAAA,cAAA;GACvB,KAAA,iBAAA;GAOd,KAAA,eAAA;GACmC,KAAA,aAAA,CAAC;GACC,KAAA,aAAA,CAAC;GACJ,KAAA,gBAAA;GACJ,KAAA,UAAA;GAG4B,KAAA,4BAAA;GAC1B,KAAA,eAAA;GACO,KAAA,sBAAA;GACpB,KAAA,sBAAA;GACN,KAAA,gCAAA,IAAI,IAA4B;GACX,KAAA,cAAA;GACH,KAAA,WAAA;GACT,KAAA,QAAA;GACM,KAAA,WAAA;GACM,KAAA,cAAA;GACM,KAAA,iBAAA;GACF,KAAA,iBAAA;GAK/C,IAAI,CAAC,KAAK,UACR;GAGF,KAAK,UAAU;IAAE,GAAG;IAAgB,GAAG,KAAK,QAAQ;GAAO;GAC3D,KAAK,aAAa,sBAAsB,KAAK,QAAQ,CAAC;GACtD,KAAK,SAAS,KAAK,aAAa;GAEhC,KAAK,cAAc,SAAS,cAAc,KAAK;GAC/C,KAAK,YAAY,UAAU,IAAI,iBAAiB;GAChD,KAAK,YAAY,aAAa,aAAa,QAAQ;GACnD,KAAK,SAAS,OAAO,KAAK,WAAW;GAErC,KAAK,QAAQ;GACb,KAAK,mBAAmB;GACxB,KAAK,WAAW,cAAc,KAAK,QAAQ;GAG3C,KAAK,uBAAuB;GAC5B,KAAK,gBAAgB;EACvB;EAGA,IAAI,QAAkC;GAGpC,OAAO,KAAK;EACd;EAEA,WAAW,UAA2B;GACpC,OAAO;EACT;EAEA,WAAW,cAAsC;GAC/C,OAAO;EACT;EAEA,WAAW,OAAe;GACxB,OAAO;EACT;EAGA,mBAAmC;GACjC,IAAI,OAAO,KAAK,OAAO,wBAAwB,YAC7C,OAAO,CAAC;GAGV,OAAO,KAAK,OAAO,oBAAoB,CAAC,CAAC,KAAK,KAAI,QAAO,IAAI,QAAQ;EACvE;EAKA,QAAc;GACZ,UAAU,KAAK,QAAQ,KAAK,cAAc,GAAG,EAAE,OAAO,KAAK,QAAQ,cAAc,KAAA,EAAU,CAAC;EAC9F;EAEA,OAAO,SAA8B;GACnC,OAAO,UAAU,KAAK,QAAQ,OAAO;EACvC;EAEA,YAAY,SAAoC;GAC9C,YAAY,KAAK,QAAQ,OAAO;EAClC;EAIA,WAA0B;GAIxB,MAAM,EAAE,UAAU,KAAK,OAAO;GAC9B,OAAO;IACL,eAAe,MAAM,iBAAiB,CAAC;IACvC,aAAa,MAAM,eAAe,CAAC;IACnC,eAAe,MAAM,iBAAiB;KAAE,OAAO,CAAC;KAAG,KAAK,CAAC;IAAE;IAC3D,cAAc,MAAM,gBAAgB,CAAC;IACrC,kBAAkB,MAAM,oBAAoB,CAAC;IAC7C,cAAe,MAAM,gBAAuC;IAC5D,YAAY,MAAM,cAAc;KAAE,WAAW;KAAG,UAAU,OAAO;IAAiB;IAClF,cAAc,MAAM,gBAAgB,CAAC;IACrC,SAAS,MAAM,WAAW,CAAC;GAC7B;EACF;EAEA,aAAa,OAAqC;GAMhD,YAAY;IACV,IAAI,MAAM,kBAAkB,KAAA,KAAa,OAAO,KAAK,OAAO,qBAAqB,YAC/E,KAAK,OAAO,iBAAiB,MAAM,aAAa;IAGlD,IAAI,MAAM,gBAAgB,KAAA,KAAa,OAAO,KAAK,OAAO,mBAAmB,YAC3E,KAAK,OAAO,eAAe,MAAM,WAAW;IAG9C,IAAI,MAAM,kBAAkB,KAAA,KAAa,OAAO,KAAK,OAAO,qBAAqB,YAC/E,KAAK,OAAO,iBAAiB,MAAM,aAAa;IAGlD,IAAI,MAAM,iBAAiB,KAAA,KAAa,OAAO,KAAK,OAAO,oBAAoB,YAC7E,KAAK,OAAO,gBAAgB,MAAM,YAAY;IAGhD,IAAI,MAAM,qBAAqB,KAAA,KAAa,OAAO,KAAK,OAAO,wBAAwB,YACrF,KAAK,OAAO,oBAAoB,MAAM,gBAAgB;IAGxD,IAAI,MAAM,iBAAiB,KAAA,KAAa,OAAO,KAAK,OAAO,oBAAoB,YAC7E,KAAK,OAAO,gBAAgB,MAAM,YAAY;IAGhD,IAAI,MAAM,eAAe,KAAA,KAAa,OAAO,KAAK,OAAO,kBAAkB,YACzE,KAAK,OAAO,cAAc,MAAM,UAAU;IAG5C,IAAI,MAAM,iBAAiB,KAAA,KAAa,OAAO,KAAK,OAAO,oBAAoB,YAC7E,KAAK,OAAO,gBAAgB,MAAM,YAAY;IAGhD,IAAI,MAAM,YAAY,KAAA,KAAa,OAAO,KAAK,OAAO,eAAe,YACnE,KAAK,OAAO,WAAW,MAAM,OAAO;GAExC,CAAC;GAID,IAAI,MAAM,iBAAiB,KAAA,GAAW;IACpC,MAAM,QAAQ,KAAK,SAAS,cAAgC,sBAAsB;IAClF,IAAI,OACF,MAAM,QAAQ,MAAM;GAExB;GAEA,KAAK,WAAW,SAAS;EAC3B;EAKA,OAAa;GACX,KAAK,mBAAmB,KAAK,YAAY,KAAK,YAAY,IAAI;EAChE;EAEA,OAAa;GACX,KAAK,mBAAmB,KAAK,YAAY,KAAK,YAAY,KAAK;EACjE;EAEA,mBACE,MACA,IACA,UACM;GACN,MAAM,QAAQ,KAAK,IAAI;GACvB,IAAI,CAAC,OACH;GAIF,MAAM,MAAM,KAAK,OAAO,gBAAgB,CAAC,CAAC,SAAS,MAAM;GACzD,IAAI,CAAC,KAAK;IACR,KAAK,sBAAsB;IAC3B;GACF;GAEA,GAAG,KAAK,KAAK;GACb,aAAa,QAAQ,KAAK,UAAU,mBAAmB;IACrD,MAAM,IAAI;IACV,UAAU,MAAM;IAChB,OAAO,WAAW,MAAM,gBAAgB,MAAM;IAC9C,eAAe,WAAW,MAAM,QAAQ,MAAM;GAChD,CAAC;GACD,KAAK,UAAU,WAAW,KAAK,QAAQ,qBAAqB,KAAK,QAAQ,kBAAkB;GAC3F,KAAK,sBAAsB;EAC7B;EAIA,SAAS,OAA6B;GACpC,IAAI,KAAK,QAAQ,cACf;GAIF,KAAK,aAAa,EAAE,QAAQ,MAAM,CAAC;GACnC,KAAK,QAAQ,QAAQ;GACrB,KAAK;GACL,KAAK,cAAc,UAAU;GAC7B,KAAK,OAAO,YAAW,cAAa;IAAE,GAAG;IAAU,MAAM;GAAM,EAAE;GACjE,KAAK,WAAW,SAAS;EAC3B;EAIA,OAAO,QAAmD;GACxD,KAAK,UAAU,KAAK,WAAW;IAAE,GAAG,KAAK;IAAS,GAAG;GAAO,CAAC;GAC7D,KAAK,UAAU;IAAE,GAAG;IAAgB,GAAG,KAAK,QAAQ;GAAO;GAE3D,KAAK,YAAY;GACjB,KAAK,wBAAwB;GAC7B,KAAK,cAAc;GACnB,KAAK,oBAAoB;GACzB,KAAK,eAAe,CAAC;GACrB,KAAK,mBAAmB;GACxB,KAAK;GACL,KAAK,SAAS,KAAK,aAAa;GAChC,KAAK,QAAQ;GACb,KAAK,gBAAgB;EACvB;EAEA,UAAgB;GACd,KAAK,YAAY;GACjB,KAAK,oBAAoB;GACzB,KAAK,oBAAoB;GACzB,KAAK,WAAW,QAAQ;GACxB,KAAK,UAAU,QAAQ;GACvB,KAAK,WAAW;GAChB,IAAI,KAAK,aACP,KAAK,YAAY,OAAO;GAG1B,KAAK,SAAS,UAAU,OAAO,oBAAoB;GACnD,KAAK,SAAS,gBAAgB,+BAA+B;GAE7D,MAAM,QAAQ;EAChB;EAIA,kBAAkB,QAA0C;GAG1D,IAAI,OAAO,WAAW,OAAO,eAC3B,OAAO,iBAAiB;GAG1B,OAAO;EACT;EAEA,eAAsC;GACpC,KAAK,oBAAoB;GACzB,MAAM,QAAQ,gBAAgB,KAAK,eAAe,KAAK,QAAQ;GAC/D,KAAK,oBAAoB,sBAAsB,QAAQ,UAAU,SAAS;IACxE,KAAK,mBAAmB,UAAU,IAAI;IACtC,KAAK,WAAW,SAAS;GAC3B,CAAC;GAED,OAAO;EACT;EAEA,cAA4B;GAC1B,KAAK,aAAa,EAAE,QAAQ,MAAM,CAAC;GAEnC,IAAI,KAAK,aAAa;IACpB,KAAK,YAAY,QAAQ;IACzB,KAAK,cAAc;GACrB;GAEA,KAAK,SAAS,QAAQ;GAEtB,IAAI,KAAK,OAAO;IACd,KAAK,MAAM,QAAQ;IACnB,KAAK,QAAQ;GACf;GAEA,IAAI,KAAK,aAAa;IACpB,KAAK,YAAY,QAAQ;IACzB,KAAK,cAAc;GACrB;GAEA,IAAI,KAAK,gBAAgB;IACvB,KAAK,eAAe,QAAQ;IAC5B,KAAK,iBAAiB;GACxB;GAEA,IAAI,KAAK,UAAU;IACjB,KAAK,SAAS,QAAQ,OAAO;IAC7B,KAAK,WAAW;GAClB;GAEA,IAAI,KAAK,cAAc;IACrB,KAAK,aAAa,QAAQ,OAAO;IACjC,KAAK,eAAe;GACtB;GAEA,IAAI,KAAK,aAAa;IACpB,KAAK,YAAY,QAAQ;IACzB,KAAK,cAAc;GACrB;GAEA,IAAI,KAAK,UAAU;IACjB,KAAK,SAAS,QAAQ;IACtB,KAAK,WAAW;GAClB;GAEA,IAAI,KAAK,cAAc;IACrB,KAAK,aAAa,QAAQ;IAC1B,KAAK,eAAe;GACtB;GAEA,IAAI,KAAK,UAAU;IACjB,KAAK,SAAS,UAAU;IACxB,KAAK,SAAS,QAAQ,OAAO;IAC7B,KAAK,WAAW;GAClB;GAEA,KAAK,MAAM,cAAc,KAAK,cAAc;IAC1C,WAAW,UAAU;IACrB,WAAW,QAAQ,OAAO;GAC5B;GAEA,KAAK,eAAe,CAAC;GAErB,IAAI,KAAK,YAAY;IACnB,KAAK,WAAW,UAAU;IAC1B,KAAK,aAAa;GACpB;GAEA,IAAI,KAAK,kBACP,KAAK,iBAAiB,OAAO;EAEjC;EAEA,eAA4C;GAC1C,OAAO;IAAE,OAAO,KAAK;IAAQ,QAAQ,KAAK;GAAQ;EACpD;EAEA,kBAA0B,QAAiC;GACzD,OAAO,QAAQ,KAAK,QAAQ,OAAO,KAAK,OAAO,aAAa;EAC9D;EAEA,oBAA4B,QAAiC;GAC3D,OAAO,KAAK,QAAQ,iBAAiB,OAAO,eAAe;EAC7D;EAEA,mBAA2B,QAAiC;GAC1D,OAAO,QAAQ,KAAK,QAAQ,YAAY,KAAK,OAAO,cAAc;EACpE;EAEA,cAAsB,MAAsB;GAC1C,OAAO,KAAK,QAAQ,WAAW,aAAa,MAAM,cAAc,KAAK,QAAQ,UAAU,IAAI;EAC7F;EAEA,eAAuB,QAAiC;GACtD,IAAI,CAAC,KAAK,QAAQ,YAChB,OAAO;GAIT,IAAI,OAAO,KAAK,QAAQ,eAAe,YACrC,OAAO,KAAK,gBAAgB,OAAO,GAAG,CAAC,CAAC,SAAS;GAGnD,OACE,KAAK,kBAAkB,MAAM,KAC7B,QAAQ,KAAK,QAAQ,aAAa,KACjC,QAAQ,KAAK,QAAQ,gBAAgB,KAAK,OAAO,aAAa,SAC9D,QAAQ,KAAK,QAAQ,WAAW,KAAK,OAAO,YAAY;EAE7D;EAEA,iBAA+B;GAC7B,MAAM,gBAAgB,eAAe,KAAK,OAAO;GACjD,KAAK,iBAAiB;GAEtB,IAAI,KAAK,QAAQ,MAAM,SAAS;IAC9B,KAAK,WAAW,KAAK,QAAQ,MAAM,QAAQ,KAAK,aAAa,CAAC;IAC9D,KAAK,SAAS,OAAO,KAAK,SAAS,OAAO;IAC1C;GACF;GAEA,IACE,CAAC,cAAc,WAAW,CAAC,cAAc,UAAU,CAAC,cAAc,SAClE,CAAC,cAAc,UAAU,CAAC,cAAc,SAExC;GAGF,KAAK,WAAW,cAAc;IAC5B,SAAS,cAAc;IACvB,QAAQ,cAAc;IACtB,OAAO;KACL,SAAS,KAAK,cAAc,KAAK,QAAQ,kBAAkB;KAC3D,QAAQ,KAAK,cAAc,KAAK,QAAQ,iBAAiB;KACzD,OAAO,KAAK,cAAc,KAAK,QAAQ,gBAAgB;KACvD,MAAM,KAAK,cAAc,KAAK,QAAQ,eAAe;KACrD,MAAM,KAAK,cAAc,KAAK,QAAQ,eAAe;IACvD;IACA,SAAS,cAAc;IACvB,QAAQ,KAAK;IACb,OAAO,cAAc;IACrB,QAAQ,cAAc;GACxB,CAAC;GACD,KAAK,SAAS,OAAO,KAAK,SAAS,OAAO;GAE1C,IAAI,cAAc,SAChB,KAAK,iBAAiB,oBAAoB;IACxC,MAAM,KAAK;IACX,QAAQ,KAAK;IACb,kBAAkB,KAAK,gBAAgB;IACvC,mBAAmB,UAAU,YAAY;KACvC,KAAK,OAAO,UAAU,QAAQ,CAAC,EAAE,iBAAiB,OAAO;IAC3D;IACA,eAAe,KAAK,OAAO,wBAAwB,IAAI;IACvD,aAAa,KAAK,OAAO,oBAAoB,KAAK,OAAO,aAAa,oBAAoB,CAAC,CAAC;GAC9F,CAAC;EAEL;EAEA,UAAwB;GACtB,KAAK,gBAAgB,IAAI,IAAI,KAAK,QAAQ,QAAQ,KAAI,WAAU,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;GACrF,KAAK,cAAc,KAAK,QAAQ,iBAC9B,8BAA8B,KAAK,WAAW,SAAS,CAAC,IACxD;GACF,KAAK,SAAS,UAAU,IAAI,oBAAoB;GAChD,KAAK,SAAS,UAAU,OAAO,4BAA4B,QAAQ,KAAK,QAAQ,aAAa,CAAC;GAC9F,KAAK,SAAS,UAAU,OAAO,sBAAsB,QAAQ,KAAK,QAAQ,YAAY,CAAC;GACvF,KAAK,SAAS,UAAU,OAAO,mBAAmB,QAAQ,KAAK,QAAQ,aAAa,CAAC;GACrF,IAAI,KAAK,QAAQ,kBACf,KAAK,SAAS,aAAa,iCAAiC,KAAK,QAAQ,gBAAgB;QAEzF,KAAK,SAAS,gBAAgB,+BAA+B;GAG/D,MAAM,EAAE,UAAU,KAAK;GACvB,KAAK,eAAe;GAEpB,IAAI,MAAM,OACR,KAAK,aAAa,MAAM,MAAM,KAAK,aAAa,CAAC;GAGnD,MAAM,mBAAmB,QAAQ,KAAK,QAAQ,YAAY;GAC1D,MAAM,mBAAmB,OAAO,KAAK,QAAQ,iBAAiB,WAAW,KAAK,QAAQ,eAAe,CAAC;GAGtG,MAAM,oBACJ,QAAQ,KAAK,QAAQ,UAAU,KAC9B,QAAQ,KAAK,QAAQ,YAAY,KAAK,CAAC,KAAK,QAAQ;GACvD,MAAM,oBAAoB,OAAO,KAAK,QAAQ,eAAe,WAAW,KAAK,QAAQ,aAAa,CAAC;GAEnG,IAAI,KAAK,QAAQ,YACf,KAAK,QAAQ,WAAW;IACtB,MAAM,KAAK;IACX,aAAY,cAAa,KAAK,gBAAgB,SAAS;GACzD,CAAC;GAGH,IAAI,KAAK,QAAQ,eACf,KAAK,cAAc,iBAAiB;IAClC,MAAM,KAAK;IACX,QAAQ,KAAK;IACb,YAAW,cAAa,KAAK,cAAc,IAAI,SAAS,KAAK;IAC7D,mBAAkB,cAAa;KAC7B,MAAM,SAAS,KAAK,OAAO,UAAU,SAAS;KAI9C,OAAO,OAAO,QAAQ,2BAA2B,aAC/C,CAAC,GAAG,OAAO,uBAAuB,CAAC,CAAC,KAAK,CAAC,IAC1C,CAAC;IACL;IACA,iBAAgB,cACd,KAAK,OAAO,UAAU,SAAS,CAAC,EAAE,eAAe;IACnD,cAAc,WAAW,UAAU;KACjC,KAAK,OAAO,UAAU,SAAS,CAAC,EAAE,eAAe,KAAK;IACxD;GACF,CAAC;GAGH,KAAK,UAAU,aAAa;IAC1B,gBAAgB,KAAK,QAAQ;IAC7B,SAAS,KAAK,QAAQ;IACtB,WAAW,QAAQ,KAAK,QAAQ,WAAW;IAC3C,WACE,KAAK,QAAQ,iBACb,KAAK,QAAQ,QAAQ,MAAK,WAAU,OAAO,UAAU,KAAK,oBAAoB,MAAM,CAAC;IACvF,UAAS,WAAU,KAAK,eAAe,MAAM;IAC7C,gBAAe,WACb,QAAQ,KAAK,WAAW,KAAK,KAAK,oBAAoB,MAAM,KAAK,CAAC,OAAO;IAC3E,OAAO;KACL,YAAY,KAAK,cAAc,KAAK,QAAQ,cAAc;KAC1D,QAAQ,KAAK,cAAc,KAAK,QAAQ,UAAU;KAClD,eAAe,KAAK,cAAc,KAAK,QAAQ,iBAAiB;KAChE,gBAAgB,KAAK,cAAc,KAAK,QAAQ,kBAAkB;KAClE,aAAa,KAAK,cAAc,KAAK,QAAQ,eAAe;IAC9D;IACA,eAAc,WAAU,KAAK,oBAAoB,MAAM;IACvD,cAAa,WAAU,KAAK,mBAAmB,MAAM;IACrD,aAAY,WAAU,KAAK,kBAAkB,MAAM;IACnD,QAAQ,KAAK;IACb,WAAW,QAAQ,KAAK,QAAQ,YAAY;IAC5C,UAAU,KAAK,QAAQ;IACvB,WAAW;IACX,WAAW,oBAAoB,iBAAiB,cAAc;IAC9D,OAAO,KAAK;GACd,CAAC;GACD,KAAK,QAAQ,WAAW;IACtB,eAAe,KAAK,QAAQ,iBAAiB,KAAK,QAAQ;IAC1D,gBAAgB,KAAK,QAAQ;IAC7B,eAAe,KAAK,QAAQ;IAC5B,sBAAsB,KAAK;IAC3B,sBACG,KAAK,eAAe;KAAE,OAAO,KAAK,aAAa;KAAO,UAAU,KAAK,aAAa;IAAS,IAAI;IAElG,wBAAyB,KAAK,WAAW,CAAC,KAAK,QAAQ,QAAQ,KAAK,QAAQ,UAAU;IACtF,kBAAmB,KAAK,QAAQ,gBAAgB,KAAK,YAAY,IAAI;IACrE,yBAAyB,KAAK,gBAAgB;IAC9C,eAAe,KAAK,OAAO,YAAY,CAAC,CAAC;IACzC,yBAAyB,KAAK,gBAAgB;IAC9C,sBAAsB,KAAK,cAAc,YAAY;IACrD,gBAAgB,KAAK,QAAQ;IAC7B,QAAQ,KAAK;IACb,mBAAmB;KACjB,IAAI,KAAK,YACP,OAAO,KAAK,WAAW;KAGzB,IAAI,KAAK,aACP,OAAO,KAAK,QAAQ;KAGtB,OAAO,OAAO,KAAK,QAAQ,UAAU,aAAa,KAAK,QAAQ,MAAM,IAAI,KAAK,QAAQ;IACxF;IACA,eAAe,KAAK,cAAc,KAAK,QAAQ,aAAa;IAC5D,UAAU,KAAK,QAAQ;IACvB,kBAAiB,SACd,KAAK,QAAQ,WAAW,aAAa,MAAM,kBAAkB,KAAK,QAAQ,UAAU,IAAI;IAC3F,WAAW;GACb,CAAC;GAED,KAAK,gBAAgB,SAAS,cAAc,OAAO;GACnD,KAAK,cAAc,UAAU,IAAI,gBAAgB;GACjD,IAAI,KAAK,QAAQ,gBACf,KAAK,cAAc,aAAa,QAAQ,MAAM;GAGhD,KAAK,cAAc,OAAO,KAAK,QAAQ,SAAS,KAAK,MAAM,OAAO;GAElE,KAAK,mBAAmB,SAAS,cAAc,KAAK;GACpD,KAAK,iBAAiB,UAAU,IAAI,mBAAmB;GACvD,IAAI,KAAK,QAAQ,gBAGf,KAAK,iBAAiB,WAAW;GAGnC,KAAK,iBAAiB,OAAO,KAAK,aAAa;GAE/C,IAAI,KAAK,QAAQ,cAAc;IAC7B,KAAK,WAAW,cAAc,KAAK,OAAO;IAC1C,KAAK,iBAAiB,OAAO,KAAK,SAAS,OAAO;GACpD;GAEA,IAAI,KAAK,QAAQ,gBAAgB;IAG/B,KAAK,eAAe,cAAc,KAAK,SAAS,uBAAuB;IACvE,KAAK,iBAAiB,OAAO,KAAK,aAAa,OAAO;GACxD;GAEA,KAAK,SAAS,OAAO,KAAK,gBAAgB;GAE1C,IAAI,mBAAmB;IACrB,MAAM,WAAW,kBAAkB,YAAY;IAC/C,MAAM,iBAAiB,MAAM;IAC7B,MAAM,uBAAuB;KAC3B,IAAI,gBAAgB;MAClB,MAAM,OAAO,eAAe,KAAK,aAAa,CAAC;MAC/C,OAAO;OAAE,SAAS,KAAK;OAAS,eAAe,KAAK,SAAS;OAAG,eAAe,KAAK,UAAU;MAAE;KAClG;KAEA,MAAM,WAAW,iBAAiB;MAChC,MAAM,kBAAkB,QAAQ;MAChC,QAAQ,KAAK;MACb,iBAAiB,kBAAkB,mBAAmB;KACxD,CAAC;KACD,OAAO;MAAE,SAAS,SAAS;MAAS,eAAe,SAAS,OAAO,KAAK,iBAAiB,CAAC;MAAG,SAAS,KAAA;KAAU;IAClH;IAEA,IAAI,aAAa,SAAS,aAAa,QAAQ;KAC7C,MAAM,aAAa,eAAe;KAGlC,IAAI,CAAC,gBACH,WAAW,QAAQ,UAAU,IAAI,yBAAyB;KAG5D,KAAK,iBAAiB,OAAO,WAAW,OAAO;KAC/C,KAAK,aAAa,KAAK,UAAU;IACnC;IAEA,IAAI,aAAa,YAAY,aAAa,QAAQ;KAChD,MAAM,aAAa,eAAe;KAClC,KAAK,SAAS,OAAO,WAAW,OAAO;KACvC,KAAK,aAAa,KAAK,UAAU;IACnC;GACF,OAAO,IAAI,KAAK,QAAQ,gBACtB,KAAK,eAAe,sBAAsB;IACxC,eAAe,KAAK,QAAQ;IAC5B,OAAO,KAAK,OAAO,YAAY,CAAC,CAAC,KAAK;IACtC,wBAAwB,KAAK;IAC7B,gBAAgB,KAAK,WAAW,SAAS;IACzC,UAAU,KAAK,QAAQ;IACvB,WAAW,KAAK,QAAQ;GAC1B,CAAC;GAGH,KAAK,gBAAgB;GACrB,KAAK,aAAa;GAClB,KAAK,QAAQ;EACf;EAEA,qBAAmC;GAGjC,aAAa,GAAG,KAAK,UAAU,gBAAe,UAAS;IACrD,KAAK,yBAAyB,KAAiC;GACjE,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,gBAAe,UAAS;IACrD,KAAK,iBAAiB;IACtB,KAAK,eAAe,KAA8B;GACpD,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,iBAAgB,UAAS;IACtD,MAAM,UAAW,MAAgC;IACjD,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS,SAAS,OAAO,GAC7C,KAAK,iBAAiB;GAE1B,CAAC;GAID,aAAa,GAAG,KAAK,UAAU,iBAAiB,qBAAoB,UAAS;IAE3E,KADkB,qBAAqB,KACpC,CAAC,EAAE,yBAAyB,CAAC,CAAC,KAAK;GACxC,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,kBAAkB,qBAAoB,UAAS;IAE5E,KADkB,qBAAqB,KACpC,CAAC,EAAE,0BAA0B,CAAC,CAAC,KAAK;GACzC,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,iBAAgB,UAAS;IACtD,IAAI,CAAC,KAAK,QAAQ,SAChB;IAGF,MAAM,QAAQ,KAAK,yBAAyB,MAAM,MAAqB;IACvE,IAAI,SAAS,MAAM,KAAK,YAAY,GAAG;KACrC,KAAK,aAAa,IAAI,MAAM,IAAI;KAChC,KAAK,cAAc,MAAM,IAAI;IAC/B;GACF,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,aAAa,uBAAsB,UAAS;IACzE,KAAK,qBAAqB,KAAK;GACjC,CAAC;GAED,MAAM,oBAAoB,UAAU,KAAa,UAAkB;IACjE,IAAI,KAAK,QACP,KAAK,OAAO,UAAU,GAAG,CAAC,EAAE,eAAe,UAAU,KAAK,KAAA,IAAY,KAAK;GAE/E,GAAG,kBAAkB;GAErB,aAAa,GAAG,KAAK,UAAU,aAAa,yBAAwB,UAAS;IAC3E,MAAM,QAAS,MAAM,kBAAkB,MAAM;IAC7C,kBAAkB,MAAM,QAAQ,oBAAqB,MAAM,KAAK;GAClE,CAAC;GAED,MAAM,oBAAoB,UAAU,UAAkB;IACpD,IAAI,KAAK,QACP,KAAK,OAAO,gBAAgB,UAAU,KAAK,KAAA,IAAY,KAAK;GAEhE,GAAG,kBAAkB;GAErB,aAAa,GAAG,KAAK,UAAU,aAAa,yBAAwB,UAAS;IAC3E,MAAM,QAAS,MAAM,kBAAkB,MAAM;IAC7C,kBAAkB,MAAM,KAAK;GAC/B,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,aAAa,uBAAsB,UAAS;IACzE,MAAM,SAAU,MAAM,kBAAkB,MAAM;IAC9C,KAAK,OAAO,OAAO,QAAQ,OAAO,QAAQ,UAAW;GACvD,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,aAAa,yBAAwB,UAAS;IAC3E,MAAM,SAAU,MAAM,kBAAkB,MAAM;IAC9C,KAAK,aAAa,OAAO,QAAQ,OAAO,QAAQ,YAAa;GAC/D,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,aAAa,2BAA0B,UAAS;IAC7E,MAAM,SAAU,MAAM,kBAAkB,MAAM;IAC9C,KAAK,gBAAgB,OAAO,MAAM;GACpC,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,aAAa,+BAA+B;IACzE,MAAM,EAAE,UAAU,GAAG,kBAAkB,KAAK,gBAAgB,iBAAiB,CAAC;IAC9E,CAAC,YAAY,YAAA,CAAa,KAAK,QAAQ;KAAE,OAAO;KAAY,GAAG;IAAc,CAAC;GAChF,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,aAAa,8BAA8B;IACxE,KAAK,MAAM;GACb,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,aAAa,6BAA6B;IACvE,KAAK,KAAK;GACZ,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,aAAa,6BAA6B;IACvE,KAAK,KAAK;GACZ,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,iBAAiB,mBAAkB,UAAS;IACzE,KAAK,mBAAmB,KAAK;GAC/B,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,kBAAkB,mBAAkB,UAAS;IAC1E,KAAK,mBAAmB,KAAK;GAC/B,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,aAAa,sBAAqB,UAAS;IACxE,KAAK,oBAAoB,KAAK;GAChC,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,cAAc,sBAAqB,UAAS;IACzE,MAAM,QAAS,MAAM,kBAAkB,MAAM;IAC7C,KAAK,OAAO,sBAAsB,MAAM,OAAO;GACjD,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,aAAa,gBAAe,UAAS;IAElE,MAAM,QADU,MAAM,kBAAkB,MAAM,OAAA,CAC1B,QAAQ;IAE5B,IAAI,SAAS,SAAS;KACpB,KAAK,OAAO,UAAU;KACtB;IACF;IAEA,IAAI,SAAS,QAAQ;KACnB,KAAK,OAAO,aAAa;KACzB;IACF;IAEA,IAAI,SAAS,QAAQ;KACnB,KAAK,OAAO,SAAS;KACrB;IACF;IAEA,IAAI,SAAS,QAAQ;KACnB,KAAK,OAAO,SAAS;KACrB;IACF;IAEA,KAAK,OAAO,aAAa,OAAO,IAAI,CAAC;GACvC,CAAC;GAED,aAAa,GAAG,KAAK,UAAU,cAAc,qBAAoB,UAAS;IACxE,MAAM,SAAU,MAAM,kBAAkB,MAAM;IAC9C,KAAK,OAAO,YAAY,OAAO,OAAO,KAAK,CAAC;GAC9C,CAAC;EACH;EAEA,qBAA6B,OAA8C;GAEzE,MAAM,OADU,MAAM,kBAAkB,MAAM,OAAA,CAC3B,QAAQ,IAAI,CAAC,EAAE,QAAQ;GAC1C,IAAI,CAAC,KACH;GAIF,KADoB,OAAO,UAAU,GAChC,CAAC,EAAE,wBAAwB,CAAC,GAAG,KAAK;EAC3C;EAMA,yBAAiC,QAA4E;GAC3G,MAAM,cAAc,OAAO,QAAqB,QAAQ;GACxD,IAAI,CAAC,eAAe,CAAC,KAAK,cAAc,SAAS,WAAW,GAC1D,OAAO;GAGT,MAAM,WAAW,YAAY,QAAQ;GACrC,IAAI,CAAC,UACH,OAAO;GAGT,MAAM,aAAa,YAAY,QAAQ,IAAI;GAE3C,IAAI,WAAW,kBAAkB,KAAK,MAAM,SAAS;IACnD,MAAM,QAAQ,WAAW,QAAQ;IACjC,IAAI,UAAU,KAAA,GACZ,OAAO;IAGT,OAAO;KAAE;KAAa,MAAM;MAAE,UAAU,OAAO,KAAK;MAAG;KAAS;IAAE;GACpE;GAEA,IAAI,eAAe,KAAK,QAAQ,QAAQ,mBACtC,OAAO;IAAE;IAAa,MAAM;KAAE,UAAU;KAAI;IAAS;GAAE;GAGzD,OAAO;EACT;EAEA,eAAuB,OAAyB;GAC9C,IAAI,CAAC,KAAK,aACR;GAGF,MAAM,QAAQ,KAAK,yBAAyB,MAAM,MAAqB;GACvE,IAAI,OAEF,KAAK,YAAY,IAAI,MAAM,IAAI;EAEnC;EAEA,yBAAiC,OAA4B;GAC3D,IAAI,CAAC,KAAK,aACR;GAGF,MAAM,SAAS,MAAM;GAKrB,IACE,KAAK,QAAQ,YACZ,MAAM,WAAW,MAAM,YACxB,CAAC,KAAK,gBACN,CAAC,OAAO,QAAQ,yBAAyB,GACzC;IACA,MAAM,MAAM,MAAM,IAAI,YAAY;IAClC,IAAI,QAAQ,OAAO,CAAC,MAAM,UAAU;KAClC,MAAM,eAAe;KACrB,KAAK,KAAK;KACV;IACF;IAEA,IAAK,QAAQ,OAAO,MAAM,YAAa,QAAQ,KAAK;KAClD,MAAM,eAAe;KACrB,KAAK,KAAK;KACV;IACF;GACF;GAEA,IAAI,KAAK,gBAAgB,KAAK,mBAAmB,MAAM,GAAG;IAIxD,IAAI,MAAM,QAAQ,SAAS;KACzB,IAAI,CAAC,MAAM,kBAAkB;MAC3B,MAAM,eAAe;MACrB,KAAK,aAAa,EAAE,QAAQ,KAAK,CAAC;KACpC;KAEA;IACF;IAEA,IAAI,MAAM,QAAQ,UAAU;KAC1B,IAAI,CAAC,MAAM,kBACT,KAAK,YAAY;KAGnB;IACF;IAEA,IAAI,MAAM,QAAQ,OAAO;KACvB,MAAM,eAAe;KACrB,KAAK,aAAa,MAAM,WAAW,KAAK,CAAC;KACzC;IACF;IAGA;GACF;GAKA,IAAI,WAAW,KAAK,kBAAkB;IACpC,MAAM,SAAS,KAAK,YAAY,IAAI;IACpC,IAAI,UAAU,MAAM,QAAQ,OAAO;KACjC,MAAM,eAAe;KACrB,KAAK,eAAe,MAAM;IAC5B;IAEA;GACF;GAEA,MAAM,QAAQ,KAAK,yBAAyB,MAAM;GAClD,IAAI,CAAC,OACH;GAGF,IAAI,WAAW,MAAM,aAAa;IAEhC,IAAI,MAAM,QAAQ,UAChB,MAAM,YAAY,MAAM,EAAE,eAAe,KAAK,CAAC;IAGjD;GACF;GAEA,IAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,MAAM;IAC/C,MAAM,eAAe;IACrB,MAAM,SAAS,KAAK,cAAc,IAAI,MAAM,KAAK,QAAQ;IACzD,IAAI,MAAM,KAAK,aAAa,IAAI;KAC9B,IAAI,MAAM,QAAQ,WAAW,UAAU,KAAK,kBAAkB,MAAM,GAClE,KAAK,OAAO,UAAU,MAAM,KAAK,QAAQ,CAAC,EAAE,wBAAwB,CAAC,GAAG,KAAK;KAG/E;IACF;IAEA,IAAI,UAAU,KAAK,kBAAkB,MAAM,GAAG;KAC5C,KAAK,cAAc,MAAM,IAAI;KAC7B;IACF;IAEA,IAAI,MAAM,QAAQ,SAChB,KAAK,iBAAiB,MAAM,WAAW;IAGzC;GACF;GAEA,IAAI,MAAM,QAAQ,KAAK;IACrB,IAAI,KAAK,QAAQ,gBAAgB,MAAM,KAAK,YAAY,GAAG;KACzD,MAAM,eAAe;KAErB,KADiB,OAAO,YAAY,CAAC,CAAC,KAAK,MAAM,KAAK,SACnD,EAAE,eAAe;KACpB,KAAK,wBAAwB,MAAM,KAAK;IAC1C;IAEA;GACF;GAEA,IAAI,KAAK,QAAQ,kBAAkB,MAAM,WAAW,MAAM,YAAY,MAAM,KAAK,YAAY,GAAG;IAC9F,MAAM,MAAM,MAAM,IAAI,YAAY;IAClC,IAAI,QAAQ,KAAK;KACf,MAAM,eAAe;KACrB,KAAK,OAAO,eAAe;KAC3B,KAAK,WAAW,SAAS;KACzB;IACF;IAEA,IAAI,QAAQ,KAAK;KACf,MAAM,eAAe;KACrB,KAAK,mBAAmB;KACxB;IACF;GACF;GAEA,MAAM,SAAS,kBAAkB,MAAM,KAAK,MAAM,WAAW,MAAM,SAAS,MAAM,MAAM,KAAK,mBAAmB,CAAC;GACjH,IAAI,CAAC,QACH;GAGF,MAAM,eAAe;GAIrB,IAAI,KAAK,QAAQ,iBAAiB,MAAM,KAAK,YAAY,KAAK,OAAO,KAAK,YAAY,GAAG;IACvF,MAAM,YAAY,0BAChB,aAAa,KAAK,QAAQ,IAAK,gBAAgB,MAAM,QAAQ,MAAM,MAAO,MAAM;IAElF,IAAI,MAAM,YAAY,WAAW;KAC/B,KAAK,OAAO,oBAAoB,SAAS;KACzC,KAAK,WAAW,SAAS;KACzB;IACF;GACF;GAEA,IAAI,OAAO,cAAc,KAAK,KAAK,OAAO,eAAe,GACvD,KAAK,OAAO,SAAS;QAChB,IAAI,OAAO,cAAc,MAAM,KAAK,OAAO,mBAAmB,GACnE,KAAK,OAAO,aAAa;GAG3B,KAAK,eAAe,OAAO,IAAI;EACjC;EAIA,qBAA6B,OAAwC;GACnE,IAAI,CAAC,KAAK,QAAQ,eAChB,OAAO;GAGT,MAAM,UAAW,MAAM,kBAAkB,MAAM;GAC/C,MAAM,WAAW,QAAQ,QAAQ;GACjC,MAAM,WAAW,OAAO,QAAQ,QAAqB,IAAI,CAAC,EAAE,QAAQ,eAAe,EAAE;GACrF,IAAI,CAAC,YAAY,WAAW,GAC1B,OAAO;GAIT,OADY,KAAK,OAAO,YAAY,CAAC,CAAC,KAAK,SACjC,EAAE,YAAY,CAAC,CAAC,MAAK,SAAQ,KAAK,OAAO,OAAO,QAAQ,KAAK;EACzE;EAEA,iBAAyB,aAAgC;GACvD,YAAY,cAA2B,kBAAkB,CAAC,EAAE,MAAM,EAAE,eAAe,KAAK,CAAC;EAC3F;EAEA,kBAA0B,QAAiC;GACzD,IAAI,CAAC,KAAK,QAAQ,SAChB,OAAO;GAKT,OAAO,QAAQ,OAAO,MAAM,KAAK,OAAO,aAAa,QAAQ,OAAO,OAAO,aAAa;EAC1F;EAEA,cAAsB,MAAwB;GAC5C,MAAM,SAAS,KAAK,cAAc,IAAI,KAAK,QAAQ;GACnD,IAAI,CAAC,UAAU,CAAC,KAAK,kBAAkB,MAAM,GAC3C;GAGF,KAAK,aAAa;IAAE,QAAQ;IAAM,OAAO;GAAK,CAAC;GAE/C,MAAM,MAAM,KAAK,OAAO,YAAY,CAAC,CAAC,KAAK,KAAK;GAChD,IAAI,CAAC,KACH;GAGF,MAAM,QAAQ,IAAI,SAAS,KAAK,QAAQ;GACxC,MAAM,UAAiC;IACrC,MAAM,IAAI;IACV,QAAQ;IACR;IACA,SAAQ,cAAa,KAAK,YAAY,SAAS;IAC/C,cAAc,KAAK,YAAY;IAC/B,QAAQ,KAAK;GACf;GACA,MAAM,WAAoC,OAAO,OAAO,aAAa,WAAW,OAAO,WAAW,CAAC;GACnG,MAAM,SAAS,OAAO,SAAS,OAAO,OAAO,OAAO,IAAI,oBAAoB,UAAU,OAAO;GAE7F,KAAK,eAAe;IAClB,OAAO,IAAI;IACX,UAAU,KAAK;IACf,UAAU,KAAK;IACf,MAAM,IAAI;IACV,eAAe;GACjB;GACA,KAAK,UAAU;GACf,KAAK,sBAAsB;GAE3B,aAAa,QAAQ,KAAK,UAAU,kBAAkB;IAAE,MAAM,IAAI;IAAU,UAAU,KAAK;GAAS,CAAC;GAErG,IAAI,OAAO,OACT,KAAK,kBAAkB,IAAI;GAM7B,KAAK,6BAA6B,aAAoB;IACpD,IAAI,CAAC,KAAK,mBAAmB,SAAS,MAAc,GAClD,KAAK,aAAa,EAAE,QAAQ,KAAK,CAAC;GAEtC;GAEA,aAAa,GAAG,UAAU,mBAAmB,KAAK,yBAAyB;GAC3E,aAAa,GAAG,OAAO,SAAS,iBAAiB,aAAoB;IACnE,MAAM,UAAW,SAAwB;IACzC,IAAI,WAAW,CAAC,KAAK,mBAAmB,OAAO,GAC7C,KAAK,aAAa,EAAE,QAAQ,KAAK,CAAC;GAEtC,CAAC;GAED,KAAK,WAAW,SAAS;EAC3B;EAIA,mBAA2B,QAA8B;GACvD,IAAI,CAAC,UAAU,CAAC,KAAK,gBAAgB,CAAC,KAAK,SACzC,OAAO;GAGT,IAAI,KAAK,QAAQ,WAAW,MAAM,KAAK,KAAK,QAAQ,QAAQ,SAAS,MAAM,KAAK,KAAK,cAAc,SAAS,MAAM,GAChH,OAAO;GAGT,MAAM,cAAc,KAAK,gBAAgB;IACvC,UAAU,KAAK,aAAa;IAC5B,UAAU,KAAK,aAAa;GAC9B,CAAC;GACD,OAAO,QAAQ,aAAa,SAAS,MAAM,CAAC;EAC9C;EAEA,kBAA0B,MAAwB;GAChD,MAAM,cAAc,KAAK,gBAAgB,IAAI;GAC7C,MAAM,QAAQ,SAAS,cAAc,KAAK;GAC1C,MAAM,UAAU,IAAI,uBAAuB;GAE3C,IAAI,aAAa;IACf,MAAM,WAAW,KAAK,SAAS,sBAAsB;IACrD,MAAM,WAAW,YAAY,sBAAsB;IACnD,MAAM,MAAM,MAAM,GAAG,SAAS,MAAM,SAAS,IAAI;IACjD,MAAM,MAAM,OAAO,GAAG,SAAS,OAAO,SAAS,KAAK;IACpD,MAAM,MAAM,WAAW,GAAG,SAAS,MAAM;GAC3C;GAEA,MAAM,OAAO,KAAK,QAAS,OAAO;GAClC,KAAK,SAAS,OAAO,KAAK;GAC1B,KAAK,eAAe;EACtB;EAEA,YAAoB,OAAsB;GACxC,MAAM,UAAU,KAAK;GACrB,IAAI,CAAC,SACH;GAGF,MAAM,WAAW,KAAK,cAAc,IAAI,QAAQ,QAAQ,CAAC,EAAE;GAC3D,IAAI,UAAU;IACZ,MAAM,SAAS,SAAS,OAAO,QAAQ,IAAI;IAC3C,IAAI,WAAW,MAAM;KACnB,KAAK,mBAAmB,OAAO,WAAW,WAAW,SAAS,EAAE;KAChE;IACF;GACF;GAEA,KAAK,gBAAgB;GAGrB,IAAI,KAAK,QAAQ,SAAS;IACxB,KAAK,WAAW,KAAK;KACnB,OAAO,QAAQ;KAAO,UAAU,QAAQ;KAAU;KAAO,eAAe,QAAQ;IAClF,CAAC;IACD,IAAI,KAAK,WAAW,SAAS,eAC3B,KAAK,WAAW,MAAM;IAGxB,KAAK,aAAa,CAAC;IACnB,KAAK,sBAAsB;GAC7B;GAEA,aAAa,QAAQ,KAAK,UAAU,mBAAmB;IACrD,MAAM,QAAQ;IACd,UAAU,QAAQ;IAClB;IACA,eAAe,QAAQ;GACzB,CAAC;GACD,KAAK,aAAa,IAAI;IAAE,UAAU,QAAQ;IAAU,UAAU,QAAQ;GAAS,GAAG,EAAE,OAAO,KAAK,CAAC;EACnG;EAEA,cAA4B;GAC1B,MAAM,UAAU,KAAK;GACrB,IAAI,CAAC,SACH;GAGF,KAAK,gBAAgB;GACrB,aAAa,QAAQ,KAAK,UAAU,mBAAmB;IAAE,MAAM,QAAQ;IAAM,UAAU,QAAQ;GAAS,CAAC;GACzG,KAAK,aAAa,IAAI;IAAE,UAAU,QAAQ;IAAU,UAAU,QAAQ;GAAS,GAAG,EAAE,OAAO,KAAK,CAAC;EACnG;EAEA,aAAqB,SAAqD;GACxE,IAAI,CAAC,KAAK,cACR;GAGF,IAAI,QAAQ,UAAU,KAAK,SAAS,UAAU;IAC5C,KAAK,YAAY,KAAK,QAAQ,SAAS,CAAC;IAGxC,IAAI,KAAK,gBAAgB,QAAQ,OAC/B,KAAK,YAAY;IAGnB;GACF;GAIA,KAAK,YAAY;EACnB;EAEA,mBAA2B,SAAuB;GAChD,MAAM,SAAS,KAAK;GACpB,IAAI,CAAC,QACH;GAGF,MAAM,QAAQ,OAAO,QAAQ,QAAQ,yBAAyB,IAC5D,OAAO,UACP,OAAO,QAAQ,cAA2B,yBAAyB;GACrE,IAAI,CAAC,OACH;GAGF,IAAI,CAAC,KAAK,qBAAqB;IAC7B,KAAK,sBAAsB,SAAS,cAAc,KAAK;IACvD,KAAK,oBAAoB,UAAU,IAAI,iBAAiB;IACxD,KAAK,oBAAoB,KAAK,0BAA0B,EAAE;IAC1D,KAAK,SAAS,OAAO,KAAK,mBAAmB;GAC/C;GAEA,KAAK,oBAAoB,cAAc;GACvC,MAAM,UAAU,IAAI,YAAY;GAChC,MAAM,aAAa,gBAAgB,MAAM;GACzC,MAAM,aAAa,qBAAqB,KAAK,oBAAoB,EAAE;EACrE;EAEA,aAAqB,WAAyB;GAC5C,MAAM,UAAU,KAAK;GACrB,IAAI,CAAC,SACH;GAGF,MAAM,UAAU,KAAK,gBAAgB;GACrC,MAAM,eAAe,QAAQ,WAAU,WAAU,OAAO,QAAQ,QAAQ,QAAQ;GAChF,IAAI,OAA8B;GAClC,KAAK,IAAI,QAAQ,eAAe,WAAW,SAAS,KAAK,QAAQ,QAAQ,QAAQ,SAAS,WACxF,IAAI,KAAK,kBAAkB,QAAQ,MAAM,GAAG;IAC1C,OAAO,QAAQ;IACf;GACF;GAGF,KAAK,aAAa,EAAE,QAAQ,KAAK,CAAC;GAClC,IAAI,KAAK,cAEP;GAGF,IAAI,MAAM;IACR,MAAM,OAAO;KAAE,UAAU,QAAQ;KAAU,UAAU,KAAK;IAAI;IAC9D,KAAK,aAAa,IAAI,MAAM,EAAE,OAAO,KAAK,CAAC;IAC3C,KAAK,cAAc,IAAI;GACzB;EACF;EAEA,kBAAgC;GAC9B,IAAI,KAAK,2BAA2B;IAClC,aAAa,IAAI,UAAU,mBAAmB,KAAK,yBAAyB;IAC5E,KAAK,4BAA4B;GACnC;GAEA,IAAI,KAAK,SAAS;IAChB,aAAa,IAAI,KAAK,QAAQ,SAAS,cAAc;IACrD,KAAK,QAAQ,UAAU;GACzB;GAEA,IAAI,KAAK,cAAc;IACrB,KAAK,aAAa,OAAO;IACzB,KAAK,eAAe;GACtB;GAEA,IAAI,KAAK,qBAAqB;IAC5B,KAAK,oBAAoB,OAAO;IAChC,KAAK,sBAAsB;GAC7B;GAEA,KAAK,UAAU;GACf,KAAK,eAAe;GACpB,KAAK,sBAAsB;GAC3B,KAAK,WAAW,SAAS;EAC3B;EAEA,eAAuB,MAAwB;GAC7C,KAAK,aAAa,IAAI,MAAM,EAAE,OAAO,KAAK,CAAC;GAG3C,IAAI,KAAK,QAAQ,iBAAiB,KAAK,YAAY,GAAG;IACpD,MAAM,MAAM,KAAK,OAAO,YAAY,CAAC,CAAC,KAAK,KAAK;IAChD,IAAI,KACF,KAAK,OAAO,eAAe,IAAI,IAAI,KAAK,QAAQ;GAEpD;GAEA,IAAI,KAAK,gBAAgB,KAAK,YAAY,GAGxC,KAAK,aAAa,SAAS,cAAc,KAAK,QAAQ;EAE1D;EAIA,gBAAuC;GACrC,OAAO,KAAK,gBAAgB,CAAC,CAAC,KAAI,YAAW;IAC3C,IAAI,OAAO;IACX,OAAO,OAAO,SAAS,OAAO;IAC9B,WAAW,OAAO;GACpB,EAAE;EACJ;EAEA,oBAA+C;GAC7C,OAAO,KAAK,gBAAgB,CAAC,CAAC,KAAI,YAAW;IAAE,IAAI,OAAO;IAAK,WAAW,OAAO;GAAU,EAAE;EAC/F;EAEA,qBAAmC;GACjC,kBAAkB,KAAK,QAAQ,KAAK,kBAAkB,CAAC,CAAC,CAAC,MAAK,SAAQ;IACpE,IAAI,SAAS,IACX,aAAa,QAAQ,KAAK,UAAU,iBAAiB,EAAE,KAAK,CAAC;GAEjE,SAAS,CAAC,CAAC;EACb;EAEA,qBAAgD;GAC9C,MAAM,WAAW,KAAK,OAAO,YAAY,CAAC,CAAC,KAAK;GAChD,MAAM,YAAY,QAAQ,KAAK,QAAQ,UAAU,KAAK,QAAQ,KAAK,QAAQ,YAAY;GACvF,MAAM,eAAe,KAAK,OAAO,KAAK,kBAAkB,gBAAgB,KAAK,KAAK,QAAQ,SAAS;GAEnG,OAAO;IACL,WAAW,KAAK,oBAAoB,CAAC,CAAC,KAAI,WAAU,OAAO,EAAE;IAC7D;IACA,UAAU,YACR,KAAK,OAAO,MAAM,MAAM,WAAW,WACnC,KAAK,IAAI,GAAG,gBAAgB,QAAQ;IACtC;IACA,KAAK,aAAa,KAAK,QAAQ;GACjC;EACF;EAEA,gBAAwB,MAAsC;GAC5D,IAAI,KAAK,aAAa,IACpB,OAAO,KAAK,QAAQ,QAAQ,cAC1B,yCAAyC,KAAK,SAAS,GACzD;GAIF,OADmB,KAAK,MAAM,QAAQ,cAA2B,yBAAyB,KAAK,SAAS,GACxF,CAAC,EAAE,cAA2B,0BAA0B,KAAK,SAAS,GAAG,KAAK;EAChG;EAKA,uBAAqC;GACnC,IAAI,CAAC,KAAK,aACR;GAGF,MAAM,UAAU,KAAK,mBAAmB;GACxC,KAAK,YAAY,MAAM,OAAO;GAE9B,KAAK,cAAc,aACjB,iBACA,OAAO,QAAQ,UAAU,UAAU,KAAK,QAAQ,eAAe,IAAI,EAAE,CACvE;GAEA,MAAM,SAAS,KAAK,YAAY,IAAI;GAGpC,MAAM,WAAW,WAAW,QAAQ,UAAU,SAAS,IACrD;IAAE,UAAU,QAAQ,WAAW,IAAI,IAAI;IAAI,UAAU,QAAQ,UAAU;GAAG,IAC1E;GAEF,KAAK,MAAM,eAAe,KAAK,QAAQ,QAAQ,iBAA8B,uCAAuC,GAClH,cACE,aACA,aAAa,QAAQ,SAAS,aAAa,MAAM,YAAY,QAAQ,iBAAiB,SAAS,QACjG;GAGF,KAAK,MAAM,cAAc,KAAK,MAAM,QAAQ,iBAA8B,uBAAuB,GAAG;IAClG,MAAM,cAAc,aAAa,QAAQ,WAAW,QAAQ,gBAAgB,OAAO,SAAS,QAAQ;IACpG,KAAK,MAAM,eAAe,WAAW,iBAA8B,wBAAwB,GACzF,cAAc,aAAa,eAAe,YAAY,QAAQ,iBAAiB,SAAU,QAAQ;GAErG;GAEA,IAAI,CAAC,QACH;GAGF,MAAM,gBAAgB,KAAK,gBAAgB,MAAM;GAEjD,IAAI,eAAe;IACjB,IAAI,KAAK,YAAY,oBAAoB,GACvC,cAAc,MAAM,EAAE,eAAe,KAAK,CAAC;IAG7C;GACF;GAIA,IAAI,KAAK,kBAAkB,CAAC,KAAK,SAAS,SAAS,SAAS,aAAa,GACvE,KAAK,iBAAiB,MAAM,EAAE,eAAe,KAAK,CAAC;EAEvD;EAEA,gBAAwB,WAAyC;GAC/D,MAAM,SAAS,KAAK,OAAO,UAAU,SAAS;GAC9C,MAAM,SAAS,KAAK,cAAc,IAAI,SAAS;GAC/C,IAAI,CAAC,UAAU,CAAC,QACd,OAAO,CAAC;GAGV,MAAM,UAAgC,CAAC;GAEvC,IAAI,KAAK,kBAAkB,MAAM,GAAG;IAClC,MAAM,SAAS,OAAO,YAAY;IAClC,QAAQ,KACN;KACE,KAAK;KACL,OAAO,KAAK,QAAQ;KACpB,UAAU,WAAW;KACrB,OAAO;KACP,MAAM,KAAK,cAAc,KAAK,QAAQ,iBAAiB;KACvD,WAAW,OAAO,cAAc,KAAK;IACvC,GACA;KACE,KAAK;KACL,OAAO,KAAK,QAAQ;KACpB,UAAU,WAAW;KACrB,OAAO;KACP,MAAM,KAAK,cAAc,KAAK,QAAQ,kBAAkB;KACxD,WAAW,OAAO,cAAc,IAAI;IACtC,CACF;IAEA,IAAI,QACF,QAAQ,KAAK;KACX,KAAK;KACL,OAAO,KAAK,QAAQ;KACpB,OAAO;KACP,MAAM,KAAK,cAAc,KAAK,QAAQ,eAAe;KACrD,WAAW,OAAO,aAAa;IACjC,CAAC;GAEL;GAEA,IAAI,KAAK,QAAQ,eAAe;IAC9B,MAAM,SAAS,OAAO,YAAY;IAClC,IAAI,WAAW,SACb,QAAQ,KAAK;KACX,KAAK;KACL,OAAO,KAAK,QAAQ;KACpB,OAAO;KACP,MAAM,KAAK,cAAc,KAAK,QAAQ,YAAY;KAClD,WAAW,OAAO,IAAI,OAAO;IAC/B,CAAC;IAGH,IAAI,WAAW,OACb,QAAQ,KAAK;KACX,KAAK;KACL,OAAO,KAAK,QAAQ;KACpB,OAAO;KACP,MAAM,KAAK,cAAc,KAAK,QAAQ,UAAU;KAChD,WAAW,OAAO,IAAI,KAAK;IAC7B,CAAC;IAGH,IAAI,QACF,QAAQ,KAAK;KACX,KAAK;KACL,OAAO,KAAK,QAAQ;KACpB,OAAO;KACP,MAAM,KAAK,cAAc,KAAK,QAAQ,SAAS;KAC/C,WAAW,OAAO,IAAI,KAAK;IAC7B,CAAC;GAEL;GAEA,IAAI,KAAK,QAAQ,eAAe,OAAO,YAAY,OAAO;IACxD,MAAM,SAAS,KAAK,oBAAoB,CAAC,CAAC,QAAO,SAAQ,KAAK,cAAc,IAAI,MAAM,KAAK,cAAc,MAAM,CAAC;IAChH,MAAM,QAAQ,OAAO,WAAU,SAAQ,KAAK,OAAO,SAAS;IAC5D,QAAQ,KACN;KACE,KAAK;KACL,OAAO,KAAK,QAAQ;KACpB,UAAU,SAAS;KACnB,OAAO;KACP,MAAM,KAAK,cAAc,KAAK,QAAQ,aAAa;KACnD,WAAW,KAAK,YAAY,WAAW,EAAE;IAC3C,GACA;KACE,KAAK;KACL,OAAO,KAAK,QAAQ;KACpB,UAAU,UAAU,OAAO,SAAS;KACpC,OAAO;KACP,MAAM,KAAK,cAAc,KAAK,QAAQ,WAAW;KACjD,WAAW,KAAK,YAAY,WAAW,CAAC;IAC1C,CACF;GACF;GAEA,IAAI,KAAK,QAAQ,oBAAoB,OAAO,WAAW,GACrD,QAAQ,KAAK;IACX,KAAK;IACL,OAAO,KAAK,QAAQ;IACpB,OAAO;IACP,MAAM,KAAK,cAAc,KAAK,QAAQ,cAAc;IACpD,WAAW,OAAO,iBAAiB,KAAK;GAC1C,CAAC;GAKH,MAAM,UAAU,OAAO,KAAK,QAAQ,eAAe,aAAa,KAAK,QAAQ,aAAa;GAK1F,QAJqB,UAAU,QAAQ;IAAE,QAAQ;IAAQ,gBAAgB;GAAQ,CAAC,IAAI,QAAA,CAIlE,KAAI,WACrB,OAAO,OAAO;IAAE,GAAG;IAAQ,MAAM,KAAK,cAAc,OAAO,IAAI;GAAE,IAAI,MACxE;EACF;EAKA,kBAAoC;GAClC,MAAM,SAAS,KAAK,OAAO,kBAAkB,CAAC,CAAC,KAAI,WAAU,OAAO,EAAE;GACtE,MAAM,QAAQ,KAAK,OAAO,MAAM,MAAM,eAAe,CAAC;GACtD,IAAI,MAAM,WAAW,GACnB,OAAO;GAGT,MAAM,QAAQ,IAAI,IAAI,MAAM;GAC5B,MAAM,UAAU,MAAM,QAAO,OAAM,MAAM,IAAI,EAAE,CAAC;GAChD,MAAM,OAAO,IAAI,IAAI,OAAO;GAC5B,OAAO,CAAC,GAAG,SAAS,GAAG,OAAO,QAAO,OAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;EAC3D;EAEA,YAAoB,WAAmB,WAAyB;GAC9D,MAAM,SAAS,KAAK,OAAO,UAAU,SAAS;GAC9C,IAAI,CAAC,QACH;GAGF,MAAM,SAAS,KAAK,cAAc,MAAM;GACxC,MAAM,MAAM,KAAK,gBAAgB;GACjC,MAAM,YAAY,KAAK,oBAAoB,CAAC,CACzC,QAAO,SAAQ,KAAK,cAAc,IAAI,MAAM,MAAM,CAAC,CACnD,KAAI,SAAQ,KAAK,EAAE;GACtB,MAAM,WAAW,UAAU,UAAU,QAAQ,SAAS,IAAI;GAC1D,IAAI,CAAC,UACH;GAGF,MAAM,OAAO,IAAI,QAAQ,SAAS;GAClC,MAAM,KAAK,IAAI,QAAQ,QAAQ;GAC/B,IAAI,QAAQ;GACZ,IAAI,MAAM;GACV,KAAK,OAAO,eAAe,GAAG;EAChC;EAIA,kBAAgC;GAC9B,IAAI,CAAC,KAAK,QAAQ,aAChB;GAGF,KAAK,cAAc,2BAA2B;IAC5C,MAAM,KAAK;IACX,wBAAwB,KAAK;IAC7B,UAAU,WAAW,cAAc;KACjC,MAAM,SAAS,KAAK,OAAO,UAAU,SAAS;KAC9C,MAAM,SAAS,KAAK,OAAO,UAAU,SAAS;KAC9C,OAAO,QAAQ,UAAU,MAAM,KAC7B,cAAc,aACd,KAAK,cAAc,MAAO,MAAM,KAAK,cAAc,MAAO;IAC9D;IACA,YAAY,WAAW,WAAW,UAAU,KAAK,cAAc,WAAW,WAAW,KAAK;GAC5F,CAAC;EACH;EAIA,kBAAkC;GAGhC,IAAI,KAAK,QAAQ,kBAAmB,CAAC,KAAK,QAAQ,cAAc,CAAC,KAAK,QAAQ,cAC5E,OAAO;GAGT,MAAM,EAAE,WAAW,aAAa,KAAK,OAAO,MAAM,MAAM;GACxD,OAAO,YAAY;EACrB;EAEA,eAA6B;GAC3B,IAAI,CAAC,KAAK,QAAQ,UAChB;GAGF,KAAK,WAAW,wBAAwB;IACtC,MAAM,KAAK;IACX,wBAAwB,KAAK;IAC7B,YAAY,aAAa,aAAa,UAAU,KAAK,WAAW,aAAa,aAAa,KAAK;GACjG,CAAC;EACH;EAIA,WAAmB,aAAqB,aAAqB,OAAsB;GACjF,MAAM,SAAS,KAAK,gBAAgB;GACpC,MAAM,QAAQ,CAAC,GAAG,KAAK,QAAQ,KAAK;GACpC,MAAM,OAAO,SAAS;GACtB,MAAM,CAAC,QAAQ,MAAM,OAAO,MAAM,CAAC;GACnC,IAAI,SAAS,KAAA,GACX;GAKF,MAAM,SAAS,SAAS;GACxB,MAAM,KAAK,SAAS,OAAO,SAAS,IAAI;GACxC,MAAM,WAAW,QAAQ,KAAK,IAAI;GAClC,MAAM,OAAO,UAAU,GAAG,IAAI;GAE9B,aAAa,QAAQ,KAAK,UAAU,wBAAwB;IAC1D;IAAO;IAAM,UAAU;IAAM;GAC/B,CAAC;EACH;EAEA,cAAsB,WAAmB,WAAmB,OAAsB;GAChF,MAAM,MAAM,KAAK,gBAAgB;GACjC,MAAM,OAAO,IAAI,QAAQ,SAAS;GAClC,IAAI,SAAS,IACX;GAGF,IAAI,OAAO,MAAM,CAAC;GAGlB,MAAM,KAAK,IAAI,QAAQ,SAAS;GAChC,IAAI,OAAO,IACT;GAGF,IAAI,OAAO,QAAQ,KAAK,IAAI,IAAI,GAAG,SAAS;GAC5C,KAAK,OAAO,eAAe,GAAG;EAChC;EAEA,mBAA2B,OAA8C;GAEvE,MAAM,OADU,MAAM,kBAAkB,MAAM,OAAA,CAC3B,QAAQ,IAAI,CAAC,EAAE,QAAQ;GAC1C,IAAI,CAAC,KACH;GAKF,IAAI,MAAM,SAAS,aACjB,MAAM,eAAe;GAMvB,oBAAoB,KAAK,QAAQ,KAAK,QAAQ;GAG9C,CADe,KAAK,OAAO,gBAAgB,CAAC,CAAC,EAAE,EAAE,QAAQ,MAAK,SAAQ,KAAK,OAAO,OAAO,GAAG,EAAA,EACpF,iBAAiB,CAAC,CAAC,KAAK;EAClC;EAEA,oBAA4B,OAA8C;GACxE,MAAM,QAAS,MAAM,kBAAkB,MAAM;GAC7C,MAAM,aAAa,MAAM,QAAQ,IAAI;GACrC,IAAI,CAAC,YACH;GAGF,MAAM,QAAQ,OAAO,WAAW,QAAQ,WAAW;GACnD,MAAM,EAAE,SAAS,KAAK,OAAO,YAAY;GACzC,MAAM,WAAW,MAAM;GAEvB,IAAK,MAAgC,YAAY,KAAK,0BAA0B,MAAM;IACpF,MAAM,QAAQ,KAAK,IAAI,KAAK,uBAAuB,KAAK;IACxD,MAAM,MAAM,KAAK,IAAI,KAAK,uBAAuB,KAAK;IACtD,KAAK,OAAO,iBAAgB,aAAY;KACtC,MAAM,OAAO,EAAE,GAAG,SAAS;KAC3B,KAAK,MAAM,OAAO,KAAK,MAAM,OAAO,MAAM,CAAC,GACzC,IAAI,UACF,KAAK,IAAI,MAAM;UAEf,OAAO,KAAK,IAAI;KAIpB,OAAO;IACT,CAAC;GACH,OACE,KAAK,MAAM,EAAE,eAAe,QAAQ;GAGtC,KAAK,wBAAwB;EAC/B;EAEA,kBAAgC;GAC9B,MAAM,EAAE,iBAAiB,KAAK;GAC9B,IAAI,CAAC,cACH;GAGF,KAAK,cAAc,iBAAiB;IAClC,WAAU,YAAW,aAAa,OAAO;IACzC,kBAAkB;KAChB,MAAM,EAAE,UAAU,KAAK,OAAO;KAC9B,OAAO;MACL,eAAe,MAAM;MACrB,cAAe,MAAM,gBAAuC;MAC5D,YAAY,MAAM;MAClB,SAAS,MAAM;KACjB;IACF;IACA,SAAS,UAAU,YAAY;KAC7B,KAAK,aAAa,EAAE,QAAQ,MAAM,CAAC;KACnC,KAAK,cAAc;KACnB,KAAK,mBAAmB;KACxB,KAAK;KAEL,IAAI,EAAE,UAAU;KAChB,IAAI,KAAK,QAAQ,gBAAgB;MAC/B,MAAM,YAAY,QAAQ,WAAW,cAAc;MACnD,QAAQ,YAAY,SAAS,QAAQ,CAAC,GAAG,KAAK,cAAc,GAAG,SAAS,KAAK;MAC7E,KAAK,eAAe;MAIpB,IAAI,WAAW;OACb,KAAK,iBAAiB,YAAY;OAClC,KAAK,cAAc,UAAU;MAC/B;KACF;KAEA,KAAK,OAAO,YAAW,cAAa;MAClC,GAAG;MACH,MAAM;MACN,UAAU,SAAS;KACrB,EAAE;KACF,aAAa,QAAQ,KAAK,UAAU,iBAAiB;MACnD,OAAO,SAAS;MAChB,WAAW,SAAS;KACtB,CAAC;KACD,KAAK,iBAAiB,SAAS,SAAS;KACxC,KAAK,WAAW,SAAS;IAC3B;IACA,UAAS,UAAS;KAChB,KAAK,aAAa,EAAE,QAAQ,MAAM,CAAC;KACnC,KAAK,cAAc;KACnB,KAAK,mBAAmB;KACxB,KAAK,eAAe,CAAC;KACrB,KAAK;KACL,KAAK,OAAO,YAAW,cAAa;MAAE,GAAG;MAAU,MAAM,CAAC;MAAG,UAAU;KAAE,EAAE;KAC3E,aAAa,QAAQ,KAAK,UAAU,kBAAkB,EAAE,MAAM,CAAC;KAC/D,KAAK,WAAW,SAAS;IAC3B;IACA,kBAAiB,YAAW;KAC1B,MAAM,YAAY,QAAQ,KAAK,QAAQ,cAAc,KAAK,KAAK,aAAa,SAAS;KACrF,KAAK,UAAU,WAAW,WAAW,CAAC,SAAS;KAC/C,KAAK,cAAc,WAAW,WAAW,SAAS;KAClD,KAAK,iBAAiB,aAAa,aAAa,OAAO,OAAO,CAAC;IACjE;GACF,CAAC;GAED,KAAK,YAAY,KAAK;EACxB;EAKA,iBAA+B;GAC7B,IAAI,CAAC,KAAK,QAAQ,kBAAkB,CAAC,KAAK,eAAe,CAAC,KAAK,gBAAgB,KAAK,kBAClF;GAGF,MAAM,SAAS,KAAK,OAAO,YAAY,CAAC,CAAC,KAAK;GAC9C,IAAI,WAAW,KAAK,UAAU,KAAK,cAAc,GAC/C;GAIF,MAAM,aADU,OAAO,KAAK,QAAQ,mBAAmB,WAAW,KAAK,QAAQ,iBAAiB,CAAC,EAAA,CACvE,aAAa,KAAK,QAAQ;GACpD,MAAM,WAAW,KAAK,aAAa,SAAS,gBAAgB;GAC5D,MAAM,OAAO,SAAS,SAAS,SAAS;GACxC,IAAI,CAAC,QAAQ,KAAK,QAAQ,SAAS,IAAI,WACrC;GAGF,KAAK,mBAAmB;GACxB,KAAK,OAAO,aAAa,KAAK,OAAO,MAAM,MAAM,WAAW,YAAY,CAAC;EAC3E;EAMA,sBAA8B;GAC5B,IAAI,OAAO,KAAK,OAAO,gCAAgC,YACrD,OAAO;IACL,GAAG,KAAK,OAAO,2BAA2B;IAC1C,GAAG,KAAK,OAAO,4BAA4B;IAC3C,GAAG,KAAK,OAAO,yBAAyB;GAC1C;GAGF,IAAI,OAAO,KAAK,OAAO,0BAA0B,YAC/C,OAAO,KAAK,OAAO,sBAAsB;GAG3C,OAAO,KAAK,OAAO,kBAAkB;EACvC;EAIA,cAAsB,QAAkF;GACtG,OAAO,OAAO,OAAO,gBAAgB,aAAa,OAAO,YAAY,IAAI;EAC3E;EAEA,kBAAiD;GAC/C,MAAM,UAAiC,CAAC;GACxC,KAAK,MAAM,MAAM,KAAK,gBAAgB,GAAG;IACvC,MAAM,SAAS,KAAK,OAAO,UAAU,EAAE;IACvC,MAAM,SAAS,KAAK,cAAc,IAAI,EAAE;IACxC,IAAI,CAAC,UAAU,CAAC,QACd;IAGF,QAAQ,KAAK;KACX;KACA,OAAO,OAAO,SAAS,OAAO;KAC9B,SAAS,OAAO,WAAW;KAC3B,SAAS,OAAO,aAAa;IAC/B,CAAC;GACH;GAEA,OAAO;EACT;EAEA,kBAA4C;GAC1C,MAAM,UAA4B,CAAC;GACnC,KAAK,MAAM,UAAU,KAAK,oBAAoB,GAAG;IAC/C,MAAM,SAAS,KAAK,cAAc,IAAI,OAAO,EAAE;IAC/C,IAAI,QACF,QAAQ,KAAK,MAAM;GAEvB;GAEA,OAAO;EACT;EAEA,kBAAkD;GAChD,MAAM,QAAgC,CAAC;GACvC,KAAK,MAAM,UAAU,KAAK,OAAO,gBAAgB,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,GACjE,MAAM,OAAO,OAAO,MAAM,OAAO,QAAQ;GAG3C,OAAO;EACT;EAEA,sBAAwC;GACtC,OAAO,KAAK,OAAO,MAAM,MAAM,cAAc,KAAI,WAAU,OAAO,EAAE;EACtE;EAEA,cAAmC;GAGjC,MAAM,cAAc,KAAK,OAAO,oBAAoB,CAAC,CAAC,QAAO,WAAU,OAAO,aAAa,CAAC;GAC5F,MAAM,eAAe,KAAK,OAAO,kBAAkB,CAAC,CAAC,QAAO,WAAU,OAAO,aAAa,CAAC;GAG3F,MAAM,eAAe,QAAQ,KAAK,QAAQ,YAAY,KAAK,YAAY,SAAS;GAChF,MAAM,UAA0C,CAAC;GAEjD,KAAK,MAAM,CAAC,OAAO,WAAW,YAAY,QAAQ,GAChD,QAAQ,OAAO,MAAM;IACnB,MAAM;IACN,QAAQ,OAAO,SAAS,OAAO;IAC/B,MAAM,UAAU,YAAY,SAAS;IACrC,aAAa;GACf;GAGF,KAAK,MAAM,CAAC,OAAO,WAAW,aAAa,QAAQ,GACjD,QAAQ,OAAO,MAAM;IACnB,MAAM;IACN,QAAQ,OAAO,SAAS,KAAK;IAC7B,MAAM,UAAU;IAChB,aAAa;GACf;GAGF,OAAO;IACL;IACA,QAAQ,eACd;KACC,MAAM;KAAS,QAAQ;KAAG,MAAM;KAAO,aAAa;IACrD,IACA;GACI;EACF;EAEA,cAAqC;GACnC,OAAO,KAAK,QAAQ,WAAW,GAAG,uBAAuB,KAAK,QAAQ,aAAa;EACrF;EAEA,yBAAuC;GACrC,MAAM,MAAM,KAAK,YAAY;GAC7B,IAAI,CAAC,KACH;GAGF,IAAI,QAAuC;GAC3C,IAAI;IACF,MAAM,MAAM,OAAO,aAAa,QAAQ,GAAG;IAC3C,QAAQ,MAAO,KAAK,MAAM,GAAG,IAA+B;GAC9D,QAAQ;IACN;GACF;GAEA,IAAI,CAAC,OACH;GAGF,KAAK,aAAa,KAAK;EACzB;EAEA,wBAAsC;GACpC,MAAM,aAAa,KAAK,SAAS,cAAiC,qBAAqB;GACvF,IAAI,YACF,WAAW,WAAW,KAAK,WAAW,WAAW;GAGnD,MAAM,aAAa,KAAK,SAAS,cAAiC,qBAAqB;GACvF,IAAI,YACF,WAAW,WAAW,KAAK,WAAW,WAAW;EAErD;EAEA,iBAAyB,OAAqB;GAC5C,KAAK,UAAU,YAAY,KAAK,QAAQ,qBAAqB,EAAE,MAAM,CAAC,CAAC;EACzE;EAEA,UAAkB,SAAuB;GACvC,IAAI,KAAK,aACP,KAAK,YAAY,cAAc;EAEnC;EAEA,gBAAgC;GAC9B,IAAI,KAAK,QAAQ,cACf,OAAO,KAAK,OAAO,QAAQ,YAAY;GAGzC,IAAI,OAAO,KAAK,OAAO,wBAAwB,YAC7C,OAAO,KAAK,OAAO,gBAAgB,CAAC,CAAC,KAAK;GAG5C,OAAO,KAAK,OAAO,oBAAoB,CAAC,CAAC,KAAK;EAChD;EAEA,mBAA2B,UAA8B,MAAgC;GAGvF,IAAI,CAAC,KAAK,UACR;GAMF,IAAI,KAAK,QAAQ,UAAU;IACzB,IAAI,CAAC,KAAK,eACR,KAAK,gBAAgB,eAAe;KAClC,MAAM,MAAM,KAAK,YAAY;KAC7B,IAAI,CAAC,KACH;KAGF,IAAI;MACF,OAAO,aAAa,QAAQ,KAAK,KAAK,UAAU,KAAK,SAAS,CAAC,CAAC;KAClE,QAAQ,CAER;IACF,GAAG,0BAA0B;IAG/B,KAAK,cAAc;GACrB;GAWA,IACE,SAAS,YAAY,KAAK,WAC1B,SAAS,kBAAkB,KAAK,iBAChC,SAAS,iBAAiB,KAAK,gBAC9B,CAAC,KAAK,QAAQ,mBACZ,SAAS,YAAY,cAAc,KAAK,YAAY,aACnD,SAAS,YAAY,aAAa,KAAK,YAAY,WACvD;IACA,KAAK,aAAa;KAAE,QAAQ;KAAM,OAAO;IAAK,CAAC;IAC/C,KAAK,wBAAwB;IAC7B,KAAK,aAAa,MAAM;IAGxB,KAAK,cAAc,UAAU;GAC/B;GAEA,IAAI,SAAS,YAAY,KAAK,SAC5B,aAAa,QAAQ,KAAK,UAAU,sBAAsB,EACxD,SAAS,KAAK,QAChB,CAAC;GAGH,MAAM,iBACJ,SAAS,kBAAkB,KAAK,iBAAiB,SAAS,iBAAiB,KAAK;GAElF,IAAI,gBAAgB;IAClB,aAAa,QAAQ,KAAK,UAAU,qBAAqB;KACvD,eAAe,KAAK;KACpB,cAAc,KAAK,gBAAgB;IACrC,CAAC;IAED,IAAI,CAAC,KAAK,QAAQ,cAChB,KAAK,iBAAiB,KAAK,OAAO,oBAAoB,CAAC,CAAC,KAAK,MAAM;GAEvE;GAEA,IAAI,SAAS,iBAAiB,KAAK,cACjC,aAAa,QAAQ,KAAK,UAAU,wBAAwB;IAC1D,cAAc,KAAK;IACnB,eAAe,KAAK,iBAAiB;GACvC,CAAC;GAKH,IAAI,SAAS,eAAe,KAAK,cAAc,CAAC,KAAK,QAAQ,gBAC3D,aAAa,QAAQ,KAAK,UAAU,yBAAyB,EAC3D,YAAY,KAAK,WACnB,CAAC;GAGH,IAAI,SAAS,iBAAiB,KAAK,cACjC,aAAa,QAAQ,KAAK,UAAU,qBAAqB,EACvD,cAAc,KAAK,aACrB,CAAC;GAGH,IAAI,SAAS,kBAAkB,KAAK,eAClC,aAAa,QAAQ,KAAK,UAAU,sBAAsB,EACxD,eAAe,KAAK,cACtB,CAAC;GAGH,IAAI,SAAS,gBAAgB,KAAK,aAChC,aAAa,QAAQ,KAAK,UAAU,oBAAoB,EACtD,aAAa,KAAK,YACpB,CAAC;GAGH,IAAI,SAAS,qBAAqB,KAAK,kBACrC,aAAa,QAAQ,KAAK,UAAU,yBAAyB,EAC3D,kBAAkB,KAAK,iBACzB,CAAC;GAGH,IAAI,KAAK,aAAa;IAGpB,IAFsB,kBAAkB,SAAS,YAAY,KAAK,SAE/C;KACjB,IAAI,KAAK,WAAW,cAAc,GAAG;MAInC,KAAK,oBAAoB;MACzB,KAAK,OAAO,aAAa,CAAC;KAC5B;KAEA,KAAK,YAAY,KAAK;KACtB;IACF;IAEA,IAAI,SAAS,eAAe,KAAK,YAAY;KAC3C,MAAM,kBAAkB,KAAK,qBAAqB,KAAK,WAAW,cAAc;KAChF,KAAK,oBAAoB;KAEzB,IAAI,CAAC,iBACH,KAAK,YAAY,KAAK;IAE1B;GACF;EACF;EAEA,UAAwB;GACtB,IAAI,KAAK,cAAc;IACrB,KAAK,aAAa,SAAS,KAAK,OAAO,YAAY,CAAC,CAAC,KAAK,MAAM;IAChE,KAAK,aAAa,SAAS,YAAY;GACzC;GAIA,IAAI,KAAK,gBAAgB,KAAK,cAAc;IAC1C,MAAM,EAAE,aAAa,KAAK;IAE1B,IAAI,CADa,KAAK,aAAa,SAAS,gBAAgB,CAAC,CAAC,MAAK,SAAQ,KAAK,UAAU,QAC9E,GACV,KAAK,aAAa;KAAE,QAAQ;KAAM,OAAO;IAAK,CAAC;GAEnD;GAEA,KAAK,cAAc,aACjB,iBACA,OAAO,KAAK,QAAQ,WAAW,KAAK,cAAc,CAAC,CACrD;GAEA,KAAK,QAAQ,OAAO;IAClB,iBAAiB,KAAK,QAAQ,gBAAgB,KAAK,oBAAoB,IAAI;IAC3E,OAAO,KAAK,oBAAoB,CAAC,CAAC,KAAI,WAAU,OAAO,EAAE;IACzD,SAAS,KAAK,QAAQ,gBAAgB,KAAK,YAAY,IAAI;IAC3D,gBAAgB,KAAK,QAAQ,eAC3B,KAAK,OAAO,MAAM,MAAM,eAAe,mBACvC;IACF,OAAQ,KAAK,QAAQ,gBAAgB,KAAK,QAAQ,gBAAiB,KAAK,gBAAgB,IAAI;IAC5F,SAAS,KAAK,OAAO,MAAM,MAAM,WAAW,CAAC;IAC7C,WAAW,KAAK,QAAQ,eACtB;KACE,SAAS,KAAK,OAAO,qBAAqB;KAG1C,eAAe,KAAK,OAAO,sBAAsB,KAAK,CAAC,KAAK,OAAO,qBAAqB;IAC1F,IACA;GACJ,CAAC;GACD,KAAK,MAAM,OAAO;GAClB,KAAK,qBAAqB;GAI1B,IAAI,KAAK,uBAAuB,KAAK,SAAS,QAAQ,aAAa;IACjE,KAAK,sBAAsB;IAC3B,IAAI,KAAK,QAAQ,OACf,KAAK,QAAQ,MAAM;SAEnB,CAAC,KAAK,QAAQ,QAAQ,cAA2B,kBAAkB,KAAK,KAAK,QAAQ,QAAA,CAAS,MAAM,EAClG,eAAe,KACjB,CAAC;GAEL;GAEA,KAAK,UAAU,SAAS;GACxB,KAAK,YAAY,SAAS;GAE1B,KAAK,MAAM,YAAY,KAAK,cAC1B,SAAS,QAAQ;GAGnB,KAAK,eAAe;EACtB;EAEA,mBAA2B;GACzB,MAAM,EAAE,eAAe,KAAK,OAAO,MAAM;GACzC,OAAO;IACL,WAAW,KAAK,OAAO,aAAa;IACpC,WAAW,WAAW;IACtB,UAAU,WAAW;IACrB,WAAW,KAAK,cAAc;GAChC;EACF;EAGA,OAAO,gBAEL,QACA;GACA,OAAO,KAAK,KAAK,WAAY;IAC3B,MAAM,OAAOA,WAAS,oBAAoB,MAAM,OAAO,WAAW,WAAW,KAAA,IAAY,MAAM;IAE/F,IAAI,OAAO,WAAW,UACpB;IAGF,MAAM,UAAU;IAChB,IAAI,QAAQ,YAAY,KAAA,KAAa,OAAO,WAAW,GAAG,KAAK,WAAW,eACxE,MAAM,IAAI,UAAU,oBAAoB,OAAO,EAAE;IAGnD,QAAQ,OAAO,CAAE;GACnB,CAAC;EACH;CACF;;;;;;;;;;;;;;;;;;CC78EA,SAAS,0BAA0B;EAClC,OAAO;GACN,oBAAoB;GACpB,mBAAmB;GACnB,uBAAuB;IACtB,MAAM,IAAI,MAAM,4DAA4D;GAC7E;GACA,eAAe;IACd,MAAM,IAAI,MAAM,4DAA4D;GAC7E;GACA;GACA,WAAW,OAAO,eAAe,EAAE;GACnC,UAAU,OAAO,GAAG;GACpB,qBAAqB,IAAI,YAAY;IACpC,OAAO,iBAAiB,GAAG,GAAG,EAAE,SAAS,SAAS,QAAQ,CAAC;GAC5D;GACA,qBAAqB,OAAO,YAAY;IACvC,OAAO,WAAW,OAAO,EAAE,SAAS,SAAS,QAAQ,CAAC;GACvD;EACD;CACD;;;;;;;;;CCAA,MAAa,mBAAmB,cAAc;EAC5C,uBAAuB,wBAAwB;EAC/C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB,sBAAsB;EACvC,qBAAqB,0BAA0B;EAC/C,kBAAkB,uBAAuB;EACzC,mBAAmB,wBAAwB;EAC3C,gBAAgB,qBAAqB;EACrC,WAAW,EAAE,gBAAgBC,wBAAuB;EAGpD,SAAS;GACP,cAAcC;GACd,UAAUC;GACV,MAAMC;EACR;CACF,CAAC;;;;;;;;;CCpCD,MAAa,uBAAuB,cAAc;EAChD,uBAAuB,wBAAwB;EAC/C;EACA;EACA;EACA;EACA,kBAAkB,uBAAuB;EACzC,mBAAmB,wBAAwB;EAC3C,gBAAgB,qBAAqB;EACrC,WAAW,EAAE,gBAAgBC,wBAAuB;EACpD,SAAS;GACP,cAAcC;GACd,UAAUC;GACV,MAAMC;EACR;CACF,CAAC;;;;;;;;;CC5BD,IAAM,WAAN,cAA2EC,WAAwB;EACjG,WAAW,UAA2B;GACpC,OAAO;IAAE,GAAGA,WAAa;IAAS,UAAU;GAAiB;EAC/D;CACF;CAEA,mBAAmB,QAAQ"}
|