@scbt-ecom/ui 0.59.0 → 0.59.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks.js +2 -2
- package/dist/{index-Bnb3sS3q.js → index-D1FyOXDQ.js} +5595 -5630
- package/dist/index-D1FyOXDQ.js.map +1 -0
- package/dist/ui.js +504 -469
- package/dist/ui.js.map +1 -1
- package/dist/{useDebounce-CK7Ghu8F.js → useDebounce-QgEEiWs9.js} +7 -7
- package/dist/{useDebounce-CK7Ghu8F.js.map → useDebounce-QgEEiWs9.js.map} +1 -1
- package/dist/{useFieldsProgress-BeFcsVuB.js → useFieldsProgress-BXzIWmGP.js} +7 -7
- package/dist/{useFieldsProgress-BeFcsVuB.js.map → useFieldsProgress-BXzIWmGP.js.map} +1 -1
- package/dist/utils.js +10 -11
- package/dist/utils.js.map +1 -1
- package/dist/uuid-2wKG15vy.js +25 -0
- package/dist/uuid-2wKG15vy.js.map +1 -0
- package/dist/widget.js +900 -580
- package/dist/widget.js.map +1 -1
- package/dist/widgets/index.d.ts +1 -0
- package/dist/widgets/seoHeader/SeoHeader.d.ts +1 -2
- package/dist/widgets/seoHeader/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/index-Bnb3sS3q.js.map +0 -1
- package/dist/uuid-DQgafI7K.js +0 -24
- package/dist/uuid-DQgafI7K.js.map +0 -1
package/dist/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sources":["../lib/shared/ui/buttonIcon/ButtonIcon.tsx","../lib/shared/ui/skeleton/Skeleton.tsx","../lib/shared/ui/floatButton/FloatButton.tsx","../lib/shared/ui/icon/allowedIcons.ts","../node_modules/@radix-ui/react-tabs/dist/index.mjs","../lib/shared/ui/tabSwitcher/ui/TabContent.tsx","../lib/shared/ui/tabSwitcher/TabsSwitcher.tsx","../lib/shared/ui/modal/model/helpers.ts","../lib/shared/ui/modal/ui/ModalHeader.tsx","../lib/shared/ui/modal/Modal.tsx","../lib/shared/ui/table/ui/primitives/Primitives.tsx","../lib/shared/ui/table/ui/dataTableColumnHeader/DataTableColumnHeader.tsx","../node_modules/@tanstack/table-core/build/lib/index.mjs","../node_modules/@tanstack/react-table/build/lib/index.mjs","../lib/shared/ui/pagination/Pagination.tsx","../lib/shared/ui/table/TablePagination.tsx","../lib/shared/ui/table/Desktop.tsx","../lib/shared/ui/table/Mobile.tsx","../lib/shared/ui/table/Table.tsx","../lib/shared/ui/table/model/TableUtils.tsx","../lib/shared/ui/providers/NotificationProvider.tsx","../lib/shared/ui/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { type ComponentProps, forwardRef, type ReactElement } from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '$/shared/utils'\n\ntype ButtonClasses = {\n button: string\n icon: string\n}\n\nconst buttonConfig = cva(\n 'group flex items-center justify-center cursor-pointer rounded-full outline-offset-[3px] outline-transparent outline-2 transition duration-12 active:scale-[0.97] disabled:pointer-events-none',\n {\n variants: {\n intent: {\n primary:\n 'text-icon-white bg-color-primary-default hover:bg-color-primary-hover active:bg-color-primary-hover focus:bg-color-primary-hover focus:outline-primary-focus disabled:bg-color-primary-disabled',\n secondary:\n 'text-icon-primary-default bg-color-transparent border border-solid outline-offset-4 border-primary-default hover:bg-color-primary-tr-hover hover:text-icon-primary-default hover:border-primary-hover active:bg-color-primary-tr-pressed active:border-primary-hover active:text-icon-primary-hover focus:bg-color-primary-tr-focus focus:outline-primary-focus disabled:bg-color-blue-grey-200 disabled:border-transparent disabled:text-icon-primary-disabled',\n ghost:\n 'text-icon-primary-default bg-color-transparent hover:bg-color-primary-tr-hover focus:bg-color-primary-tr-focus focus:outline-primary-focus active:text-icon-primary-hover active:bg-color-primary-tr-pressed disabled:bg-color-transparent disabled:text-icon-primary-disabled'\n },\n size: {\n sm: 'size-8',\n md: 'size-10',\n lg: 'size-12'\n }\n },\n defaultVariants: {\n intent: 'primary',\n size: 'lg'\n }\n }\n)\n\ntype ButtonProps = VariantProps<typeof buttonConfig>\n\nexport interface IButtonIconProps extends Omit<ComponentProps<'button'>, 'className'>, ButtonProps {\n children: ReactElement\n classes?: Partial<ButtonClasses>\n}\n\nexport const ButtonIcon = forwardRef<HTMLButtonElement, IButtonIconProps>(\n ({ size, intent, children, classes, type = 'button', ...props }, ref) => {\n return (\n <button ref={ref} type={type} className={cn(buttonConfig({ intent, size }), classes?.button)} {...props}>\n <span className={cn(classes?.icon)}>{children}</span>\n </button>\n )\n }\n)\n","import type { HTMLAttributes } from 'react'\nimport { cn } from '$/shared/utils'\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n className?: string\n}\n\nexport const Skeleton = ({ className }: SkeletonProps) => {\n return <div className={cn('skeleton-apply h-full w-full', className)}></div>\n}\n","import { Button, type ButtonProps } from '../button'\nimport { ResponsiveContainer } from '../responsiveContainer'\nimport { cn } from '$/shared/utils'\n\ntype FloatButtonClasses = {\n root?: string\n button?: string\n}\n\nexport interface FloatButtonProps {\n isVisible: boolean\n classes?: FloatButtonClasses\n children: React.ReactElement\n buttonProps?: ButtonProps\n}\n\nexport const FloatButton = ({ isVisible, classes, children, buttonProps }: FloatButtonProps) => {\n return (\n <ResponsiveContainer\n className={cn(\n 'fixed bottom-0 left-1/2 z-[60] w-full max-w-[604px] -translate-x-1/2 translate-y-0 rounded-t-lg bg-color-white px-6 py-4 shadow-[0px_-6px_8px_0px_#2929290A] transition-transform duration-1000 desktop:hidden',\n { 'translate-y-[100%]': !isVisible },\n classes?.root\n )}\n >\n {children}\n <Button size='lg' className={cn('m-auto w-full', classes?.button)} {...buttonProps}>\n Оформить заявку\n </Button>\n </ResponsiveContainer>\n )\n}\n","import type { AllowedIcons } from '$/shared/ui/icon'\n\nexport const allowedIcons: {\n group: Record<string, AllowedIcons[]>\n flatten: AllowedIcons[]\n} = {\n group: {\n arrows: ['arrows/arrowCircle', 'arrows/arrowLink', 'arrows/arrowRight', 'arrows/arrowRotate', 'arrows/arrowScroll'],\n brandLogos: [\n 'brandLogos/logoBlack',\n 'brandLogos/logoBusiness',\n 'brandLogos/logoGray',\n 'brandLogos/logoInsurance',\n 'brandLogos/logoMain',\n 'brandLogos/logoWhite'\n ],\n communication: ['communication/phone'],\n editor: [\n 'editor/bold',\n 'editor/heading',\n 'editor/italic',\n 'editor/link',\n 'editor/list',\n 'editor/palette',\n 'editor/redo',\n 'editor/removeFormatting',\n 'editor/space',\n 'editor/strikethrough',\n 'editor/typography',\n 'editor/underline',\n 'editor/undo'\n ],\n files: ['files/border', 'files/borderError', 'files/documentFilled', 'files/documentOutline', 'files/upload'],\n general: [\n 'general/calendar',\n 'general/check',\n 'general/close',\n 'general/edit',\n 'general/hiddenEye',\n 'general/menu',\n 'general/plus',\n 'general/reorder',\n 'general/showEye'\n ],\n info: ['info/helpCircle', 'info/warningCircle'],\n logos: ['logos/beeline', 'logos/megafon', 'logos/mts'],\n social: ['social/classmates', 'social/telegram', 'social/vk'],\n status: ['status/badSmile', 'status/iconMark', 'status/iconRetry', 'status/iconUser']\n },\n flatten: [\n 'arrows/arrowCircle',\n 'arrows/arrowLink',\n 'arrows/arrowRight',\n 'arrows/arrowRotate',\n 'arrows/arrowScroll',\n 'brandLogos/logoBlack',\n 'brandLogos/logoBusiness',\n 'brandLogos/logoGray',\n 'brandLogos/logoInsurance',\n 'brandLogos/logoMain',\n 'brandLogos/logoWhite',\n 'communication/phone',\n 'editor/bold',\n 'editor/heading',\n 'editor/italic',\n 'editor/link',\n 'editor/list',\n 'editor/palette',\n 'editor/redo',\n 'editor/removeFormatting',\n 'editor/space',\n 'editor/strikethrough',\n 'editor/typography',\n 'editor/underline',\n 'editor/undo',\n 'files/border',\n 'files/borderError',\n 'files/documentFilled',\n 'files/documentOutline',\n 'files/upload',\n 'general/calendar',\n 'general/check',\n 'general/close',\n 'general/edit',\n 'general/hiddenEye',\n 'general/menu',\n 'general/plus',\n 'general/reorder',\n 'general/showEye',\n 'info/helpCircle',\n 'info/warningCircle',\n 'logos/beeline',\n 'logos/megafon',\n 'logos/mts',\n 'social/classmates',\n 'social/telegram',\n 'social/vk',\n 'status/badSmile',\n 'status/iconMark',\n 'status/iconRetry',\n 'status/iconUser'\n ]\n}\n","\"use client\";\n\n// packages/react/tabs/src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as TabPrimitive from '@radix-ui/react-tabs'\nimport { Accordion } from '../../accordion'\nimport type { ITabContent } from '../model/types'\nimport { cn } from '$/shared/utils'\n\nexport type TabContentClasses = {\n content?: string\n contentsWrapper?: string\n}\n\nexport interface TabContentProps {\n contents: ITabContent[]\n classes?: TabContentClasses\n}\n\nexport const TabContent = ({ classes, contents }: TabContentProps) => {\n return (\n <div className={cn('flex flex-col gap-4', classes?.contentsWrapper)}>\n {contents?.map(({ id, body, accordion }) => {\n if (accordion && accordion?.title) {\n return (\n <TabPrimitive.Content key={id} value={id} className={cn('py-8', classes?.content)}>\n <Accordion label={accordion?.title}>{body}</Accordion>\n </TabPrimitive.Content>\n )\n }\n\n return (\n <TabPrimitive.Content key={id} value={id} className={cn('py-8', classes?.content)}>\n {body}\n </TabPrimitive.Content>\n )\n })}\n </div>\n )\n}\n","'use client'\n\nimport * as TabPrimitive from '@radix-ui/react-tabs'\nimport type { TabRenderContent, TabsClasses } from './model/types'\nimport { TabContent } from './ui/TabContent'\nimport { cn } from '$/shared/utils'\n\nexport interface TabsSwitcherProps {\n renderContent: TabRenderContent\n value: string\n onChangeTab: (tab: string) => void\n defaultActiveTabId?: string\n classes?: TabsClasses\n}\n\nexport const TabsSwitcher = ({ renderContent, defaultActiveTabId = '1', value, onChangeTab, classes }: TabsSwitcherProps) => {\n return (\n <TabPrimitive.Root\n value={value}\n onValueChange={onChangeTab}\n defaultValue={defaultActiveTabId}\n className={cn('flex flex-col', classes?.root)}\n >\n <TabPrimitive.List className={cn('flex items-center gap-4', classes?.list)}>\n {renderContent?.triggers?.map(({ id, label }) => (\n <TabPrimitive.Trigger\n key={id}\n value={id}\n className={cn(\n 'desk-body-regular-l cursor-pointer rounded-sm bg-color-blue-grey-100 px-4 py-2 text-color-secondary outline outline-2 outline-offset-2 outline-transparent transition-colors hover:bg-color-blue-grey-200 hover:text-color-secondary data-[state=\"active\"]:!bg-color-primary-default data-[state=\"active\"]:!text-color-white',\n classes?.trigger\n )}\n >\n {label}\n </TabPrimitive.Trigger>\n ))}\n </TabPrimitive.List>\n <TabContent contents={renderContent?.contents} classes={classes?.tabContent} />\n </TabPrimitive.Root>\n )\n}\n","export const modalOverlayAnimation = {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n transition: { duration: 0.3, ease: 'easeInOut' }\n}\n\nexport const modalContentAnimation = {\n initial: { opacity: 0, scale: 0 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0 },\n transition: { duration: 0.3, ease: 'easeInOut' }\n}\n","import type { ModalProps } from '../Modal'\nimport { Heading, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type TModalHeaderClasses = {\n header?: string\n title?: string\n icon?: string\n}\n\nexport interface IModalHeaderProps extends Pick<ModalProps, 'closeModal' | 'title'> {\n classes?: TModalHeaderClasses\n}\n\nexport const ModalHeader = ({ title, closeModal, classes }: IModalHeaderProps) => {\n return (\n <div className={cn('flex items-start justify-between gap-4', classes?.header)}>\n {title && (\n <Heading as='h3' className={cn('flex-1 text-color-dark', classes?.title)}>\n {title}\n </Heading>\n )}\n <Icon\n onClick={closeModal}\n name='general/close'\n className={cn('size-8 cursor-pointer text-icon-dark-hover', classes?.icon)}\n />\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { modalContentAnimation, modalOverlayAnimation } from './model/helpers'\nimport { ModalHeader, type TModalHeaderClasses } from './ui/ModalHeader'\nimport { cn } from '$/shared/utils'\n\ntype ModalClasses = {\n overlay?: string\n modal?: string\n content?: string\n modalHeader?: TModalHeaderClasses\n}\n\nexport interface ModalProps {\n children: React.ReactElement\n isModalOpen: boolean\n classes?: ModalClasses\n isPortal?: boolean\n portalContainer?: HTMLElement\n title?: string | React.ReactElement\n closeModal: () => void\n}\n\nexport const Modal = ({\n title,\n children,\n isModalOpen,\n isPortal = true,\n portalContainer = globalThis?.document?.body,\n closeModal,\n classes\n}: ModalProps) => {\n if (isModalOpen) {\n document.body.style.overflow = 'hidden'\n } else {\n document.body.style.overflow = 'visible'\n }\n\n const modalBody = (\n <AnimatePresence>\n {isModalOpen && (\n <motion.div\n tabIndex={-1}\n onClick={closeModal}\n className={cn(\n 'fixed inset-0 flex h-screen w-screen items-center justify-center bg-color-overlay',\n { 'z-1000': !isPortal },\n classes?.overlay\n )}\n onKeyDown={(event) => {\n if (event.key === 'Escape') {\n closeModal()\n }\n }}\n data-test-id='modal-overlay'\n {...modalOverlayAnimation}\n >\n <motion.div\n onClick={(event) => event.stopPropagation()}\n className={cn(\n 'w-full max-w-[600px] rounded-md bg-color-white px-4 py-6 shadow-sm desktop:px-6 desktop:py-8',\n classes?.modal\n )}\n data-test-id='modal'\n {...modalContentAnimation}\n >\n <ModalHeader title={title} closeModal={closeModal} classes={classes?.modalHeader} />\n <div className={cn('mt-4', classes?.content)}>{children}</div>\n </motion.div>\n </motion.div>\n )}\n </AnimatePresence>\n )\n return <>{isPortal ? createPortal(modalBody, portalContainer) : modalBody}</>\n}\n","import { forwardRef } from 'react'\n\nexport const Table = forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>((props, ref) => (\n <table ref={ref} {...props} />\n))\nTable.displayName = 'Table'\n\nexport const TableHeader = forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>((props, ref) => (\n <thead ref={ref} {...props} />\n))\nTableHeader.displayName = 'TableHeader'\n\nexport const TableBody = forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>((props, ref) => (\n <tbody ref={ref} {...props} />\n))\nTableBody.displayName = 'TableBody'\n\nexport const TableFooter = forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>((props, ref) => (\n <tfoot ref={ref} {...props} />\n))\nTableFooter.displayName = 'TableFooter'\n\nexport const TableRow = forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>((props, ref) => (\n <tr ref={ref} {...props} />\n))\nTableRow.displayName = 'TableRow'\n\nexport const TableHead = forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>((props, ref) => (\n <th ref={ref} {...props} />\n))\nTableHead.displayName = 'TableHead'\n\nexport const TableCell = forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>((props, ref) => (\n <td ref={ref} {...props} />\n))\nTableCell.displayName = 'TableCell'\n\nexport const TableCaption = forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>((props, ref) => (\n <caption ref={ref} {...props} />\n))\nTableCaption.displayName = 'TableCaption'\n","import { type SortDirection } from '@tanstack/react-table'\nimport { useDevice } from '$/shared/hooks'\nimport { Icon } from '$/shared/ui/icon'\nimport { cn } from '$/shared/utils'\n\ntype DataTableColumnHeaderClasses = {\n root?: string\n content?: string\n icon?: string\n}\n\ntype DataTableColumnHeaderProps = {\n children: React.ReactNode\n isSorted: boolean | SortDirection\n toggleSorting: (desc: boolean) => void\n nextSortingOrder: boolean | SortDirection\n canSort: boolean\n classes?: DataTableColumnHeaderClasses\n}\n\nexport const DataTableColumnHeader = ({\n children,\n canSort,\n toggleSorting,\n nextSortingOrder,\n isSorted,\n classes\n}: DataTableColumnHeaderProps) => {\n const { root, content, icon } = classes || {}\n\n const { isDesktop } = useDevice()\n\n const isSortable = canSort && isDesktop\n\n return (\n <button\n type='button'\n className={cn('desk-body-regular-l flex items-center justify-center gap-x-2 text-color-secondary', root)}\n onClick={() => toggleSorting(!isSorted)}\n disabled={!isSortable}\n >\n <span className={cn('', content)}>{children}</span>\n {isSortable && (\n <Icon\n name='arrows/arrowRight'\n className={cn(\n 'size-4 rotate-90 text-color-current duration-100',\n {\n '-rotate-90': !nextSortingOrder\n },\n icon\n )}\n />\n )}\n </button>\n )\n}\n","/**\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\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 = _contextDocument || typeof document !== 'undefined' ? document : null;\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","/**\n * react-table\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 */\nimport * as React from 'react';\nimport { createTable } from '@tanstack/table-core';\nexport * from '@tanstack/table-core';\n\n//\n\n/**\n * If rendering headers, cells, or footers with custom markup, use flexRender instead of `cell.getValue()` or `cell.renderValue()`.\n */\nfunction flexRender(Comp, props) {\n return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, props) : Comp;\n}\nfunction isReactComponent(component) {\n return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);\n}\nfunction isClassComponent(component) {\n return typeof component === 'function' && (() => {\n const proto = Object.getPrototypeOf(component);\n return proto.prototype && proto.prototype.isReactComponent;\n })();\n}\nfunction isExoticComponent(component) {\n return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);\n}\nfunction useReactTable(options) {\n // Compose in the generic options to the user options\n const resolvedOptions = {\n state: {},\n // Dummy state\n onStateChange: () => {},\n // noop\n renderFallbackValue: null,\n ...options\n };\n\n // Create a new table and store it in state\n const [tableRef] = React.useState(() => ({\n current: createTable(resolvedOptions)\n }));\n\n // By default, manage table state here using the table's initial state\n const [state, setState] = React.useState(() => tableRef.current.initialState);\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n tableRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater);\n options.onStateChange == null || options.onStateChange(updater);\n }\n }));\n return tableRef.current;\n}\n\nexport { flexRender, useReactTable };\n//# sourceMappingURL=index.mjs.map\n","import { cn } from '../../utils'\nimport { Button } from '../button'\nimport { Icon } from '../icon'\n\ntype PaginationClasses = {\n root?: string\n button?: string\n ellipsis?: string\n active?: string\n}\n\nexport type PaginationProps = {\n /**\n * активная страница\n */\n page?: number\n /**\n * количество элементов после сужения страниц пример 1 - (1...6 7 8...n)\n * ^ ^\n */\n between?: number\n /**\n * количество элементов на странице\n */\n totalPages: number\n /**\n * функция для переключения страницы\n */\n changePage: (page: number) => void\n /**\n * включить переход на следующую/предыдущую страницу\n */\n next?: boolean\n /**\n * количество страниц для сужения\n */\n ellipsis?: number\n /**\n * дополнительные стили\n */\n classes?: PaginationClasses\n}\n\nexport const Pagination = ({\n page = 1,\n between = 3,\n totalPages,\n changePage,\n next = true,\n ellipsis = 0,\n classes\n}: PaginationProps) => {\n // гарантирует что between никогда не будет меньше 1\n between = between < 1 ? 1 : between\n // ограничиваем текущую страницу от 1 до totalPages\n page = Math.min(Math.max(page, 1), totalPages)\n // ограничиваем количество сужаемых элементов от 0 до between - 2\n ellipsis = Math.min(Math.max(ellipsis, 0), between - 2)\n\n const positions = Array.from({ length: totalPages }, (_, index) => index)\n\n // количество отображаемых страниц (включая активную)\n const visiblePages = between * 2 + 1\n\n let range\n\n if (totalPages < visiblePages) {\n // если общее количество страниц меньше, чем нужно отобразить, то отображаем все страницы\n range = positions\n } else if (page - 1 <= between) {\n // если текущая страница близка к началу, то отображаем страницы с начала\n range = positions.slice(0, visiblePages - (ellipsis > 0 ? ellipsis + 1 : 0))\n } else if (page + between >= totalPages) {\n // если текущая страница близка к концу, то отображаем страницы с конца\n range = positions.slice(totalPages - visiblePages + (ellipsis > 0 ? ellipsis + 1 : 0), totalPages)\n } else {\n // иначе показываем страницы обрезая их слева и справа\n range = positions.slice(\n page - 1 - (between - (ellipsis > 0 ? ellipsis + 1 : 0)),\n page + (between - (ellipsis > 0 ? ellipsis + 1 : 0))\n )\n }\n\n return (\n <div className={cn('flex', classes?.root)}>\n {next && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark disabled:text-icon-disabled', classes?.button)}\n disabled={page <= 1}\n onClick={() => page > 1 && changePage(page - 2)}\n >\n <Icon name='arrows/arrowRight' className='rotate-180' />\n </Button>\n )}\n {totalPages > visiblePages &&\n ellipsis > 0 &&\n positions.slice(0, page - 1 <= between ? 0 : ellipsis).map((value) => (\n <Button\n key={value}\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark', classes?.button)}\n onClick={() => value !== page - 1 && changePage(value)}\n >\n {value + 1}\n </Button>\n ))}\n {totalPages > visiblePages && ellipsis > 0 && page - 1 > between && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l pointer-events-none w-[40px] p-0 text-color-dark', classes?.ellipsis)}\n >\n ...\n </Button>\n )}\n {range.map((value) => {\n const active = value === page - 1\n\n return (\n <Button\n key={value}\n size='sm'\n className={cn(\n 'mob-body-regular-l w-[40px] p-0 text-color-dark',\n {\n [`text-color-primary-default ${classes?.active}`]: active\n },\n classes?.button\n )}\n intent={active ? 'secondary' : 'ghost'}\n onClick={() => !active && changePage(value)}\n >\n {value + 1}\n </Button>\n )\n })}\n {totalPages > visiblePages && ellipsis > 0 && page < totalPages - between && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l pointer-events-none w-[40px] p-0 text-color-dark', classes?.ellipsis)}\n >\n ...\n </Button>\n )}\n {totalPages > visiblePages &&\n ellipsis > 0 &&\n positions.slice(page >= totalPages - between ? totalPages : totalPages - ellipsis, totalPages).map((value) => (\n <Button\n key={value}\n size='sm'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark', classes?.button)}\n intent='ghost'\n onClick={() => value !== page - 1 && changePage(value)}\n >\n {value + 1}\n </Button>\n ))}\n {next && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark disabled:text-icon-disabled', classes?.button)}\n disabled={page >= totalPages}\n onClick={() => page < totalPages && changePage(page)}\n >\n <Icon name='arrows/arrowRight' />\n </Button>\n )}\n </div>\n )\n}\n","import { cn } from '../../utils'\nimport { Pagination, type PaginationProps } from '../pagination'\n\ntype TablePaginationClasses = {\n root?: string\n displayShown?: string\n pagination?: PaginationProps['classes']\n}\n\nexport type TablePaginationProps = {\n pageSize: number\n page: number\n rowsCount: number\n pageCount: number\n onPageIndexChange: (page: number) => void\n classes?: TablePaginationClasses\n}\n\nexport const TablePagination = ({ page, pageCount, pageSize, onPageIndexChange, rowsCount, classes }: TablePaginationProps) => {\n const prevRows = pageSize * page\n const rowsLeft = prevRows > rowsCount ? rowsCount : prevRows\n\n return (\n <div className={cn('flex w-full items-center justify-between', classes?.root)}>\n <span className={cn('desk-body-regular-m text-color-tetriary', classes?.displayShown)}>\n Показано {rowsLeft} из {rowsCount}\n </span>\n <Pagination\n totalPages={pageCount}\n changePage={(pageIndex) => onPageIndexChange(pageIndex)}\n page={page}\n ellipsis={1}\n classes={classes?.pagination}\n />\n </div>\n )\n}\n","import { flexRender, type Table as TTable } from '@tanstack/react-table'\nimport type { DataTableProps } from './model'\nimport { TablePagination } from './TablePagination'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from './ui'\nimport { cn } from '$/shared/utils'\n\ntype DesktopTableProps<TData extends {}> = Pick<DataTableProps<TData>, 'enableHeaders' | 'classes' | 'mode' | 'pagination'> & {\n table: TTable<TData>\n}\n\nexport const Desktop = <TData extends {}>({ mode, enableHeaders, table, classes, pagination }: DesktopTableProps<TData>) => {\n const paginationEnabled = pagination !== false && table.getPageCount() > 1\n\n const paginationProps = {\n pageCount: table.getPageCount(),\n rowsCount: table.getCoreRowModel().rows.length,\n pageSize: table.getState().pagination.pageSize,\n page: table.getState().pagination.pageIndex + 1,\n onPageIndexChange: table.setPageIndex,\n classes: classes?.pagination\n }\n\n return (\n <div className={cn('flex w-full flex-col gap-y-4', classes?.root)}>\n <Table className={cn('w-full', classes?.table)}>\n {enableHeaders && (\n <TableHeader className='px-2'>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow\n key={headerGroup.id}\n className={cn(\n 'w-full',\n {\n 'border-b border-b-[rgba(234,237,241,1)]': mode === 'solid'\n },\n classes?.tableHeader\n )}\n >\n {headerGroup.headers.map((header) => (\n <TableHead\n key={header.id}\n className={cn(\n 'py-3',\n {\n 'px-2': mode === 'odd'\n },\n classes?.tableHead\n )}\n >\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n )}\n <TableBody>\n {table.getRowModel().rows.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n className={cn(\n 'w-full',\n {\n '[&:not(:last-child)]:border-b [&:not(:last-child)]:border-b-[rgba(234,237,241,1)]': mode === 'solid',\n '[&:nth-child(odd)]:bg-color-primary-light-default': mode === 'odd'\n },\n classes?.tableRow\n )}\n >\n {row.getVisibleCells().map((cell, cellIndex) => (\n <TableCell\n key={cell.id}\n className={cn(\n 'py-3',\n {\n 'px-2': mode === 'odd',\n 'font-medium': cellIndex !== 0\n },\n classes?.tableCell\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={table.getRowCount()}>Not found</TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n {paginationEnabled ? (\n typeof pagination === 'function' ? (\n pagination(paginationProps)\n ) : (\n <TablePagination {...paginationProps} />\n )\n ) : null}\n </div>\n )\n}\n","import { flexRender, type Table } from '@tanstack/react-table'\nimport type { DataTableProps } from './model'\nimport { cn } from '$/shared/utils'\n\nexport const Mobile = <TData extends {}>({\n mode,\n enableHeaders,\n table,\n classes\n}: Pick<DataTableProps<TData>, 'enableHeaders' | 'classes' | 'mode'> & { table: Table<TData> }) => {\n return (\n <div className={cn('w-full', classes?.table)}>\n {table.getRowModel().rows.length ? (\n table.getRowModel().rows.map((row) => (\n <div\n key={row.id}\n className={cn(\n {\n '[&:not(:last-child)]:border-b [&:not(:last-child)]:border-b-[rgba(234,237,241,1)]': mode === 'solid',\n '[&:nth-child(odd)]:bg-color-primary-light-default': mode === 'odd'\n },\n classes?.tableRow\n )}\n >\n {row.getVisibleCells().map((cell, index) => {\n const header = table.getHeaderGroups()[0].headers[index]\n\n return (\n <div\n key={cell.id}\n className={cn(\n 'grid grid-cols-2 p-2',\n {\n 'px-2': mode === 'odd',\n 'font-medium': index !== 0\n },\n classes?.tableCell\n )}\n >\n {enableHeaders && (\n <p className='font-bold'>{flexRender(header.column.columnDef.header, header.getContext())}</p>\n )}\n <p>{flexRender(cell.column.columnDef.cell, cell.getContext())}</p>\n </div>\n )\n })}\n </div>\n ))\n ) : (\n <div>Not found</div>\n )}\n </div>\n )\n}\n","import { useState } from 'react'\nimport {\n type ColumnFiltersState,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type SortingState,\n useReactTable\n} from '@tanstack/react-table'\nimport { Desktop } from './Desktop'\nimport { Mobile } from './Mobile'\nimport { type DataTableProps } from './model'\nimport { useDevice } from '$/shared/hooks'\n\nexport const DataTable = <TData extends {}>({\n columns,\n data,\n enableHeaders = true,\n mode = 'solid',\n classes,\n pagination = true\n}: DataTableProps<TData>) => {\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([])\n const [sorting, setSorting] = useState<SortingState>([])\n\n const table = useReactTable({\n data,\n columns,\n state: { columnFilters, sorting },\n enableRowSelection: true,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n getPaginationRowModel: getPaginationRowModel()\n })\n\n const { isMobile } = useDevice()\n\n return isMobile ? (\n <Mobile table={table} enableHeaders={enableHeaders} mode={mode} classes={classes} />\n ) : (\n <Desktop table={table} enableHeaders={enableHeaders} mode={mode} pagination={pagination} classes={classes} />\n )\n}\n","import {\n type CellContext,\n type ColumnDef,\n type ColumnHelper,\n createColumnHelper,\n type HeaderContext\n} from '@tanstack/react-table'\nimport { DataTableColumnHeader } from '../ui'\nimport { TypeGuards } from '$/shared/utils'\n\ntype ColumnDefOptions<TData, TValue> = {\n enableSorting?: (keyof TData)[] | boolean\n enableColumnFilter?: (keyof TData)[] | boolean\n helper?: ColumnHelper<TData>\n cellAccessor?: Partial<Record<keyof TData, (cellContext: CellContext<TData, TValue>) => React.ReactNode>>\n headerAccessor?: Partial<\n Record<keyof TData, (key: keyof TData, headerContext: HeaderContext<TData, TValue>) => React.ReactNode>\n >\n}\n\nexport class TableUtils {\n static getColumnHelper<TData extends {}>(): ColumnHelper<TData> {\n return createColumnHelper<TData>()\n }\n\n static getColumns<TData extends {}, TValue = TData[keyof TData]>(\n template: TData,\n options?: ColumnDefOptions<TData, TValue>\n ): ColumnDef<TData>[] {\n const {\n helper = this.getColumnHelper<TData>(),\n enableColumnFilter = false,\n enableSorting = false,\n cellAccessor,\n headerAccessor\n } = options || {}\n\n const keys = Object.keys(template) as (keyof TData)[]\n\n return keys.map((key) => {\n return helper.accessor<any, TValue>(key, {\n header: (header) => {\n const { column } = header\n const accessor = headerAccessor ? headerAccessor[key] : null\n\n return (\n <DataTableColumnHeader\n isSorted={column.getIsSorted() === 'desc'}\n nextSortingOrder={column.getNextSortingOrder()}\n toggleSorting={column.toggleSorting}\n canSort={column.getCanSort()}\n >\n {accessor ? accessor(key, header) : (key as string)}\n </DataTableColumnHeader>\n )\n },\n cell: (cell) => {\n const accessor = cellAccessor ? cellAccessor[key] : null\n\n return accessor ? accessor(cell) : cell.getValue()\n },\n enableColumnFilter: TypeGuards.isBoolean(enableColumnFilter) ? enableColumnFilter : enableColumnFilter.includes(key),\n enableSorting: TypeGuards.isBoolean(enableSorting) ? enableSorting : enableSorting.includes(key)\n })\n }) as ColumnDef<TData>[]\n }\n}\n","'use client'\n\nimport { useEffect } from 'react'\nimport toast, { Toaster, useToasterStore } from 'react-hot-toast'\n\nexport interface NotificationProviderProps {\n maxToastViewLimit?: number\n toastDuration?: number\n}\n\nexport const NotificationProvider = ({ maxToastViewLimit = 2, toastDuration = 5000 }: NotificationProviderProps) => {\n const { toasts } = useToasterStore()\n\n useEffect(() => {\n toasts\n .filter((t) => t.visible)\n .filter((_, i) => i >= maxToastViewLimit)\n .forEach((t) => toast.dismiss(t.id))\n }, [maxToastViewLimit, toasts])\n\n return (\n <Toaster\n position='top-center'\n toastOptions={{\n duration: toastDuration\n }}\n />\n )\n}\n","import { type ReactElement } from 'react'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface BreadcrumbLink {\n label: string | ReactElement\n path: string\n isDisabled?: boolean\n}\ninterface BreadcrumbLinkWithoutPath {\n label: string\n isDisabled?: boolean\n}\n\nexport type LinksList = [...BreadcrumbLink[], BreadcrumbLinkWithoutPath]\n\nexport interface BreadcrumbsProps {\n linksList: LinksList\n}\n\n//TODO: Его должны переработать не использовать! DEPRECATED\n\nexport const Breadcrumbs = ({ linksList }: BreadcrumbsProps) => {\n return (\n <div aria-label='Breadcrumb' className='flex max-w-[840px] items-center gap-2'>\n {linksList.map((link) => (\n <>\n {'path' in link ? (\n <div\n className={cn(\n 'flex items-center gap-1 rounded-sm border-2 border-solid border-transparent px-1 focus-within:border-primary-focus',\n { 'pointer-events-none !border-transparent': link?.isDisabled }\n )}\n >\n <a\n href={link.path}\n target='_blank'\n rel='noreferrer'\n className={cn(\n 'desk-body-regular-m text-color-primary-default outline-none hover:text-color-primary-hover focus:text-color-primary-default',\n { '!text-color-disabled': link?.isDisabled }\n )}\n >\n {link.label}\n </a>\n <Icon\n name='arrows/arrowRight'\n className={cn('size-4 text-icon-primary-default', { '!text-icon-disabled': link?.isDisabled })}\n />\n </div>\n ) : (\n <div aria-current='page' className='desk-body-regular-m text-color-blue-grey-600'>\n {link.label}\n </div>\n )}\n </>\n ))}\n </div>\n )\n}\n"],"names":["buttonConfig","cva","ButtonIcon","forwardRef","size","intent","children","classes","type","props","ref","jsx","cn","Skeleton","className","FloatButton","isVisible","buttonProps","jsxs","ResponsiveContainer","Button","allowedIcons","TABS_NAME","createTabsContext","createTabsScope","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","React","forwardedRef","__scopeTabs","valueProp","onValueChange","defaultValue","orientation","dir","activationMode","tabsProps","direction","useDirection","value","setValue","useControllableState","useId","Primitive","TAB_LIST_NAME","TabsList","loop","listProps","context","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","composeEventHandlers","event","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","contentProps","isMountAnimationPreventedRef","rAF","Presence","present","baseId","Root2","List","Trigger","Content","TabContent","contents","id","body","accordion","TabPrimitive.Content","Accordion","TabsSwitcher","renderContent","defaultActiveTabId","onChangeTab","TabPrimitive.Root","TabPrimitive.List","_a","label","TabPrimitive.Trigger","modalOverlayAnimation","modalContentAnimation","ModalHeader","title","closeModal","Heading","Icon","Modal","isModalOpen","isPortal","portalContainer","modalBody","AnimatePresence","motion","createPortal","Table","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","DataTableColumnHeader","canSort","toggleSorting","nextSortingOrder","isSorted","root","content","icon","isDesktop","useDevice","isSortable","createColumnHelper","accessor","column","functionalUpdate","updater","input","makeStateUpdater","key","instance","old","isFunction","d","isNumberArray","val","flattenBy","arr","getChildren","flat","recurse","subArr","item","memo","getDeps","fn","opts","deps","result","depArgs","depTime","newDeps","dep","index","resultTime","depEndTime","resultEndTime","resultFpsPercentage","pad","str","num","getMemoOptions","tableOptions","debugLevel","onChange","_tableOptions$debugAl","createCell","table","row","columnId","getRenderValue","_cell$getValue","cell","feature","createColumn","columnDef","depth","parent","_ref","_resolvedColumnDef$id","resolvedColumnDef","accessorKey","accessorFn","originalRow","_result","_column$columns","orderColumns","_column$columns2","leafColumns","debug","createHeader","options","_options$id","header","leafHeaders","recurseHeader","h","Headers","allColumns","left","right","_left$map$filter","_right$map$filter","leftColumns","rightColumns","centerColumns","buildHeaderGroups","_left$map$filter2","orderedLeafColumns","_right$map$filter2","headerGroups","headerGroup","flatHeaders","_header$subHeaders","_header$subHeaders2","_header$subHeaders3","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","columns","createHeaderGroup","headersToGroup","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","isPlaceholder","bottomHeaders","recurseHeadersForSpans","headers","colSpan","rowSpan","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","createRow","original","rowIndex","subRows","parentId","_row$getValue","parentRows","currentRow","parentRow","allCells","acc","i","ColumnFaceting","includesString","filterValue","_filterValue$toString","search","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","arrIncludes","_row$getValue4","arrIncludesAll","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","min","max","rowValue","unsafeMin","unsafeMax","parsedMin","parsedMax","temp","filterFns","ColumnFiltering","state","firstRow","_table$options$filter","_table$options$filter2","_column$columnDef$ena","_table$options$enable","_table$options$enable2","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","filterFn","previousFilter","newFilter","shouldAutoRemoveFilter","_old$filter","newFilterObj","_old$map","_table","updateFn","_functionalUpdate","filter","defaultState","_table$initialState$c","_table$initialState","sum","_leafRows","childRows","next","nextValue","extent","mean","leafRows","count","median","values","mid","nums","a","b","unique","uniqueCount","_columnId","aggregationFns","ColumnGrouping","_toString","_props$getValue","_table$getState$group","_table$getState$group2","canGroup","_table$options$aggreg","_table$options$aggreg2","_table$initialState$g","_row$subRows","grouping","groupedColumnMode","nonGroupingColumns","col","g","ColumnOrdering","position","_getVisibleLeafColumns","_columns$","_columns","columnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","foundIndex","getDefaultColumnPinningState","ColumnPinning","columnIds","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","_d$columnDef$enablePi","leafColumnIds","isLeft","isRight","leftAndRight","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","defaultColumnSizing","getDefaultColumnSizingInfoState","ColumnSizing","_column$columnDef$min","_column$columnDef$max","columnSize","_ref2","_","rest","_header$column$getSiz","prevSiblingHeader","_contextDocument","canResize","e","isTouchStartEvent","startSize","columnSizingStart","clientX","newColumnSizing","updateOffset","eventType","clientXPos","_old$startOffset","_old$startSize","deltaDirection","deltaOffset","deltaPercentage","_ref3","headerSize","onMove","onEnd","contextDocument","mouseEvents","touchEvents","_e$touches$","passiveIfSupported","passiveEventSupported","_table$initialState$c2","_table$getHeaderGroup","_table$getHeaderGroup2","_table$getLeftHeaderG","_table$getLeftHeaderG2","_table$getCenterHeade","_table$getCenterHeade2","_table$getRightHeader","_table$getRightHeader2","passiveSupported","supported","noop","ColumnVisibility","childColumns","c","cells","makeVisibleColumnsMethod","getColumns","_value","obj","_target","GlobalFaceting","GlobalFiltering","_table$getCoreRowMode","_table$options$getCol","globalFilterFn","RowExpanding","registered","queued","_table$options$autoRe","expanded","_table$initialState$e","splitId","_expanded","exists","oldExpanded","rowId","_table$options$getIsR","_table$options$getRow","isFullyExpanded","canExpand","defaultPageIndex","defaultPageSize","getDefaultPaginationState","RowPagination","safeUpdater","_table$initialState$p","pageIndex","maxPageIndex","_table$initialState$p2","_table$initialState$p3","_table$initialState2","pageSize","topRowIndex","_table$options$pageCo","newPageCount","pageCount","pageOptions","_table$options$pageCo2","_table$options$rowCou","getDefaultRowPinningState","RowPinning","includeLeafRows","includeParentRows","leafRowIds","parentRowIds","rowIds","_old$top3","_old$bottom3","_old$top","_old$bottom","_old$top2","_old$bottom2","enableRowPinning","enablePinning","top","bottom","isTop","isBottom","_ref4","_visiblePinnedRowIds$","visiblePinnedRowIds","_ref5","_table$initialState$r","_pinningState$top","_pinningState$bottom","visibleRows","pinnedRowIds","_table$options$keepPi","allRows","topPinnedRowIds","bottomPinnedRowIds","topAndBottom","RowSelection","rowSelection","preGroupedFlatRows","resolvedValue","mutateRowIsSelected","rowModel","selectRowsFn","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","_table$getState$rowSe","totalSelected","_opts$selectChildren","selectedRowIds","isRowSelected","isSubRowSelected","_table$options$enable3","canSelect","includeChildren","newSelectedFlatRows","newSelectedRowsById","recurseRows","rows","_row$subRows2","selection","_selection$row$id","_row$subRows3","allChildrenSelected","someSelected","subRow","subRowChildrenSelected","reSplitAlphaNumeric","alphanumeric","rowA","rowB","compareAlphanumeric","toString","alphanumericCaseSensitive","text","compareBasic","textCaseSensitive","datetime","basic","aStr","bStr","aa","bb","an","bn","combo","sortingFns","RowSorting","firstRows","isString","_table$options$sortin","_table$options$sortin2","desc","multi","hasManualValue","existingSorting","existingIndex","newSorting","sortAction","nextDesc","_table$options$maxMul","_column$columnDef$sor","firstSortDirection","_column$columnDef$ena2","_table$getState$sorti","columnSort","_table$getState$sorti2","_table$getState$sorti3","_table$initialState$s","builtInFeatures","createTable","_options$_features","_options$initialState","_features","defaultOptions","mergeOptions","initialState","_feature$getInitialSt","queuedTimeout","coreInstance","cb","error","newOptions","searchAll","defaultColumn","_defaultColumn","_props$renderValue$to","_props$renderValue","columnDefs","recurseColumns","groupingColumnDef","flatColumns","getCoreRowModel","data","accessRows","originalRows","_row$originalSubRows","expandRows","expandedRows","handleRow","filterRows","filterRowImpl","filterRowModelFromLeafs","filterRowModelFromRoot","rowsToFilter","filterRow","_table$options$maxLea","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","newRow","_table$options$maxLea2","getFacetedRowModel","preRowModel","columnFilters","globalFilter","filterableIds","filterRowsImpl","getFacetedUniqueValues","_table$getColumn","facetedRowModel","facetedUniqueValues","j","_facetedUniqueValues$","getFilteredRowModel","resolvedColumnFilters","resolvedGlobalFilters","_filterFn$resolveFilt","globallyFilterableColumns","_globalFilterFn$resol","currentColumnFilter","currentGlobalFilter","filterMeta","getPaginationRowModel","pagination","flatRows","rowsById","pageStart","pageEnd","paginatedRowModel","getSortedRowModel","sorting","sortingState","sortedFlatRows","availableSorting","sort","columnInfoById","sortEntry","sortData","sortedData","_sortEntry$desc","columnInfo","sortUndefined","isDesc","sortInt","aValue","bValue","aUndefined","bUndefined","flexRender","Comp","isReactComponent","component","isClassComponent","isExoticComponent","proto","useReactTable","resolvedOptions","tableRef","setState","prev","Pagination","page","between","totalPages","changePage","ellipsis","positions","visiblePages","range","active","TablePagination","onPageIndexChange","rowsCount","prevRows","rowsLeft","Desktop","mode","enableHeaders","paginationEnabled","paginationProps","cellIndex","Mobile","DataTable","setColumnFilters","useState","setSorting","isMobile","TableUtils","template","helper","enableColumnFilter","enableSorting","cellAccessor","headerAccessor","TypeGuards","NotificationProvider","maxToastViewLimit","toastDuration","toasts","useToasterStore","useEffect","t","toast","Toaster","Breadcrumbs","linksList","link","Fragment"],"mappings":";;;;;;;;AASA,MAAMA,KAAeC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,QAAQ;AAAA,QACN,SACE;AAAA,QACF,WACE;AAAA,QACF,OACE;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IAER;AAAA,IACA,iBAAiB;AAAA,MACf,QAAQ;AAAA,MACR,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,GASaC,KAAaC;AAAA,EACxB,CAAC,EAAE,MAAAC,GAAM,QAAAC,GAAQ,UAAAC,GAAU,SAAAC,GAAS,MAAAC,IAAO,UAAU,GAAGC,EAAM,GAAGC,MAE7DC,gBAAAA,MAAC,UAAO,EAAA,KAAAD,GAAU,MAAAF,GAAY,WAAWI,EAAGZ,GAAa,EAAE,QAAAK,GAAQ,MAAAD,EAAA,CAAM,GAAGG,KAAA,gBAAAA,EAAS,MAAM,GAAI,GAAGE,GAChG,UAACE,gBAAAA,EAAA,IAAA,QAAA,EAAK,WAAWC,EAAGL,KAAA,gBAAAA,EAAS,IAAI,GAAI,UAAAD,EAAA,CAAS,EAChD,CAAA;AAGN,GC1CaO,KAAW,CAAC,EAAE,WAAAC,8BACjB,OAAI,EAAA,WAAWF,EAAG,gCAAgCE,CAAS,GAAG,GCQ3DC,KAAc,CAAC,EAAE,WAAAC,GAAW,SAAAT,GAAS,UAAAD,GAAU,aAAAW,QAExDC,gBAAAA,EAAA;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,WAAWP;AAAA,MACT;AAAA,MACA,EAAE,sBAAsB,CAACI,EAAU;AAAA,MACnCT,KAAA,gBAAAA,EAAS;AAAA,IACX;AAAA,IAEC,UAAA;AAAA,MAAAD;AAAA,MACAK,gBAAAA,EAAAA,IAAAS,GAAA,EAAO,MAAK,MAAK,WAAWR,EAAG,iBAAiBL,KAAA,gBAAAA,EAAS,MAAM,GAAI,GAAGU,GAAa,UAEpF,kBAAA,CAAA;AAAA,IAAA;AAAA,EAAA;AACF,GC3BSI,KAGT;AAAA,EACF,OAAO;AAAA,IACL,QAAQ,CAAC,sBAAsB,oBAAoB,qBAAqB,sBAAsB,oBAAoB;AAAA,IAClH,YAAY;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,eAAe,CAAC,qBAAqB;AAAA,IACrC,QAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,OAAO,CAAC,gBAAgB,qBAAqB,wBAAwB,yBAAyB,cAAc;AAAA,IAC5G,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,MAAM,CAAC,mBAAmB,oBAAoB;AAAA,IAC9C,OAAO,CAAC,iBAAiB,iBAAiB,WAAW;AAAA,IACrD,QAAQ,CAAC,qBAAqB,mBAAmB,WAAW;AAAA,IAC5D,QAAQ,CAAC,mBAAmB,mBAAmB,oBAAoB,iBAAiB;AAAA,EACtF;AAAA,EACA,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;ACxFA,IAAIC,KAAY,QACZ,CAACC,IAAmBC,EAAe,IAAIC,GAAmBH,IAAW;AAAA,EACvEI;AACF,CAAC,GACGC,KAA2BD,GAA6B,GACxD,CAACE,IAAcC,EAAc,IAAIN,GAAkBD,EAAS,GAC5DQ,KAAOC,EAAM;AAAA,EACf,CAACtB,GAAOuB,MAAiB;AACvB,UAAM;AAAA,MACJ,aAAAC;AAAA,MACA,OAAOC;AAAA,MACP,eAAAC;AAAA,MACA,cAAAC;AAAA,MACA,aAAAC,IAAc;AAAA,MACd,KAAAC;AAAA,MACA,gBAAAC,IAAiB;AAAA,MACjB,GAAGC;AAAA,IACT,IAAQ/B,GACEgC,IAAYC,GAAaJ,CAAG,GAC5B,CAACK,GAAOC,CAAQ,IAAIC,GAAqB;AAAA,MAC7C,MAAMX;AAAA,MACN,UAAUC;AAAA,MACV,aAAaC;AAAA,IACnB,CAAK;AACD,WAAuBzB,gBAAAA,EAAG;AAAA,MACxBiB;AAAA,MACA;AAAA,QACE,OAAOK;AAAA,QACP,QAAQa,GAAO;AAAA,QACf,OAAAH;AAAA,QACA,eAAeC;AAAA,QACf,aAAAP;AAAA,QACA,KAAKI;AAAA,QACL,gBAAAF;AAAA,QACA,UAA0B5B,gBAAAA,EAAG;AAAA,UAC3BoC,EAAU;AAAA,UACV;AAAA,YACE,KAAKN;AAAA,YACL,oBAAoBJ;AAAA,YACpB,GAAGG;AAAA,YACH,KAAKR;AAAA,UACjB;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAF,GAAK,cAAcR;AACnB,IAAI0B,KAAgB,YAChBC,KAAWlB,EAAM;AAAA,EACnB,CAACtB,GAAOuB,MAAiB;AACvB,UAAM,EAAE,aAAAC,GAAa,MAAAiB,IAAO,IAAM,GAAGC,EAAW,IAAG1C,GAC7C2C,IAAUvB,GAAemB,IAAef,CAAW,GACnDoB,IAAwB1B,GAAyBM,CAAW;AAClE,WAAuBtB,gBAAAA,EAAG;AAAA,MACxB2C;AAAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,GAAGD;AAAA,QACH,aAAaD,EAAQ;AAAA,QACrB,KAAKA,EAAQ;AAAA,QACb,MAAAF;AAAA,QACA,UAA0BvC,gBAAAA,EAAG;AAAA,UAC3BoC,EAAU;AAAA,UACV;AAAA,YACE,MAAM;AAAA,YACN,oBAAoBK,EAAQ;AAAA,YAC5B,GAAGD;AAAA,YACH,KAAKnB;AAAA,UACjB;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAiB,GAAS,cAAcD;AACvB,IAAIO,KAAe,eACfC,KAAczB,EAAM;AAAA,EACtB,CAACtB,GAAOuB,MAAiB;AACvB,UAAM,EAAE,aAAAC,GAAa,OAAAU,GAAO,UAAAc,IAAW,IAAO,GAAGC,EAAY,IAAKjD,GAC5D2C,IAAUvB,GAAe0B,IAActB,CAAW,GAClDoB,IAAwB1B,GAAyBM,CAAW,GAC5D0B,IAAYC,GAAcR,EAAQ,QAAQT,CAAK,GAC/CkB,IAAYC,GAAcV,EAAQ,QAAQT,CAAK,GAC/CoB,IAAapB,MAAUS,EAAQ;AACrC,WAAuBzC,gBAAAA,EAAG;AAAA,MACxBqD;AAAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,GAAGX;AAAA,QACH,WAAW,CAACI;AAAA,QACZ,QAAQM;AAAA,QACR,UAA0BpD,gBAAAA,EAAG;AAAA,UAC3BoC,EAAU;AAAA,UACV;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,iBAAiBgB;AAAA,YACjB,iBAAiBF;AAAA,YACjB,cAAcE,IAAa,WAAW;AAAA,YACtC,iBAAiBN,IAAW,KAAK;AAAA,YACjC,UAAAA;AAAA,YACA,IAAIE;AAAA,YACJ,GAAGD;AAAA,YACH,KAAK1B;AAAA,YACL,aAAaiC,EAAqBxD,EAAM,aAAa,CAACyD,MAAU;AAC9D,cAAI,CAACT,KAAYS,EAAM,WAAW,KAAKA,EAAM,YAAY,KACvDd,EAAQ,cAAcT,CAAK,IAE3BuB,EAAM,eAAgB;AAAA,YAEtC,CAAa;AAAA,YACD,WAAWD,EAAqBxD,EAAM,WAAW,CAACyD,MAAU;AAC1D,cAAI,CAAC,KAAK,OAAO,EAAE,SAASA,EAAM,GAAG,KAAGd,EAAQ,cAAcT,CAAK;AAAA,YACjF,CAAa;AAAA,YACD,SAASsB,EAAqBxD,EAAM,SAAS,MAAM;AACjD,oBAAM0D,IAAwBf,EAAQ,mBAAmB;AACzD,cAAI,CAACW,KAAc,CAACN,KAAYU,KAC9Bf,EAAQ,cAAcT,CAAK;AAAA,YAE9B,CAAA;AAAA,UACb;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAa,GAAY,cAAcD;AAC1B,IAAIa,KAAe,eACfC,KAActC,EAAM;AAAA,EACtB,CAACtB,GAAOuB,MAAiB;AACvB,UAAM,EAAE,aAAAC,GAAa,OAAAU,GAAO,YAAA2B,GAAY,UAAAhE,GAAU,GAAGiE,EAAY,IAAK9D,GAChE2C,IAAUvB,GAAeuC,IAAcnC,CAAW,GAClD0B,IAAYC,GAAcR,EAAQ,QAAQT,CAAK,GAC/CkB,IAAYC,GAAcV,EAAQ,QAAQT,CAAK,GAC/CoB,IAAapB,MAAUS,EAAQ,OAC/BoB,IAA+BzC,EAAM,OAAOgC,CAAU;AAC5D,WAAAhC,EAAM,UAAU,MAAM;AACpB,YAAM0C,IAAM,sBAAsB,MAAMD,EAA6B,UAAU,EAAK;AACpF,aAAO,MAAM,qBAAqBC,CAAG;AAAA,IACtC,GAAE,EAAE,GACkB9D,gBAAAA,EAAG,IAAC+D,IAAU,EAAE,SAASJ,KAAcP,GAAY,UAAU,CAAC,EAAE,SAAAY,EAAO,MAAuBhE,gBAAAA,EAAG;AAAA,MACtHoC,EAAU;AAAA,MACV;AAAA,QACE,cAAcgB,IAAa,WAAW;AAAA,QACtC,oBAAoBX,EAAQ;AAAA,QAC5B,MAAM;AAAA,QACN,mBAAmBO;AAAA,QACnB,QAAQ,CAACgB;AAAA,QACT,IAAId;AAAA,QACJ,UAAU;AAAA,QACV,GAAGU;AAAA,QACH,KAAKvC;AAAA,QACL,OAAO;AAAA,UACL,GAAGvB,EAAM;AAAA,UACT,mBAAmB+D,EAA6B,UAAU,OAAO;AAAA,QAClE;AAAA,QACD,UAAUG,KAAWrE;AAAA,MAC7B;AAAA,IACA,GAAO;AAAA,EACP;AACA;AACA+D,GAAY,cAAcD;AAC1B,SAASR,GAAcgB,GAAQjC,GAAO;AACpC,SAAO,GAAGiC,CAAM,YAAYjC,CAAK;AACnC;AACA,SAASmB,GAAcc,GAAQjC,GAAO;AACpC,SAAO,GAAGiC,CAAM,YAAYjC,CAAK;AACnC;AACA,IAAIkC,KAAQ/C,IACRgD,KAAO7B,IACP8B,KAAUvB,IACVwB,KAAUX;AC3KP,MAAMY,KAAa,CAAC,EAAE,SAAA1E,GAAS,UAAA2E,QAEjCvE,gBAAAA,EAAAA,IAAA,OAAA,EAAI,WAAWC,EAAG,uBAAuBL,KAAA,gBAAAA,EAAS,eAAe,GAC/D,UAAA2E,KAAA,gBAAAA,EAAU,IAAI,CAAC,EAAE,IAAAC,GAAI,MAAAC,GAAM,WAAAC,QACtBA,MAAaA,KAAA,QAAAA,EAAW,+BAEvBC,IAAA,EAA8B,OAAOH,GAAI,WAAWvE,EAAG,QAAQL,KAAA,gBAAAA,EAAS,OAAO,GAC9E,gCAACgF,IAAU,EAAA,OAAOF,KAAA,gBAAAA,EAAW,OAAQ,UAAAD,EAAA,CAAK,KADjBD,CAE3B,IAKDxE,gBAAAA,EAAA,IAAA2E,IAAA,EAA8B,OAAOH,GAAI,WAAWvE,EAAG,QAAQL,KAAA,gBAAAA,EAAS,OAAO,GAC7E,eADwB4E,CAE3B,IAGN,GClBSK,KAAe,CAAC,EAAE,eAAAC,GAAe,oBAAAC,IAAqB,KAAK,OAAA/C,GAAO,aAAAgD,GAAa,SAAApF,QAAiC;;AAEzH,SAAAW,gBAAAA,EAAA;AAAA,IAAC0E;AAAAA,IAAA;AAAA,MACC,OAAAjD;AAAA,MACA,eAAegD;AAAA,MACf,cAAcD;AAAA,MACd,WAAW9E,EAAG,iBAAiBL,KAAA,gBAAAA,EAAS,IAAI;AAAA,MAE5C,UAAA;AAAA,QAAAI,gBAAAA,EAAA,IAACkF,IAAA,EAAkB,WAAWjF,EAAG,2BAA2BL,KAAA,gBAAAA,EAAS,IAAI,GACtE,WAAAuF,IAAAL,KAAA,gBAAAA,EAAe,aAAf,gBAAAK,EAAyB,IAAI,CAAC,EAAE,IAAAX,GAAI,OAAAY,QACnCpF,gBAAAA,EAAA;AAAA,UAACqF;AAAAA,UAAA;AAAA,YAEC,OAAOb;AAAA,YACP,WAAWvE;AAAA,cACT;AAAA,cACAL,KAAA,gBAAAA,EAAS;AAAA,YACX;AAAA,YAEC,UAAAwF;AAAA,UAAA;AAAA,UAPIZ;AAAA,QASR,IACH;AAAA,8BACCF,IAAW,EAAA,UAAUQ,KAAA,gBAAAA,EAAe,UAAU,SAASlF,KAAA,gBAAAA,EAAS,WAAY,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAC/E;AAEJ,GCxCa0F,KAAwB;AAAA,EACnC,SAAS,EAAE,SAAS,EAAE;AAAA,EACtB,SAAS,EAAE,SAAS,EAAE;AAAA,EACtB,MAAM,EAAE,SAAS,EAAE;AAAA,EACnB,YAAY,EAAE,UAAU,KAAK,MAAM,YAAY;AACjD,GAEaC,KAAwB;AAAA,EACnC,SAAS,EAAE,SAAS,GAAG,OAAO,EAAE;AAAA,EAChC,SAAS,EAAE,SAAS,GAAG,OAAO,EAAE;AAAA,EAChC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE;AAAA,EAC7B,YAAY,EAAE,UAAU,KAAK,MAAM,YAAY;AACjD,GCEaC,KAAc,CAAC,EAAE,OAAAC,GAAO,YAAAC,GAAY,SAAA9F,+BAE5C,OAAI,EAAA,WAAWK,EAAG,0CAA0CL,KAAA,gBAAAA,EAAS,MAAM,GACzE,UAAA;AAAA,EACC6F,KAAAzF,gBAAAA,EAAAA,IAAC2F,IAAQ,EAAA,IAAG,MAAK,WAAW1F,EAAG,0BAA0BL,KAAA,gBAAAA,EAAS,KAAK,GACpE,UACH6F,EAAA,CAAA;AAAA,EAEFzF,gBAAAA,EAAA;AAAA,IAAC4F;AAAA,IAAA;AAAA,MACC,SAASF;AAAA,MACT,MAAK;AAAA,MACL,WAAWzF,EAAG,8CAA8CL,KAAA,gBAAAA,EAAS,IAAI;AAAA,IAAA;AAAA,EAAA;AAC3E,GACF,GCDSiG,KAAQ,CAAC;AAAA,EACpB,OAAAJ;AAAA,EACA,UAAA9F;AAAA,EACA,aAAAmG;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,iBAAAC,KAAkB,CAAAb,WAAA,yCAAY,aAAZ,gBAAAA,EAAsB;AAAA,EACxC,YAAAO;AAAA,EACA,SAAA9F;AACF,MAAkB;AAChB,EAAIkG,IACO,SAAA,KAAK,MAAM,WAAW,WAEtB,SAAA,KAAK,MAAM,WAAW;AAG3B,QAAAG,IACHjG,gBAAAA,EAAAA,IAAAkG,IAAA,EACE,UACCJ,KAAA9F,gBAAAA,EAAA;AAAA,IAACmG,GAAO;AAAA,IAAP;AAAA,MACC,UAAU;AAAA,MACV,SAAST;AAAA,MACT,WAAWzF;AAAA,QACT;AAAA,QACA,EAAE,UAAU,CAAC8F,EAAS;AAAA,QACtBnG,KAAA,gBAAAA,EAAS;AAAA,MACX;AAAA,MACA,WAAW,CAAC2D,MAAU;AAChB,QAAAA,EAAM,QAAQ,YACLmC,EAAA;AAAA,MAEf;AAAA,MACA,gBAAa;AAAA,MACZ,GAAGJ;AAAA,MAEJ,UAAA/E,gBAAAA,EAAA;AAAA,QAAC4F,GAAO;AAAA,QAAP;AAAA,UACC,SAAS,CAAC5C,MAAUA,EAAM,gBAAgB;AAAA,UAC1C,WAAWtD;AAAA,YACT;AAAA,YACAL,KAAA,gBAAAA,EAAS;AAAA,UACX;AAAA,UACA,gBAAa;AAAA,UACZ,GAAG2F;AAAA,UAEJ,UAAA;AAAA,YAAAvF,gBAAAA,EAAA,IAACwF,IAAY,EAAA,OAAAC,GAAc,YAAAC,GAAwB,SAAS9F,KAAA,gBAAAA,EAAS,aAAa;AAAA,YAClFI,gBAAAA,MAAC,SAAI,WAAWC,EAAG,QAAQL,KAAA,gBAAAA,EAAS,OAAO,GAAI,UAAAD,EAAS,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC1D;AAAA,EAAA,GAGN;AAEF,6CAAU,UAAWoG,IAAAK,GAAaH,GAAWD,CAAe,IAAIC,GAAU;AAC5E,GC3EaI,KAAQ7G,EAAqE,CAACM,GAAOC,4BAC/F,SAAM,EAAA,KAAAA,GAAW,GAAGD,GAAO,CAC7B;AACDuG,GAAM,cAAc;AAEP,MAAAC,KAAc9G,EAAmF,CAACM,GAAOC,4BACnH,SAAM,EAAA,KAAAA,GAAW,GAAGD,GAAO,CAC7B;AACDwG,GAAY,cAAc;AAEb,MAAAC,KAAY/G,EAAmF,CAACM,GAAOC,4BACjH,SAAM,EAAA,KAAAA,GAAW,GAAGD,GAAO,CAC7B;AACDyG,GAAU,cAAc;AAEX,MAAAC,KAAchH,EAAmF,CAACM,GAAOC,4BACnH,SAAM,EAAA,KAAAA,GAAW,GAAGD,GAAO,CAC7B;AACD0G,GAAY,cAAc;AAEb,MAAAC,IAAWjH,EAA2E,CAACM,GAAOC,4BACxG,MAAG,EAAA,KAAAA,GAAW,GAAGD,GAAO,CAC1B;AACD2G,EAAS,cAAc;AAEV,MAAAC,KAAYlH,EAA+E,CAACM,GAAOC,4BAC7G,MAAG,EAAA,KAAAA,GAAW,GAAGD,GAAO,CAC1B;AACD4G,GAAU,cAAc;AAEX,MAAAC,KAAYnH,EAA+E,CAACM,GAAOC,4BAC7G,MAAG,EAAA,KAAAA,GAAW,GAAGD,GAAO,CAC1B;AACD6G,GAAU,cAAc;AAEX,MAAAC,KAAepH,EAAmF,CAACM,GAAOC,4BACpH,WAAQ,EAAA,KAAAA,GAAW,GAAGD,GAAO,CAC/B;AACD8G,GAAa,cAAc;ACpBpB,MAAMC,KAAwB,CAAC;AAAA,EACpC,UAAAlH;AAAA,EACA,SAAAmH;AAAA,EACA,eAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAArH;AACF,MAAkC;AAChC,QAAM,EAAE,MAAAsH,GAAM,SAAAC,GAAS,MAAAC,EAAK,IAAIxH,KAAW,CAAC,GAEtC,EAAE,WAAAyH,EAAU,IAAIC,GAAU,GAE1BC,IAAaT,KAAWO;AAG5B,SAAA9G,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAWN,EAAG,qFAAqFiH,CAAI;AAAA,MACvG,SAAS,MAAMH,EAAc,CAACE,CAAQ;AAAA,MACtC,UAAU,CAACM;AAAA,MAEX,UAAA;AAAA,QAAAvH,gBAAAA,MAAC,UAAK,WAAWC,EAAG,IAAIkH,CAAO,GAAI,UAAAxH,GAAS;AAAA,QAC3C4H,KACCvH,gBAAAA,EAAA;AAAA,UAAC4F;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAW3F;AAAA,cACT;AAAA,cACA;AAAA,gBACE,cAAc,CAAC+G;AAAA,cACjB;AAAA,cACAI;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AAEJ;ACxDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmDA,SAASI,KAAqB;AAC5B,SAAO;AAAA,IACL,UAAU,CAACC,GAAUC,MACZ,OAAOD,KAAa,aAAa;AAAA,MACtC,GAAGC;AAAA,MACH,YAAYD;AAAA,IACpB,IAAU;AAAA,MACF,GAAGC;AAAA,MACH,aAAaD;AAAA,IACd;AAAA,IAEH,SAAS,CAAAC,MAAUA;AAAA,IACnB,OAAO,CAAAA,MAAUA;AAAA,EAClB;AACH;AAQA,SAASC,EAAiBC,GAASC,GAAO;AACxC,SAAO,OAAOD,KAAY,aAAaA,EAAQC,CAAK,IAAID;AAC1D;AAIA,SAASE,EAAiBC,GAAKC,GAAU;AACvC,SAAO,CAAAJ,MAAW;AAChB,IAAAI,EAAS,SAAS,CAAAC,OACT;AAAA,MACL,GAAGA;AAAA,MACH,CAACF,CAAG,GAAGJ,EAAiBC,GAASK,EAAIF,CAAG,CAAC;AAAA,IAC1C,EACF;AAAA,EACF;AACH;AACA,SAASG,EAAWC,GAAG;AACrB,SAAOA,aAAa;AACtB;AACA,SAASC,GAAcD,GAAG;AACxB,SAAO,MAAM,QAAQA,CAAC,KAAKA,EAAE,MAAM,CAAAE,MAAO,OAAOA,KAAQ,QAAQ;AACnE;AACA,SAASC,GAAUC,GAAKC,GAAa;AACnC,QAAMC,IAAO,CAAE,GACTC,IAAU,CAAAC,MAAU;AACxB,IAAAA,EAAO,QAAQ,CAAAC,MAAQ;AACrB,MAAAH,EAAK,KAAKG,CAAI;AACd,YAAMjJ,IAAW6I,EAAYI,CAAI;AACjC,MAAIjJ,KAAY,QAAQA,EAAS,UAC/B+I,EAAQ/I,CAAQ;AAAA,IAExB,CAAK;AAAA,EACF;AACD,SAAA+I,EAAQH,CAAG,GACJE;AACT;AACA,SAASI,EAAKC,GAASC,GAAIC,GAAM;AAC/B,MAAIC,IAAO,CAAE,GACTC;AACJ,SAAO,CAAAC,MAAW;AAChB,QAAIC;AACJ,IAAIJ,EAAK,OAAOA,EAAK,UAAOI,IAAU,KAAK,IAAK;AAChD,UAAMC,IAAUP,EAAQK,CAAO;AAE/B,QAAI,EADgBE,EAAQ,WAAWJ,EAAK,UAAUI,EAAQ,KAAK,CAACC,GAAKC,MAAUN,EAAKM,CAAK,MAAMD,CAAG;AAEpG,aAAOJ;AAET,IAAAD,IAAOI;AACP,QAAIG;AAIJ,QAHIR,EAAK,OAAOA,EAAK,UAAOQ,IAAa,KAAK,IAAK,IACnDN,IAASH,EAAG,GAAGM,CAAO,GACtBL,KAAQ,QAAQA,EAAK,YAAY,QAAQA,EAAK,SAASE,CAAM,GACzDF,EAAK,OAAOA,EAAK,SACfA,KAAQ,QAAQA,EAAK,MAAK,GAAI;AAChC,YAAMS,IAAa,KAAK,OAAO,KAAK,QAAQL,KAAW,GAAG,IAAI,KACxDM,IAAgB,KAAK,OAAO,KAAK,QAAQF,KAAc,GAAG,IAAI,KAC9DG,IAAsBD,IAAgB,IACtCE,IAAM,CAACC,GAAKC,MAAQ;AAExB,aADAD,IAAM,OAAOA,CAAG,GACTA,EAAI,SAASC;AAClB,UAAAD,IAAM,MAAMA;AAEd,eAAOA;AAAA,MACR;AACD,cAAQ,KAAK,OAAOD,EAAIF,GAAe,CAAC,CAAC,KAAKE,EAAIH,GAAY,CAAC,CAAC,OAAO;AAAA;AAAA;AAAA,yBAGtD,KAAK,IAAI,GAAG,KAAK,IAAI,MAAM,MAAME,GAAqB,GAAG,CAAC,CAAC,kBAAkBX,KAAQ,OAAO,SAASA,EAAK,GAAG;AAAA,IACtI;AAEI,WAAOE;AAAA,EACR;AACH;AACA,SAASa,EAAeC,GAAcC,GAAYlC,GAAKmC,GAAU;AAC/D,SAAO;AAAA,IACL,OAAO,MAAM;AACX,UAAIC;AACJ,cAAQA,IAAwBH,KAAgB,OAAO,SAASA,EAAa,aAAa,OAAOG,IAAwBH,EAAaC,CAAU;AAAA,IACjJ;AAAA,IACD,KAAK,QAAQ,IAAI,aAAa,iBAAiBlC;AAAA,IAC/C,UAAAmC;AAAA,EACD;AACH;AAEA,SAASE,GAAWC,GAAOC,GAAK5C,GAAQ6C,GAAU;AAChD,QAAMC,IAAiB,MAAM;AAC3B,QAAIC;AACJ,YAAQA,IAAiBC,EAAK,SAAQ,MAAO,OAAOD,IAAiBJ,EAAM,QAAQ;AAAA,EACpF,GACKK,IAAO;AAAA,IACX,IAAI,GAAGJ,EAAI,EAAE,IAAI5C,EAAO,EAAE;AAAA,IAC1B,KAAA4C;AAAA,IACA,QAAA5C;AAAA,IACA,UAAU,MAAM4C,EAAI,SAASC,CAAQ;AAAA,IACrC,aAAaC;AAAA,IACb,YAAY3B,EAAK,MAAM,CAACwB,GAAO3C,GAAQ4C,GAAKI,CAAI,GAAG,CAACL,GAAO3C,GAAQ4C,GAAKI,OAAU;AAAA,MAChF,OAAAL;AAAA,MACA,QAAA3C;AAAA,MACA,KAAA4C;AAAA,MACA,MAAMI;AAAA,MACN,UAAUA,EAAK;AAAA,MACf,aAAaA,EAAK;AAAA,IACnB,IAAGX,EAAeM,EAAM,SAAS,cAAc,iBAAiB,CAAC;AAAA,EACnE;AACD,SAAAA,EAAM,UAAU,QAAQ,CAAAM,MAAW;AACjC,IAAAA,EAAQ,cAAc,QAAQA,EAAQ,WAAWD,GAAMhD,GAAQ4C,GAAKD,CAAK;AAAA,EAC1E,GAAE,EAAE,GACEK;AACT;AAEA,SAASE,GAAaP,GAAOQ,GAAWC,GAAOC,GAAQ;AACrD,MAAIC,GAAMC;AAEV,QAAMC,IAAoB;AAAA,IACxB,GAFoBb,EAAM,qBAAsB;AAAA,IAGhD,GAAGQ;AAAA,EACJ,GACKM,IAAcD,EAAkB;AACtC,MAAI1G,KAAMwG,KAAQC,IAAwBC,EAAkB,OAAO,OAAOD,IAAwBE,IAAc,OAAO,OAAO,UAAU,cAAe,aAAaA,EAAY,WAAW,KAAK,GAAG,IAAIA,EAAY,QAAQ,OAAO,GAAG,IAAI,WAAc,OAAOH,IAAO,OAAOE,EAAkB,UAAW,WAAWA,EAAkB,SAAS,QAC3UE;AAqBJ,MApBIF,EAAkB,aACpBE,IAAaF,EAAkB,aACtBC,MAELA,EAAY,SAAS,GAAG,IAC1BC,IAAa,CAAAC,MAAe;AAC1B,QAAInC,IAASmC;AACb,eAAWtD,KAAOoD,EAAY,MAAM,GAAG,GAAG;AACxC,UAAIG;AACJ,MAAApC,KAAUoC,IAAUpC,MAAW,OAAO,SAASoC,EAAQvD,CAAG,GACtD,QAAQ,IAAI,aAAa,gBAAgBmB,MAAW,UACtD,QAAQ,KAAK,IAAInB,CAAG,2BAA2BoD,CAAW,uBAAuB;AAAA,IAE7F;AACQ,WAAOjC;AAAA,EACR,IAEDkC,IAAa,CAAAC,MAAeA,EAAYH,EAAkB,WAAW,IAGrE,CAAC1G;AACH,UAAI,QAAQ,IAAI,aAAa,eACrB,IAAI,MAAM0G,EAAkB,aAAa,mDAAmD,sDAAsD,IAEpJ,IAAI,MAAO;AAEnB,MAAIxD,IAAS;AAAA,IACX,IAAI,GAAG,OAAOlD,CAAE,CAAC;AAAA,IACjB,YAAA4G;AAAA,IACA,QAAQL;AAAA,IACR,OAAAD;AAAA,IACA,WAAWI;AAAA,IACX,SAAS,CAAE;AAAA,IACX,gBAAgBrC,EAAK,MAAM,CAAC,EAAI,GAAG,MAAM;AACvC,UAAI0C;AACJ,aAAO,CAAC7D,GAAQ,IAAK6D,IAAkB7D,EAAO,YAAY,OAAO,SAAS6D,EAAgB,QAAQ,CAAApD,MAAKA,EAAE,eAAc,CAAE,CAAE;AAAA,IAC5H,GAAE4B,EAAeM,EAAM,SAAS,gBAAgB,uBAAuB,CAAC;AAAA,IACzE,gBAAgBxB,EAAK,MAAM,CAACwB,EAAM,mBAAkB,CAAE,GAAG,CAAAmB,MAAgB;AACvE,UAAIC;AACJ,WAAKA,IAAmB/D,EAAO,YAAY,QAAQ+D,EAAiB,QAAQ;AAC1E,YAAIC,IAAchE,EAAO,QAAQ,QAAQ,CAAAA,MAAUA,EAAO,gBAAgB;AAC1E,eAAO8D,EAAaE,CAAW;AAAA,MACvC;AACM,aAAO,CAAChE,CAAM;AAAA,IACf,GAAEqC,EAAeM,EAAM,SAAS,gBAAgB,uBAAuB,CAAC;AAAA,EAC1E;AACD,aAAWM,KAAWN,EAAM;AAC1B,IAAAM,EAAQ,gBAAgB,QAAQA,EAAQ,aAAajD,GAAQ2C,CAAK;AAIpE,SAAO3C;AACT;AAEA,MAAMiE,IAAQ;AAGd,SAASC,GAAavB,GAAO3C,GAAQmE,GAAS;AAC5C,MAAIC;AAEJ,MAAIC,IAAS;AAAA,IACX,KAFUD,IAAcD,EAAQ,OAAO,OAAOC,IAAcpE,EAAO;AAAA,IAGnE,QAAAA;AAAA,IACA,OAAOmE,EAAQ;AAAA,IACf,eAAe,CAAC,CAACA,EAAQ;AAAA,IACzB,eAAeA,EAAQ;AAAA,IACvB,OAAOA,EAAQ;AAAA,IACf,YAAY,CAAE;AAAA,IACd,SAAS;AAAA,IACT,SAAS;AAAA,IACT,aAAa;AAAA,IACb,gBAAgB,MAAM;AACpB,YAAMG,IAAc,CAAE,GAChBC,IAAgB,CAAAC,MAAK;AACzB,QAAIA,EAAE,cAAcA,EAAE,WAAW,UAC/BA,EAAE,WAAW,IAAID,CAAa,GAEhCD,EAAY,KAAKE,CAAC;AAAA,MACnB;AACD,aAAAD,EAAcF,CAAM,GACbC;AAAA,IACR;AAAA,IACD,YAAY,OAAO;AAAA,MACjB,OAAA3B;AAAA,MACA,QAAQ0B;AAAA,MACR,QAAArE;AAAA,IACD;AAAA,EACF;AACD,SAAA2C,EAAM,UAAU,QAAQ,CAAAM,MAAW;AACjC,IAAAA,EAAQ,gBAAgB,QAAQA,EAAQ,aAAaoB,GAAQ1B,CAAK;AAAA,EACtE,CAAG,GACM0B;AACT;AACA,MAAMI,KAAU;AAAA,EACd,aAAa,CAAA9B,MAAS;AAGpB,IAAAA,EAAM,kBAAkBxB,EAAK,MAAM,CAACwB,EAAM,cAAe,GAAEA,EAAM,yBAAyBA,EAAM,SAAQ,EAAG,cAAc,MAAMA,EAAM,SAAQ,EAAG,cAAc,KAAK,GAAG,CAAC+B,GAAYV,GAAaW,GAAMC,MAAU;AAC9M,UAAIC,GAAkBC;AACtB,YAAMC,KAAeF,IAAmBF,KAAQ,OAAO,SAASA,EAAK,IAAI,CAAA9B,MAAYmB,EAAY,KAAK,CAAAvD,MAAKA,EAAE,OAAOoC,CAAQ,CAAC,EAAE,OAAO,OAAO,MAAM,OAAOgC,IAAmB,CAAE,GACzKG,KAAgBF,IAAoBF,KAAS,OAAO,SAASA,EAAM,IAAI,CAAA/B,MAAYmB,EAAY,KAAK,CAAAvD,MAAKA,EAAE,OAAOoC,CAAQ,CAAC,EAAE,OAAO,OAAO,MAAM,OAAOiC,IAAoB,CAAE,GAC9KG,IAAgBjB,EAAY,OAAO,CAAAhE,MAAU,EAAE2E,KAAQ,QAAQA,EAAK,SAAS3E,EAAO,EAAE,MAAM,EAAE4E,KAAS,QAAQA,EAAM,SAAS5E,EAAO,EAAE,EAAE;AAE/I,aADqBkF,EAAkBR,GAAY,CAAC,GAAGK,GAAa,GAAGE,GAAe,GAAGD,CAAY,GAAGrC,CAAK;AAAA,IAE9G,GAAEN,EAAeM,EAAM,SAASsB,GAAO,iBAAiB,CAAC,GAC1DtB,EAAM,wBAAwBxB,EAAK,MAAM,CAACwB,EAAM,cAAe,GAAEA,EAAM,yBAAyBA,EAAM,SAAQ,EAAG,cAAc,MAAMA,EAAM,SAAQ,EAAG,cAAc,KAAK,GAAG,CAAC+B,GAAYV,GAAaW,GAAMC,OAC1MZ,IAAcA,EAAY,OAAO,CAAAhE,MAAU,EAAE2E,KAAQ,QAAQA,EAAK,SAAS3E,EAAO,EAAE,MAAM,EAAE4E,KAAS,QAAQA,EAAM,SAAS5E,EAAO,EAAE,EAAE,GAChIkF,EAAkBR,GAAYV,GAAarB,GAAO,QAAQ,IAChEN,EAAeM,EAAM,SAASsB,GAAO,uBAAuB,CAAC,GAChEtB,EAAM,sBAAsBxB,EAAK,MAAM,CAACwB,EAAM,cAAa,GAAIA,EAAM,sBAAqB,GAAIA,EAAM,SAAU,EAAC,cAAc,IAAI,GAAG,CAAC+B,GAAYV,GAAaW,MAAS;AACrK,UAAIQ;AACJ,YAAMC,KAAsBD,IAAoBR,KAAQ,OAAO,SAASA,EAAK,IAAI,CAAA9B,MAAYmB,EAAY,KAAK,CAAAvD,MAAKA,EAAE,OAAOoC,CAAQ,CAAC,EAAE,OAAO,OAAO,MAAM,OAAOsC,IAAoB,CAAE;AACxL,aAAOD,EAAkBR,GAAYU,GAAoBzC,GAAO,MAAM;AAAA,IACvE,GAAEN,EAAeM,EAAM,SAASsB,GAAO,qBAAqB,CAAC,GAC9DtB,EAAM,uBAAuBxB,EAAK,MAAM,CAACwB,EAAM,cAAa,GAAIA,EAAM,sBAAqB,GAAIA,EAAM,SAAU,EAAC,cAAc,KAAK,GAAG,CAAC+B,GAAYV,GAAaY,MAAU;AACxK,UAAIS;AACJ,YAAMD,KAAsBC,IAAqBT,KAAS,OAAO,SAASA,EAAM,IAAI,CAAA/B,MAAYmB,EAAY,KAAK,CAAAvD,MAAKA,EAAE,OAAOoC,CAAQ,CAAC,EAAE,OAAO,OAAO,MAAM,OAAOwC,IAAqB,CAAE;AAC5L,aAAOH,EAAkBR,GAAYU,GAAoBzC,GAAO,OAAO;AAAA,IACxE,GAAEN,EAAeM,EAAM,SAASsB,GAAO,sBAAsB,CAAC,GAI/DtB,EAAM,kBAAkBxB,EAAK,MAAM,CAACwB,EAAM,gBAAe,CAAE,GAAG,CAAA2C,MACrD,CAAC,GAAGA,CAAY,EAAE,QAAS,GACjCjD,EAAeM,EAAM,SAASsB,GAAO,iBAAiB,CAAC,GAC1DtB,EAAM,sBAAsBxB,EAAK,MAAM,CAACwB,EAAM,oBAAmB,CAAE,GAAG,CAAA2C,MAC7D,CAAC,GAAGA,CAAY,EAAE,QAAS,GACjCjD,EAAeM,EAAM,SAASsB,GAAO,qBAAqB,CAAC,GAC9DtB,EAAM,wBAAwBxB,EAAK,MAAM,CAACwB,EAAM,sBAAqB,CAAE,GAAG,CAAA2C,MACjE,CAAC,GAAGA,CAAY,EAAE,QAAS,GACjCjD,EAAeM,EAAM,SAASsB,GAAO,uBAAuB,CAAC,GAChEtB,EAAM,uBAAuBxB,EAAK,MAAM,CAACwB,EAAM,qBAAoB,CAAE,GAAG,CAAA2C,MAC/D,CAAC,GAAGA,CAAY,EAAE,QAAS,GACjCjD,EAAeM,EAAM,SAASsB,GAAO,sBAAsB,CAAC,GAI/DtB,EAAM,iBAAiBxB,EAAK,MAAM,CAACwB,EAAM,gBAAe,CAAE,GAAG,CAAA2C,MACpDA,EAAa,IAAI,CAAAC,MACfA,EAAY,OACpB,EAAE,KAAM,GACRlD,EAAeM,EAAM,SAASsB,GAAO,gBAAgB,CAAC,GACzDtB,EAAM,qBAAqBxB,EAAK,MAAM,CAACwB,EAAM,oBAAmB,CAAE,GAAG,CAAAgC,MAC5DA,EAAK,IAAI,CAAAY,MACPA,EAAY,OACpB,EAAE,KAAM,GACRlD,EAAeM,EAAM,SAASsB,GAAO,oBAAoB,CAAC,GAC7DtB,EAAM,uBAAuBxB,EAAK,MAAM,CAACwB,EAAM,sBAAqB,CAAE,GAAG,CAAAgC,MAChEA,EAAK,IAAI,CAAAY,MACPA,EAAY,OACpB,EAAE,KAAM,GACRlD,EAAeM,EAAM,SAASsB,GAAO,sBAAsB,CAAC,GAC/DtB,EAAM,sBAAsBxB,EAAK,MAAM,CAACwB,EAAM,qBAAoB,CAAE,GAAG,CAAAgC,MAC9DA,EAAK,IAAI,CAAAY,MACPA,EAAY,OACpB,EAAE,KAAM,GACRlD,EAAeM,EAAM,SAASsB,GAAO,qBAAqB,CAAC,GAI9DtB,EAAM,uBAAuBxB,EAAK,MAAM,CAACwB,EAAM,qBAAoB,CAAE,GAAG,CAAA6C,MAC/DA,EAAY,OAAO,CAAAnB,MAAU;AAClC,UAAIoB;AACJ,aAAO,GAAGA,IAAqBpB,EAAO,eAAe,QAAQoB,EAAmB;AAAA,IACxF,CAAO,GACApD,EAAeM,EAAM,SAASsB,GAAO,sBAAsB,CAAC,GAC/DtB,EAAM,qBAAqBxB,EAAK,MAAM,CAACwB,EAAM,mBAAkB,CAAE,GAAG,CAAA6C,MAC3DA,EAAY,OAAO,CAAAnB,MAAU;AAClC,UAAIqB;AACJ,aAAO,GAAGA,IAAsBrB,EAAO,eAAe,QAAQqB,EAAoB;AAAA,IAC1F,CAAO,GACArD,EAAeM,EAAM,SAASsB,GAAO,oBAAoB,CAAC,GAC7DtB,EAAM,sBAAsBxB,EAAK,MAAM,CAACwB,EAAM,oBAAmB,CAAE,GAAG,CAAA6C,MAC7DA,EAAY,OAAO,CAAAnB,MAAU;AAClC,UAAIsB;AACJ,aAAO,GAAGA,IAAsBtB,EAAO,eAAe,QAAQsB,EAAoB;AAAA,IAC1F,CAAO,GACAtD,EAAeM,EAAM,SAASsB,GAAO,qBAAqB,CAAC,GAC9DtB,EAAM,iBAAiBxB,EAAK,MAAM,CAACwB,EAAM,oBAAmB,GAAIA,EAAM,sBAAqB,GAAIA,EAAM,qBAAsB,CAAA,GAAG,CAACgC,GAAMiB,GAAQhB,MAAU;AACrJ,UAAIiB,GAAiBC,GAAQC,GAAmBC,GAAUC,GAAkBC;AAC5E,aAAO,CAAC,IAAKL,KAAmBC,IAASnB,EAAK,CAAC,MAAM,OAAO,SAASmB,EAAO,YAAY,OAAOD,IAAkB,CAAE,GAAG,IAAKE,KAAqBC,IAAWJ,EAAO,CAAC,MAAM,OAAO,SAASI,EAAS,YAAY,OAAOD,IAAoB,CAAA,GAAK,IAAKE,KAAoBC,IAAUtB,EAAM,CAAC,MAAM,OAAO,SAASsB,EAAQ,YAAY,OAAOD,IAAmB,EAAG,EAAE,IAAI,CAAA5B,MAC5VA,EAAO,eAAgB,CAC/B,EAAE,KAAM;AAAA,IACV,GAAEhC,EAAeM,EAAM,SAASsB,GAAO,gBAAgB,CAAC;AAAA,EAC7D;AACA;AACA,SAASiB,EAAkBR,GAAYyB,GAAgBxD,GAAOyD,GAAc;AAC1E,MAAIC,GAAuBC;AAO3B,MAAIC,IAAW;AACf,QAAMC,IAAe,SAAUC,GAASrD,GAAO;AAC7C,IAAIA,MAAU,WACZA,IAAQ,IAEVmD,IAAW,KAAK,IAAIA,GAAUnD,CAAK,GACnCqD,EAAQ,OAAO,CAAAzG,MAAUA,EAAO,cAAc,EAAE,QAAQ,CAAAA,MAAU;AAChE,UAAI6D;AACJ,OAAKA,IAAkB7D,EAAO,YAAY,QAAQ6D,EAAgB,UAChE2C,EAAaxG,EAAO,SAASoD,IAAQ,CAAC;AAAA,IAEzC,GAAE,CAAC;AAAA,EACL;AACD,EAAAoD,EAAa9B,CAAU;AACvB,MAAIY,IAAe,CAAE;AACrB,QAAMoB,IAAoB,CAACC,GAAgBvD,MAAU;AAEnD,UAAMmC,IAAc;AAAA,MAClB,OAAAnC;AAAA,MACA,IAAI,CAACgD,GAAc,GAAGhD,CAAK,EAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MACvD,SAAS,CAAA;AAAA,IACV,GAGKwD,IAAuB,CAAE;AAG/B,IAAAD,EAAe,QAAQ,CAAAE,MAAiB;AAGtC,YAAMC,IAA4B,CAAC,GAAGF,CAAoB,EAAE,QAAO,EAAG,CAAC,GACjEG,IAAeF,EAAc,OAAO,UAAUtB,EAAY;AAChE,UAAIvF,GACAgH,IAAgB;AASpB,UARID,KAAgBF,EAAc,OAAO,SAEvC7G,IAAS6G,EAAc,OAAO,UAG9B7G,IAAS6G,EAAc,QACvBG,IAAgB,KAEdF,MAA8BA,KAA6B,OAAO,SAASA,EAA0B,YAAY9G;AAEnH,QAAA8G,EAA0B,WAAW,KAAKD,CAAa;AAAA,WAClD;AAEL,cAAMxC,IAASH,GAAavB,GAAO3C,GAAQ;AAAA,UACzC,IAAI,CAACoG,GAAchD,GAAOpD,EAAO,IAAI6G,KAAiB,OAAO,SAASA,EAAc,EAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,UAChH,eAAAG;AAAA,UACA,eAAeA,IAAgB,GAAGJ,EAAqB,OAAO,CAAAnG,MAAKA,EAAE,WAAWT,CAAM,EAAE,MAAM,KAAK;AAAA,UACnG,OAAAoD;AAAA,UACA,OAAOwD,EAAqB;AAAA,QACtC,CAAS;AAGD,QAAAvC,EAAO,WAAW,KAAKwC,CAAa,GAGpCD,EAAqB,KAAKvC,CAAM;AAAA,MACxC;AACM,MAAAkB,EAAY,QAAQ,KAAKsB,CAAa,GACtCA,EAAc,cAActB;AAAA,IAClC,CAAK,GACDD,EAAa,KAAKC,CAAW,GACzBnC,IAAQ,KACVsD,EAAkBE,GAAsBxD,IAAQ,CAAC;AAAA,EAEpD,GACK6D,IAAgBd,EAAe,IAAI,CAACnG,GAAQ6B,MAAUqC,GAAavB,GAAO3C,GAAQ;AAAA,IACtF,OAAOuG;AAAA,IACP,OAAA1E;AAAA,EACJ,CAAG,CAAC;AACF,EAAA6E,EAAkBO,GAAeV,IAAW,CAAC,GAC7CjB,EAAa,QAAS;AAMtB,QAAM4B,IAAyB,CAAAC,MACLA,EAAQ,OAAO,CAAA9C,MAAUA,EAAO,OAAO,cAAc,EACtD,IAAI,CAAAA,MAAU;AACnC,QAAI+C,IAAU,GACVC,IAAU,GACVC,IAAgB,CAAC,CAAC;AACtB,IAAIjD,EAAO,cAAcA,EAAO,WAAW,UACzCiD,IAAgB,CAAE,GAClBJ,EAAuB7C,EAAO,UAAU,EAAE,QAAQ,CAAAf,MAAQ;AACxD,UAAI;AAAA,QACF,SAASiE;AAAA,QACT,SAASC;AAAA,MACrB,IAAclE;AACJ,MAAA8D,KAAWG,GACXD,EAAc,KAAKE,CAAY;AAAA,IACzC,CAAS,KAEDJ,IAAU;AAEZ,UAAMK,IAAkB,KAAK,IAAI,GAAGH,CAAa;AACjD,WAAAD,IAAUA,IAAUI,GACpBpD,EAAO,UAAU+C,GACjB/C,EAAO,UAAUgD,GACV;AAAA,MACL,SAAAD;AAAA,MACA,SAAAC;AAAA,IACD;AAAA,EACP,CAAK;AAEH,SAAAH,GAAwBb,KAAyBC,IAAiBhB,EAAa,CAAC,MAAM,OAAO,SAASgB,EAAe,YAAY,OAAOD,IAAwB,CAAA,CAAE,GAC3Jf;AACT;AAEA,MAAMoC,KAAY,CAAC/E,GAAO7F,GAAI6K,GAAUC,GAAUxE,GAAOyE,GAASC,MAAa;AAC7E,MAAIlF,IAAM;AAAA,IACR,IAAA9F;AAAA,IACA,OAAO8K;AAAA,IACP,UAAAD;AAAA,IACA,OAAAvE;AAAA,IACA,UAAA0E;AAAA,IACA,cAAc,CAAE;AAAA,IAChB,oBAAoB,CAAE;AAAA,IACtB,UAAU,CAAAjF,MAAY;AACpB,UAAID,EAAI,aAAa,eAAeC,CAAQ;AAC1C,eAAOD,EAAI,aAAaC,CAAQ;AAElC,YAAM7C,IAAS2C,EAAM,UAAUE,CAAQ;AACvC,UAAM7C,KAAU,QAAQA,EAAO;AAG/B,eAAA4C,EAAI,aAAaC,CAAQ,IAAI7C,EAAO,WAAW4C,EAAI,UAAUgF,CAAQ,GAC9DhF,EAAI,aAAaC,CAAQ;AAAA,IACjC;AAAA,IACD,iBAAiB,CAAAA,MAAY;AAC3B,UAAID,EAAI,mBAAmB,eAAeC,CAAQ;AAChD,eAAOD,EAAI,mBAAmBC,CAAQ;AAExC,YAAM7C,IAAS2C,EAAM,UAAUE,CAAQ;AACvC,UAAM7C,KAAU,QAAQA,EAAO;AAG/B,eAAKA,EAAO,UAAU,mBAItB4C,EAAI,mBAAmBC,CAAQ,IAAI7C,EAAO,UAAU,gBAAgB4C,EAAI,UAAUgF,CAAQ,GACnFhF,EAAI,mBAAmBC,CAAQ,MAJpCD,EAAI,mBAAmBC,CAAQ,IAAI,CAACD,EAAI,SAASC,CAAQ,CAAC,GACnDD,EAAI,mBAAmBC,CAAQ;AAAA,IAIzC;AAAA,IACD,aAAa,CAAAA,MAAY;AACvB,UAAIkF;AACJ,cAAQA,IAAgBnF,EAAI,SAASC,CAAQ,MAAM,OAAOkF,IAAgBpF,EAAM,QAAQ;AAAA,IACzF;AAAA,IACD,SAAqC,CAAE;AAAA,IACvC,aAAa,MAAM/B,GAAUgC,EAAI,SAAS,CAAAnC,MAAKA,EAAE,OAAO;AAAA,IACxD,cAAc,MAAMmC,EAAI,WAAWD,EAAM,OAAOC,EAAI,UAAU,EAAI,IAAI;AAAA,IACtE,eAAe,MAAM;AACnB,UAAIoF,IAAa,CAAE,GACfC,IAAarF;AACjB,iBAAa;AACX,cAAMsF,IAAYD,EAAW,aAAc;AAC3C,YAAI,CAACC,EAAW;AAChB,QAAAF,EAAW,KAAKE,CAAS,GACzBD,IAAaC;AAAA,MACrB;AACM,aAAOF,EAAW,QAAS;AAAA,IAC5B;AAAA,IACD,aAAa7G,EAAK,MAAM,CAACwB,EAAM,kBAAiB,CAAE,GAAG,CAAAqB,MAC5CA,EAAY,IAAI,CAAAhE,MACd0C,GAAWC,GAAOC,GAAK5C,GAAQA,EAAO,EAAE,CAChD,GACAqC,EAAeM,EAAM,SAAS,aAAa,aAAa,CAAC;AAAA,IAC5D,wBAAwBxB,EAAK,MAAM,CAACyB,EAAI,YAAW,CAAE,GAAG,CAAAuF,MAC/CA,EAAS,OAAO,CAACC,GAAKpF,OAC3BoF,EAAIpF,EAAK,OAAO,EAAE,IAAIA,GACfoF,IACN,EAAE,GACJ/F,EAAeM,EAAM,SAAS,aAAa,uBAAuB,CAAC;AAAA,EACvE;AACD,WAAS0F,IAAI,GAAGA,IAAI1F,EAAM,UAAU,QAAQ0F,KAAK;AAC/C,UAAMpF,IAAUN,EAAM,UAAU0F,CAAC;AACjC,IAAApF,KAAW,QAAQA,EAAQ,aAAa,QAAQA,EAAQ,UAAUL,GAAKD,CAAK;AAAA,EAChF;AACE,SAAOC;AACT,GAIM0F,KAAiB;AAAA,EACrB,cAAc,CAACtI,GAAQ2C,MAAU;AAC/B,IAAA3C,EAAO,sBAAsB2C,EAAM,QAAQ,sBAAsBA,EAAM,QAAQ,mBAAmBA,GAAO3C,EAAO,EAAE,GAClHA,EAAO,qBAAqB,MACrBA,EAAO,sBAGLA,EAAO,oBAAqB,IAF1B2C,EAAM,uBAAwB,GAIzC3C,EAAO,0BAA0B2C,EAAM,QAAQ,0BAA0BA,EAAM,QAAQ,uBAAuBA,GAAO3C,EAAO,EAAE,GAC9HA,EAAO,yBAAyB,MACzBA,EAAO,0BAGLA,EAAO,wBAAyB,IAF9B,oBAAI,IAAK,GAIpBA,EAAO,0BAA0B2C,EAAM,QAAQ,0BAA0BA,EAAM,QAAQ,uBAAuBA,GAAO3C,EAAO,EAAE,GAC9HA,EAAO,yBAAyB,MAAM;AACpC,UAAKA,EAAO;AAGZ,eAAOA,EAAO,wBAAyB;AAAA,IACxC;AAAA,EACL;AACA,GAEMuI,KAAiB,CAAC3F,GAAKC,GAAU2F,MAAgB;AACrD,MAAIC,GAAuBV;AAC3B,QAAMW,IAASF,KAAe,SAASC,IAAwBD,EAAY,SAAQ,MAAO,OAAO,SAASC,EAAsB,YAAa;AAC7I,SAAO,GAAS,GAAAV,IAAgBnF,EAAI,SAASC,CAAQ,MAAM,SAASkF,IAAgBA,EAAc,eAAe,SAASA,IAAgBA,EAAc,YAAa,MAAK,SAAgBA,EAAc,SAASW,CAAM;AACzN;AACAH,GAAe,aAAa,CAAA5H,MAAOgI,EAAWhI,CAAG;AACjD,MAAMiI,KAA0B,CAAChG,GAAKC,GAAU2F,MAAgB;AAC9D,MAAIK;AACJ,SAAO,GAAS,GAAAA,IAAiBjG,EAAI,SAASC,CAAQ,MAAM,SAASgG,IAAiBA,EAAe,SAAQ,MAAO,SAAgBA,EAAe,SAASL,CAAW;AACzK;AACAI,GAAwB,aAAa,CAAAjI,MAAOgI,EAAWhI,CAAG;AAC1D,MAAMmI,KAAe,CAAClG,GAAKC,GAAU2F,MAAgB;AACnD,MAAIO;AACJ,WAASA,IAAiBnG,EAAI,SAASC,CAAQ,MAAM,SAASkG,IAAiBA,EAAe,SAAU,MAAK,OAAO,SAASA,EAAe,YAAa,QAAOP,KAAe,OAAO,SAASA,EAAY;AAC7M;AACAM,GAAa,aAAa,CAAAnI,MAAOgI,EAAWhI,CAAG;AAC/C,MAAMqI,KAAc,CAACpG,GAAKC,GAAU2F,MAAgB;AAClD,MAAIS;AACJ,UAAQA,IAAiBrG,EAAI,SAASC,CAAQ,MAAM,OAAO,SAASoG,EAAe,SAAST,CAAW;AACzG;AACAQ,GAAY,aAAa,CAAArI,MAAOgI,EAAWhI,CAAG;AAC9C,MAAMuI,KAAiB,CAACtG,GAAKC,GAAU2F,MAC9B,CAACA,EAAY,KAAK,CAAA7H,MAAO;AAC9B,MAAIwI;AACJ,SAAO,GAAGA,IAAiBvG,EAAI,SAASC,CAAQ,MAAM,QAAQsG,EAAe,SAASxI,CAAG;AAC7F,CAAG;AAEHuI,GAAe,aAAa,CAAAvI,MAAOgI,EAAWhI,CAAG,KAAK,EAAEA,KAAO,QAAQA,EAAI;AAC3E,MAAMyI,KAAkB,CAACxG,GAAKC,GAAU2F,MAC/BA,EAAY,KAAK,CAAA7H,MAAO;AAC7B,MAAI0I;AACJ,UAAQA,IAAiBzG,EAAI,SAASC,CAAQ,MAAM,OAAO,SAASwG,EAAe,SAAS1I,CAAG;AACnG,CAAG;AAEHyI,GAAgB,aAAa,CAAAzI,MAAOgI,EAAWhI,CAAG,KAAK,EAAEA,KAAO,QAAQA,EAAI;AAC5E,MAAM2I,KAAS,CAAC1G,GAAKC,GAAU2F,MACtB5F,EAAI,SAASC,CAAQ,MAAM2F;AAEpCc,GAAO,aAAa,CAAA3I,MAAOgI,EAAWhI,CAAG;AACzC,MAAM4I,KAAa,CAAC3G,GAAKC,GAAU2F,MAC1B5F,EAAI,SAASC,CAAQ,KAAK2F;AAEnCe,GAAW,aAAa,CAAA5I,MAAOgI,EAAWhI,CAAG;AAC7C,MAAM6I,KAAgB,CAAC5G,GAAKC,GAAU2F,MAAgB;AACpD,MAAI,CAACiB,GAAKC,CAAG,IAAIlB;AACjB,QAAMmB,IAAW/G,EAAI,SAASC,CAAQ;AACtC,SAAO8G,KAAYF,KAAOE,KAAYD;AACxC;AACAF,GAAc,qBAAqB,CAAA7I,MAAO;AACxC,MAAI,CAACiJ,GAAWC,CAAS,IAAIlJ,GACzBmJ,IAAY,OAAOF,KAAc,WAAW,WAAWA,CAAS,IAAIA,GACpEG,IAAY,OAAOF,KAAc,WAAW,WAAWA,CAAS,IAAIA,GACpEJ,IAAMG,MAAc,QAAQ,OAAO,MAAME,CAAS,IAAI,SAAYA,GAClEJ,IAAMG,MAAc,QAAQ,OAAO,MAAME,CAAS,IAAI,QAAWA;AACrE,MAAIN,IAAMC,GAAK;AACb,UAAMM,IAAOP;AACb,IAAAA,IAAMC,GACNA,IAAMM;AAAA,EACV;AACE,SAAO,CAACP,GAAKC,CAAG;AAClB;AACAF,GAAc,aAAa,CAAA7I,MAAOgI,EAAWhI,CAAG,KAAKgI,EAAWhI,EAAI,CAAC,CAAC,KAAKgI,EAAWhI,EAAI,CAAC,CAAC;AAI5F,MAAMsJ,IAAY;AAAA,EAChB,gBAAA1B;AAAA,EACA,yBAAAK;AAAA,EACA,cAAAE;AAAA,EACA,aAAAE;AAAA,EACA,gBAAAE;AAAA,EACA,iBAAAE;AAAA,EACA,QAAAE;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AACF;AAGA,SAASb,EAAWhI,GAAK;AACvB,SAA4BA,KAAQ,QAAQA,MAAQ;AACtD;AAIA,MAAMuJ,KAAkB;AAAA,EACtB,qBAAqB,OACZ;AAAA,IACL,UAAU;AAAA,EACX;AAAA,EAEH,iBAAiB,CAAAC,OACR;AAAA,IACL,eAAe,CAAE;AAAA,IACjB,GAAGA;AAAA,EACJ;AAAA,EAEH,mBAAmB,CAAAxH,OACV;AAAA,IACL,uBAAuBvC,EAAiB,iBAAiBuC,CAAK;AAAA,IAC9D,oBAAoB;AAAA,IACpB,uBAAuB;AAAA,EACxB;AAAA,EAEH,cAAc,CAAC3C,GAAQ2C,MAAU;AAC/B,IAAA3C,EAAO,kBAAkB,MAAM;AAC7B,YAAMoK,IAAWzH,EAAM,gBAAe,EAAG,SAAS,CAAC,GAC7CrI,IAAQ8P,KAAY,OAAO,SAASA,EAAS,SAASpK,EAAO,EAAE;AACrE,aAAI,OAAO1F,KAAU,WACZ2P,EAAU,iBAEf,OAAO3P,KAAU,WACZ2P,EAAU,gBAEf,OAAO3P,KAAU,aAGjBA,MAAU,QAAQ,OAAOA,KAAU,WAC9B2P,EAAU,SAEf,MAAM,QAAQ3P,CAAK,IACd2P,EAAU,cAEZA,EAAU;AAAA,IAClB,GACDjK,EAAO,cAAc,MAAM;AACzB,UAAIqK,GAAuBC;AAC3B,aAAO9J,EAAWR,EAAO,UAAU,QAAQ,IAAIA,EAAO,UAAU,WAAWA,EAAO,UAAU,aAAa,SAASA,EAAO,gBAAiB;AAAA;AAAA,SACzIqK,KAAyBC,IAAyB3H,EAAM,QAAQ,cAAc,OAAO,SAAS2H,EAAuBtK,EAAO,UAAU,QAAQ,MAAM,OAAOqK,IAAwBJ,EAAUjK,EAAO,UAAU,QAAQ;AAAA;AAAA,IACxN,GACDA,EAAO,eAAe,MAAM;AAC1B,UAAIuK,GAAuBC,GAAuBC;AAClD,eAASF,IAAwBvK,EAAO,UAAU,uBAAuB,OAAOuK,IAAwB,SAAWC,IAAwB7H,EAAM,QAAQ,wBAAwB,OAAO6H,IAAwB,SAAWC,IAAyB9H,EAAM,QAAQ,kBAAkB,OAAO8H,IAAyB,OAAS,CAAC,CAACzK,EAAO;AAAA,IACvU,GACDA,EAAO,gBAAgB,MAAMA,EAAO,eAAgB,IAAG,IACvDA,EAAO,iBAAiB,MAAM;AAC5B,UAAI0K;AACJ,cAAQA,IAAwB/H,EAAM,SAAQ,EAAG,kBAAkB,SAAS+H,IAAwBA,EAAsB,KAAK,CAAAjK,MAAKA,EAAE,OAAOT,EAAO,EAAE,MAAM,OAAO,SAAS0K,EAAsB;AAAA,IACnM,GACD1K,EAAO,iBAAiB,MAAM;AAC5B,UAAI2K,GAAwBC;AAC5B,cAAQD,KAA0BC,IAAyBjI,EAAM,WAAW,kBAAkB,OAAO,SAASiI,EAAuB,UAAU,CAAAnK,MAAKA,EAAE,OAAOT,EAAO,EAAE,MAAM,OAAO2K,IAAyB;AAAA,IAC7M,GACD3K,EAAO,iBAAiB,CAAA1F,MAAS;AAC/B,MAAAqI,EAAM,iBAAiB,CAAApC,MAAO;AAC5B,cAAMsK,IAAW7K,EAAO,YAAa,GAC/B8K,IAAiBvK,KAAO,OAAO,SAASA,EAAI,KAAK,OAAK,EAAE,OAAOP,EAAO,EAAE,GACxE+K,IAAY9K,EAAiB3F,GAAOwQ,IAAiBA,EAAe,QAAQ,MAAS;AAG3F,YAAIE,GAAuBH,GAAUE,GAAW/K,CAAM,GAAG;AACvD,cAAIiL;AACJ,kBAAQA,IAAc1K,KAAO,OAAO,SAASA,EAAI,OAAO,OAAK,EAAE,OAAOP,EAAO,EAAE,MAAM,OAAOiL,IAAc,CAAE;AAAA,QACtH;AACQ,cAAMC,IAAe;AAAA,UACnB,IAAIlL,EAAO;AAAA,UACX,OAAO+K;AAAA,QACR;AACD,YAAID,GAAgB;AAClB,cAAIK;AACJ,kBAAQA,IAAW5K,KAAO,OAAO,SAASA,EAAI,IAAI,OAC5C,EAAE,OAAOP,EAAO,KACXkL,IAEF,CACR,MAAM,OAAOC,IAAW,CAAE;AAAA,QACrC;AACQ,eAAI5K,KAAO,QAAQA,EAAI,SACd,CAAC,GAAGA,GAAK2K,CAAY,IAEvB,CAACA,CAAY;AAAA,MAC5B,CAAO;AAAA,IACF;AAAA,EACF;AAAA,EACD,WAAW,CAACtI,GAAKwI,MAAW;AAC1B,IAAAxI,EAAI,gBAAgB,CAAE,GACtBA,EAAI,oBAAoB,CAAE;AAAA,EAC3B;AAAA,EACD,aAAa,CAAAD,MAAS;AACpB,IAAAA,EAAM,mBAAmB,CAAAzC,MAAW;AAClC,YAAM8D,IAAcrB,EAAM,kBAAmB,GACvC0I,IAAW,CAAA9K,MAAO;AACtB,YAAI+K;AACJ,gBAAQA,IAAoBrL,EAAiBC,GAASK,CAAG,MAAM,OAAO,SAAS+K,EAAkB,OAAO,CAAAC,MAAU;AAChH,gBAAMvL,IAASgE,EAAY,KAAK,CAAAvD,MAAKA,EAAE,OAAO8K,EAAO,EAAE;AACvD,cAAIvL,GAAQ;AACV,kBAAM6K,IAAW7K,EAAO,YAAa;AACrC,gBAAIgL,GAAuBH,GAAUU,EAAO,OAAOvL,CAAM;AACvD,qBAAO;AAAA,UAErB;AACU,iBAAO;AAAA,QACjB,CAAS;AAAA,MACF;AACD,MAAA2C,EAAM,QAAQ,yBAAyB,QAAQA,EAAM,QAAQ,sBAAsB0I,CAAQ;AAAA,IAC5F,GACD1I,EAAM,qBAAqB,CAAA6I,MAAgB;AACzC,UAAIC,GAAuBC;AAC3B,MAAA/I,EAAM,iBAAiB6I,IAAe,CAAE,KAAIC,KAAyBC,IAAsB/I,EAAM,iBAAiB,OAAO,SAAS+I,EAAoB,kBAAkB,OAAOD,IAAwB,EAAE;AAAA,IAC1M,GACD9I,EAAM,yBAAyB,MAAMA,EAAM,gBAAiB,GAC5DA,EAAM,sBAAsB,OACtB,CAACA,EAAM,wBAAwBA,EAAM,QAAQ,wBAC/CA,EAAM,uBAAuBA,EAAM,QAAQ,oBAAoBA,CAAK,IAElEA,EAAM,QAAQ,mBAAmB,CAACA,EAAM,uBACnCA,EAAM,uBAAwB,IAEhCA,EAAM,qBAAsB;AAAA,EAEzC;AACA;AACA,SAASqI,GAAuBH,GAAUvQ,GAAO0F,GAAQ;AACvD,UAAQ6K,KAAYA,EAAS,aAAaA,EAAS,WAAWvQ,GAAO0F,CAAM,IAAI,OAAU,OAAO1F,IAAU,OAAe,OAAOA,KAAU,YAAY,CAACA;AACzJ;AAEA,MAAMqR,KAAM,CAAC9I,GAAU+I,GAAWC,MAGzBA,EAAU,OAAO,CAACF,GAAKG,MAAS;AACrC,QAAMC,IAAYD,EAAK,SAASjJ,CAAQ;AACxC,SAAO8I,KAAO,OAAOI,KAAc,WAAWA,IAAY;AAC3D,GAAE,CAAC,GAEAtC,KAAM,CAAC5G,GAAU+I,GAAWC,MAAc;AAC9C,MAAIpC;AACJ,SAAAoC,EAAU,QAAQ,CAAAjJ,MAAO;AACvB,UAAMtI,IAAQsI,EAAI,SAASC,CAAQ;AACnC,IAAIvI,KAAS,SAASmP,IAAMnP,KAASmP,MAAQ,UAAanP,KAASA,OACjEmP,IAAMnP;AAAA,EAEZ,CAAG,GACMmP;AACT,GACMC,KAAM,CAAC7G,GAAU+I,GAAWC,MAAc;AAC9C,MAAInC;AACJ,SAAAmC,EAAU,QAAQ,CAAAjJ,MAAO;AACvB,UAAMtI,IAAQsI,EAAI,SAASC,CAAQ;AACnC,IAAIvI,KAAS,SAASoP,IAAMpP,KAASoP,MAAQ,UAAapP,KAASA,OACjEoP,IAAMpP;AAAA,EAEZ,CAAG,GACMoP;AACT,GACMsC,KAAS,CAACnJ,GAAU+I,GAAWC,MAAc;AACjD,MAAIpC,GACAC;AACJ,SAAAmC,EAAU,QAAQ,CAAAjJ,MAAO;AACvB,UAAMtI,IAAQsI,EAAI,SAASC,CAAQ;AACnC,IAAIvI,KAAS,SACPmP,MAAQ,SACNnP,KAASA,MAAOmP,IAAMC,IAAMpP,MAE5BmP,IAAMnP,MAAOmP,IAAMnP,IACnBoP,IAAMpP,MAAOoP,IAAMpP;AAAA,EAG/B,CAAG,GACM,CAACmP,GAAKC,CAAG;AAClB,GACMuC,KAAO,CAACpJ,GAAUqJ,MAAa;AACnC,MAAIC,IAAQ,GACRR,IAAM;AAOV,MANAO,EAAS,QAAQ,CAAAtJ,MAAO;AACtB,QAAItI,IAAQsI,EAAI,SAASC,CAAQ;AACjC,IAAIvI,KAAS,SAASA,IAAQ,CAACA,MAAUA,MACvC,EAAE6R,GAAOR,KAAOrR;AAAA,EAEtB,CAAG,GACG6R,EAAO,QAAOR,IAAMQ;AAE1B,GACMC,KAAS,CAACvJ,GAAUqJ,MAAa;AACrC,MAAI,CAACA,EAAS;AACZ;AAEF,QAAMG,IAASH,EAAS,IAAI,CAAAtJ,MAAOA,EAAI,SAASC,CAAQ,CAAC;AACzD,MAAI,CAACnC,GAAc2L,CAAM;AACvB;AAEF,MAAIA,EAAO,WAAW;AACpB,WAAOA,EAAO,CAAC;AAEjB,QAAMC,IAAM,KAAK,MAAMD,EAAO,SAAS,CAAC,GAClCE,IAAOF,EAAO,KAAK,CAACG,GAAGC,MAAMD,IAAIC,CAAC;AACxC,SAAOJ,EAAO,SAAS,MAAM,IAAIE,EAAKD,CAAG,KAAKC,EAAKD,IAAM,CAAC,IAAIC,EAAKD,CAAG,KAAK;AAC7E,GACMI,KAAS,CAAC7J,GAAUqJ,MACjB,MAAM,KAAK,IAAI,IAAIA,EAAS,IAAI,CAAAzL,MAAKA,EAAE,SAASoC,CAAQ,CAAC,CAAC,EAAE,OAAM,CAAE,GAEvE8J,KAAc,CAAC9J,GAAUqJ,MACtB,IAAI,IAAIA,EAAS,IAAI,CAAAzL,MAAKA,EAAE,SAASoC,CAAQ,CAAC,CAAC,EAAE,MAEpDsJ,KAAQ,CAACS,GAAWV,MACjBA,EAAS,QAEZW,IAAiB;AAAA,EACrB,KAAAlB;AAAA,EACA,KAAAlC;AAAA,EACA,KAAAC;AAAA,EACA,QAAAsC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAG;AAAA,EACA,QAAAM;AAAA,EACA,aAAAC;AAAA,EACA,OAAAR;AACF,GAIMW,KAAiB;AAAA,EACrB,qBAAqB,OACZ;AAAA,IACL,gBAAgB,CAAA1U,MAAS;AACvB,UAAI2U,GAAWC;AACf,cAAQD,KAAaC,IAAkB5U,EAAM,SAAU,MAAK,QAAQ4U,EAAgB,YAAY,OAAO,SAASA,EAAgB,SAAQ,MAAO,OAAOD,IAAY;AAAA,IACnK;AAAA,IACD,eAAe;AAAA,EAChB;AAAA,EAEH,iBAAiB,CAAA5C,OACR;AAAA,IACL,UAAU,CAAE;AAAA,IACZ,GAAGA;AAAA,EACJ;AAAA,EAEH,mBAAmB,CAAAxH,OACV;AAAA,IACL,kBAAkBvC,EAAiB,YAAYuC,CAAK;AAAA,IACpD,mBAAmB;AAAA,EACpB;AAAA,EAEH,cAAc,CAAC3C,GAAQ2C,MAAU;AAC/B,IAAA3C,EAAO,iBAAiB,MAAM;AAC5B,MAAA2C,EAAM,YAAY,CAAApC,MAEZA,KAAO,QAAQA,EAAI,SAASP,EAAO,EAAE,IAChCO,EAAI,OAAO,CAAAE,MAAKA,MAAMT,EAAO,EAAE,IAEjC,CAAC,GAAIO,KAAoB,IAAKP,EAAO,EAAE,CAC/C;AAAA,IACF,GACDA,EAAO,cAAc,MAAM;AACzB,UAAIuK,GAAuBC;AAC3B,eAASD,IAAwBvK,EAAO,UAAU,mBAAmB,OAAOuK,IAAwB,SAAWC,IAAwB7H,EAAM,QAAQ,mBAAmB,OAAO6H,IAAwB,QAAU,CAAC,CAACxK,EAAO,cAAc,CAAC,CAACA,EAAO,UAAU;AAAA,IAC5P,GACDA,EAAO,eAAe,MAAM;AAC1B,UAAIiN;AACJ,cAAQA,IAAwBtK,EAAM,SAAU,EAAC,aAAa,OAAO,SAASsK,EAAsB,SAASjN,EAAO,EAAE;AAAA,IACvH,GACDA,EAAO,kBAAkB,MAAM;AAC7B,UAAIkN;AACJ,cAAQA,IAAyBvK,EAAM,SAAU,EAAC,aAAa,OAAO,SAASuK,EAAuB,QAAQlN,EAAO,EAAE;AAAA,IACxH,GACDA,EAAO,2BAA2B,MAAM;AACtC,YAAMmN,IAAWnN,EAAO,YAAa;AACrC,aAAO,MAAM;AACX,QAAKmN,KACLnN,EAAO,eAAgB;AAAA,MACxB;AAAA,IACF,GACDA,EAAO,uBAAuB,MAAM;AAClC,YAAMoK,IAAWzH,EAAM,gBAAe,EAAG,SAAS,CAAC,GAC7CrI,IAAQ8P,KAAY,OAAO,SAASA,EAAS,SAASpK,EAAO,EAAE;AACrE,UAAI,OAAO1F,KAAU;AACnB,eAAOuS,EAAe;AAExB,UAAI,OAAO,UAAU,SAAS,KAAKvS,CAAK,MAAM;AAC5C,eAAOuS,EAAe;AAAA,IAEzB,GACD7M,EAAO,mBAAmB,MAAM;AAC9B,UAAIoN,GAAuBC;AAC3B,UAAI,CAACrN;AACH,cAAM,IAAI,MAAO;AAEnB,aAAOQ,EAAWR,EAAO,UAAU,aAAa,IAAIA,EAAO,UAAU,gBAAgBA,EAAO,UAAU,kBAAkB,SAASA,EAAO,qBAAsB,KAAIoN,KAAyBC,IAAyB1K,EAAM,QAAQ,mBAAmB,OAAO,SAAS0K,EAAuBrN,EAAO,UAAU,aAAa,MAAM,OAAOoN,IAAwBP,EAAe7M,EAAO,UAAU,aAAa;AAAA,IAC7Y;AAAA,EACF;AAAA,EACD,aAAa,CAAA2C,MAAS;AACpB,IAAAA,EAAM,cAAc,CAAAzC,MAAWyC,EAAM,QAAQ,oBAAoB,OAAO,SAASA,EAAM,QAAQ,iBAAiBzC,CAAO,GACvHyC,EAAM,gBAAgB,CAAA6I,MAAgB;AACpC,UAAI8B,GAAuB5B;AAC3B,MAAA/I,EAAM,YAAY6I,IAAe,CAAE,KAAI8B,KAAyB5B,IAAsB/I,EAAM,iBAAiB,OAAO,SAAS+I,EAAoB,aAAa,OAAO4B,IAAwB,EAAE;AAAA,IAChM,GACD3K,EAAM,wBAAwB,MAAMA,EAAM,oBAAqB,GAC/DA,EAAM,qBAAqB,OACrB,CAACA,EAAM,uBAAuBA,EAAM,QAAQ,uBAC9CA,EAAM,sBAAsBA,EAAM,QAAQ,mBAAmBA,CAAK,IAEhEA,EAAM,QAAQ,kBAAkB,CAACA,EAAM,sBAClCA,EAAM,sBAAuB,IAE/BA,EAAM,oBAAqB;AAAA,EAErC;AAAA,EACD,WAAW,CAACC,GAAKD,MAAU;AACzB,IAAAC,EAAI,eAAe,MAAM,CAAC,CAACA,EAAI,kBAC/BA,EAAI,mBAAmB,CAAAC,MAAY;AACjC,UAAID,EAAI,qBAAqB,eAAeC,CAAQ;AAClD,eAAOD,EAAI,qBAAqBC,CAAQ;AAE1C,YAAM7C,IAAS2C,EAAM,UAAUE,CAAQ;AACvC,aAAM7C,KAAU,QAAQA,EAAO,UAAU,oBAGzC4C,EAAI,qBAAqBC,CAAQ,IAAI7C,EAAO,UAAU,iBAAiB4C,EAAI,QAAQ,GAC5EA,EAAI,qBAAqBC,CAAQ,KAH/BD,EAAI,SAASC,CAAQ;AAAA,IAI/B,GACDD,EAAI,uBAAuB,CAAE;AAAA,EAC9B;AAAA,EACD,YAAY,CAACI,GAAMhD,GAAQ4C,GAAKD,MAAU;AACxC,IAAAK,EAAK,eAAe,MAAMhD,EAAO,aAAc,KAAIA,EAAO,OAAO4C,EAAI,kBACrEI,EAAK,mBAAmB,MAAM,CAACA,EAAK,aAAc,KAAIhD,EAAO,aAAc,GAC3EgD,EAAK,kBAAkB,MAAM;AAC3B,UAAIuK;AACJ,aAAO,CAACvK,EAAK,aAAc,KAAI,CAACA,EAAK,iBAAkB,KAAI,CAAC,GAAGuK,IAAe3K,EAAI,YAAY,QAAQ2K,EAAa;AAAA,IACpH;AAAA,EACL;AACA;AACA,SAASzJ,GAAaE,GAAawJ,GAAUC,GAAmB;AAC9D,MAAI,EAAED,KAAY,QAAQA,EAAS,WAAW,CAACC;AAC7C,WAAOzJ;AAET,QAAM0J,IAAqB1J,EAAY,OAAO,CAAA2J,MAAO,CAACH,EAAS,SAASG,EAAI,EAAE,CAAC;AAC/E,SAAIF,MAAsB,WACjBC,IAGF,CAAC,GADgBF,EAAS,IAAI,CAAAI,MAAK5J,EAAY,KAAK,CAAA2J,MAAOA,EAAI,OAAOC,CAAC,CAAC,EAAE,OAAO,OAAO,GACnE,GAAGF,CAAkB;AACnD;AAIA,MAAMG,KAAiB;AAAA,EACrB,iBAAiB,CAAA1D,OACR;AAAA,IACL,aAAa,CAAE;AAAA,IACf,GAAGA;AAAA,EACJ;AAAA,EAEH,mBAAmB,CAAAxH,OACV;AAAA,IACL,qBAAqBvC,EAAiB,eAAeuC,CAAK;AAAA,EAC3D;AAAA,EAEH,cAAc,CAAC3C,GAAQ2C,MAAU;AAC/B,IAAA3C,EAAO,WAAWmB,EAAK,CAAA2M,MAAY,CAACC,EAAuBpL,GAAOmL,CAAQ,CAAC,GAAG,CAAArH,MAAWA,EAAQ,UAAU,CAAAhG,MAAKA,EAAE,OAAOT,EAAO,EAAE,GAAGqC,EAAeM,EAAM,SAAS,gBAAgB,UAAU,CAAC,GAC9L3C,EAAO,mBAAmB,CAAA8N,MAAY;AACpC,UAAIE;AAEJ,eAASA,IADOD,EAAuBpL,GAAOmL,CAAQ,EACzB,CAAC,MAAM,OAAO,SAASE,EAAU,QAAQhO,EAAO;AAAA,IAC9E,GACDA,EAAO,kBAAkB,CAAA8N,MAAY;AACnC,UAAIG;AACJ,YAAMxH,IAAUsH,EAAuBpL,GAAOmL,CAAQ;AACtD,eAASG,IAAWxH,EAAQA,EAAQ,SAAS,CAAC,MAAM,OAAO,SAASwH,EAAS,QAAQjO,EAAO;AAAA,IAC7F;AAAA,EACF;AAAA,EACD,aAAa,CAAA2C,MAAS;AACpB,IAAAA,EAAM,iBAAiB,CAAAzC,MAAWyC,EAAM,QAAQ,uBAAuB,OAAO,SAASA,EAAM,QAAQ,oBAAoBzC,CAAO,GAChIyC,EAAM,mBAAmB,CAAA6I,MAAgB;AACvC,UAAIC;AACJ,MAAA9I,EAAM,eAAe6I,IAAe,CAAA,KAAMC,IAAwB9I,EAAM,aAAa,gBAAgB,OAAO8I,IAAwB,CAAA,CAAE;AAAA,IACvI,GACD9I,EAAM,qBAAqBxB,EAAK,MAAM,CAACwB,EAAM,SAAU,EAAC,aAAaA,EAAM,SAAU,EAAC,UAAUA,EAAM,QAAQ,iBAAiB,GAAG,CAACuL,GAAaV,GAAUC,MAAsB,CAAAhH,MAAW;AAGzL,UAAI0H,IAAiB,CAAE;AAGvB,UAAI,EAAED,KAAe,QAAQA,EAAY;AACvC,QAAAC,IAAiB1H;AAAA,WACZ;AACL,cAAM2H,IAAkB,CAAC,GAAGF,CAAW,GAGjCG,IAAc,CAAC,GAAG5H,CAAO;AAK/B,eAAO4H,EAAY,UAAUD,EAAgB,UAAQ;AACnD,gBAAME,IAAiBF,EAAgB,MAAO,GACxCG,IAAaF,EAAY,UAAU,OAAK,EAAE,OAAOC,CAAc;AACrE,UAAIC,IAAa,MACfJ,EAAe,KAAKE,EAAY,OAAOE,GAAY,CAAC,EAAE,CAAC,CAAC;AAAA,QAEpE;AAGQ,QAAAJ,IAAiB,CAAC,GAAGA,GAAgB,GAAGE,CAAW;AAAA,MAC3D;AACM,aAAOvK,GAAaqK,GAAgBX,GAAUC,CAAiB;AAAA,IAChE,GAAEpL,EAAeM,EAAM,SAAS,cAAc,oBAAoB,CAAC;AAAA,EACxE;AACA,GAIM6L,IAA+B,OAAO;AAAA,EAC1C,MAAM,CAAE;AAAA,EACR,OAAO,CAAA;AACT,IACMC,KAAgB;AAAA,EACpB,iBAAiB,CAAAtE,OACR;AAAA,IACL,eAAeqE,EAA8B;AAAA,IAC7C,GAAGrE;AAAA,EACJ;AAAA,EAEH,mBAAmB,CAAAxH,OACV;AAAA,IACL,uBAAuBvC,EAAiB,iBAAiBuC,CAAK;AAAA,EAC/D;AAAA,EAEH,cAAc,CAAC3C,GAAQ2C,MAAU;AAC/B,IAAA3C,EAAO,MAAM,CAAA8N,MAAY;AACvB,YAAMY,IAAY1O,EAAO,eAAc,EAAG,IAAI,CAAAS,MAAKA,EAAE,EAAE,EAAE,OAAO,OAAO;AACvE,MAAAkC,EAAM,iBAAiB,CAAApC,MAAO;AAC5B,YAAIoO,GAAYC;AAChB,YAAId,MAAa,SAAS;AACxB,cAAIe,GAAWC;AACf,iBAAO;AAAA,YACL,QAAQD,IAAYtO,KAAO,OAAO,SAASA,EAAI,SAAS,OAAOsO,IAAY,CAAA,GAAI,OAAO,CAAApO,MAAK,EAAEiO,KAAa,QAAQA,EAAU,SAASjO,CAAC,EAAE;AAAA,YACxI,OAAO,CAAC,KAAKqO,IAAavO,KAAO,OAAO,SAASA,EAAI,UAAU,OAAOuO,IAAa,CAAE,GAAE,OAAO,CAAArO,MAAK,EAAEiO,KAAa,QAAQA,EAAU,SAASjO,CAAC,EAAE,GAAG,GAAGiO,CAAS;AAAA,UAChK;AAAA,QACX;AACQ,YAAIZ,MAAa,QAAQ;AACvB,cAAIiB,GAAYC;AAChB,iBAAO;AAAA,YACL,MAAM,CAAC,KAAKD,IAAaxO,KAAO,OAAO,SAASA,EAAI,SAAS,OAAOwO,IAAa,IAAI,OAAO,CAAAtO,MAAK,EAAEiO,KAAa,QAAQA,EAAU,SAASjO,CAAC,EAAE,GAAG,GAAGiO,CAAS;AAAA,YAC7J,SAASM,IAAczO,KAAO,OAAO,SAASA,EAAI,UAAU,OAAOyO,IAAc,IAAI,OAAO,CAAAvO,MAAK,EAAEiO,KAAa,QAAQA,EAAU,SAASjO,CAAC,EAAE;AAAA,UAC/I;AAAA,QACX;AACQ,eAAO;AAAA,UACL,QAAQkO,IAAapO,KAAO,OAAO,SAASA,EAAI,SAAS,OAAOoO,IAAa,CAAA,GAAI,OAAO,CAAAlO,MAAK,EAAEiO,KAAa,QAAQA,EAAU,SAASjO,CAAC,EAAE;AAAA,UAC1I,SAASmO,IAAcrO,KAAO,OAAO,SAASA,EAAI,UAAU,OAAOqO,IAAc,IAAI,OAAO,CAAAnO,MAAK,EAAEiO,KAAa,QAAQA,EAAU,SAASjO,CAAC,EAAE;AAAA,QAC/I;AAAA,MACT,CAAO;AAAA,IACF,GACDT,EAAO,YAAY,MACGA,EAAO,eAAgB,EACxB,KAAK,CAAAS,MAAK;AAC3B,UAAIwO,GAAuB3L,GAAMkH;AACjC,eAASyE,IAAwBxO,EAAE,UAAU,kBAAkB,OAAOwO,IAAwB,SAAW3L,KAAQkH,IAAwB7H,EAAM,QAAQ,wBAAwB,OAAO6H,IAAwB7H,EAAM,QAAQ,kBAAkB,OAAOW,IAAO;AAAA,IACpQ,CAAO,GAEHtD,EAAO,cAAc,MAAM;AACzB,YAAMkP,IAAgBlP,EAAO,eAAc,EAAG,IAAI,CAAAS,MAAKA,EAAE,EAAE,GACrD;AAAA,QACJ,MAAAkE;AAAA,QACA,OAAAC;AAAA,MACR,IAAUjC,EAAM,SAAQ,EAAG,eACfwM,IAASD,EAAc,KAAK,CAAAzO,MAAKkE,KAAQ,OAAO,SAASA,EAAK,SAASlE,CAAC,CAAC,GACzE2O,IAAUF,EAAc,KAAK,CAAAzO,MAAKmE,KAAS,OAAO,SAASA,EAAM,SAASnE,CAAC,CAAC;AAClF,aAAO0O,IAAS,SAASC,IAAU,UAAU;AAAA,IAC9C,GACDpP,EAAO,iBAAiB,MAAM;AAC5B,UAAI0K,GAAuBC;AAC3B,YAAMmD,IAAW9N,EAAO,YAAa;AACrC,aAAO8N,KAAYpD,KAAyBC,IAAyBhI,EAAM,SAAQ,EAAG,kBAAkB,SAASgI,IAAyBA,EAAuBmD,CAAQ,MAAM,OAAO,SAASnD,EAAuB,QAAQ3K,EAAO,EAAE,MAAM,OAAO0K,IAAwB,KAAK;AAAA,IAClR;AAAA,EACF;AAAA,EACD,WAAW,CAAC9H,GAAKD,MAAU;AACzB,IAAAC,EAAI,wBAAwBzB,EAAK,MAAM,CAACyB,EAAI,oBAAqB,GAAED,EAAM,WAAW,cAAc,MAAMA,EAAM,SAAQ,EAAG,cAAc,KAAK,GAAG,CAACwF,GAAUxD,GAAMC,MAAU;AACxK,YAAMyK,IAAe,CAAC,GAAI1K,KAAsB,IAAK,GAAIC,KAAwB,CAAE,CAAC;AACpF,aAAOuD,EAAS,OAAO,CAAA1H,MAAK,CAAC4O,EAAa,SAAS5O,EAAE,OAAO,EAAE,CAAC;AAAA,IAChE,GAAE4B,EAAeM,EAAM,SAAS,aAAa,uBAAuB,CAAC,GACtEC,EAAI,sBAAsBzB,EAAK,MAAM,CAACyB,EAAI,oBAAqB,GAAED,EAAM,SAAQ,EAAG,cAAc,IAAI,GAAG,CAACwF,GAAUxD,OACjGA,KAAsB,CAAA,GAAI,IAAI,CAAA9B,MAAYsF,EAAS,KAAK,CAAAnF,MAAQA,EAAK,OAAO,OAAOH,CAAQ,CAAC,EAAE,OAAO,OAAO,EAAE,IAAI,CAAApC,OAAM;AAAA,MACrI,GAAGA;AAAA,MACH,UAAU;AAAA,IAClB,EAAQ,GAED4B,EAAeM,EAAM,SAAS,aAAa,qBAAqB,CAAC,GACpEC,EAAI,uBAAuBzB,EAAK,MAAM,CAACyB,EAAI,oBAAqB,GAAED,EAAM,SAAQ,EAAG,cAAc,KAAK,GAAG,CAACwF,GAAUvD,OACnGA,KAAwB,CAAA,GAAI,IAAI,CAAA/B,MAAYsF,EAAS,KAAK,CAAAnF,MAAQA,EAAK,OAAO,OAAOH,CAAQ,CAAC,EAAE,OAAO,OAAO,EAAE,IAAI,CAAApC,OAAM;AAAA,MACvI,GAAGA;AAAA,MACH,UAAU;AAAA,IAClB,EAAQ,GAED4B,EAAeM,EAAM,SAAS,aAAa,sBAAsB,CAAC;AAAA,EACtE;AAAA,EACD,aAAa,CAAAA,MAAS;AACpB,IAAAA,EAAM,mBAAmB,CAAAzC,MAAWyC,EAAM,QAAQ,yBAAyB,OAAO,SAASA,EAAM,QAAQ,sBAAsBzC,CAAO,GACtIyC,EAAM,qBAAqB,CAAA6I,MAAgB;AACzC,UAAIC,GAAuBC;AAC3B,aAAO/I,EAAM,iBAAiB6I,IAAegD,EAA4B,KAAM/C,KAAyBC,IAAsB/I,EAAM,iBAAiB,OAAO,SAAS+I,EAAoB,kBAAkB,OAAOD,IAAwB+C,GAA8B;AAAA,IACzQ,GACD7L,EAAM,yBAAyB,CAAAmL,MAAY;AACzC,UAAIwB;AACJ,YAAMC,IAAe5M,EAAM,SAAQ,EAAG;AACtC,UAAI,CAACmL,GAAU;AACb,YAAI0B,GAAoBC;AACxB,eAAO,IAAUD,IAAqBD,EAAa,SAAS,QAAgBC,EAAmB,WAAaC,IAAsBF,EAAa,UAAU,QAAgBE,EAAoB;AAAA,MACrM;AACM,aAAO,IAASH,IAAwBC,EAAazB,CAAQ,MAAM,QAAgBwB,EAAsB;AAAA,IAC1G,GACD3M,EAAM,qBAAqBxB,EAAK,MAAM,CAACwB,EAAM,kBAAmB,GAAEA,EAAM,SAAQ,EAAG,cAAc,IAAI,GAAG,CAAC+B,GAAYC,OAC3GA,KAAsB,CAAE,GAAE,IAAI,CAAA9B,MAAY6B,EAAW,KAAK,CAAA1E,MAAUA,EAAO,OAAO6C,CAAQ,CAAC,EAAE,OAAO,OAAO,GAClHR,EAAeM,EAAM,SAAS,gBAAgB,oBAAoB,CAAC,GACtEA,EAAM,sBAAsBxB,EAAK,MAAM,CAACwB,EAAM,kBAAmB,GAAEA,EAAM,SAAQ,EAAG,cAAc,KAAK,GAAG,CAAC+B,GAAYE,OAC7GA,KAAwB,CAAE,GAAE,IAAI,CAAA/B,MAAY6B,EAAW,KAAK,CAAA1E,MAAUA,EAAO,OAAO6C,CAAQ,CAAC,EAAE,OAAO,OAAO,GACpHR,EAAeM,EAAM,SAAS,gBAAgB,qBAAqB,CAAC,GACvEA,EAAM,uBAAuBxB,EAAK,MAAM,CAACwB,EAAM,kBAAmB,GAAEA,EAAM,WAAW,cAAc,MAAMA,EAAM,SAAQ,EAAG,cAAc,KAAK,GAAG,CAAC+B,GAAYC,GAAMC,MAAU;AAC3K,YAAMyK,IAAe,CAAC,GAAI1K,KAAsB,IAAK,GAAIC,KAAwB,CAAE,CAAC;AACpF,aAAOF,EAAW,OAAO,CAAAjE,MAAK,CAAC4O,EAAa,SAAS5O,EAAE,EAAE,CAAC;AAAA,IAC3D,GAAE4B,EAAeM,EAAM,SAAS,gBAAgB,sBAAsB,CAAC;AAAA,EAC5E;AACA,GAMM+M,IAAsB;AAAA,EAC1B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS,OAAO;AAClB,GACMC,IAAkC,OAAO;AAAA,EAC7C,aAAa;AAAA,EACb,WAAW;AAAA,EACX,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,mBAAmB,CAAA;AACrB,IACMC,KAAe;AAAA,EACnB,qBAAqB,MACZF;AAAA,EAET,iBAAiB,CAAAvF,OACR;AAAA,IACL,cAAc,CAAE;AAAA,IAChB,kBAAkBwF,EAAiC;AAAA,IACnD,GAAGxF;AAAA,EACJ;AAAA,EAEH,mBAAmB,CAAAxH,OACV;AAAA,IACL,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,sBAAsBvC,EAAiB,gBAAgBuC,CAAK;AAAA,IAC5D,0BAA0BvC,EAAiB,oBAAoBuC,CAAK;AAAA,EACrE;AAAA,EAEH,cAAc,CAAC3C,GAAQ2C,MAAU;AAC/B,IAAA3C,EAAO,UAAU,MAAM;AACrB,UAAI6P,GAAuBvM,GAAMwM;AACjC,YAAMC,IAAapN,EAAM,SAAU,EAAC,aAAa3C,EAAO,EAAE;AAC1D,aAAO,KAAK,IAAI,KAAK,KAAK6P,IAAwB7P,EAAO,UAAU,YAAY,OAAO6P,IAAwBH,EAAoB,UAAUpM,IAAOyM,KAAkC/P,EAAO,UAAU,SAAS,OAAOsD,IAAOoM,EAAoB,IAAI,IAAII,IAAwB9P,EAAO,UAAU,YAAY,OAAO8P,IAAwBJ,EAAoB,OAAO;AAAA,IACzW,GACD1P,EAAO,WAAWmB,EAAK,CAAA2M,MAAY,CAACA,GAAUC,EAAuBpL,GAAOmL,CAAQ,GAAGnL,EAAM,SAAU,EAAC,YAAY,GAAG,CAACmL,GAAUrH,MAAYA,EAAQ,MAAM,GAAGzG,EAAO,SAAS8N,CAAQ,CAAC,EAAE,OAAO,CAACnC,GAAK3L,MAAW2L,IAAM3L,EAAO,QAAS,GAAE,CAAC,GAAGqC,EAAeM,EAAM,SAAS,gBAAgB,UAAU,CAAC,GACvS3C,EAAO,WAAWmB,EAAK,CAAA2M,MAAY,CAACA,GAAUC,EAAuBpL,GAAOmL,CAAQ,GAAGnL,EAAM,SAAU,EAAC,YAAY,GAAG,CAACmL,GAAUrH,MAAYA,EAAQ,MAAMzG,EAAO,SAAS8N,CAAQ,IAAI,CAAC,EAAE,OAAO,CAACnC,GAAK3L,MAAW2L,IAAM3L,EAAO,QAAS,GAAE,CAAC,GAAGqC,EAAeM,EAAM,SAAS,gBAAgB,UAAU,CAAC,GACxS3C,EAAO,YAAY,MAAM;AACvB,MAAA2C,EAAM,gBAAgB,CAAAqN,MAAS;AAC7B,YAAI;AAAA,UACF,CAAChQ,EAAO,EAAE,GAAGiQ;AAAA,UACb,GAAGC;AAAA,QACb,IAAYF;AACJ,eAAOE;AAAA,MACf,CAAO;AAAA,IACF,GACDlQ,EAAO,eAAe,MAAM;AAC1B,UAAIuK,GAAuBC;AAC3B,eAASD,IAAwBvK,EAAO,UAAU,mBAAmB,OAAOuK,IAAwB,SAAWC,IAAwB7H,EAAM,QAAQ,yBAAyB,OAAO6H,IAAwB;AAAA,IAC9M,GACDxK,EAAO,gBAAgB,MACd2C,EAAM,SAAU,EAAC,iBAAiB,qBAAqB3C,EAAO;AAAA,EAExE;AAAA,EACD,cAAc,CAACqE,GAAQ1B,MAAU;AAC/B,IAAA0B,EAAO,UAAU,MAAM;AACrB,UAAIsH,IAAM;AACV,YAAM3K,IAAU,CAAAqD,MAAU;AACxB,YAAIA,EAAO,WAAW;AACpB,UAAAA,EAAO,WAAW,QAAQrD,CAAO;AAAA,aAC5B;AACL,cAAImP;AACJ,UAAAxE,MAAQwE,IAAwB9L,EAAO,OAAO,cAAc,OAAO8L,IAAwB;AAAA,QACrG;AAAA,MACO;AACD,aAAAnP,EAAQqD,CAAM,GACPsH;AAAA,IACR,GACDtH,EAAO,WAAW,MAAM;AACtB,UAAIA,EAAO,QAAQ,GAAG;AACpB,cAAM+L,IAAoB/L,EAAO,YAAY,QAAQA,EAAO,QAAQ,CAAC;AACrE,eAAO+L,EAAkB,aAAaA,EAAkB,QAAS;AAAA,MACzE;AACM,aAAO;AAAA,IACR,GACD/L,EAAO,mBAAmB,CAAAgM,MAAoB;AAC5C,YAAMrQ,IAAS2C,EAAM,UAAU0B,EAAO,OAAO,EAAE,GACzCiM,IAAYtQ,KAAU,OAAO,SAASA,EAAO,aAAc;AACjE,aAAO,CAAAuQ,MAAK;AAKV,YAJI,CAACvQ,KAAU,CAACsQ,MAGhBC,EAAE,WAAW,QAAQA,EAAE,QAAS,GAC5BC,EAAkBD,CAAC,KAEjBA,EAAE,WAAWA,EAAE,QAAQ,SAAS;AAClC;AAGJ,cAAME,IAAYpM,EAAO,QAAS,GAC5BqM,IAAoBrM,IAASA,EAAO,eAAc,EAAG,IAAI,CAAA5D,MAAK,CAACA,EAAE,OAAO,IAAIA,EAAE,OAAO,QAAS,CAAA,CAAC,IAAI,CAAC,CAACT,EAAO,IAAIA,EAAO,QAAO,CAAE,CAAC,GACjI2Q,IAAUH,EAAkBD,CAAC,IAAI,KAAK,MAAMA,EAAE,QAAQ,CAAC,EAAE,OAAO,IAAIA,EAAE,SACtEK,IAAkB,CAAE,GACpBC,IAAe,CAACC,GAAWC,MAAe;AAC9C,UAAI,OAAOA,KAAe,aAG1BpO,EAAM,oBAAoB,CAAApC,MAAO;AAC/B,gBAAIyQ,GAAkBC;AACtB,kBAAMC,IAAiBvO,EAAM,QAAQ,0BAA0B,QAAQ,KAAK,GACtEwO,MAAeJ,MAAeC,IAAmBzQ,KAAO,OAAO,SAASA,EAAI,gBAAgB,OAAOyQ,IAAmB,MAAME,GAC5HE,KAAkB,KAAK,IAAID,OAAgBF,IAAiB1Q,KAAO,OAAO,SAASA,EAAI,cAAc,OAAO0Q,IAAiB,IAAI,SAAS;AAChJ,mBAAA1Q,EAAI,kBAAkB,QAAQ,CAAA8Q,OAAS;AACrC,kBAAI,CAACxO,IAAUyO,EAAU,IAAID;AAC7B,cAAAT,EAAgB/N,EAAQ,IAAI,KAAK,MAAM,KAAK,IAAIyO,KAAaA,KAAaF,IAAiB,CAAC,IAAI,GAAG,IAAI;AAAA,YACrH,CAAa,GACM;AAAA,cACL,GAAG7Q;AAAA,cACH,aAAA4Q;AAAA,cACA,iBAAAC;AAAA,YACD;AAAA,UACb,CAAW,IACGzO,EAAM,QAAQ,qBAAqB,cAAcmO,MAAc,UACjEnO,EAAM,gBAAgB,CAAApC,OAAQ;AAAA,YAC5B,GAAGA;AAAA,YACH,GAAGqQ;AAAA,UACjB,EAAc;AAAA,QAEL,GACKW,IAAS,CAAAR,MAAcF,EAAa,QAAQE,CAAU,GACtDS,IAAQ,CAAAT,MAAc;AAC1B,UAAAF,EAAa,OAAOE,CAAU,GAC9BpO,EAAM,oBAAoB,CAAApC,OAAQ;AAAA,YAChC,GAAGA;AAAA,YACH,kBAAkB;AAAA,YAClB,aAAa;AAAA,YACb,WAAW;AAAA,YACX,aAAa;AAAA,YACb,iBAAiB;AAAA,YACjB,mBAAmB,CAAA;AAAA,UAC/B,EAAY;AAAA,QACH,GACKkR,IAAkBpB,KAAoB,OAAO,WAAa,MAAc,WAAW,MACnFqB,IAAc;AAAA,UAClB,aAAa,CAAAnB,MAAKgB,EAAOhB,EAAE,OAAO;AAAA,UAClC,WAAW,CAAAA,MAAK;AACd,YAAAkB,KAAmB,QAAQA,EAAgB,oBAAoB,aAAaC,EAAY,WAAW,GACnGD,KAAmB,QAAQA,EAAgB,oBAAoB,WAAWC,EAAY,SAAS,GAC/FF,EAAMjB,EAAE,OAAO;AAAA,UAC3B;AAAA,QACS,GACKoB,IAAc;AAAA,UAClB,aAAa,CAAApB,OACPA,EAAE,eACJA,EAAE,eAAgB,GAClBA,EAAE,gBAAiB,IAErBgB,EAAOhB,EAAE,QAAQ,CAAC,EAAE,OAAO,GACpB;AAAA,UAET,WAAW,CAAAA,MAAK;AACd,gBAAIqB;AACJ,YAAAH,KAAmB,QAAQA,EAAgB,oBAAoB,aAAaE,EAAY,WAAW,GACnGF,KAAmB,QAAQA,EAAgB,oBAAoB,YAAYE,EAAY,SAAS,GAC5FpB,EAAE,eACJA,EAAE,eAAgB,GAClBA,EAAE,gBAAiB,IAErBiB,GAAOI,IAAcrB,EAAE,QAAQ,CAAC,MAAM,OAAO,SAASqB,EAAY,OAAO;AAAA,UACrF;AAAA,QACS,GACKC,IAAqBC,OAA0B;AAAA,UACnD,SAAS;AAAA,QACnB,IAAY;AACJ,QAAItB,EAAkBD,CAAC,KACrBkB,KAAmB,QAAQA,EAAgB,iBAAiB,aAAaE,EAAY,aAAaE,CAAkB,GACpHJ,KAAmB,QAAQA,EAAgB,iBAAiB,YAAYE,EAAY,WAAWE,CAAkB,MAEjHJ,KAAmB,QAAQA,EAAgB,iBAAiB,aAAaC,EAAY,aAAaG,CAAkB,GACpHJ,KAAmB,QAAQA,EAAgB,iBAAiB,WAAWC,EAAY,WAAWG,CAAkB,IAElHlP,EAAM,oBAAoB,CAAApC,OAAQ;AAAA,UAChC,GAAGA;AAAA,UACH,aAAaoQ;AAAA,UACb,WAAAF;AAAA,UACA,aAAa;AAAA,UACb,iBAAiB;AAAA,UACjB,mBAAAC;AAAA,UACA,kBAAkB1Q,EAAO;AAAA,QACnC,EAAU;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAAA,EACD,aAAa,CAAA2C,MAAS;AACpB,IAAAA,EAAM,kBAAkB,CAAAzC,MAAWyC,EAAM,QAAQ,wBAAwB,OAAO,SAASA,EAAM,QAAQ,qBAAqBzC,CAAO,GACnIyC,EAAM,sBAAsB,CAAAzC,MAAWyC,EAAM,QAAQ,4BAA4B,OAAO,SAASA,EAAM,QAAQ,yBAAyBzC,CAAO,GAC/IyC,EAAM,oBAAoB,CAAA6I,MAAgB;AACxC,UAAIC;AACJ,MAAA9I,EAAM,gBAAgB6I,IAAe,CAAA,KAAMC,IAAwB9I,EAAM,aAAa,iBAAiB,OAAO8I,IAAwB,CAAA,CAAE;AAAA,IACzI,GACD9I,EAAM,sBAAsB,CAAA6I,MAAgB;AAC1C,UAAIuG;AACJ,MAAApP,EAAM,oBAAoB6I,IAAemE,EAA+B,KAAMoC,IAAyBpP,EAAM,aAAa,qBAAqB,OAAOoP,IAAyBpC,EAA+B,CAAE;AAAA,IACjN,GACDhN,EAAM,eAAe,MAAM;AACzB,UAAIqP,GAAuBC;AAC3B,cAAQD,KAAyBC,IAAyBtP,EAAM,gBAAiB,EAAC,CAAC,MAAM,OAAO,SAASsP,EAAuB,QAAQ,OAAO,CAACtG,GAAKtH,MAC5IsH,IAAMtH,EAAO,QAAS,GAC5B,CAAC,MAAM,OAAO2N,IAAwB;AAAA,IAC1C,GACDrP,EAAM,mBAAmB,MAAM;AAC7B,UAAIuP,GAAuBC;AAC3B,cAAQD,KAAyBC,IAAyBxP,EAAM,oBAAqB,EAAC,CAAC,MAAM,OAAO,SAASwP,EAAuB,QAAQ,OAAO,CAACxG,GAAKtH,MAChJsH,IAAMtH,EAAO,QAAS,GAC5B,CAAC,MAAM,OAAO6N,IAAwB;AAAA,IAC1C,GACDvP,EAAM,qBAAqB,MAAM;AAC/B,UAAIyP,GAAuBC;AAC3B,cAAQD,KAAyBC,IAAyB1P,EAAM,sBAAuB,EAAC,CAAC,MAAM,OAAO,SAAS0P,EAAuB,QAAQ,OAAO,CAAC1G,GAAKtH,MAClJsH,IAAMtH,EAAO,QAAS,GAC5B,CAAC,MAAM,OAAO+N,IAAwB;AAAA,IAC1C,GACDzP,EAAM,oBAAoB,MAAM;AAC9B,UAAI2P,GAAuBC;AAC3B,cAAQD,KAAyBC,IAAyB5P,EAAM,qBAAsB,EAAC,CAAC,MAAM,OAAO,SAAS4P,EAAuB,QAAQ,OAAO,CAAC5G,GAAKtH,MACjJsH,IAAMtH,EAAO,QAAS,GAC5B,CAAC,MAAM,OAAOiO,IAAwB;AAAA,IAC1C;AAAA,EACL;AACA;AACA,IAAIE,IAAmB;AACvB,SAASV,KAAwB;AAC/B,MAAI,OAAOU,KAAqB,UAAW,QAAOA;AAClD,MAAIC,IAAY;AAChB,MAAI;AACF,UAAMtO,IAAU;AAAA,MACd,IAAI,UAAU;AACZ,eAAAsO,IAAY,IACL;AAAA,MACf;AAAA,IACK,GACKC,IAAO,MAAM;AAAA,IAAE;AACrB,WAAO,iBAAiB,QAAQA,GAAMvO,CAAO,GAC7C,OAAO,oBAAoB,QAAQuO,CAAI;AAAA,EACxC,QAAa;AACZ,IAAAD,IAAY;AAAA,EAChB;AACE,SAAAD,IAAmBC,GACZD;AACT;AACA,SAAShC,EAAkB,GAAG;AAC5B,SAAO,EAAE,SAAS;AACpB;AAIA,MAAMmC,KAAmB;AAAA,EACvB,iBAAiB,CAAAxI,OACR;AAAA,IACL,kBAAkB,CAAE;AAAA,IACpB,GAAGA;AAAA,EACJ;AAAA,EAEH,mBAAmB,CAAAxH,OACV;AAAA,IACL,0BAA0BvC,EAAiB,oBAAoBuC,CAAK;AAAA,EACrE;AAAA,EAEH,cAAc,CAAC3C,GAAQ2C,MAAU;AAC/B,IAAA3C,EAAO,mBAAmB,CAAA1F,MAAS;AACjC,MAAI0F,EAAO,gBACT2C,EAAM,oBAAoB,CAAApC,OAAQ;AAAA,QAChC,GAAGA;AAAA,QACH,CAACP,EAAO,EAAE,GAAG1F,KAAwB,CAAC0F,EAAO,aAAY;AAAA,MACnE,EAAU;AAAA,IAEL,GACDA,EAAO,eAAe,MAAM;AAC1B,UAAIsD,GAAMoH;AACV,YAAMkI,IAAe5S,EAAO;AAC5B,cAAQsD,IAAOsP,EAAa,SAASA,EAAa,KAAK,CAAAC,MAAKA,EAAE,aAAc,CAAA,KAAKnI,IAAwB/H,EAAM,SAAU,EAAC,qBAAqB,OAAO,SAAS+H,EAAsB1K,EAAO,EAAE,MAAM,OAAOsD,IAAO;AAAA,IACnN,GACDtD,EAAO,aAAa,MAAM;AACxB,UAAIuK,GAAuBC;AAC3B,eAASD,IAAwBvK,EAAO,UAAU,iBAAiB,OAAOuK,IAAwB,SAAWC,IAAwB7H,EAAM,QAAQ,iBAAiB,OAAO6H,IAAwB;AAAA,IACpM,GACDxK,EAAO,6BAA6B,MAC3B,CAAAuQ,MAAK;AACV,MAAAvQ,EAAO,oBAAoB,QAAQA,EAAO,iBAAiBuQ,EAAE,OAAO,OAAO;AAAA,IAC5E;AAAA,EAEJ;AAAA,EACD,WAAW,CAAC3N,GAAKD,MAAU;AACzB,IAAAC,EAAI,sBAAsBzB,EAAK,MAAM,CAACyB,EAAI,eAAeD,EAAM,SAAQ,EAAG,gBAAgB,GAAG,CAAAmQ,MACpFA,EAAM,OAAO,CAAA9P,MAAQA,EAAK,OAAO,cAAc,GACrDX,EAAeM,EAAM,SAAS,aAAa,qBAAqB,CAAC,GACpEC,EAAI,kBAAkBzB,EAAK,MAAM,CAACyB,EAAI,oBAAmB,GAAIA,EAAI,sBAAqB,GAAIA,EAAI,qBAAoB,CAAE,GAAG,CAAC+B,GAAMiB,GAAQhB,MAAU,CAAC,GAAGD,GAAM,GAAGiB,GAAQ,GAAGhB,CAAK,GAAGvC,EAAeM,EAAM,SAAS,aAAa,iBAAiB,CAAC;AAAA,EAC9O;AAAA,EACD,aAAa,CAAAA,MAAS;AACpB,UAAMoQ,IAA2B,CAAC1S,GAAK2S,MAC9B7R,EAAK,MAAM,CAAC6R,EAAY,GAAEA,EAAU,EAAG,OAAO,CAAAvS,MAAKA,EAAE,aAAc,CAAA,EAAE,IAAI,CAAAA,MAAKA,EAAE,EAAE,EAAE,KAAK,GAAG,CAAC,GAAG,CAAAgG,MAC9FA,EAAQ,OAAO,CAAAhG,MAAKA,EAAE,gBAAgB,OAAO,SAASA,EAAE,cAAc,GAC5E4B,EAAeM,EAAM,SAAS,gBAAgBtC,CAAG,CAAC;AAEvD,IAAAsC,EAAM,wBAAwBoQ,EAAyB,yBAAyB,MAAMpQ,EAAM,mBAAmB,GAC/GA,EAAM,wBAAwBoQ,EAAyB,yBAAyB,MAAMpQ,EAAM,mBAAmB,GAC/GA,EAAM,4BAA4BoQ,EAAyB,6BAA6B,MAAMpQ,EAAM,oBAAoB,GACxHA,EAAM,6BAA6BoQ,EAAyB,8BAA8B,MAAMpQ,EAAM,qBAAqB,GAC3HA,EAAM,8BAA8BoQ,EAAyB,+BAA+B,MAAMpQ,EAAM,sBAAsB,GAC9HA,EAAM,sBAAsB,CAAAzC,MAAWyC,EAAM,QAAQ,4BAA4B,OAAO,SAASA,EAAM,QAAQ,yBAAyBzC,CAAO,GAC/IyC,EAAM,wBAAwB,CAAA6I,MAAgB;AAC5C,UAAIC;AACJ,MAAA9I,EAAM,oBAAoB6I,IAAe,CAAA,KAAMC,IAAwB9I,EAAM,aAAa,qBAAqB,OAAO8I,IAAwB,CAAA,CAAE;AAAA,IACjJ,GACD9I,EAAM,0BAA0B,CAAArI,MAAS;AACvC,UAAI2Y;AACJ,MAAA3Y,KAAS2Y,IAAS3Y,MAAU,OAAO2Y,IAAS,CAACtQ,EAAM,uBAAwB,GAC3EA,EAAM,oBAAoBA,EAAM,kBAAmB,EAAC,OAAO,CAACuQ,GAAKlT,OAAY;AAAA,QAC3E,GAAGkT;AAAA,QACH,CAAClT,EAAO,EAAE,GAAI1F,KAAQ,EAAE0F,EAAO,cAAc,QAAQA,EAAO,WAAU;AAAA,MAC9E,IAAU,CAAE,CAAA,CAAC;AAAA,IACR,GACD2C,EAAM,yBAAyB,MAAM,CAACA,EAAM,kBAAmB,EAAC,KAAK,CAAA3C,MAAU,EAAEA,EAAO,gBAAgB,QAAQA,EAAO,aAAc,EAAC,GACtI2C,EAAM,0BAA0B,MAAMA,EAAM,kBAAiB,EAAG,KAAK,CAAA3C,MAAUA,EAAO,gBAAgB,OAAO,SAASA,EAAO,aAAY,CAAE,GAC3I2C,EAAM,uCAAuC,MACpC,CAAA4N,MAAK;AACV,UAAI4C;AACJ,MAAAxQ,EAAM,yBAAyBwQ,IAAU5C,EAAE,WAAW,OAAO,SAAS4C,EAAQ,OAAO;AAAA,IACtF;AAAA,EAEP;AACA;AACA,SAASpF,EAAuBpL,GAAOmL,GAAU;AAC/C,SAAQA,IAA2CA,MAAa,WAAWnL,EAAM,4BAA2B,IAAKmL,MAAa,SAASnL,EAAM,0BAA2B,IAAGA,EAAM,2BAA4B,IAA1LA,EAAM,sBAAqB;AAChD;AAIA,MAAMyQ,KAAiB;AAAA,EACrB,aAAa,CAAAzQ,MAAS;AACpB,IAAAA,EAAM,4BAA4BA,EAAM,QAAQ,sBAAsBA,EAAM,QAAQ,mBAAmBA,GAAO,YAAY,GAC1HA,EAAM,2BAA2B,MAC3BA,EAAM,QAAQ,mBAAmB,CAACA,EAAM,4BACnCA,EAAM,uBAAwB,IAEhCA,EAAM,0BAA2B,GAE1CA,EAAM,gCAAgCA,EAAM,QAAQ,0BAA0BA,EAAM,QAAQ,uBAAuBA,GAAO,YAAY,GACtIA,EAAM,+BAA+B,MAC9BA,EAAM,gCAGJA,EAAM,8BAA+B,IAFnC,oBAAI,IAAK,GAIpBA,EAAM,gCAAgCA,EAAM,QAAQ,0BAA0BA,EAAM,QAAQ,uBAAuBA,GAAO,YAAY,GACtIA,EAAM,+BAA+B,MAAM;AACzC,UAAKA,EAAM;AAGX,eAAOA,EAAM,8BAA+B;AAAA,IAC7C;AAAA,EACL;AACA,GAIM0Q,KAAkB;AAAA,EACtB,iBAAiB,CAAAlJ,OACR;AAAA,IACL,cAAc;AAAA,IACd,GAAGA;AAAA,EACJ;AAAA,EAEH,mBAAmB,CAAAxH,OACV;AAAA,IACL,sBAAsBvC,EAAiB,gBAAgBuC,CAAK;AAAA,IAC5D,gBAAgB;AAAA,IAChB,0BAA0B,CAAA3C,MAAU;AAClC,UAAIsT;AACJ,YAAMhZ,KAASgZ,IAAwB3Q,EAAM,gBAAe,EAAG,SAAS,CAAC,MAAM,SAAS2Q,IAAwBA,EAAsB,uBAAwB,EAACtT,EAAO,EAAE,MAAM,OAAO,SAASsT,EAAsB,SAAU;AAC9N,aAAO,OAAOhZ,KAAU,YAAY,OAAOA,KAAU;AAAA,IAC7D;AAAA,EACK;AAAA,EAEH,cAAc,CAAC0F,GAAQ2C,MAAU;AAC/B,IAAA3C,EAAO,qBAAqB,MAAM;AAChC,UAAIuK,GAAuBC,GAAuBC,GAAwB8I;AAC1E,eAAShJ,IAAwBvK,EAAO,UAAU,uBAAuB,OAAOuK,IAAwB,SAAWC,IAAwB7H,EAAM,QAAQ,uBAAuB,OAAO6H,IAAwB,SAAWC,IAAyB9H,EAAM,QAAQ,kBAAkB,OAAO8H,IAAyB,SAAW8I,IAAwB5Q,EAAM,QAAQ,4BAA4B,OAAO,SAASA,EAAM,QAAQ,yBAAyB3C,CAAM,MAAM,OAAOuT,IAAwB,OAAS,CAAC,CAACvT,EAAO;AAAA,IACrf;AAAA,EACF;AAAA,EACD,aAAa,CAAA2C,MAAS;AACpB,IAAAA,EAAM,wBAAwB,MACrBsH,EAAU,gBAEnBtH,EAAM,oBAAoB,MAAM;AAC9B,UAAI0H,GAAuBC;AAC3B,YAAM;AAAA,QACJ,gBAAgBkJ;AAAA,MACjB,IAAG7Q,EAAM;AACV,aAAOnC,EAAWgT,CAAc,IAAIA,IAAiBA,MAAmB,SAAS7Q,EAAM,sBAAqB,KAAM0H,KAAyBC,IAAyB3H,EAAM,QAAQ,cAAc,OAAO,SAAS2H,EAAuBkJ,CAAc,MAAM,OAAOnJ,IAAwBJ,EAAUuJ,CAAc;AAAA,IACnT,GACD7Q,EAAM,kBAAkB,CAAAzC,MAAW;AACjC,MAAAyC,EAAM,QAAQ,wBAAwB,QAAQA,EAAM,QAAQ,qBAAqBzC,CAAO;AAAA,IACzF,GACDyC,EAAM,oBAAoB,CAAA6I,MAAgB;AACxC,MAAA7I,EAAM,gBAAgB6I,IAAe,SAAY7I,EAAM,aAAa,YAAY;AAAA,IACjF;AAAA,EACL;AACA,GAIM8Q,KAAe;AAAA,EACnB,iBAAiB,CAAAtJ,OACR;AAAA,IACL,UAAU,CAAE;AAAA,IACZ,GAAGA;AAAA,EACJ;AAAA,EAEH,mBAAmB,CAAAxH,OACV;AAAA,IACL,kBAAkBvC,EAAiB,YAAYuC,CAAK;AAAA,IACpD,sBAAsB;AAAA,EACvB;AAAA,EAEH,aAAa,CAAAA,MAAS;AACpB,QAAI+Q,IAAa,IACbC,IAAS;AACb,IAAAhR,EAAM,qBAAqB,MAAM;AAC/B,UAAIW,GAAMsQ;AACV,UAAI,CAACF,GAAY;AACf,QAAA/Q,EAAM,OAAO,MAAM;AACjB,UAAA+Q,IAAa;AAAA,QACvB,CAAS;AACD;AAAA,MACR;AACM,WAAKpQ,KAAQsQ,IAAwBjR,EAAM,QAAQ,iBAAiB,OAAOiR,IAAwBjR,EAAM,QAAQ,sBAAsB,OAAOW,IAAO,CAACX,EAAM,QAAQ,iBAAiB;AACnL,YAAIgR,EAAQ;AACZ,QAAAA,IAAS,IACThR,EAAM,OAAO,MAAM;AACjB,UAAAA,EAAM,cAAe,GACrBgR,IAAS;AAAA,QACnB,CAAS;AAAA,MACT;AAAA,IACK,GACDhR,EAAM,cAAc,CAAAzC,MAAWyC,EAAM,QAAQ,oBAAoB,OAAO,SAASA,EAAM,QAAQ,iBAAiBzC,CAAO,GACvHyC,EAAM,wBAAwB,CAAAkR,MAAY;AACxC,MAAIA,KAA8B,CAAClR,EAAM,qBAAoB,IAC3DA,EAAM,YAAY,EAAI,IAEtBA,EAAM,YAAY,EAAE;AAAA,IAEvB,GACDA,EAAM,gBAAgB,CAAA6I,MAAgB;AACpC,UAAIsI,GAAuBpI;AAC3B,MAAA/I,EAAM,YAAY6I,IAAe,CAAE,KAAIsI,KAAyBpI,IAAsB/I,EAAM,iBAAiB,OAAO,SAAS+I,EAAoB,aAAa,OAAOoI,IAAwB,EAAE;AAAA,IAChM,GACDnR,EAAM,uBAAuB,MACpBA,EAAM,yBAAwB,EAAG,SAAS,KAAK,CAAAC,MAAOA,EAAI,cAAc,GAEjFD,EAAM,kCAAkC,MAC/B,CAAA4N,MAAK;AACV,MAAAA,EAAE,WAAW,QAAQA,EAAE,QAAS,GAChC5N,EAAM,sBAAuB;AAAA,IAC9B,GAEHA,EAAM,wBAAwB,MAAM;AAClC,YAAMkR,IAAWlR,EAAM,SAAQ,EAAG;AAClC,aAAOkR,MAAa,MAAQ,OAAO,OAAOA,CAAQ,EAAE,KAAK,OAAO;AAAA,IACjE,GACDlR,EAAM,uBAAuB,MAAM;AACjC,YAAMkR,IAAWlR,EAAM,SAAQ,EAAG;AAGlC,aAAI,OAAOkR,KAAa,YACfA,MAAa,KAElB,GAAC,OAAO,KAAKA,CAAQ,EAAE,UAKvBlR,EAAM,YAAa,EAAC,SAAS,KAAK,CAAAC,MAAO,CAACA,EAAI,cAAa,CAAE;AAAA,IAMlE,GACDD,EAAM,mBAAmB,MAAM;AAC7B,UAAI4D,IAAW;AAEf,cADe5D,EAAM,SAAQ,EAAG,aAAa,KAAO,OAAO,KAAKA,EAAM,YAAa,EAAC,QAAQ,IAAI,OAAO,KAAKA,EAAM,SAAU,EAAC,QAAQ,GAC9H,QAAQ,CAAA7F,MAAM;AACnB,cAAMiX,IAAUjX,EAAG,MAAM,GAAG;AAC5B,QAAAyJ,IAAW,KAAK,IAAIA,GAAUwN,EAAQ,MAAM;AAAA,MACpD,CAAO,GACMxN;AAAA,IACR,GACD5D,EAAM,yBAAyB,MAAMA,EAAM,kBAAmB,GAC9DA,EAAM,sBAAsB,OACtB,CAACA,EAAM,wBAAwBA,EAAM,QAAQ,wBAC/CA,EAAM,uBAAuBA,EAAM,QAAQ,oBAAoBA,CAAK,IAElEA,EAAM,QAAQ,mBAAmB,CAACA,EAAM,uBACnCA,EAAM,uBAAwB,IAEhCA,EAAM,qBAAsB;AAAA,EAEtC;AAAA,EACD,WAAW,CAACC,GAAKD,MAAU;AACzB,IAAAC,EAAI,iBAAiB,CAAAiR,MAAY;AAC/B,MAAAlR,EAAM,YAAY,CAAApC,MAAO;AACvB,YAAIyT;AACJ,cAAMC,IAAS1T,MAAQ,KAAO,KAAO,CAAC,EAAEA,KAAO,QAAQA,EAAIqC,EAAI,EAAE;AACjE,YAAIsR,IAAc,CAAE;AASpB,YARI3T,MAAQ,KACV,OAAO,KAAKoC,EAAM,YAAa,EAAC,QAAQ,EAAE,QAAQ,CAAAwR,MAAS;AACzD,UAAAD,EAAYC,CAAK,IAAI;AAAA,QACjC,CAAW,IAEDD,IAAc3T,GAEhBsT,KAAYG,IAAYH,MAAa,OAAOG,IAAY,CAACC,GACrD,CAACA,KAAUJ;AACb,iBAAO;AAAA,YACL,GAAGK;AAAA,YACH,CAACtR,EAAI,EAAE,GAAG;AAAA,UACX;AAEH,YAAIqR,KAAU,CAACJ,GAAU;AACvB,gBAAM;AAAA,YACJ,CAACjR,EAAI,EAAE,GAAGqN;AAAA,YACV,GAAGC;AAAA,UACf,IAAcgE;AACJ,iBAAOhE;AAAA,QACjB;AACQ,eAAO3P;AAAA,MACf,CAAO;AAAA,IACF,GACDqC,EAAI,gBAAgB,MAAM;AACxB,UAAIwR;AACJ,YAAMP,IAAWlR,EAAM,SAAQ,EAAG;AAClC,aAAO,CAAC,GAAGyR,IAAwBzR,EAAM,QAAQ,oBAAoB,OAAO,SAASA,EAAM,QAAQ,iBAAiBC,CAAG,MAAM,OAAOwR,IAAwBP,MAAa,MAASA,KAAY,QAAgBA,EAASjR,EAAI,EAAE;AAAA,IAC9N,GACDA,EAAI,eAAe,MAAM;AACvB,UAAIyR,GAAuB7J,GAAuB+C;AAClD,cAAQ8G,IAAwB1R,EAAM,QAAQ,mBAAmB,OAAO,SAASA,EAAM,QAAQ,gBAAgBC,CAAG,MAAM,OAAOyR,MAA0B7J,IAAwB7H,EAAM,QAAQ,oBAAoB,OAAO6H,IAAwB,OAAS,CAAC,GAAG+C,IAAe3K,EAAI,YAAY,QAAQ2K,EAAa;AAAA,IACpT,GACD3K,EAAI,0BAA0B,MAAM;AAClC,UAAI0R,IAAkB,IAClBrM,IAAarF;AACjB,aAAO0R,KAAmBrM,EAAW;AACnC,QAAAA,IAAatF,EAAM,OAAOsF,EAAW,UAAU,EAAI,GACnDqM,IAAkBrM,EAAW,cAAe;AAE9C,aAAOqM;AAAA,IACR,GACD1R,EAAI,2BAA2B,MAAM;AACnC,YAAM2R,IAAY3R,EAAI,aAAc;AACpC,aAAO,MAAM;AACX,QAAK2R,KACL3R,EAAI,eAAgB;AAAA,MACrB;AAAA,IACF;AAAA,EACL;AACA,GAIM4R,KAAmB,GACnBC,KAAkB,IAClBC,IAA4B,OAAO;AAAA,EACvC,WAAWF;AAAA,EACX,UAAUC;AACZ,IACME,KAAgB;AAAA,EACpB,iBAAiB,CAAAxK,OACR;AAAA,IACL,GAAGA;AAAA,IACH,YAAY;AAAA,MACV,GAAGuK,EAA2B;AAAA,MAC9B,GAAIvK,KAAS,OAAO,SAASA,EAAM;AAAA,IAC3C;AAAA,EACK;AAAA,EAEH,mBAAmB,CAAAxH,OACV;AAAA,IACL,oBAAoBvC,EAAiB,cAAcuC,CAAK;AAAA,EACzD;AAAA,EAEH,aAAa,CAAAA,MAAS;AACpB,QAAI+Q,IAAa,IACbC,IAAS;AACb,IAAAhR,EAAM,sBAAsB,MAAM;AAChC,UAAIW,GAAMsQ;AACV,UAAI,CAACF,GAAY;AACf,QAAA/Q,EAAM,OAAO,MAAM;AACjB,UAAA+Q,IAAa;AAAA,QACvB,CAAS;AACD;AAAA,MACR;AACM,WAAKpQ,KAAQsQ,IAAwBjR,EAAM,QAAQ,iBAAiB,OAAOiR,IAAwBjR,EAAM,QAAQ,uBAAuB,OAAOW,IAAO,CAACX,EAAM,QAAQ,kBAAkB;AACrL,YAAIgR,EAAQ;AACZ,QAAAA,IAAS,IACThR,EAAM,OAAO,MAAM;AACjB,UAAAA,EAAM,eAAgB,GACtBgR,IAAS;AAAA,QACnB,CAAS;AAAA,MACT;AAAA,IACK,GACDhR,EAAM,gBAAgB,CAAAzC,MAAW;AAC/B,YAAM0U,IAAc,CAAArU,MACHN,EAAiBC,GAASK,CAAG;AAG9C,aAAOoC,EAAM,QAAQ,sBAAsB,OAAO,SAASA,EAAM,QAAQ,mBAAmBiS,CAAW;AAAA,IACxG,GACDjS,EAAM,kBAAkB,CAAA6I,MAAgB;AACtC,UAAIqJ;AACJ,MAAAlS,EAAM,cAAc6I,IAAekJ,EAAyB,KAAMG,IAAwBlS,EAAM,aAAa,eAAe,OAAOkS,IAAwBH,EAAyB,CAAE;AAAA,IACvL,GACD/R,EAAM,eAAe,CAAAzC,MAAW;AAC9B,MAAAyC,EAAM,cAAc,CAAApC,MAAO;AACzB,YAAIuU,IAAY7U,EAAiBC,GAASK,EAAI,SAAS;AACvD,cAAMwU,IAAe,OAAOpS,EAAM,QAAQ,YAAc,OAAeA,EAAM,QAAQ,cAAc,KAAK,OAAO,mBAAmBA,EAAM,QAAQ,YAAY;AAC5J,eAAAmS,IAAY,KAAK,IAAI,GAAG,KAAK,IAAIA,GAAWC,CAAY,CAAC,GAClD;AAAA,UACL,GAAGxU;AAAA,UACH,WAAAuU;AAAA,QACD;AAAA,MACT,CAAO;AAAA,IACF,GACDnS,EAAM,iBAAiB,CAAA6I,MAAgB;AACrC,UAAIwJ,GAAwBtJ;AAC5B,MAAA/I,EAAM,aAAa6I,IAAegJ,MAAoBQ,KAA0BtJ,IAAsB/I,EAAM,iBAAiB,SAAS+I,IAAsBA,EAAoB,eAAe,OAAO,SAASA,EAAoB,cAAc,OAAOsJ,IAAyBR,EAAgB;AAAA,IAClS,GACD7R,EAAM,gBAAgB,CAAA6I,MAAgB;AACpC,UAAIyJ,GAAwBC;AAC5B,MAAAvS,EAAM,YAAY6I,IAAeiJ,MAAmBQ,KAA0BC,IAAuBvS,EAAM,iBAAiB,SAASuS,IAAuBA,EAAqB,eAAe,OAAO,SAASA,EAAqB,aAAa,OAAOD,IAAyBR,EAAe;AAAA,IAClS,GACD9R,EAAM,cAAc,CAAAzC,MAAW;AAC7B,MAAAyC,EAAM,cAAc,CAAApC,MAAO;AACzB,cAAM4U,IAAW,KAAK,IAAI,GAAGlV,EAAiBC,GAASK,EAAI,QAAQ,CAAC,GAC9D6U,IAAc7U,EAAI,WAAWA,EAAI,WACjCuU,IAAY,KAAK,MAAMM,IAAcD,CAAQ;AACnD,eAAO;AAAA,UACL,GAAG5U;AAAA,UACH,WAAAuU;AAAA,UACA,UAAAK;AAAA,QACD;AAAA,MACT,CAAO;AAAA,IACF,GAEDxS,EAAM,eAAe,CAAAzC,MAAWyC,EAAM,cAAc,CAAApC,MAAO;AACzD,UAAI8U;AACJ,UAAIC,IAAerV,EAAiBC,IAAUmV,IAAwB1S,EAAM,QAAQ,cAAc,OAAO0S,IAAwB,EAAE;AACnI,aAAI,OAAOC,KAAiB,aAC1BA,IAAe,KAAK,IAAI,IAAIA,CAAY,IAEnC;AAAA,QACL,GAAG/U;AAAA,QACH,WAAW+U;AAAA,MACZ;AAAA,IACP,CAAK,GACD3S,EAAM,iBAAiBxB,EAAK,MAAM,CAACwB,EAAM,aAAY,CAAE,GAAG,CAAA4S,MAAa;AACrE,UAAIC,IAAc,CAAE;AACpB,aAAID,KAAaA,IAAY,MAC3BC,IAAc,CAAC,GAAG,IAAI,MAAMD,CAAS,CAAC,EAAE,KAAK,IAAI,EAAE,IAAI,CAACtF,GAAG5H,MAAMA,CAAC,IAE7DmN;AAAA,IACR,GAAEnT,EAAeM,EAAM,SAAS,cAAc,gBAAgB,CAAC,GAChEA,EAAM,qBAAqB,MAAMA,EAAM,SAAQ,EAAG,WAAW,YAAY,GACzEA,EAAM,iBAAiB,MAAM;AAC3B,YAAM;AAAA,QACJ,WAAAmS;AAAA,MACR,IAAUnS,EAAM,SAAQ,EAAG,YACf4S,IAAY5S,EAAM,aAAc;AACtC,aAAI4S,MAAc,KACT,KAELA,MAAc,IACT,KAEFT,IAAYS,IAAY;AAAA,IAChC,GACD5S,EAAM,eAAe,MACZA,EAAM,aAAa,CAAApC,MAAOA,IAAM,CAAC,GAE1CoC,EAAM,WAAW,MACRA,EAAM,aAAa,CAAApC,MACjBA,IAAM,CACd,GAEHoC,EAAM,YAAY,MACTA,EAAM,aAAa,CAAC,GAE7BA,EAAM,WAAW,MACRA,EAAM,aAAaA,EAAM,aAAY,IAAK,CAAC,GAEpDA,EAAM,2BAA2B,MAAMA,EAAM,oBAAqB,GAClEA,EAAM,wBAAwB,OACxB,CAACA,EAAM,0BAA0BA,EAAM,QAAQ,0BACjDA,EAAM,yBAAyBA,EAAM,QAAQ,sBAAsBA,CAAK,IAEtEA,EAAM,QAAQ,oBAAoB,CAACA,EAAM,yBACpCA,EAAM,yBAA0B,IAElCA,EAAM,uBAAwB,IAEvCA,EAAM,eAAe,MAAM;AACzB,UAAI8S;AACJ,cAAQA,IAAyB9S,EAAM,QAAQ,cAAc,OAAO8S,IAAyB,KAAK,KAAK9S,EAAM,gBAAgBA,EAAM,SAAU,EAAC,WAAW,QAAQ;AAAA,IAClK,GACDA,EAAM,cAAc,MAAM;AACxB,UAAI+S;AACJ,cAAQA,IAAwB/S,EAAM,QAAQ,aAAa,OAAO+S,IAAwB/S,EAAM,yBAA0B,EAAC,KAAK;AAAA,IACjI;AAAA,EACL;AACA,GAIMgT,IAA4B,OAAO;AAAA,EACvC,KAAK,CAAE;AAAA,EACP,QAAQ,CAAA;AACV,IACMC,KAAa;AAAA,EACjB,iBAAiB,CAAAzL,OACR;AAAA,IACL,YAAYwL,EAA2B;AAAA,IACvC,GAAGxL;AAAA,EACJ;AAAA,EAEH,mBAAmB,CAAAxH,OACV;AAAA,IACL,oBAAoBvC,EAAiB,cAAcuC,CAAK;AAAA,EACzD;AAAA,EAEH,WAAW,CAACC,GAAKD,MAAU;AACzB,IAAAC,EAAI,MAAM,CAACkL,GAAU+H,GAAiBC,MAAsB;AAC1D,YAAMC,IAAaF,IAAkBjT,EAAI,YAAa,EAAC,IAAI,CAAAU,MAAQ;AACjE,YAAI;AAAA,UACF,IAAAxG;AAAA,QACV,IAAYwG;AACJ,eAAOxG;AAAA,MACR,CAAA,IAAI,CAAE,GACDkZ,IAAeF,IAAoBlT,EAAI,cAAe,EAAC,IAAI,CAAAoN,MAAS;AACxE,YAAI;AAAA,UACF,IAAAlT;AAAA,QACV,IAAYkT;AACJ,eAAOlT;AAAA,MACR,CAAA,IAAI,CAAE,GACDmZ,IAAS,oBAAI,IAAI,CAAC,GAAGD,GAAcpT,EAAI,IAAI,GAAGmT,CAAU,CAAC;AAC/D,MAAApT,EAAM,cAAc,CAAApC,MAAO;AACzB,YAAI2V,GAAWC;AACf,YAAIrI,MAAa,UAAU;AACzB,cAAIsI,GAAUC;AACd,iBAAO;AAAA,YACL,OAAOD,IAAW7V,KAAO,OAAO,SAASA,EAAI,QAAQ,OAAO6V,IAAW,CAAA,GAAI,OAAO,CAAA3V,MAAK,EAAEwV,KAAU,QAAQA,EAAO,IAAIxV,CAAC,EAAE;AAAA,YACzH,QAAQ,CAAC,KAAK4V,IAAc9V,KAAO,OAAO,SAASA,EAAI,WAAW,OAAO8V,IAAc,CAAE,GAAE,OAAO,CAAA5V,MAAK,EAAEwV,KAAU,QAAQA,EAAO,IAAIxV,CAAC,EAAE,GAAG,GAAG,MAAM,KAAKwV,CAAM,CAAC;AAAA,UAClK;AAAA,QACX;AACQ,YAAInI,MAAa,OAAO;AACtB,cAAIwI,GAAWC;AACf,iBAAO;AAAA,YACL,KAAK,CAAC,KAAKD,IAAY/V,KAAO,OAAO,SAASA,EAAI,QAAQ,OAAO+V,IAAY,CAAE,GAAE,OAAO,CAAA7V,MAAK,EAAEwV,KAAU,QAAQA,EAAO,IAAIxV,CAAC,EAAE,GAAG,GAAG,MAAM,KAAKwV,CAAM,CAAC;AAAA,YACvJ,UAAUM,IAAehW,KAAO,OAAO,SAASA,EAAI,WAAW,OAAOgW,IAAe,IAAI,OAAO,CAAA9V,MAAK,EAAEwV,KAAU,QAAQA,EAAO,IAAIxV,CAAC,EAAE;AAAA,UACxI;AAAA,QACX;AACQ,eAAO;AAAA,UACL,OAAOyV,IAAY3V,KAAO,OAAO,SAASA,EAAI,QAAQ,OAAO2V,IAAY,CAAA,GAAI,OAAO,CAAAzV,MAAK,EAAEwV,KAAU,QAAQA,EAAO,IAAIxV,CAAC,EAAE;AAAA,UAC3H,UAAU0V,IAAe5V,KAAO,OAAO,SAASA,EAAI,WAAW,OAAO4V,IAAe,IAAI,OAAO,CAAA1V,MAAK,EAAEwV,KAAU,QAAQA,EAAO,IAAIxV,CAAC,EAAE;AAAA,QACxI;AAAA,MACT,CAAO;AAAA,IACF,GACDmC,EAAI,YAAY,MAAM;AACpB,UAAIyO;AACJ,YAAM;AAAA,QACJ,kBAAAmF;AAAA,QACA,eAAAC;AAAA,MACD,IAAG9T,EAAM;AACV,aAAI,OAAO6T,KAAqB,aACvBA,EAAiB5T,CAAG,KAErByO,IAAQmF,KAA8CC,MAAkB,OAAOpF,IAAQ;AAAA,IAChG,GACDzO,EAAI,cAAc,MAAM;AACtB,YAAMqT,IAAS,CAACrT,EAAI,EAAE,GAChB;AAAA,QACJ,KAAA8T;AAAA,QACA,QAAAC;AAAA,MACR,IAAUhU,EAAM,SAAQ,EAAG,YACfiU,IAAQX,EAAO,KAAK,CAAAxV,MAAKiW,KAAO,OAAO,SAASA,EAAI,SAASjW,CAAC,CAAC,GAC/DoW,IAAWZ,EAAO,KAAK,CAAAxV,MAAKkW,KAAU,OAAO,SAASA,EAAO,SAASlW,CAAC,CAAC;AAC9E,aAAOmW,IAAQ,QAAQC,IAAW,WAAW;AAAA,IAC9C,GACDjU,EAAI,iBAAiB,MAAM;AACzB,UAAIkU,GAAOC;AACX,YAAMjJ,IAAWlL,EAAI,YAAa;AAClC,UAAI,CAACkL,EAAU,QAAO;AACtB,YAAMkJ,KAAuBF,IAAQhJ,MAAa,QAAQnL,EAAM,WAAU,IAAKA,EAAM,cAAe,MAAK,OAAO,SAASmU,EAAM,IAAI,CAAAG,MAAS;AAC1I,YAAI;AAAA,UACF,IAAAna;AAAA,QACV,IAAYma;AACJ,eAAOna;AAAA,MACf,CAAO;AACD,cAAQia,IAAwBC,KAAuB,OAAO,SAASA,EAAoB,QAAQpU,EAAI,EAAE,MAAM,OAAOmU,IAAwB;AAAA,IAC/I;AAAA,EACF;AAAA,EACD,aAAa,CAAApU,MAAS;AACpB,IAAAA,EAAM,gBAAgB,CAAAzC,MAAWyC,EAAM,QAAQ,sBAAsB,OAAO,SAASA,EAAM,QAAQ,mBAAmBzC,CAAO,GAC7HyC,EAAM,kBAAkB,CAAA6I,MAAgB;AACtC,UAAI0L,GAAuBxL;AAC3B,aAAO/I,EAAM,cAAc6I,IAAemK,EAAyB,KAAMuB,KAAyBxL,IAAsB/I,EAAM,iBAAiB,OAAO,SAAS+I,EAAoB,eAAe,OAAOwL,IAAwBvB,GAA2B;AAAA,IAC7P,GACDhT,EAAM,sBAAsB,CAAAmL,MAAY;AACtC,UAAIwB;AACJ,YAAMC,IAAe5M,EAAM,SAAQ,EAAG;AACtC,UAAI,CAACmL,GAAU;AACb,YAAIqJ,GAAmBC;AACvB,eAAO,IAAUD,IAAoB5H,EAAa,QAAQ,QAAgB4H,EAAkB,WAAaC,IAAuB7H,EAAa,WAAW,QAAgB6H,EAAqB;AAAA,MACrM;AACM,aAAO,IAAS9H,IAAwBC,EAAazB,CAAQ,MAAM,QAAgBwB,EAAsB;AAAA,IAC1G,GACD3M,EAAM,iBAAiB,CAAC0U,GAAaC,GAAcxJ,MAAa;AAC9D,UAAIyJ;AAUJ,eATeA,IAAwB5U,EAAM,QAAQ,mBAAmB,QAAO4U;AAAA;AAAA;AAAA,SAG9ED,KAAsC,CAAA,GAAI,IAAI,CAAAnD,MAAS;AACtD,gBAAMvR,IAAMD,EAAM,OAAOwR,GAAO,EAAI;AACpC,iBAAOvR,EAAI,4BAA4BA,IAAM;AAAA,QACrD,CAAO;AAAA;AAAA;AAAA,SAEA0U,KAAsC,CAAA,GAAI,IAAI,CAAAnD,MAASkD,EAAY,KAAK,CAAAzU,MAAOA,EAAI,OAAOuR,CAAK,CAAC;AAAA,SACrF,OAAO,OAAO,EAAE,IAAI,CAAA1T,OAAM;AAAA,QACpC,GAAGA;AAAA,QACH,UAAAqN;AAAA,MACR,EAAQ;AAAA,IACH,GACDnL,EAAM,aAAaxB,EAAK,MAAM,CAACwB,EAAM,cAAc,MAAMA,EAAM,WAAW,WAAW,GAAG,GAAG,CAAC6U,GAASC,MAAoB9U,EAAM,eAAe6U,GAASC,GAAiB,KAAK,GAAGpV,EAAeM,EAAM,SAAS,aAAa,YAAY,CAAC,GACxOA,EAAM,gBAAgBxB,EAAK,MAAM,CAACwB,EAAM,cAAc,MAAMA,EAAM,WAAW,WAAW,MAAM,GAAG,CAAC6U,GAASE,MAAuB/U,EAAM,eAAe6U,GAASE,GAAoB,QAAQ,GAAGrV,EAAeM,EAAM,SAAS,aAAa,eAAe,CAAC,GAC1PA,EAAM,gBAAgBxB,EAAK,MAAM,CAACwB,EAAM,cAAc,MAAMA,EAAM,SAAU,EAAC,WAAW,KAAKA,EAAM,SAAQ,EAAG,WAAW,MAAM,GAAG,CAAC6U,GAASd,GAAKC,MAAW;AAC1J,YAAMgB,IAAe,oBAAI,IAAI,CAAC,GAAIjB,KAAoB,CAAA,GAAK,GAAIC,KAA0B,CAAA,CAAG,CAAC;AAC7F,aAAOa,EAAQ,OAAO,CAAA/W,MAAK,CAACkX,EAAa,IAAIlX,EAAE,EAAE,CAAC;AAAA,IACnD,GAAE4B,EAAeM,EAAM,SAAS,aAAa,eAAe,CAAC;AAAA,EAClE;AACA,GAIMiV,KAAe;AAAA,EACnB,iBAAiB,CAAAzN,OACR;AAAA,IACL,cAAc,CAAE;AAAA,IAChB,GAAGA;AAAA,EACJ;AAAA,EAEH,mBAAmB,CAAAxH,OACV;AAAA,IACL,sBAAsBvC,EAAiB,gBAAgBuC,CAAK;AAAA,IAC5D,oBAAoB;AAAA,IACpB,yBAAyB;AAAA,IACzB,uBAAuB;AAAA;AAAA;AAAA;AAAA,EAIxB;AAAA,EAEH,aAAa,CAAAA,MAAS;AACpB,IAAAA,EAAM,kBAAkB,CAAAzC,MAAWyC,EAAM,QAAQ,wBAAwB,OAAO,SAASA,EAAM,QAAQ,qBAAqBzC,CAAO,GACnIyC,EAAM,oBAAoB,CAAA6I,MAAgB;AACxC,UAAI0L;AACJ,aAAOvU,EAAM,gBAAgB6I,IAAe,CAAE,KAAI0L,IAAwBvU,EAAM,aAAa,iBAAiB,OAAOuU,IAAwB,CAAA,CAAE;AAAA,IAChJ,GACDvU,EAAM,wBAAwB,CAAArI,MAAS;AACrC,MAAAqI,EAAM,gBAAgB,CAAApC,MAAO;AAC3B,QAAAjG,IAAQ,OAAOA,IAAU,MAAcA,IAAQ,CAACqI,EAAM,qBAAsB;AAC5E,cAAMkV,IAAe;AAAA,UACnB,GAAGtX;AAAA,QACJ,GACKuX,IAAqBnV,EAAM,sBAAqB,EAAG;AAIzD,eAAIrI,IACFwd,EAAmB,QAAQ,CAAAlV,MAAO;AAChC,UAAKA,EAAI,mBAGTiV,EAAajV,EAAI,EAAE,IAAI;AAAA,QACnC,CAAW,IAEDkV,EAAmB,QAAQ,CAAAlV,MAAO;AAChC,iBAAOiV,EAAajV,EAAI,EAAE;AAAA,QACtC,CAAW,GAEIiV;AAAA,MACf,CAAO;AAAA,IACF,GACDlV,EAAM,4BAA4B,CAAArI,MAASqI,EAAM,gBAAgB,CAAApC,MAAO;AACtE,YAAMwX,IAAgB,OAAOzd,IAAU,MAAcA,IAAQ,CAACqI,EAAM,yBAA0B,GACxFkV,IAAe;AAAA,QACnB,GAAGtX;AAAA,MACJ;AACD,aAAAoC,EAAM,YAAa,EAAC,KAAK,QAAQ,CAAAC,MAAO;AACtC,QAAAoV,GAAoBH,GAAcjV,EAAI,IAAImV,GAAe,IAAMpV,CAAK;AAAA,MAC5E,CAAO,GACMkV;AAAA,IACb,CAAK,GA4DDlV,EAAM,yBAAyB,MAAMA,EAAM,gBAAiB,GAC5DA,EAAM,sBAAsBxB,EAAK,MAAM,CAACwB,EAAM,SAAQ,EAAG,cAAcA,EAAM,gBAAe,CAAE,GAAG,CAACkV,GAAcI,MACzG,OAAO,KAAKJ,CAAY,EAAE,SAOxBK,EAAavV,GAAOsV,CAAQ,IAN1B;AAAA,MACL,MAAM,CAAE;AAAA,MACR,UAAU,CAAE;AAAA,MACZ,UAAU,CAAA;AAAA,IACX,GAGF5V,EAAeM,EAAM,SAAS,cAAc,qBAAqB,CAAC,GACrEA,EAAM,8BAA8BxB,EAAK,MAAM,CAACwB,EAAM,SAAQ,EAAG,cAAcA,EAAM,oBAAmB,CAAE,GAAG,CAACkV,GAAcI,MACrH,OAAO,KAAKJ,CAAY,EAAE,SAOxBK,EAAavV,GAAOsV,CAAQ,IAN1B;AAAA,MACL,MAAM,CAAE;AAAA,MACR,UAAU,CAAE;AAAA,MACZ,UAAU,CAAA;AAAA,IACX,GAGF5V,EAAeM,EAAM,SAAS,cAAc,6BAA6B,CAAC,GAC7EA,EAAM,6BAA6BxB,EAAK,MAAM,CAACwB,EAAM,SAAQ,EAAG,cAAcA,EAAM,kBAAiB,CAAE,GAAG,CAACkV,GAAcI,MAClH,OAAO,KAAKJ,CAAY,EAAE,SAOxBK,EAAavV,GAAOsV,CAAQ,IAN1B;AAAA,MACL,MAAM,CAAE;AAAA,MACR,UAAU,CAAE;AAAA,MACZ,UAAU,CAAA;AAAA,IACX,GAGF5V,EAAeM,EAAM,SAAS,cAAc,4BAA4B,CAAC,GAkB5EA,EAAM,uBAAuB,MAAM;AACjC,YAAMmV,IAAqBnV,EAAM,oBAAmB,EAAG,UACjD;AAAA,QACJ,cAAAkV;AAAA,MACR,IAAUlV,EAAM,SAAU;AACpB,UAAIwV,IAAoB,GAAQL,EAAmB,UAAU,OAAO,KAAKD,CAAY,EAAE;AACvF,aAAIM,KACEL,EAAmB,KAAK,CAAAlV,MAAOA,EAAI,kBAAkB,CAACiV,EAAajV,EAAI,EAAE,CAAC,MAC5EuV,IAAoB,KAGjBA;AAAA,IACR,GACDxV,EAAM,2BAA2B,MAAM;AACrC,YAAMyV,IAAqBzV,EAAM,wBAAwB,SAAS,OAAO,CAAAC,MAAOA,EAAI,cAAc,GAC5F;AAAA,QACJ,cAAAiV;AAAA,MACR,IAAUlV,EAAM,SAAU;AACpB,UAAI0V,IAAwB,CAAC,CAACD,EAAmB;AACjD,aAAIC,KAAyBD,EAAmB,KAAK,CAAAxV,MAAO,CAACiV,EAAajV,EAAI,EAAE,CAAC,MAC/EyV,IAAwB,KAEnBA;AAAA,IACR,GACD1V,EAAM,wBAAwB,MAAM;AAClC,UAAI2V;AACJ,YAAMC,IAAgB,OAAO,MAAMD,IAAwB3V,EAAM,SAAU,EAAC,iBAAiB,OAAO2V,IAAwB,CAAA,CAAE,EAAE;AAChI,aAAOC,IAAgB,KAAKA,IAAgB5V,EAAM,oBAAmB,EAAG,SAAS;AAAA,IAClF,GACDA,EAAM,4BAA4B,MAAM;AACtC,YAAMyV,IAAqBzV,EAAM,sBAAqB,EAAG;AACzD,aAAOA,EAAM,6BAA6B,KAAQyV,EAAmB,OAAO,CAAAxV,MAAOA,EAAI,aAAY,CAAE,EAAE,KAAK,CAAAnC,MAAKA,EAAE,mBAAmBA,EAAE,mBAAmB;AAAA,IAC5J,GACDkC,EAAM,kCAAkC,MAC/B,CAAA4N,MAAK;AACV,MAAA5N,EAAM,sBAAsB4N,EAAE,OAAO,OAAO;AAAA,IAC7C,GAEH5N,EAAM,sCAAsC,MACnC,CAAA4N,MAAK;AACV,MAAA5N,EAAM,0BAA0B4N,EAAE,OAAO,OAAO;AAAA,IACjD;AAAA,EAEJ;AAAA,EACD,WAAW,CAAC3N,GAAKD,MAAU;AACzB,IAAAC,EAAI,iBAAiB,CAACtI,GAAOgH,MAAS;AACpC,YAAM5F,IAAakH,EAAI,cAAe;AACtC,MAAAD,EAAM,gBAAgB,CAAApC,MAAO;AAC3B,YAAIiY;AAEJ,YADAle,IAAQ,OAAOA,IAAU,MAAcA,IAAQ,CAACoB,GAC5CkH,EAAI,kBAAkBlH,MAAepB;AACvC,iBAAOiG;AAET,cAAMkY,IAAiB;AAAA,UACrB,GAAGlY;AAAA,QACJ;AACD,eAAAyX,GAAoBS,GAAgB7V,EAAI,IAAItI,IAAQke,IAAuBlX,KAAQ,OAAO,SAASA,EAAK,mBAAmB,OAAOkX,IAAuB,IAAM7V,CAAK,GAC7J8V;AAAA,MACf,CAAO;AAAA,IACF,GACD7V,EAAI,gBAAgB,MAAM;AACxB,YAAM;AAAA,QACJ,cAAAiV;AAAA,MACR,IAAUlV,EAAM,SAAU;AACpB,aAAO+V,GAAc9V,GAAKiV,CAAY;AAAA,IACvC,GACDjV,EAAI,oBAAoB,MAAM;AAC5B,YAAM;AAAA,QACJ,cAAAiV;AAAA,MACR,IAAUlV,EAAM,SAAU;AACpB,aAAOgW,GAAiB/V,GAAKiV,CAAY,MAAM;AAAA,IAChD,GACDjV,EAAI,0BAA0B,MAAM;AAClC,YAAM;AAAA,QACJ,cAAAiV;AAAA,MACR,IAAUlV,EAAM,SAAU;AACpB,aAAOgW,GAAiB/V,GAAKiV,CAAY,MAAM;AAAA,IAChD,GACDjV,EAAI,eAAe,MAAM;AACvB,UAAI4H;AACJ,aAAI,OAAO7H,EAAM,QAAQ,sBAAuB,aACvCA,EAAM,QAAQ,mBAAmBC,CAAG,KAErC4H,IAAwB7H,EAAM,QAAQ,uBAAuB,OAAO6H,IAAwB;AAAA,IACrG,GACD5H,EAAI,sBAAsB,MAAM;AAC9B,UAAI6H;AACJ,aAAI,OAAO9H,EAAM,QAAQ,yBAA0B,aAC1CA,EAAM,QAAQ,sBAAsBC,CAAG,KAExC6H,IAAyB9H,EAAM,QAAQ,0BAA0B,OAAO8H,IAAyB;AAAA,IAC1G,GACD7H,EAAI,oBAAoB,MAAM;AAC5B,UAAIgW;AACJ,aAAI,OAAOjW,EAAM,QAAQ,2BAA4B,aAC5CA,EAAM,QAAQ,wBAAwBC,CAAG,KAE1CgW,IAAyBjW,EAAM,QAAQ,4BAA4B,OAAOiW,IAAyB;AAAA,IAC5G,GACDhW,EAAI,2BAA2B,MAAM;AACnC,YAAMiW,IAAYjW,EAAI,aAAc;AACpC,aAAO,CAAA2N,MAAK;AACV,YAAI4C;AACJ,QAAK0F,KACLjW,EAAI,gBAAgBuQ,IAAU5C,EAAE,WAAW,OAAO,SAAS4C,EAAQ,OAAO;AAAA,MAC3E;AAAA,IACF;AAAA,EACL;AACA,GACM6E,KAAsB,CAACS,GAAgB3b,GAAIxC,GAAOwe,GAAiBnW,MAAU;AACjF,MAAI4K;AACJ,QAAM3K,IAAMD,EAAM,OAAO7F,GAAI,EAAI;AAQjC,EAAIxC,KACGsI,EAAI,uBACP,OAAO,KAAK6V,CAAc,EAAE,QAAQ,CAAApY,MAAO,OAAOoY,EAAepY,CAAG,CAAC,GAEnEuC,EAAI,mBACN6V,EAAe3b,CAAE,IAAI,OAGvB,OAAO2b,EAAe3b,CAAE,GAItBgc,MAAoBvL,IAAe3K,EAAI,YAAY,QAAQ2K,EAAa,UAAU3K,EAAI,yBACxFA,EAAI,QAAQ,QAAQ,CAAAA,MAAOoV,GAAoBS,GAAgB7V,EAAI,IAAItI,GAAOwe,GAAiBnW,CAAK,CAAC;AAEzG;AACA,SAASuV,EAAavV,GAAOsV,GAAU;AACrC,QAAMJ,IAAelV,EAAM,SAAQ,EAAG,cAChCoW,IAAsB,CAAE,GACxBC,IAAsB,CAAE,GAGxBC,IAAc,SAAUC,GAAM9V,GAAO;AACzC,WAAO8V,EAAK,IAAI,CAAAtW,MAAO;AACrB,UAAIuW;AACJ,YAAMzd,IAAagd,GAAc9V,GAAKiV,CAAY;AAWlD,UAVInc,MACFqd,EAAoB,KAAKnW,CAAG,GAC5BoW,EAAoBpW,EAAI,EAAE,IAAIA,KAE3BuW,IAAgBvW,EAAI,YAAY,QAAQuW,EAAc,WACzDvW,IAAM;AAAA,QACJ,GAAGA;AAAA,QACH,SAASqW,EAAYrW,EAAI,OAAO;AAAA,MACjC,IAEClH;AACF,eAAOkH;AAAA,IAEf,CAAK,EAAE,OAAO,OAAO;AAAA,EAClB;AACD,SAAO;AAAA,IACL,MAAMqW,EAAYhB,EAAS,IAAI;AAAA,IAC/B,UAAUc;AAAA,IACV,UAAUC;AAAA,EACX;AACH;AACA,SAASN,GAAc9V,GAAKwW,GAAW;AACrC,MAAIC;AACJ,UAAQA,IAAoBD,EAAUxW,EAAI,EAAE,MAAM,OAAOyW,IAAoB;AAC/E;AACA,SAASV,GAAiB/V,GAAKwW,GAAWzW,GAAO;AAC/C,MAAI2W;AACJ,MAAI,GAAGA,IAAgB1W,EAAI,YAAY,QAAQ0W,EAAc,QAAS,QAAO;AAC7E,MAAIC,IAAsB,IACtBC,IAAe;AACnB,SAAA5W,EAAI,QAAQ,QAAQ,CAAA6W,MAAU;AAE5B,QAAI,EAAAD,KAAgB,CAACD,OAGjBE,EAAO,mBACLf,GAAce,GAAQL,CAAS,IACjCI,IAAe,KAEfD,IAAsB,KAKtBE,EAAO,WAAWA,EAAO,QAAQ,SAAQ;AAC3C,YAAMC,IAAyBf,GAAiBc,GAAQL,CAAS;AACjE,MAAIM,MAA2B,QAC7BF,IAAe,MACNE,MAA2B,WACpCF,IAAe,KACfD,IAAsB;AAAA,IAI9B;AAAA,EACA,CAAG,GACMA,IAAsB,QAAQC,IAAe,SAAS;AAC/D;AAEA,MAAMG,KAAsB,cACtBC,KAAe,CAACC,GAAMC,GAAMjX,MACzBkX,GAAoBC,EAASH,EAAK,SAAShX,CAAQ,CAAC,EAAE,YAAa,GAAEmX,EAASF,EAAK,SAASjX,CAAQ,CAAC,EAAE,YAAW,CAAE,GAEvHoX,KAA4B,CAACJ,GAAMC,GAAMjX,MACtCkX,GAAoBC,EAASH,EAAK,SAAShX,CAAQ,CAAC,GAAGmX,EAASF,EAAK,SAASjX,CAAQ,CAAC,CAAC,GAK3FqX,KAAO,CAACL,GAAMC,GAAMjX,MACjBsX,GAAaH,EAASH,EAAK,SAAShX,CAAQ,CAAC,EAAE,YAAa,GAAEmX,EAASF,EAAK,SAASjX,CAAQ,CAAC,EAAE,YAAW,CAAE,GAKhHuX,KAAoB,CAACP,GAAMC,GAAMjX,MAC9BsX,GAAaH,EAASH,EAAK,SAAShX,CAAQ,CAAC,GAAGmX,EAASF,EAAK,SAASjX,CAAQ,CAAC,CAAC,GAEpFwX,KAAW,CAACR,GAAMC,GAAMjX,MAAa;AACzC,QAAM2J,IAAIqN,EAAK,SAAShX,CAAQ,GAC1B4J,IAAIqN,EAAK,SAASjX,CAAQ;AAKhC,SAAO2J,IAAIC,IAAI,IAAID,IAAIC,IAAI,KAAK;AAClC,GACM6N,KAAQ,CAACT,GAAMC,GAAMjX,MAClBsX,GAAaN,EAAK,SAAShX,CAAQ,GAAGiX,EAAK,SAASjX,CAAQ,CAAC;AAKtE,SAASsX,GAAa3N,GAAGC,GAAG;AAC1B,SAAOD,MAAMC,IAAI,IAAID,IAAIC,IAAI,IAAI;AACnC;AACA,SAASuN,EAASxN,GAAG;AACnB,SAAI,OAAOA,KAAM,WACX,MAAMA,CAAC,KAAKA,MAAM,SAAYA,MAAM,SAC/B,KAEF,OAAOA,CAAC,IAEb,OAAOA,KAAM,WACRA,IAEF;AACT;AAKA,SAASuN,GAAoBQ,GAAMC,GAAM;AAGvC,QAAMhO,IAAI+N,EAAK,MAAMZ,EAAmB,EAAE,OAAO,OAAO,GAClDlN,IAAI+N,EAAK,MAAMb,EAAmB,EAAE,OAAO,OAAO;AAGxD,SAAOnN,EAAE,UAAUC,EAAE,UAAQ;AAC3B,UAAMgO,IAAKjO,EAAE,MAAO,GACdkO,IAAKjO,EAAE,MAAO,GACdkO,IAAK,SAASF,GAAI,EAAE,GACpBG,IAAK,SAASF,GAAI,EAAE,GACpBG,IAAQ,CAACF,GAAIC,CAAE,EAAE,KAAM;AAG7B,QAAI,MAAMC,EAAM,CAAC,CAAC,GAAG;AACnB,UAAIJ,IAAKC;AACP,eAAO;AAET,UAAIA,IAAKD;AACP,eAAO;AAET;AAAA,IACN;AAGI,QAAI,MAAMI,EAAM,CAAC,CAAC;AAChB,aAAO,MAAMF,CAAE,IAAI,KAAK;AAI1B,QAAIA,IAAKC;AACP,aAAO;AAET,QAAIA,IAAKD;AACP,aAAO;AAAA,EAEb;AACE,SAAOnO,EAAE,SAASC,EAAE;AACtB;AAIA,MAAMqO,IAAa;AAAA,EACjB,cAAAlB;AAAA,EACA,2BAAAK;AAAA,EACA,MAAAC;AAAA,EACA,mBAAAE;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AACF,GAIMS,KAAa;AAAA,EACjB,iBAAiB,CAAA5Q,OACR;AAAA,IACL,SAAS,CAAE;AAAA,IACX,GAAGA;AAAA,EACJ;AAAA,EAEH,qBAAqB,OACZ;AAAA,IACL,WAAW;AAAA,IACX,eAAe;AAAA,EAChB;AAAA,EAEH,mBAAmB,CAAAxH,OACV;AAAA,IACL,iBAAiBvC,EAAiB,WAAWuC,CAAK;AAAA,IAClD,kBAAkB,CAAA4N,MACTA,EAAE;AAAA,EAEZ;AAAA,EAEH,cAAc,CAACvQ,GAAQ2C,MAAU;AAC/B,IAAA3C,EAAO,mBAAmB,MAAM;AAC9B,YAAMgb,IAAYrY,EAAM,oBAAqB,EAAC,SAAS,MAAM,EAAE;AAC/D,UAAIsY,IAAW;AACf,iBAAWrY,KAAOoY,GAAW;AAC3B,cAAM1gB,IAAQsI,KAAO,OAAO,SAASA,EAAI,SAAS5C,EAAO,EAAE;AAC3D,YAAI,OAAO,UAAU,SAAS,KAAK1F,CAAK,MAAM;AAC5C,iBAAOwgB,EAAW;AAEpB,YAAI,OAAOxgB,KAAU,aACnB2gB,IAAW,IACP3gB,EAAM,MAAMqf,EAAmB,EAAE,SAAS;AAC5C,iBAAOmB,EAAW;AAAA,MAG9B;AACM,aAAIG,IACKH,EAAW,OAEbA,EAAW;AAAA,IACnB,GACD9a,EAAO,iBAAiB,MAAM;AAC5B,YAAMoK,IAAWzH,EAAM,oBAAmB,EAAG,SAAS,CAAC;AAEvD,aAAI,QADUyH,KAAY,OAAO,SAASA,EAAS,SAASpK,EAAO,EAAE,MAChD,WACZ,QAEF;AAAA,IACR,GACDA,EAAO,eAAe,MAAM;AAC1B,UAAIkb,GAAuBC;AAC3B,UAAI,CAACnb;AACH,cAAM,IAAI,MAAO;AAEnB,aAAOQ,EAAWR,EAAO,UAAU,SAAS,IAAIA,EAAO,UAAU,YAAYA,EAAO,UAAU,cAAc,SAASA,EAAO,iBAAkB,KAAIkb,KAAyBC,IAAyBxY,EAAM,QAAQ,eAAe,OAAO,SAASwY,EAAuBnb,EAAO,UAAU,SAAS,MAAM,OAAOkb,IAAwBJ,EAAW9a,EAAO,UAAU,SAAS;AAAA,IAC7W,GACDA,EAAO,gBAAgB,CAACob,GAAMC,MAAU;AAWtC,YAAM/b,IAAmBU,EAAO,oBAAqB,GAC/Csb,IAAiB,OAAOF,IAAS,OAAeA,MAAS;AAC/D,MAAAzY,EAAM,WAAW,CAAApC,MAAO;AAEtB,cAAMgb,IAAkBhb,KAAO,OAAO,SAASA,EAAI,KAAK,CAAAE,MAAKA,EAAE,OAAOT,EAAO,EAAE,GACzEwb,IAAgBjb,KAAO,OAAO,SAASA,EAAI,UAAU,CAAAE,MAAKA,EAAE,OAAOT,EAAO,EAAE;AAClF,YAAIyb,IAAa,CAAE,GAGfC,GACAC,IAAWL,IAAiBF,IAAO9b,MAAqB;AA8B5D,YA3BIiB,KAAO,QAAQA,EAAI,UAAUP,EAAO,gBAAiB,KAAIqb,IACvDE,IACFG,IAAa,WAEbA,IAAa,QAIXnb,KAAO,QAAQA,EAAI,UAAUib,MAAkBjb,EAAI,SAAS,IAC9Dmb,IAAa,YACJH,IACTG,IAAa,WAEbA,IAAa,WAKbA,MAAe,aAEZJ,KAEEhc,MACHoc,IAAa,YAIfA,MAAe,OAAO;AACxB,cAAIE;AACJ,UAAAH,IAAa,CAAC,GAAGlb,GAAK;AAAA,YACpB,IAAIP,EAAO;AAAA,YACX,MAAM2b;AAAA,UAClB,CAAW,GAEDF,EAAW,OAAO,GAAGA,EAAW,WAAWG,IAAwBjZ,EAAM,QAAQ,yBAAyB,OAAOiZ,IAAwB,OAAO,iBAAiB;AAAA,QAC3K,MAAe,CAAIF,MAAe,WAExBD,IAAalb,EAAI,IAAI,CAAAE,MACfA,EAAE,OAAOT,EAAO,KACX;AAAA,UACL,GAAGS;AAAA,UACH,MAAMkb;AAAA,QACP,IAEIlb,CACR,IACQib,MAAe,WACxBD,IAAalb,EAAI,OAAO,CAAAE,MAAKA,EAAE,OAAOT,EAAO,EAAE,IAE/Cyb,IAAa,CAAC;AAAA,UACZ,IAAIzb,EAAO;AAAA,UACX,MAAM2b;AAAA,QAClB,CAAW;AAEH,eAAOF;AAAA,MACf,CAAO;AAAA,IACF,GACDzb,EAAO,kBAAkB,MAAM;AAC7B,UAAIsD,GAAMuY;AAEV,eADuBvY,KAAQuY,IAAwB7b,EAAO,UAAU,kBAAkB,OAAO6b,IAAwBlZ,EAAM,QAAQ,kBAAkB,OAAOW,IAAOtD,EAAO,eAAc,MAAO,UAC5K,SAAS;AAAA,IACjC,GACDA,EAAO,sBAAsB,CAAAqb,MAAS;AACpC,UAAI7Q,GAAuBC;AAC3B,YAAMqR,IAAqB9b,EAAO,gBAAiB,GAC7CT,IAAWS,EAAO,YAAa;AACrC,aAAKT,IAGDA,MAAauc,OAAwBtR,IAAwB7H,EAAM,QAAQ,yBAAyB,QAAO6H;AAAA,OAE/G,EAAA6Q,MAAS5Q,IAAyB9H,EAAM,QAAQ,sBAAsB,SAAO8H,KAEpE,KAEFlL,MAAa,SAAS,QAAQ,SAR5Buc;AAAA,IASV,GACD9b,EAAO,aAAa,MAAM;AACxB,UAAIuK,GAAuBqO;AAC3B,eAASrO,IAAwBvK,EAAO,UAAU,kBAAkB,OAAOuK,IAAwB,SAAWqO,IAAyBjW,EAAM,QAAQ,kBAAkB,OAAOiW,IAAyB,OAAS,CAAC,CAAC5Y,EAAO;AAAA,IAC1N,GACDA,EAAO,kBAAkB,MAAM;AAC7B,UAAIgQ,GAAO+L;AACX,cAAQ/L,KAAS+L,IAAyB/b,EAAO,UAAU,oBAAoB,OAAO+b,IAAyBpZ,EAAM,QAAQ,oBAAoB,OAAOqN,IAAQ,CAAC,CAAChQ,EAAO;AAAA,IAC1K,GACDA,EAAO,cAAc,MAAM;AACzB,UAAIgc;AACJ,YAAMC,KAAcD,IAAwBrZ,EAAM,SAAQ,EAAG,YAAY,OAAO,SAASqZ,EAAsB,KAAK,CAAAvb,MAAKA,EAAE,OAAOT,EAAO,EAAE;AAC3I,aAAQic,IAAqBA,EAAW,OAAO,SAAS,QAAnC;AAAA,IACtB,GACDjc,EAAO,eAAe,MAAM;AAC1B,UAAIkc,GAAwBC;AAC5B,cAAQD,KAA0BC,IAAyBxZ,EAAM,WAAW,YAAY,OAAO,SAASwZ,EAAuB,UAAU,CAAA1b,MAAKA,EAAE,OAAOT,EAAO,EAAE,MAAM,OAAOkc,IAAyB;AAAA,IACvM,GACDlc,EAAO,eAAe,MAAM;AAE1B,MAAA2C,EAAM,WAAW,CAAApC,MAAOA,KAAO,QAAQA,EAAI,SAASA,EAAI,OAAO,CAAAE,MAAKA,EAAE,OAAOT,EAAO,EAAE,IAAI,EAAE;AAAA,IAC7F,GACDA,EAAO,0BAA0B,MAAM;AACrC,YAAMZ,IAAUY,EAAO,WAAY;AACnC,aAAO,CAAAuQ,MAAK;AACV,QAAKnR,MACLmR,EAAE,WAAW,QAAQA,EAAE,QAAS,GAChCvQ,EAAO,iBAAiB,QAAQA,EAAO,cAAc,QAAWA,EAAO,oBAAoB2C,EAAM,QAAQ,oBAAoB,OAAO,SAASA,EAAM,QAAQ,iBAAiB4N,CAAC,IAAI,EAAK;AAAA,MACvL;AAAA,IACF;AAAA,EACF;AAAA,EACD,aAAa,CAAA5N,MAAS;AACpB,IAAAA,EAAM,aAAa,CAAAzC,MAAWyC,EAAM,QAAQ,mBAAmB,OAAO,SAASA,EAAM,QAAQ,gBAAgBzC,CAAO,GACpHyC,EAAM,eAAe,CAAA6I,MAAgB;AACnC,UAAI4Q,GAAuB1Q;AAC3B,MAAA/I,EAAM,WAAW6I,IAAe,CAAE,KAAI4Q,KAAyB1Q,IAAsB/I,EAAM,iBAAiB,OAAO,SAAS+I,EAAoB,YAAY,OAAO0Q,IAAwB,EAAE;AAAA,IAC9L,GACDzZ,EAAM,uBAAuB,MAAMA,EAAM,mBAAoB,GAC7DA,EAAM,oBAAoB,OACpB,CAACA,EAAM,sBAAsBA,EAAM,QAAQ,sBAC7CA,EAAM,qBAAqBA,EAAM,QAAQ,kBAAkBA,CAAK,IAE9DA,EAAM,QAAQ,iBAAiB,CAACA,EAAM,qBACjCA,EAAM,qBAAsB,IAE9BA,EAAM,mBAAoB;AAAA,EAEvC;AACA,GAEM0Z,KAAkB;AAAA,EAAC5X;AAAA,EAASkO;AAAA,EAAkB9E;AAAA,EAAgBY;AAAA,EAAenG;AAAA,EAAgB4B;AAAA,EAAiBkJ;AAAA;AAAA,EAEpHC;AAAA;AAAA,EAEA0H;AAAA,EAAYjO;AAAA;AAAA,EAEZ2G;AAAA,EAAckB;AAAA,EAAeiB;AAAA,EAAYgC;AAAA,EAAchI;AAAY;AAInE,SAAS0M,GAAYnY,GAAS;AAC5B,MAAIoY,GAAoBC;AACxB,EAAI,QAAQ,IAAI,aAAa,iBAAiBrY,EAAQ,YAAYA,EAAQ,eACxE,QAAQ,KAAK,4BAA4B;AAE3C,QAAMsY,IAAY,CAAC,GAAGJ,IAAiB,IAAKE,IAAqBpY,EAAQ,cAAc,OAAOoY,IAAqB,CAAE,CAAC;AACtH,MAAI5Z,IAAQ;AAAA,IACV,WAAA8Z;AAAA,EACD;AACD,QAAMC,IAAiB/Z,EAAM,UAAU,OAAO,CAACuQ,GAAKjQ,MAC3C,OAAO,OAAOiQ,GAAKjQ,EAAQ,qBAAqB,OAAO,SAASA,EAAQ,kBAAkBN,CAAK,CAAC,GACtG,EAAE,GACCga,IAAe,CAAAxY,MACfxB,EAAM,QAAQ,eACTA,EAAM,QAAQ,aAAa+Z,GAAgBvY,CAAO,IAEpD;AAAA,IACL,GAAGuY;AAAA,IACH,GAAGvY;AAAA,EACJ;AAGH,MAAIyY,IAAe;AAAA,IACjB,GAFuB,CAAE;AAAA,IAGzB,IAAKJ,IAAwBrY,EAAQ,iBAAiB,OAAOqY,IAAwB,CAAE;AAAA,EACxF;AACD,EAAA7Z,EAAM,UAAU,QAAQ,CAAAM,MAAW;AACjC,QAAI4Z;AACJ,IAAAD,KAAgBC,IAAwB5Z,EAAQ,mBAAmB,OAAO,SAASA,EAAQ,gBAAgB2Z,CAAY,MAAM,OAAOC,IAAwBD;AAAA,EAChK,CAAG;AACD,QAAMjJ,IAAS,CAAE;AACjB,MAAImJ,IAAgB;AACpB,QAAMC,IAAe;AAAA,IACnB,WAAAN;AAAA,IACA,SAAS;AAAA,MACP,GAAGC;AAAA,MACH,GAAGvY;AAAA,IACJ;AAAA,IACD,cAAAyY;AAAA,IACA,QAAQ,CAAAI,MAAM;AACZ,MAAArJ,EAAO,KAAKqJ,CAAE,GACTF,MACHA,IAAgB,IAIhB,QAAQ,UAAU,KAAK,MAAM;AAC3B,eAAOnJ,EAAO;AACZ,UAAAA,EAAO,MAAK,EAAI;AAElB,QAAAmJ,IAAgB;AAAA,MACjB,CAAA,EAAE,MAAM,CAAAG,MAAS,WAAW,MAAM;AACjC,cAAMA;AAAA,MAChB,CAAS,CAAC;AAAA,IAEL;AAAA,IACD,OAAO,MAAM;AACX,MAAAta,EAAM,SAASA,EAAM,YAAY;AAAA,IAClC;AAAA,IACD,YAAY,CAAAzC,MAAW;AACrB,YAAMgd,IAAajd,EAAiBC,GAASyC,EAAM,OAAO;AAC1D,MAAAA,EAAM,UAAUga,EAAaO,CAAU;AAAA,IACxC;AAAA,IACD,UAAU,MACDva,EAAM,QAAQ;AAAA,IAEvB,UAAU,CAAAzC,MAAW;AACnB,MAAAyC,EAAM,QAAQ,iBAAiB,QAAQA,EAAM,QAAQ,cAAczC,CAAO;AAAA,IAC3E;AAAA,IACD,WAAW,CAAC0C,GAAKf,GAAOwB,MAAW;AACjC,UAAIgR;AACJ,cAAQA,IAAwB1R,EAAM,QAAQ,YAAY,OAAO,SAASA,EAAM,QAAQ,SAASC,GAAKf,GAAOwB,CAAM,MAAM,OAAOgR,IAAwB,GAAGhR,IAAS,CAACA,EAAO,IAAIxB,CAAK,EAAE,KAAK,GAAG,IAAIA,CAAK;AAAA,IACzM;AAAA,IACD,iBAAiB,OACVc,EAAM,qBACTA,EAAM,mBAAmBA,EAAM,QAAQ,gBAAgBA,CAAK,IAEvDA,EAAM,iBAAkB;AAAA;AAAA;AAAA,IAKjC,aAAa,MACJA,EAAM,sBAAuB;AAAA;AAAA,IAGtC,QAAQ,CAAC7F,GAAIqgB,MAAc;AACzB,UAAIva,KAAOua,IAAYxa,EAAM,6BAA6BA,EAAM,YAAW,GAAI,SAAS7F,CAAE;AAC1F,UAAI,CAAC8F,MACHA,IAAMD,EAAM,kBAAkB,SAAS7F,CAAE,GACrC,CAAC8F;AACH,cAAI,QAAQ,IAAI,aAAa,eACrB,IAAI,MAAM,sCAAsC9F,CAAE,EAAE,IAEtD,IAAI,MAAO;AAGrB,aAAO8F;AAAA,IACR;AAAA,IACD,sBAAsBzB,EAAK,MAAM,CAACwB,EAAM,QAAQ,aAAa,GAAG,CAAAya,MAAiB;AAC/E,UAAIC;AACJ,aAAAD,KAAiBC,IAAiBD,MAAkB,OAAOC,IAAiB,CAAE,GACvE;AAAA,QACL,QAAQ,CAAAjlB,MAAS;AACf,gBAAMoL,IAAoBpL,EAAM,OAAO,OAAO;AAC9C,iBAAIoL,EAAkB,cACbA,EAAkB,cAEvBA,EAAkB,aACbA,EAAkB,KAEpB;AAAA,QACR;AAAA;AAAA,QAED,MAAM,CAAApL,MAAS;AACb,cAAIklB,GAAuBC;AAC3B,kBAAQD,KAAyBC,IAAqBnlB,EAAM,YAAa,MAAK,QAAQmlB,EAAmB,YAAY,OAAO,SAASA,EAAmB,SAAQ,MAAO,OAAOD,IAAwB;AAAA,QACvM;AAAA,QACD,GAAG3a,EAAM,UAAU,OAAO,CAACuQ,GAAKjQ,MACvB,OAAO,OAAOiQ,GAAKjQ,EAAQ,uBAAuB,OAAO,SAASA,EAAQ,qBAAqB,GACrG,EAAE;AAAA,QACL,GAAGma;AAAA,MACJ;AAAA,IACF,GAAE/a,EAAe8B,GAAS,gBAAgB,sBAAsB,CAAC;AAAA,IAClE,gBAAgB,MAAMxB,EAAM,QAAQ;AAAA,IACpC,eAAexB,EAAK,MAAM,CAACwB,EAAM,eAAc,CAAE,GAAG,CAAA6a,MAAc;AAChE,YAAMC,IAAiB,SAAUD,GAAYna,GAAQD,GAAO;AAC1D,eAAIA,MAAU,WACZA,IAAQ,IAEHoa,EAAW,IAAI,CAAAra,MAAa;AACjC,gBAAMnD,IAASkD,GAAaP,GAAOQ,GAAWC,GAAOC,CAAM,GACrDqa,IAAoBva;AAC1B,iBAAAnD,EAAO,UAAU0d,EAAkB,UAAUD,EAAeC,EAAkB,SAAS1d,GAAQoD,IAAQ,CAAC,IAAI,CAAE,GACvGpD;AAAA,QACjB,CAAS;AAAA,MACF;AACD,aAAOyd,EAAeD,CAAU;AAAA,IACjC,GAAEnb,EAAe8B,GAAS,gBAAgB,eAAe,CAAC;AAAA,IAC3D,mBAAmBhD,EAAK,MAAM,CAACwB,EAAM,cAAa,CAAE,GAAG,CAAA+B,MAC9CA,EAAW,QAAQ,CAAA1E,MACjBA,EAAO,eAAgB,CAC/B,GACAqC,EAAe8B,GAAS,gBAAgB,mBAAmB,CAAC;AAAA,IAC/D,wBAAwBhD,EAAK,MAAM,CAACwB,EAAM,kBAAiB,CAAE,GAAG,CAAAgb,MACvDA,EAAY,OAAO,CAACvV,GAAKpI,OAC9BoI,EAAIpI,EAAO,EAAE,IAAIA,GACVoI,IACN,EAAE,GACJ/F,EAAe8B,GAAS,gBAAgB,uBAAuB,CAAC;AAAA,IACnE,mBAAmBhD,EAAK,MAAM,CAACwB,EAAM,cAAa,GAAIA,EAAM,mBAAoB,CAAA,GAAG,CAAC+B,GAAYZ,MAAiB;AAC/G,UAAIE,IAAcU,EAAW,QAAQ,CAAA1E,MAAUA,EAAO,gBAAgB;AACtE,aAAO8D,EAAaE,CAAW;AAAA,IAChC,GAAE3B,EAAe8B,GAAS,gBAAgB,mBAAmB,CAAC;AAAA,IAC/D,WAAW,CAAAtB,MAAY;AACrB,YAAM7C,IAAS2C,EAAM,uBAAsB,EAAGE,CAAQ;AACtD,aAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC7C,KAC5C,QAAQ,MAAM,2BAA2B6C,CAAQ,mBAAmB,GAE/D7C;AAAA,IACb;AAAA,EACG;AACD,SAAO,OAAO2C,GAAOoa,CAAY;AACjC,WAASlb,IAAQ,GAAGA,IAAQc,EAAM,UAAU,QAAQd,KAAS;AAC3D,UAAMoB,IAAUN,EAAM,UAAUd,CAAK;AACrC,IAAAoB,KAAW,QAAQA,EAAQ,eAAe,QAAQA,EAAQ,YAAYN,CAAK;AAAA,EAC/E;AACE,SAAOA;AACT;AAEA,SAASib,KAAkB;AACzB,SAAO,CAAAjb,MAASxB,EAAK,MAAM,CAACwB,EAAM,QAAQ,IAAI,GAAG,CAAAkb,MAAQ;AACvD,UAAM5F,IAAW;AAAA,MACf,MAAM,CAAE;AAAA,MACR,UAAU,CAAE;AAAA,MACZ,UAAU,CAAA;AAAA,IACX,GACK6F,IAAa,SAAUC,GAAc3a,GAAO8E,GAAW;AAC3D,MAAI9E,MAAU,WACZA,IAAQ;AAEV,YAAM8V,IAAO,CAAE;AACf,eAAS7Q,IAAI,GAAGA,IAAI0V,EAAa,QAAQ1V,KAAK;AAS5C,cAAMzF,IAAM8E,GAAU/E,GAAOA,EAAM,UAAUob,EAAa1V,CAAC,GAAGA,GAAGH,CAAS,GAAG6V,EAAa1V,CAAC,GAAGA,GAAGjF,GAAO,QAAW8E,KAAa,OAAO,SAASA,EAAU,EAAE;AAU5J,YAPA+P,EAAS,SAAS,KAAKrV,CAAG,GAE1BqV,EAAS,SAASrV,EAAI,EAAE,IAAIA,GAE5BsW,EAAK,KAAKtW,CAAG,GAGTD,EAAM,QAAQ,YAAY;AAC5B,cAAIqb;AACJ,UAAApb,EAAI,kBAAkBD,EAAM,QAAQ,WAAWob,EAAa1V,CAAC,GAAGA,CAAC,IAG5D2V,IAAuBpb,EAAI,oBAAoB,QAAQob,EAAqB,WAC/Epb,EAAI,UAAUkb,EAAWlb,EAAI,iBAAiBQ,IAAQ,GAAGR,CAAG;AAAA,QAExE;AAAA,MACA;AACM,aAAOsW;AAAA,IACR;AACD,WAAAjB,EAAS,OAAO6F,EAAWD,CAAI,GACxB5F;AAAA,EACX,GAAK5V,EAAeM,EAAM,SAAS,cAAc,eAAe,MAAMA,EAAM,oBAAmB,CAAE,CAAC;AAClG;AAcA,SAASsb,GAAWhG,GAAU;AAC5B,QAAMiG,IAAe,CAAE,GACjBC,IAAY,CAAAvb,MAAO;AACvB,QAAI2K;AACJ,IAAA2Q,EAAa,KAAKtb,CAAG,IAChB2K,IAAe3K,EAAI,YAAY,QAAQ2K,EAAa,UAAU3K,EAAI,mBACrEA,EAAI,QAAQ,QAAQub,CAAS;AAAA,EAEhC;AACD,SAAAlG,EAAS,KAAK,QAAQkG,CAAS,GACxB;AAAA,IACL,MAAMD;AAAA,IACN,UAAUjG,EAAS;AAAA,IACnB,UAAUA,EAAS;AAAA,EACpB;AACH;AAsBA,SAASmG,GAAWlF,GAAMmF,GAAe1b,GAAO;AAC9C,SAAIA,EAAM,QAAQ,qBACT2b,GAAwBpF,GAAMmF,GAAe1b,CAAK,IAEpD4b,GAAuBrF,GAAMmF,GAAe1b,CAAK;AAC1D;AACA,SAAS2b,GAAwBE,GAAcC,GAAW9b,GAAO;AAC/D,MAAI+b;AACJ,QAAMC,IAAsB,CAAE,GACxBC,IAAsB,CAAE,GACxBrY,KAAYmY,IAAwB/b,EAAM,QAAQ,0BAA0B,OAAO+b,IAAwB,KAC3GG,IAAoB,SAAUL,GAAcpb,GAAO;AACvD,IAAIA,MAAU,WACZA,IAAQ;AAEV,UAAM8V,IAAO,CAAE;AAGf,aAAS7Q,IAAI,GAAGA,IAAImW,EAAa,QAAQnW,KAAK;AAC5C,UAAIkF;AACJ,UAAI3K,IAAM4b,EAAanW,CAAC;AACxB,YAAMyW,IAASpX,GAAU/E,GAAOC,EAAI,IAAIA,EAAI,UAAUA,EAAI,OAAOA,EAAI,OAAO,QAAWA,EAAI,QAAQ;AAEnG,UADAkc,EAAO,gBAAgBlc,EAAI,gBACtB2K,IAAe3K,EAAI,YAAY,QAAQ2K,EAAa,UAAUnK,IAAQmD,GAAU;AAGnF,YAFAuY,EAAO,UAAUD,EAAkBjc,EAAI,SAASQ,IAAQ,CAAC,GACzDR,IAAMkc,GACFL,EAAU7b,CAAG,KAAK,CAACkc,EAAO,QAAQ,QAAQ;AAC5C,UAAA5F,EAAK,KAAKtW,CAAG,GACbgc,EAAoBhc,EAAI,EAAE,IAAIA,GAC9B+b,EAAoB,KAAK/b,CAAG;AAC5B;AAAA,QACV;AACQ,YAAI6b,EAAU7b,CAAG,KAAKkc,EAAO,QAAQ,QAAQ;AAC3C,UAAA5F,EAAK,KAAKtW,CAAG,GACbgc,EAAoBhc,EAAI,EAAE,IAAIA,GAC9B+b,EAAoB,KAAK/b,CAAG;AAC5B;AAAA,QACV;AAAA,MACA;AACQ,QAAAA,IAAMkc,GACFL,EAAU7b,CAAG,MACfsW,EAAK,KAAKtW,CAAG,GACbgc,EAAoBhc,EAAI,EAAE,IAAIA,GAC9B+b,EAAoB,KAAK/b,CAAG;AAAA,IAGtC;AACI,WAAOsW;AAAA,EACR;AACD,SAAO;AAAA,IACL,MAAM2F,EAAkBL,CAAY;AAAA,IACpC,UAAUG;AAAA,IACV,UAAUC;AAAA,EACX;AACH;AACA,SAASL,GAAuBC,GAAcC,GAAW9b,GAAO;AAC9D,MAAIoc;AACJ,QAAMJ,IAAsB,CAAE,GACxBC,IAAsB,CAAE,GACxBrY,KAAYwY,IAAyBpc,EAAM,QAAQ,0BAA0B,OAAOoc,IAAyB,KAG7GF,IAAoB,SAAUL,GAAcpb,GAAO;AACvD,IAAIA,MAAU,WACZA,IAAQ;AAIV,UAAM8V,IAAO,CAAE;AAGf,aAAS7Q,IAAI,GAAGA,IAAImW,EAAa,QAAQnW,KAAK;AAC5C,UAAIzF,IAAM4b,EAAanW,CAAC;AAExB,UADaoW,EAAU7b,CAAG,GAChB;AACR,YAAIuW;AACJ,aAAKA,IAAgBvW,EAAI,YAAY,QAAQuW,EAAc,UAAU/V,IAAQmD,GAAU;AACrF,gBAAMuY,IAASpX,GAAU/E,GAAOC,EAAI,IAAIA,EAAI,UAAUA,EAAI,OAAOA,EAAI,OAAO,QAAWA,EAAI,QAAQ;AACnG,UAAAkc,EAAO,UAAUD,EAAkBjc,EAAI,SAASQ,IAAQ,CAAC,GACzDR,IAAMkc;AAAA,QAChB;AACQ,QAAA5F,EAAK,KAAKtW,CAAG,GACb+b,EAAoB,KAAK/b,CAAG,GAC5Bgc,EAAoBhc,EAAI,EAAE,IAAIA;AAAA,MACtC;AAAA,IACA;AACI,WAAOsW;AAAA,EACR;AACD,SAAO;AAAA,IACL,MAAM2F,EAAkBL,CAAY;AAAA,IACpC,UAAUG;AAAA,IACV,UAAUC;AAAA,EACX;AACH;AAEA,SAASI,KAAqB;AAC5B,SAAO,CAACrc,GAAOE,MAAa1B,EAAK,MAAM,CAACwB,EAAM,uBAAsB,GAAIA,EAAM,SAAU,EAAC,eAAeA,EAAM,WAAW,cAAcA,EAAM,oBAAqB,CAAA,GAAG,CAACsc,GAAaC,GAAeC,MAAiB;AACjN,QAAI,CAACF,EAAY,KAAK,UAAU,EAAEC,KAAiB,QAAQA,EAAc,WAAW,CAACC;AACnF,aAAOF;AAET,UAAMG,IAAgB,CAAC,GAAGF,EAAc,IAAI,CAAAze,MAAKA,EAAE,EAAE,EAAE,OAAO,CAAAA,MAAKA,MAAMoC,CAAQ,GAAGsc,IAAe,eAAe,MAAS,EAAE,OAAO,OAAO,GACrIE,IAAiB,CAAAzc,MAAO;AAE5B,eAASyF,IAAI,GAAGA,IAAI+W,EAAc,QAAQ/W;AACxC,YAAIzF,EAAI,cAAcwc,EAAc/W,CAAC,CAAC,MAAM;AAC1C,iBAAO;AAGX,aAAO;AAAA,IACR;AACD,WAAO+V,GAAWa,EAAY,MAAMI,GAAgB1c,CAAK;AAAA,EAC1D,GAAEN,EAAeM,EAAM,SAAS,cAAc,oBAAoB,CAAC;AACtE;AAEA,SAAS2c,KAAyB;AAChC,SAAO,CAAC3c,GAAOE,MAAa1B,EAAK,MAAM;AACrC,QAAIoe;AACJ,WAAO,EAAEA,IAAmB5c,EAAM,UAAUE,CAAQ,MAAM,OAAO,SAAS0c,EAAiB,oBAAoB;AAAA,EAChH,GAAE,CAAAC,MAAmB;AACpB,QAAI,CAACA,EAAiB,QAAO,oBAAI,IAAK;AACtC,QAAIC,IAAsB,oBAAI,IAAK;AACnC,aAAS,IAAI,GAAG,IAAID,EAAgB,SAAS,QAAQ,KAAK;AACxD,YAAMnT,IAASmT,EAAgB,SAAS,CAAC,EAAE,gBAAgB3c,CAAQ;AACnE,eAAS6c,IAAI,GAAGA,IAAIrT,EAAO,QAAQqT,KAAK;AACtC,cAAMplB,IAAQ+R,EAAOqT,CAAC;AACtB,YAAID,EAAoB,IAAInlB,CAAK,GAAG;AAClC,cAAIqlB;AACJ,UAAAF,EAAoB,IAAInlB,KAASqlB,IAAwBF,EAAoB,IAAInlB,CAAK,MAAM,OAAOqlB,IAAwB,KAAK,CAAC;AAAA,QAC3I;AACU,UAAAF,EAAoB,IAAInlB,GAAO,CAAC;AAAA,MAE1C;AAAA,IACA;AACI,WAAOmlB;AAAA,EACX,GAAKpd,EAAeM,EAAM,SAAS,cAAc,0BAA0BE,CAAQ,EAAE,CAAC;AACtF;AAEA,SAAS+c,KAAsB;AAC7B,SAAO,CAAAjd,MAASxB,EAAK,MAAM,CAACwB,EAAM,uBAAsB,GAAIA,EAAM,SAAQ,EAAG,eAAeA,EAAM,WAAW,YAAY,GAAG,CAACsV,GAAUiH,GAAeC,MAAiB;AACrK,QAAI,CAAClH,EAAS,KAAK,UAAU,EAAEiH,KAAiB,QAAQA,EAAc,WAAW,CAACC,GAAc;AAC9F,eAAS9W,IAAI,GAAGA,IAAI4P,EAAS,SAAS,QAAQ5P;AAC5C,QAAA4P,EAAS,SAAS5P,CAAC,EAAE,gBAAgB,CAAE,GACvC4P,EAAS,SAAS5P,CAAC,EAAE,oBAAoB,CAAE;AAE7C,aAAO4P;AAAA,IACb;AACI,UAAM4H,IAAwB,CAAE,GAC1BC,IAAwB,CAAE;AAChC,KAACZ,KAAwC,CAAA,GAAI,QAAQ,CAAAze,MAAK;AACxD,UAAIsf;AACJ,YAAM/f,IAAS2C,EAAM,UAAUlC,EAAE,EAAE;AACnC,UAAI,CAACT;AACH;AAEF,YAAM6K,IAAW7K,EAAO,YAAa;AACrC,UAAI,CAAC6K,GAAU;AACb,QAAI,QAAQ,IAAI,aAAa,gBAC3B,QAAQ,KAAK,oEAAoE7K,EAAO,EAAE,GAAG;AAE/F;AAAA,MACR;AACM,MAAA6f,EAAsB,KAAK;AAAA,QACzB,IAAIpf,EAAE;AAAA,QACN,UAAAoK;AAAA,QACA,gBAAgBkV,IAAwBlV,EAAS,sBAAsB,OAAO,SAASA,EAAS,mBAAmBpK,EAAE,KAAK,MAAM,OAAOsf,IAAwBtf,EAAE;AAAA,MACzK,CAAO;AAAA,IACP,CAAK;AACD,UAAM2e,KAAiBF,KAAwC,CAAE,GAAE,IAAI,CAAAze,MAAKA,EAAE,EAAE,GAC1E+S,IAAiB7Q,EAAM,kBAAmB,GAC1Cqd,IAA4Brd,EAAM,kBAAmB,EAAC,OAAO,CAAA3C,MAAUA,EAAO,oBAAoB;AACxG,IAAImf,KAAgB3L,KAAkBwM,EAA0B,WAC9DZ,EAAc,KAAK,YAAY,GAC/BY,EAA0B,QAAQ,CAAAhgB,MAAU;AAC1C,UAAIigB;AACJ,MAAAH,EAAsB,KAAK;AAAA,QACzB,IAAI9f,EAAO;AAAA,QACX,UAAUwT;AAAA,QACV,gBAAgByM,IAAwBzM,EAAe,sBAAsB,OAAO,SAASA,EAAe,mBAAmB2L,CAAY,MAAM,OAAOc,IAAwBd;AAAA,MAC1L,CAAS;AAAA,IACT,CAAO;AAEH,QAAIe,GACAC;AAGJ,aAAST,IAAI,GAAGA,IAAIzH,EAAS,SAAS,QAAQyH,KAAK;AACjD,YAAM9c,IAAMqV,EAAS,SAASyH,CAAC;AAE/B,UADA9c,EAAI,gBAAgB,CAAE,GAClBid,EAAsB;AACxB,iBAASxX,IAAI,GAAGA,IAAIwX,EAAsB,QAAQxX,KAAK;AACrD,UAAA6X,IAAsBL,EAAsBxX,CAAC;AAC7C,gBAAMvL,IAAKojB,EAAoB;AAG/B,UAAAtd,EAAI,cAAc9F,CAAE,IAAIojB,EAAoB,SAAStd,GAAK9F,GAAIojB,EAAoB,eAAe,CAAAE,MAAc;AAC7G,YAAAxd,EAAI,kBAAkB9F,CAAE,IAAIsjB;AAAA,UACxC,CAAW;AAAA,QACX;AAEM,UAAIN,EAAsB,QAAQ;AAChC,iBAASzX,IAAI,GAAGA,IAAIyX,EAAsB,QAAQzX,KAAK;AACrD,UAAA8X,IAAsBL,EAAsBzX,CAAC;AAC7C,gBAAMvL,IAAKqjB,EAAoB;AAE/B,cAAIA,EAAoB,SAASvd,GAAK9F,GAAIqjB,EAAoB,eAAe,CAAAC,MAAc;AACzF,YAAAxd,EAAI,kBAAkB9F,CAAE,IAAIsjB;AAAA,UACxC,CAAW,GAAG;AACF,YAAAxd,EAAI,cAAc,aAAa;AAC/B;AAAA,UACZ;AAAA,QACA;AACQ,QAAIA,EAAI,cAAc,eAAe,OACnCA,EAAI,cAAc,aAAa;AAAA,MAEzC;AAAA,IACA;AACI,UAAMyc,IAAiB,CAAAzc,MAAO;AAE5B,eAASyF,IAAI,GAAGA,IAAI+W,EAAc,QAAQ/W;AACxC,YAAIzF,EAAI,cAAcwc,EAAc/W,CAAC,CAAC,MAAM;AAC1C,iBAAO;AAGX,aAAO;AAAA,IACR;AAGD,WAAO+V,GAAWnG,EAAS,MAAMoH,GAAgB1c,CAAK;AAAA,EAC1D,GAAKN,EAAeM,EAAM,SAAS,cAAc,uBAAuB,MAAMA,EAAM,oBAAmB,CAAE,CAAC;AAC1G;AA8IA,SAAS0d,GAAsB/e,GAAM;AACnC,SAAO,CAAAqB,MAASxB,EAAK,MAAM,CAACwB,EAAM,WAAW,YAAYA,EAAM,yBAA0B,GAAEA,EAAM,QAAQ,uBAAuB,SAAYA,EAAM,SAAU,EAAC,QAAQ,GAAG,CAAC2d,GAAYrI,MAAa;AAChM,QAAI,CAACA,EAAS,KAAK;AACjB,aAAOA;AAET,UAAM;AAAA,MACJ,UAAA9C;AAAA,MACA,WAAAL;AAAA,IACN,IAAQwL;AACJ,QAAI;AAAA,MACF,MAAApH;AAAA,MACA,UAAAqH;AAAA,MACA,UAAAC;AAAA,IACN,IAAQvI;AACJ,UAAMwI,IAAYtL,IAAWL,GACvB4L,IAAUD,IAAYtL;AAC5B,IAAA+D,IAAOA,EAAK,MAAMuH,GAAWC,CAAO;AACpC,QAAIC;AACJ,IAAKhe,EAAM,QAAQ,uBAOjBge,IAAoB;AAAA,MAClB,MAAAzH;AAAA,MACA,UAAAqH;AAAA,MACA,UAAAC;AAAA,IACD,IAVDG,IAAoB1C,GAAW;AAAA,MAC7B,MAAA/E;AAAA,MACA,UAAAqH;AAAA,MACA,UAAAC;AAAA,IACR,CAAO,GAQHG,EAAkB,WAAW,CAAE;AAC/B,UAAMxC,IAAY,CAAAvb,MAAO;AACvB,MAAA+d,EAAkB,SAAS,KAAK/d,CAAG,GAC/BA,EAAI,QAAQ,UACdA,EAAI,QAAQ,QAAQub,CAAS;AAAA,IAEhC;AACD,WAAAwC,EAAkB,KAAK,QAAQxC,CAAS,GACjCwC;AAAA,EACR,GAAEte,EAAeM,EAAM,SAAS,cAAc,uBAAuB,CAAC;AACzE;AAEA,SAASie,KAAoB;AAC3B,SAAO,CAAAje,MAASxB,EAAK,MAAM,CAACwB,EAAM,SAAU,EAAC,SAASA,EAAM,qBAAsB,CAAA,GAAG,CAACke,GAAS5I,MAAa;AAC1G,QAAI,CAACA,EAAS,KAAK,UAAU,EAAE4I,KAAW,QAAQA,EAAQ;AACxD,aAAO5I;AAET,UAAM6I,IAAene,EAAM,SAAQ,EAAG,SAChCoe,IAAiB,CAAE,GAGnBC,IAAmBF,EAAa,OAAO,CAAAG,MAAQ;AACnD,UAAI1B;AACJ,cAAQA,IAAmB5c,EAAM,UAAUse,EAAK,EAAE,MAAM,OAAO,SAAS1B,EAAiB,WAAY;AAAA,IAC3G,CAAK,GACK2B,IAAiB,CAAE;AACzB,IAAAF,EAAiB,QAAQ,CAAAG,MAAa;AACpC,YAAMnhB,IAAS2C,EAAM,UAAUwe,EAAU,EAAE;AAC3C,MAAKnhB,MACLkhB,EAAeC,EAAU,EAAE,IAAI;AAAA,QAC7B,eAAenhB,EAAO,UAAU;AAAA,QAChC,eAAeA,EAAO,UAAU;AAAA,QAChC,WAAWA,EAAO,aAAY;AAAA,MAC/B;AAAA,IACP,CAAK;AACD,UAAMohB,IAAW,CAAAlI,MAAQ;AAGvB,YAAMmI,IAAanI,EAAK,IAAI,CAAAtW,OAAQ;AAAA,QAClC,GAAGA;AAAA,MACX,EAAQ;AACF,aAAAye,EAAW,KAAK,CAACxH,GAAMC,MAAS;AAC9B,iBAASzR,IAAI,GAAGA,IAAI2Y,EAAiB,QAAQ3Y,KAAK,GAAG;AACnD,cAAIiZ;AACJ,gBAAMH,IAAYH,EAAiB3Y,CAAC,GAC9BkZ,IAAaL,EAAeC,EAAU,EAAE,GACxCK,IAAgBD,EAAW,eAC3BE,KAAUH,IAAkBH,KAAa,OAAO,SAASA,EAAU,SAAS,OAAOG,IAAkB;AAC3G,cAAII,IAAU;AAGd,cAAIF,GAAe;AACjB,kBAAMG,IAAS9H,EAAK,SAASsH,EAAU,EAAE,GACnCS,IAAS9H,EAAK,SAASqH,EAAU,EAAE,GACnCU,IAAaF,MAAW,QACxBG,IAAaF,MAAW;AAC9B,gBAAIC,KAAcC,GAAY;AAC5B,kBAAIN,MAAkB,QAAS,QAAOK,IAAa,KAAK;AACxD,kBAAIL,MAAkB,OAAQ,QAAOK,IAAa,IAAI;AACtD,cAAAH,IAAUG,KAAcC,IAAa,IAAID,IAAaL,IAAgB,CAACA;AAAA,YACrF;AAAA,UACA;AAMU,cALIE,MAAY,MACdA,IAAUH,EAAW,UAAU1H,GAAMC,GAAMqH,EAAU,EAAE,IAIrDO,MAAY;AACd,mBAAID,MACFC,KAAW,KAETH,EAAW,kBACbG,KAAW,KAENA;AAAA,QAEnB;AACQ,eAAO7H,EAAK,QAAQC,EAAK;AAAA,MACjC,CAAO,GAGDuH,EAAW,QAAQ,CAAAze,MAAO;AACxB,YAAI2K;AACJ,QAAAwT,EAAe,KAAKne,CAAG,IAClB2K,IAAe3K,EAAI,YAAY,QAAQ2K,EAAa,WACvD3K,EAAI,UAAUwe,EAASxe,EAAI,OAAO;AAAA,MAE5C,CAAO,GACMye;AAAA,IACR;AACD,WAAO;AAAA,MACL,MAAMD,EAASnJ,EAAS,IAAI;AAAA,MAC5B,UAAU8I;AAAA,MACV,UAAU9I,EAAS;AAAA,IACpB;AAAA,EACL,GAAK5V,EAAeM,EAAM,SAAS,cAAc,qBAAqB,MAAMA,EAAM,oBAAmB,CAAE,CAAC;AACxG;AC97GA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBA,SAASof,EAAWC,GAAM5pB,GAAO;AAC/B,SAAQ4pB,IAAcC,GAAiBD,CAAI,IAAiB,gBAAAtoB,EAAM,cAAcsoB,GAAM5pB,CAAK,IAAI4pB,IAAhF;AACjB;AACA,SAASC,GAAiBC,GAAW;AACnC,SAAOC,GAAiBD,CAAS,KAAK,OAAOA,KAAc,cAAcE,GAAkBF,CAAS;AACtG;AACA,SAASC,GAAiBD,GAAW;AACnC,SAAO,OAAOA,KAAc,eAAe,MAAM;AAC/C,UAAMG,IAAQ,OAAO,eAAeH,CAAS;AAC7C,WAAOG,EAAM,aAAaA,EAAM,UAAU;AAAA,EAC9C,GAAM;AACN;AACA,SAASD,GAAkBF,GAAW;AACpC,SAAO,OAAOA,KAAc,YAAY,OAAOA,EAAU,YAAa,YAAY,CAAC,cAAc,mBAAmB,EAAE,SAASA,EAAU,SAAS,WAAW;AAC/J;AACA,SAASI,GAAcne,GAAS;AAE9B,QAAMoe,IAAkB;AAAA,IACtB,OAAO,CAAE;AAAA;AAAA,IAET,eAAe,MAAM;AAAA,IAAE;AAAA;AAAA,IAEvB,qBAAqB;AAAA,IACrB,GAAGpe;AAAA,EACJ,GAGK,CAACqe,CAAQ,IAAI9oB,EAAM,SAAS,OAAO;AAAA,IACvC,SAAS4iB,GAAYiG,CAAe;AAAA,EACxC,EAAI,GAGI,CAACpY,GAAOsY,CAAQ,IAAI/oB,EAAM,SAAS,MAAM8oB,EAAS,QAAQ,YAAY;AAI5E,SAAAA,EAAS,QAAQ,WAAW,CAAAE,OAAS;AAAA,IACnC,GAAGA;AAAA,IACH,GAAGve;AAAA,IACH,OAAO;AAAA,MACL,GAAGgG;AAAA,MACH,GAAGhG,EAAQ;AAAA,IACZ;AAAA;AAAA;AAAA,IAGD,eAAe,CAAAjE,MAAW;AACxB,MAAAuiB,EAASviB,CAAO,GAChBiE,EAAQ,iBAAiB,QAAQA,EAAQ,cAAcjE,CAAO;AAAA,IACpE;AAAA,EACA,EAAI,GACKsiB,EAAS;AAClB;AC3BO,MAAMG,KAAa,CAAC;AAAA,EACzB,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,MAAAjX,IAAO;AAAA,EACP,UAAAkX,IAAW;AAAA,EACX,SAAA9qB;AACF,MAAuB;AAEX,EAAA2qB,IAAAA,IAAU,IAAI,IAAIA,GAE5BD,IAAO,KAAK,IAAI,KAAK,IAAIA,GAAM,CAAC,GAAGE,CAAU,GAElCE,IAAA,KAAK,IAAI,KAAK,IAAIA,GAAU,CAAC,GAAGH,IAAU,CAAC;AAEhD,QAAAI,IAAY,MAAM,KAAK,EAAE,QAAQH,KAAc,CAAC7S,GAAGpO,MAAUA,CAAK,GAGlEqhB,IAAeL,IAAU,IAAI;AAE/B,MAAAM;AAEJ,SAAIL,IAAaI,IAEPC,IAAAF,IACCL,IAAO,KAAKC,IAEbM,IAAAF,EAAU,MAAM,GAAGC,KAAgBF,IAAW,IAAIA,IAAW,IAAI,EAAE,IAClEJ,IAAOC,KAAWC,IAEnBK,IAAAF,EAAU,MAAMH,IAAaI,KAAgBF,IAAW,IAAIA,IAAW,IAAI,IAAIF,CAAU,IAGjGK,IAAQF,EAAU;AAAA,IAChBL,IAAO,KAAKC,KAAWG,IAAW,IAAIA,IAAW,IAAI;AAAA,IACrDJ,KAAQC,KAAWG,IAAW,IAAIA,IAAW,IAAI;AAAA,EACnD,0BAIC,OAAI,EAAA,WAAWzqB,EAAG,QAAQL,KAAA,gBAAAA,EAAS,IAAI,GACrC,UAAA;AAAA,IACC4T,KAAAxT,gBAAAA,EAAA;AAAA,MAACS;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,QAAO;AAAA,QACP,WAAWR,EAAG,+EAA+EL,KAAA,gBAAAA,EAAS,MAAM;AAAA,QAC5G,UAAU0qB,KAAQ;AAAA,QAClB,SAAS,MAAMA,IAAO,KAAKG,EAAWH,IAAO,CAAC;AAAA,QAE9C,UAACtqB,gBAAAA,EAAA,IAAA4F,GAAA,EAAK,MAAK,qBAAoB,WAAU,aAAa,CAAA;AAAA,MAAA;AAAA,IACxD;AAAA,IAED4kB,IAAaI,KACZF,IAAW,KACXC,EAAU,MAAM,GAAGL,IAAO,KAAKC,IAAU,IAAIG,CAAQ,EAAE,IAAI,CAAC1oB,MAC1DhC,gBAAAA,EAAA;AAAA,MAACS;AAAA,MAAA;AAAA,QAEC,MAAK;AAAA,QACL,QAAO;AAAA,QACP,WAAWR,EAAG,mDAAmDL,KAAA,gBAAAA,EAAS,MAAM;AAAA,QAChF,SAAS,MAAMoC,MAAUsoB,IAAO,KAAKG,EAAWzoB,CAAK;AAAA,QAEpD,UAAQA,IAAA;AAAA,MAAA;AAAA,MANJA;AAAA,IAAA,CAQR;AAAA,IACFwoB,IAAaI,KAAgBF,IAAW,KAAKJ,IAAO,IAAIC,KACvDvqB,gBAAAA,EAAA;AAAA,MAACS;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,QAAO;AAAA,QACP,WAAWR,EAAG,uEAAuEL,KAAA,gBAAAA,EAAS,QAAQ;AAAA,QACvG,UAAA;AAAA,MAAA;AAAA,IAED;AAAA,IAEDirB,EAAM,IAAI,CAAC7oB,MAAU;AACd,YAAA8oB,IAAS9oB,MAAUsoB,IAAO;AAG9B,aAAAtqB,gBAAAA,EAAA;AAAA,QAACS;AAAA,QAAA;AAAA,UAEC,MAAK;AAAA,UACL,WAAWR;AAAA,YACT;AAAA,YACA;AAAA,cACE,CAAC,8BAA8BL,KAAA,gBAAAA,EAAS,MAAM,EAAE,GAAGkrB;AAAA,YACrD;AAAA,YACAlrB,KAAA,gBAAAA,EAAS;AAAA,UACX;AAAA,UACA,QAAQkrB,IAAS,cAAc;AAAA,UAC/B,SAAS,MAAM,CAACA,KAAUL,EAAWzoB,CAAK;AAAA,UAEzC,UAAQA,IAAA;AAAA,QAAA;AAAA,QAZJA;AAAA,MAaP;AAAA,IAAA,CAEH;AAAA,IACAwoB,IAAaI,KAAgBF,IAAW,KAAKJ,IAAOE,IAAaD,KAChEvqB,gBAAAA,EAAA;AAAA,MAACS;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,QAAO;AAAA,QACP,WAAWR,EAAG,uEAAuEL,KAAA,gBAAAA,EAAS,QAAQ;AAAA,QACvG,UAAA;AAAA,MAAA;AAAA,IAED;AAAA,IAED4qB,IAAaI,KACZF,IAAW,KACXC,EAAU,MAAML,KAAQE,IAAaD,IAAUC,IAAaA,IAAaE,GAAUF,CAAU,EAAE,IAAI,CAACxoB,MAClGhC,gBAAAA,EAAA;AAAA,MAACS;AAAA,MAAA;AAAA,QAEC,MAAK;AAAA,QACL,WAAWR,EAAG,mDAAmDL,KAAA,gBAAAA,EAAS,MAAM;AAAA,QAChF,QAAO;AAAA,QACP,SAAS,MAAMoC,MAAUsoB,IAAO,KAAKG,EAAWzoB,CAAK;AAAA,QAEpD,UAAQA,IAAA;AAAA,MAAA;AAAA,MANJA;AAAA,IAAA,CAQR;AAAA,IACFwR,KACCxT,gBAAAA,EAAA;AAAA,MAACS;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,QAAO;AAAA,QACP,WAAWR,EAAG,+EAA+EL,KAAA,gBAAAA,EAAS,MAAM;AAAA,QAC5G,UAAU0qB,KAAQE;AAAA,QAClB,SAAS,MAAMF,IAAOE,KAAcC,EAAWH,CAAI;AAAA,QAEnD,UAAAtqB,gBAAAA,EAAAA,IAAC4F,GAAK,EAAA,MAAK,oBAAoB,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACjC,GAEJ;AAEJ,GC5JamlB,KAAkB,CAAC,EAAE,MAAAT,GAAM,WAAArN,GAAW,UAAAJ,GAAU,mBAAAmO,GAAmB,WAAAC,GAAW,SAAArrB,QAAoC;AAC7H,QAAMsrB,IAAWrO,IAAWyN,GACtBa,IAAWD,IAAWD,IAAYA,IAAYC;AAEpD,gCACG,OAAI,EAAA,WAAWjrB,EAAG,4CAA4CL,KAAA,gBAAAA,EAAS,IAAI,GAC1E,UAAA;AAAA,IAAAW,gBAAAA,OAAC,UAAK,WAAWN,EAAG,2CAA2CL,KAAA,gBAAAA,EAAS,YAAY,GAAG,UAAA;AAAA,MAAA;AAAA,MAC3EurB;AAAA,MAAS;AAAA,MAAKF;AAAA,IAAA,GAC1B;AAAA,IACAjrB,gBAAAA,EAAA;AAAA,MAACqqB;AAAA,MAAA;AAAA,QACC,YAAYpN;AAAA,QACZ,YAAY,CAACT,MAAcwO,EAAkBxO,CAAS;AAAA,QACtD,MAAA8N;AAAA,QACA,UAAU;AAAA,QACV,SAAS1qB,KAAA,gBAAAA,EAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EACpB,GACF;AAEJ,GC1BawrB,KAAU,CAAmB,EAAE,MAAAC,GAAM,eAAAC,GAAe,OAAAjhB,GAAO,SAAAzK,GAAS,YAAAooB,QAA2C;AAC1H,QAAMuD,IAAoBvD,MAAe,MAAS3d,EAAM,aAAiB,IAAA,GAEnEmhB,IAAkB;AAAA,IACtB,WAAWnhB,EAAM,aAAa;AAAA,IAC9B,WAAWA,EAAM,gBAAgB,EAAE,KAAK;AAAA,IACxC,UAAUA,EAAM,SAAS,EAAE,WAAW;AAAA,IACtC,MAAMA,EAAM,SAAS,EAAE,WAAW,YAAY;AAAA,IAC9C,mBAAmBA,EAAM;AAAA,IACzB,SAASzK,KAAA,gBAAAA,EAAS;AAAA,EACpB;AAEA,gCACG,OAAI,EAAA,WAAWK,EAAG,gCAAgCL,KAAA,gBAAAA,EAAS,IAAI,GAC9D,UAAA;AAAA,IAAAW,gBAAAA,OAAC8F,MAAM,WAAWpG,EAAG,UAAUL,KAAA,gBAAAA,EAAS,KAAK,GAC1C,UAAA;AAAA,MACC0rB,KAAAtrB,gBAAAA,EAAA,IAACsG,MAAY,WAAU,QACpB,YAAM,gBAAgB,EAAE,IAAI,CAAC2G,MAC5BjN,gBAAAA,EAAA;AAAA,QAACyG;AAAA,QAAA;AAAA,UAEC,WAAWxG;AAAA,YACT;AAAA,YACA;AAAA,cACE,2CAA2CorB,MAAS;AAAA,YACtD;AAAA,YACAzrB,KAAA,gBAAAA,EAAS;AAAA,UACX;AAAA,UAEC,UAAYqN,EAAA,QAAQ,IAAI,CAAClB,MACxB/L,gBAAAA,EAAA;AAAA,YAAC0G;AAAA,YAAA;AAAA,cAEC,WAAWzG;AAAA,gBACT;AAAA,gBACA;AAAA,kBACE,QAAQorB,MAAS;AAAA,gBACnB;AAAA,gBACAzrB,KAAA,gBAAAA,EAAS;AAAA,cACX;AAAA,cAEC,UAAAmM,EAAO,gBAAgB,OAAO0d,EAAW1d,EAAO,OAAO,UAAU,QAAQA,EAAO,WAAY,CAAA;AAAA,YAAA;AAAA,YATxFA,EAAO;AAAA,UAWf,CAAA;AAAA,QAAA;AAAA,QAtBIkB,EAAY;AAAA,MAwBpB,CAAA,GACH;AAAA,MAEDjN,gBAAAA,EAAA,IAAAuG,IAAA,EACE,UAAM8D,EAAA,YAAc,EAAA,KAAK,SACxBA,EAAM,YAAY,EAAE,KAAK,IAAI,CAACC,MAC5BtK,gBAAAA,EAAA;AAAA,QAACyG;AAAA,QAAA;AAAA,UAEC,WAAWxG;AAAA,YACT;AAAA,YACA;AAAA,cACE,qFAAqForB,MAAS;AAAA,cAC9F,qDAAqDA,MAAS;AAAA,YAChE;AAAA,YACAzrB,KAAA,gBAAAA,EAAS;AAAA,UACX;AAAA,UAEC,YAAI,gBAAgB,EAAE,IAAI,CAAC8K,GAAM+gB,MAChCzrB,gBAAAA,EAAA;AAAA,YAAC2G;AAAA,YAAA;AAAA,cAEC,WAAW1G;AAAA,gBACT;AAAA,gBACA;AAAA,kBACE,QAAQorB,MAAS;AAAA,kBACjB,eAAeI,MAAc;AAAA,gBAC/B;AAAA,gBACA7rB,KAAA,gBAAAA,EAAS;AAAA,cACX;AAAA,cAEC,YAAW8K,EAAK,OAAO,UAAU,MAAMA,EAAK,WAAY,CAAA;AAAA,YAAA;AAAA,YAVpDA,EAAK;AAAA,UAYb,CAAA;AAAA,QAAA;AAAA,QAxBIJ,EAAI;AAAA,MAAA,CA0BZ,IAEAtK,gBAAAA,EAAA,IAAAyG,GAAA,EACC,UAACzG,gBAAAA,EAAAA,IAAA2G,IAAA,EAAU,SAAS0D,EAAM,YAAY,GAAG,UAAS,YAAA,CAAA,EACpD,CAAA,EAEJ,CAAA;AAAA,IAAA,GACF;AAAA,IACCkhB,IACC,OAAOvD,KAAe,aACpBA,EAAWwD,CAAe,IAEzBxrB,gBAAAA,EAAAA,IAAA+qB,IAAA,EAAiB,GAAGS,EAAiB,CAAA,IAEtC;AAAA,EAAA,GACN;AAEJ,GCnGaE,KAAS,CAAmB;AAAA,EACvC,MAAAL;AAAA,EACA,eAAAC;AAAA,EACA,OAAAjhB;AAAA,EACA,SAAAzK;AACF,4BAEK,OAAI,EAAA,WAAWK,EAAG,UAAUL,KAAA,gBAAAA,EAAS,KAAK,GACxC,UAAAyK,EAAM,cAAc,KAAK,SACxBA,EAAM,cAAc,KAAK,IAAI,CAACC,MAC5BtK,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IAEC,WAAWC;AAAA,MACT;AAAA,QACE,qFAAqForB,MAAS;AAAA,QAC9F,qDAAqDA,MAAS;AAAA,MAChE;AAAA,MACAzrB,KAAA,gBAAAA,EAAS;AAAA,IACX;AAAA,IAEC,YAAI,gBAAgB,EAAE,IAAI,CAAC8K,GAAMnB,MAAU;AAC1C,YAAMwC,IAAS1B,EAAM,gBAAA,EAAkB,CAAC,EAAE,QAAQd,CAAK;AAGrD,aAAAhJ,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAWN;AAAA,YACT;AAAA,YACA;AAAA,cACE,QAAQorB,MAAS;AAAA,cACjB,eAAe9hB,MAAU;AAAA,YAC3B;AAAA,YACA3J,KAAA,gBAAAA,EAAS;AAAA,UACX;AAAA,UAEC,UAAA;AAAA,YAAA0rB,KACEtrB,gBAAAA,EAAA,IAAA,KAAA,EAAE,WAAU,aAAa,UAAWypB,EAAA1d,EAAO,OAAO,UAAU,QAAQA,EAAO,WAAY,CAAA,GAAE;AAAA,YAE5F/L,gBAAAA,EAAAA,IAAC,KAAG,EAAA,UAAAypB,EAAW/e,EAAK,OAAO,UAAU,MAAMA,EAAK,WAAY,CAAA,EAAE,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAbzDA,EAAK;AAAA,MAcZ;AAAA,IAEH,CAAA;AAAA,EAAA;AAAA,EA9BIJ,EAAI;AAAA,CAgCZ,IAEAtK,gBAAAA,EAAA,IAAA,OAAA,EAAI,sBAAS,CAAA,GAElB,GClCS2rB,KAAY,CAAmB;AAAA,EAC1C,SAAAxd;AAAA,EACA,MAAAoX;AAAA,EACA,eAAA+F,IAAgB;AAAA,EAChB,MAAAD,IAAO;AAAA,EACP,SAAAzrB;AAAA,EACA,YAAAooB,IAAa;AACf,MAA6B;AAC3B,QAAM,CAACpB,GAAegF,CAAgB,IAAIC,GAA6B,CAAA,CAAE,GACnE,CAACtD,GAASuD,CAAU,IAAID,GAAuB,CAAA,CAAE,GAEjDxhB,IAAQ2f,GAAc;AAAA,IAC1B,MAAAzE;AAAA,IACA,SAAApX;AAAA,IACA,OAAO,EAAE,eAAAyY,GAAe,SAAA2B,EAAQ;AAAA,IAChC,oBAAoB;AAAA,IACpB,iBAAiBuD;AAAA,IACjB,uBAAuBF;AAAA,IACvB,iBAAiBtG,GAAgB;AAAA,IACjC,qBAAqBgC,GAAoB;AAAA,IACzC,mBAAmBgB,GAAkB;AAAA,IACrC,oBAAoB5B,GAAmB;AAAA,IACvC,wBAAwBM,GAAuB;AAAA,IAC/C,uBAAuBe,GAAsB;AAAA,EAAA,CAC9C,GAEK,EAAE,UAAAgE,EAAS,IAAIzkB,GAAU;AAE/B,SAAOykB,IACL/rB,gBAAAA,EAAAA,IAAC0rB,IAAO,EAAA,OAAArhB,GAAc,eAAAihB,GAA8B,MAAAD,GAAY,SAAAzrB,EAAA,CAAkB,IAElFI,gBAAAA,EAAA,IAACorB,IAAQ,EAAA,OAAA/gB,GAAc,eAAAihB,GAA8B,MAAAD,GAAY,YAAArD,GAAwB,SAAApoB,GAAkB;AAE/G;AC9BO,MAAMosB,GAAW;AAAA,EACtB,OAAO,kBAAyD;AAC9D,WAAOxkB,GAA0B;AAAA,EAAA;AAAA,EAGnC,OAAO,WACLykB,GACApgB,GACoB;AACd,UAAA;AAAA,MACJ,QAAAqgB,IAAS,KAAK,gBAAuB;AAAA,MACrC,oBAAAC,IAAqB;AAAA,MACrB,eAAAC,IAAgB;AAAA,MAChB,cAAAC;AAAA,MACA,gBAAAC;AAAA,IACF,IAAIzgB,KAAW,CAAC;AAIT,WAFM,OAAO,KAAKogB,CAAQ,EAErB,IAAI,CAAClkB,MACRmkB,EAAO,SAAsBnkB,GAAK;AAAA,MACvC,QAAQ,CAACgE,MAAW;AACZ,cAAA,EAAE,QAAArE,MAAWqE,GACbtE,IAAW6kB,IAAiBA,EAAevkB,CAAG,IAAI;AAGtD,eAAA/H,gBAAAA,EAAA;AAAA,UAAC6G;AAAA,UAAA;AAAA,YACC,UAAUa,EAAO,YAAA,MAAkB;AAAA,YACnC,kBAAkBA,EAAO,oBAAoB;AAAA,YAC7C,eAAeA,EAAO;AAAA,YACtB,SAASA,EAAO,WAAW;AAAA,YAE1B,UAAWD,IAAAA,EAASM,GAAKgE,CAAM,IAAKhE;AAAA,UAAA;AAAA,QACvC;AAAA,MAEJ;AAAA,MACA,MAAM,CAAC2C,MAAS;AACd,cAAMjD,IAAW4kB,IAAeA,EAAatkB,CAAG,IAAI;AAEpD,eAAON,IAAWA,EAASiD,CAAI,IAAIA,EAAK,SAAS;AAAA,MACnD;AAAA,MACA,oBAAoB6hB,GAAW,UAAUJ,CAAkB,IAAIA,IAAqBA,EAAmB,SAASpkB,CAAG;AAAA,MACnH,eAAewkB,GAAW,UAAUH,CAAa,IAAIA,IAAgBA,EAAc,SAASrkB,CAAG;AAAA,IAAA,CAChG,CACF;AAAA,EAAA;AAEL;ACxDO,MAAMykB,KAAuB,CAAC,EAAE,mBAAAC,IAAoB,GAAG,eAAAC,IAAgB,UAAsC;AAC5G,QAAA,EAAE,QAAAC,EAAO,IAAIC,GAAgB;AAEnC,SAAAC,GAAU,MAAM;AAEX,IAAAF,EAAA,OAAO,CAACG,MAAMA,EAAE,OAAO,EACvB,OAAO,CAACnV,GAAG5H,MAAMA,KAAK0c,CAAiB,EACvC,QAAQ,CAACK,MAAMC,GAAM,QAAQD,EAAE,EAAE,CAAC;AAAA,EAAA,GACpC,CAACL,GAAmBE,CAAM,CAAC,GAG5B3sB,gBAAAA,EAAA;AAAA,IAACgtB;AAAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,cAAc;AAAA,QACZ,UAAUN;AAAA,MAAA;AAAA,IACZ;AAAA,EACF;AAEJ,GCNaO,KAAc,CAAC,EAAE,WAAAC,QAEzBltB,gBAAAA,EAAAA,IAAA,OAAA,EAAI,cAAW,cAAa,WAAU,yCACpC,UAAUktB,EAAA,IAAI,CAACC,MAEXntB,gBAAAA,MAAAotB,EAAAA,UAAA,EAAA,UAAA,UAAUD,IACT5sB,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWN;AAAA,MACT;AAAA,MACA,EAAE,2CAA2CktB,KAAA,gBAAAA,EAAM,WAAW;AAAA,IAChE;AAAA,IAEA,UAAA;AAAA,MAAAntB,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAMmtB,EAAK;AAAA,UACX,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,WAAWltB;AAAA,YACT;AAAA,YACA,EAAE,wBAAwBktB,KAAA,gBAAAA,EAAM,WAAW;AAAA,UAC7C;AAAA,UAEC,UAAKA,EAAA;AAAA,QAAA;AAAA,MACR;AAAA,MACAntB,gBAAAA,EAAA;AAAA,QAAC4F;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAW3F,EAAG,oCAAoC,EAAE,uBAAuBktB,KAAA,gBAAAA,EAAM,WAAY,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC/F;AAAA,EAAA;AACF,IAECntB,gBAAAA,EAAA,IAAA,OAAA,EAAI,gBAAa,QAAO,WAAU,gDAChC,UAAKmtB,EAAA,MACR,CAAA,EAEJ,CAAA,CACD,EACH,CAAA;","x_google_ignoreList":[4,12,13]}
|
|
1
|
+
{"version":3,"file":"ui.js","sources":["../lib/shared/ui/buttonIcon/ButtonIcon.tsx","../lib/shared/ui/skeleton/Skeleton.tsx","../lib/shared/ui/floatButton/FloatButton.tsx","../lib/shared/ui/icon/allowedIcons.ts","../node_modules/@radix-ui/react-tabs/dist/index.mjs","../lib/shared/ui/tabSwitcher/ui/TabContent.tsx","../lib/shared/ui/tabSwitcher/TabsSwitcher.tsx","../lib/shared/ui/modal/model/helpers.ts","../lib/shared/ui/modal/ui/ModalHeader.tsx","../lib/shared/ui/modal/Modal.tsx","../lib/shared/ui/table/ui/primitives/Primitives.tsx","../lib/shared/ui/table/ui/dataTableColumnHeader/DataTableColumnHeader.tsx","../node_modules/@tanstack/table-core/build/lib/index.mjs","../node_modules/@tanstack/react-table/build/lib/index.mjs","../lib/shared/ui/pagination/Pagination.tsx","../lib/shared/ui/table/TablePagination.tsx","../lib/shared/ui/table/Desktop.tsx","../lib/shared/ui/table/Mobile.tsx","../lib/shared/ui/table/Table.tsx","../lib/shared/ui/table/model/TableUtils.tsx","../lib/shared/ui/providers/NotificationProvider.tsx","../lib/shared/ui/breadcrumbs/Breadcrumbs.tsx","../lib/shared/ui/slot/ui/Slottable.tsx","../lib/shared/ui/slot/ui/SlotClone.tsx","../lib/shared/ui/slot/model/isSlottable.ts","../lib/shared/ui/slot/model/getElementRef.ts","../lib/shared/ui/slot/model/mergeProps.ts","../lib/shared/ui/slot/Slot.tsx"],"sourcesContent":["import { type ComponentProps, forwardRef, type ReactElement } from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '$/shared/utils'\n\ntype ButtonClasses = {\n button: string\n icon: string\n}\n\nconst buttonConfig = cva(\n 'group flex items-center justify-center cursor-pointer rounded-full outline-offset-[3px] outline-transparent outline-2 transition duration-12 active:scale-[0.97] disabled:pointer-events-none',\n {\n variants: {\n intent: {\n primary:\n 'text-icon-white bg-color-primary-default hover:bg-color-primary-hover active:bg-color-primary-hover focus:bg-color-primary-hover focus:outline-primary-focus disabled:bg-color-primary-disabled',\n secondary:\n 'text-icon-primary-default bg-color-transparent border border-solid outline-offset-4 border-primary-default hover:bg-color-primary-tr-hover hover:text-icon-primary-default hover:border-primary-hover active:bg-color-primary-tr-pressed active:border-primary-hover active:text-icon-primary-hover focus:bg-color-primary-tr-focus focus:outline-primary-focus disabled:bg-color-blue-grey-200 disabled:border-transparent disabled:text-icon-primary-disabled',\n ghost:\n 'text-icon-primary-default bg-color-transparent hover:bg-color-primary-tr-hover focus:bg-color-primary-tr-focus focus:outline-primary-focus active:text-icon-primary-hover active:bg-color-primary-tr-pressed disabled:bg-color-transparent disabled:text-icon-primary-disabled'\n },\n size: {\n sm: 'size-8',\n md: 'size-10',\n lg: 'size-12'\n }\n },\n defaultVariants: {\n intent: 'primary',\n size: 'lg'\n }\n }\n)\n\ntype ButtonProps = VariantProps<typeof buttonConfig>\n\nexport interface IButtonIconProps extends Omit<ComponentProps<'button'>, 'className'>, ButtonProps {\n children: ReactElement\n classes?: Partial<ButtonClasses>\n}\n\nexport const ButtonIcon = forwardRef<HTMLButtonElement, IButtonIconProps>(\n ({ size, intent, children, classes, type = 'button', ...props }, ref) => {\n return (\n <button ref={ref} type={type} className={cn(buttonConfig({ intent, size }), classes?.button)} {...props}>\n <span className={cn(classes?.icon)}>{children}</span>\n </button>\n )\n }\n)\n","import type { HTMLAttributes } from 'react'\nimport { cn } from '$/shared/utils'\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n className?: string\n}\n\nexport const Skeleton = ({ className }: SkeletonProps) => {\n return <div className={cn('skeleton-apply h-full w-full', className)}></div>\n}\n","import { Button, type ButtonProps } from '../button'\nimport { ResponsiveContainer } from '../responsiveContainer'\nimport { cn } from '$/shared/utils'\n\ntype FloatButtonClasses = {\n root?: string\n button?: string\n}\n\nexport interface FloatButtonProps {\n isVisible: boolean\n classes?: FloatButtonClasses\n children: React.ReactElement\n buttonProps?: ButtonProps\n}\n\nexport const FloatButton = ({ isVisible, classes, children, buttonProps }: FloatButtonProps) => {\n return (\n <ResponsiveContainer\n className={cn(\n 'fixed bottom-0 left-1/2 z-[60] w-full max-w-[604px] -translate-x-1/2 translate-y-0 rounded-t-lg bg-color-white px-6 py-4 shadow-[0px_-6px_8px_0px_#2929290A] transition-transform duration-1000 desktop:hidden',\n { 'translate-y-[100%]': !isVisible },\n classes?.root\n )}\n >\n {children}\n <Button size='lg' className={cn('m-auto w-full', classes?.button)} {...buttonProps}>\n Оформить заявку\n </Button>\n </ResponsiveContainer>\n )\n}\n","import type { AllowedIcons } from '$/shared/ui/icon'\n\nexport const allowedIcons: {\n group: Record<string, AllowedIcons[]>\n flatten: AllowedIcons[]\n} = {\n group: {\n arrows: ['arrows/arrowCircle', 'arrows/arrowLink', 'arrows/arrowRight', 'arrows/arrowRotate', 'arrows/arrowScroll'],\n brandLogos: [\n 'brandLogos/logoBlack',\n 'brandLogos/logoBusiness',\n 'brandLogos/logoGray',\n 'brandLogos/logoInsurance',\n 'brandLogos/logoMain',\n 'brandLogos/logoWhite'\n ],\n communication: ['communication/phone'],\n editor: [\n 'editor/bold',\n 'editor/heading',\n 'editor/italic',\n 'editor/link',\n 'editor/list',\n 'editor/palette',\n 'editor/redo',\n 'editor/removeFormatting',\n 'editor/space',\n 'editor/strikethrough',\n 'editor/typography',\n 'editor/underline',\n 'editor/undo'\n ],\n files: ['files/border', 'files/borderError', 'files/documentFilled', 'files/documentOutline', 'files/upload'],\n general: [\n 'general/calendar',\n 'general/check',\n 'general/close',\n 'general/edit',\n 'general/hiddenEye',\n 'general/menu',\n 'general/plus',\n 'general/reorder',\n 'general/showEye'\n ],\n info: ['info/helpCircle', 'info/warningCircle'],\n logos: ['logos/beeline', 'logos/megafon', 'logos/mts'],\n social: ['social/classmates', 'social/telegram', 'social/vk'],\n status: ['status/badSmile', 'status/iconMark', 'status/iconRetry', 'status/iconUser']\n },\n flatten: [\n 'arrows/arrowCircle',\n 'arrows/arrowLink',\n 'arrows/arrowRight',\n 'arrows/arrowRotate',\n 'arrows/arrowScroll',\n 'brandLogos/logoBlack',\n 'brandLogos/logoBusiness',\n 'brandLogos/logoGray',\n 'brandLogos/logoInsurance',\n 'brandLogos/logoMain',\n 'brandLogos/logoWhite',\n 'communication/phone',\n 'editor/bold',\n 'editor/heading',\n 'editor/italic',\n 'editor/link',\n 'editor/list',\n 'editor/palette',\n 'editor/redo',\n 'editor/removeFormatting',\n 'editor/space',\n 'editor/strikethrough',\n 'editor/typography',\n 'editor/underline',\n 'editor/undo',\n 'files/border',\n 'files/borderError',\n 'files/documentFilled',\n 'files/documentOutline',\n 'files/upload',\n 'general/calendar',\n 'general/check',\n 'general/close',\n 'general/edit',\n 'general/hiddenEye',\n 'general/menu',\n 'general/plus',\n 'general/reorder',\n 'general/showEye',\n 'info/helpCircle',\n 'info/warningCircle',\n 'logos/beeline',\n 'logos/megafon',\n 'logos/mts',\n 'social/classmates',\n 'social/telegram',\n 'social/vk',\n 'status/badSmile',\n 'status/iconMark',\n 'status/iconRetry',\n 'status/iconUser'\n ]\n}\n","\"use client\";\n\n// packages/react/tabs/src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as TabPrimitive from '@radix-ui/react-tabs'\nimport { Accordion } from '../../accordion'\nimport type { ITabContent } from '../model/types'\nimport { cn } from '$/shared/utils'\n\nexport type TabContentClasses = {\n content?: string\n contentsWrapper?: string\n}\n\nexport interface TabContentProps {\n contents: ITabContent[]\n classes?: TabContentClasses\n}\n\nexport const TabContent = ({ classes, contents }: TabContentProps) => {\n return (\n <div className={cn('flex flex-col gap-4', classes?.contentsWrapper)}>\n {contents?.map(({ id, body, accordion }) => {\n if (accordion && accordion?.title) {\n return (\n <TabPrimitive.Content key={id} value={id} className={cn('py-8', classes?.content)}>\n <Accordion label={accordion?.title}>{body}</Accordion>\n </TabPrimitive.Content>\n )\n }\n\n return (\n <TabPrimitive.Content key={id} value={id} className={cn('py-8', classes?.content)}>\n {body}\n </TabPrimitive.Content>\n )\n })}\n </div>\n )\n}\n","'use client'\n\nimport * as TabPrimitive from '@radix-ui/react-tabs'\nimport type { TabRenderContent, TabsClasses } from './model/types'\nimport { TabContent } from './ui/TabContent'\nimport { cn } from '$/shared/utils'\n\nexport interface TabsSwitcherProps {\n renderContent: TabRenderContent\n value: string\n onChangeTab: (tab: string) => void\n defaultActiveTabId?: string\n classes?: TabsClasses\n}\n\nexport const TabsSwitcher = ({ renderContent, defaultActiveTabId = '1', value, onChangeTab, classes }: TabsSwitcherProps) => {\n return (\n <TabPrimitive.Root\n value={value}\n onValueChange={onChangeTab}\n defaultValue={defaultActiveTabId}\n className={cn('flex flex-col', classes?.root)}\n >\n <TabPrimitive.List className={cn('flex items-center gap-4', classes?.list)}>\n {renderContent?.triggers?.map(({ id, label }) => (\n <TabPrimitive.Trigger\n key={id}\n value={id}\n className={cn(\n 'desk-body-regular-l cursor-pointer rounded-sm bg-color-blue-grey-100 px-4 py-2 text-color-secondary outline outline-2 outline-offset-2 outline-transparent transition-colors hover:bg-color-blue-grey-200 hover:text-color-secondary data-[state=\"active\"]:!bg-color-primary-default data-[state=\"active\"]:!text-color-white',\n classes?.trigger\n )}\n >\n {label}\n </TabPrimitive.Trigger>\n ))}\n </TabPrimitive.List>\n <TabContent contents={renderContent?.contents} classes={classes?.tabContent} />\n </TabPrimitive.Root>\n )\n}\n","export const modalOverlayAnimation = {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n transition: { duration: 0.3, ease: 'easeInOut' }\n}\n\nexport const modalContentAnimation = {\n initial: { opacity: 0, scale: 0 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0 },\n transition: { duration: 0.3, ease: 'easeInOut' }\n}\n","import type { ModalProps } from '../Modal'\nimport { Heading, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type TModalHeaderClasses = {\n header?: string\n title?: string\n icon?: string\n}\n\nexport interface IModalHeaderProps extends Pick<ModalProps, 'closeModal' | 'title'> {\n classes?: TModalHeaderClasses\n}\n\nexport const ModalHeader = ({ title, closeModal, classes }: IModalHeaderProps) => {\n return (\n <div className={cn('flex items-start justify-between gap-4', classes?.header)}>\n {title && (\n <Heading as='h3' className={cn('flex-1 text-color-dark', classes?.title)}>\n {title}\n </Heading>\n )}\n <Icon\n onClick={closeModal}\n name='general/close'\n className={cn('size-8 cursor-pointer text-icon-dark-hover', classes?.icon)}\n />\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { modalContentAnimation, modalOverlayAnimation } from './model/helpers'\nimport { ModalHeader, type TModalHeaderClasses } from './ui/ModalHeader'\nimport { cn } from '$/shared/utils'\n\ntype ModalClasses = {\n overlay?: string\n modal?: string\n content?: string\n modalHeader?: TModalHeaderClasses\n}\n\nexport interface ModalProps {\n children: React.ReactElement\n isModalOpen: boolean\n classes?: ModalClasses\n isPortal?: boolean\n portalContainer?: HTMLElement\n title?: string | React.ReactElement\n closeModal: () => void\n}\n\nexport const Modal = ({\n title,\n children,\n isModalOpen,\n isPortal = true,\n portalContainer = globalThis?.document?.body,\n closeModal,\n classes\n}: ModalProps) => {\n if (isModalOpen) {\n document.body.style.overflow = 'hidden'\n } else {\n document.body.style.overflow = 'visible'\n }\n\n const modalBody = (\n <AnimatePresence>\n {isModalOpen && (\n <motion.div\n tabIndex={-1}\n onClick={closeModal}\n className={cn(\n 'fixed inset-0 flex h-screen w-screen items-center justify-center bg-color-overlay',\n { 'z-1000': !isPortal },\n classes?.overlay\n )}\n onKeyDown={(event) => {\n if (event.key === 'Escape') {\n closeModal()\n }\n }}\n data-test-id='modal-overlay'\n {...modalOverlayAnimation}\n >\n <motion.div\n onClick={(event) => event.stopPropagation()}\n className={cn(\n 'w-full max-w-[600px] rounded-md bg-color-white px-4 py-6 shadow-sm desktop:px-6 desktop:py-8',\n classes?.modal\n )}\n data-test-id='modal'\n {...modalContentAnimation}\n >\n <ModalHeader title={title} closeModal={closeModal} classes={classes?.modalHeader} />\n <div className={cn('mt-4', classes?.content)}>{children}</div>\n </motion.div>\n </motion.div>\n )}\n </AnimatePresence>\n )\n return <>{isPortal ? createPortal(modalBody, portalContainer) : modalBody}</>\n}\n","import { forwardRef } from 'react'\n\nexport const Table = forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>((props, ref) => (\n <table ref={ref} {...props} />\n))\nTable.displayName = 'Table'\n\nexport const TableHeader = forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>((props, ref) => (\n <thead ref={ref} {...props} />\n))\nTableHeader.displayName = 'TableHeader'\n\nexport const TableBody = forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>((props, ref) => (\n <tbody ref={ref} {...props} />\n))\nTableBody.displayName = 'TableBody'\n\nexport const TableFooter = forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>((props, ref) => (\n <tfoot ref={ref} {...props} />\n))\nTableFooter.displayName = 'TableFooter'\n\nexport const TableRow = forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>((props, ref) => (\n <tr ref={ref} {...props} />\n))\nTableRow.displayName = 'TableRow'\n\nexport const TableHead = forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>((props, ref) => (\n <th ref={ref} {...props} />\n))\nTableHead.displayName = 'TableHead'\n\nexport const TableCell = forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>((props, ref) => (\n <td ref={ref} {...props} />\n))\nTableCell.displayName = 'TableCell'\n\nexport const TableCaption = forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>((props, ref) => (\n <caption ref={ref} {...props} />\n))\nTableCaption.displayName = 'TableCaption'\n","import { type SortDirection } from '@tanstack/react-table'\nimport { useDevice } from '$/shared/hooks'\nimport { Icon } from '$/shared/ui/icon'\nimport { cn } from '$/shared/utils'\n\ntype DataTableColumnHeaderClasses = {\n root?: string\n content?: string\n icon?: string\n}\n\ntype DataTableColumnHeaderProps = {\n children: React.ReactNode\n isSorted: boolean | SortDirection\n toggleSorting: (desc: boolean) => void\n nextSortingOrder: boolean | SortDirection\n canSort: boolean\n classes?: DataTableColumnHeaderClasses\n}\n\nexport const DataTableColumnHeader = ({\n children,\n canSort,\n toggleSorting,\n nextSortingOrder,\n isSorted,\n classes\n}: DataTableColumnHeaderProps) => {\n const { root, content, icon } = classes || {}\n\n const { isDesktop } = useDevice()\n\n const isSortable = canSort && isDesktop\n\n return (\n <button\n type='button'\n className={cn('desk-body-regular-l flex items-center justify-center gap-x-2 text-color-secondary', root)}\n onClick={() => toggleSorting(!isSorted)}\n disabled={!isSortable}\n >\n <span className={cn('', content)}>{children}</span>\n {isSortable && (\n <Icon\n name='arrows/arrowRight'\n className={cn(\n 'size-4 rotate-90 text-color-current duration-100',\n {\n '-rotate-90': !nextSortingOrder\n },\n icon\n )}\n />\n )}\n </button>\n )\n}\n","/**\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\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 = _contextDocument || typeof document !== 'undefined' ? document : null;\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","/**\n * react-table\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 */\nimport * as React from 'react';\nimport { createTable } from '@tanstack/table-core';\nexport * from '@tanstack/table-core';\n\n//\n\n/**\n * If rendering headers, cells, or footers with custom markup, use flexRender instead of `cell.getValue()` or `cell.renderValue()`.\n */\nfunction flexRender(Comp, props) {\n return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, props) : Comp;\n}\nfunction isReactComponent(component) {\n return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);\n}\nfunction isClassComponent(component) {\n return typeof component === 'function' && (() => {\n const proto = Object.getPrototypeOf(component);\n return proto.prototype && proto.prototype.isReactComponent;\n })();\n}\nfunction isExoticComponent(component) {\n return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);\n}\nfunction useReactTable(options) {\n // Compose in the generic options to the user options\n const resolvedOptions = {\n state: {},\n // Dummy state\n onStateChange: () => {},\n // noop\n renderFallbackValue: null,\n ...options\n };\n\n // Create a new table and store it in state\n const [tableRef] = React.useState(() => ({\n current: createTable(resolvedOptions)\n }));\n\n // By default, manage table state here using the table's initial state\n const [state, setState] = React.useState(() => tableRef.current.initialState);\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n tableRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater);\n options.onStateChange == null || options.onStateChange(updater);\n }\n }));\n return tableRef.current;\n}\n\nexport { flexRender, useReactTable };\n//# sourceMappingURL=index.mjs.map\n","import { cn } from '../../utils'\nimport { Button } from '../button'\nimport { Icon } from '../icon'\n\ntype PaginationClasses = {\n root?: string\n button?: string\n ellipsis?: string\n active?: string\n}\n\nexport type PaginationProps = {\n /**\n * активная страница\n */\n page?: number\n /**\n * количество элементов после сужения страниц пример 1 - (1...6 7 8...n)\n * ^ ^\n */\n between?: number\n /**\n * количество элементов на странице\n */\n totalPages: number\n /**\n * функция для переключения страницы\n */\n changePage: (page: number) => void\n /**\n * включить переход на следующую/предыдущую страницу\n */\n next?: boolean\n /**\n * количество страниц для сужения\n */\n ellipsis?: number\n /**\n * дополнительные стили\n */\n classes?: PaginationClasses\n}\n\nexport const Pagination = ({\n page = 1,\n between = 3,\n totalPages,\n changePage,\n next = true,\n ellipsis = 0,\n classes\n}: PaginationProps) => {\n // гарантирует что between никогда не будет меньше 1\n between = between < 1 ? 1 : between\n // ограничиваем текущую страницу от 1 до totalPages\n page = Math.min(Math.max(page, 1), totalPages)\n // ограничиваем количество сужаемых элементов от 0 до between - 2\n ellipsis = Math.min(Math.max(ellipsis, 0), between - 2)\n\n const positions = Array.from({ length: totalPages }, (_, index) => index)\n\n // количество отображаемых страниц (включая активную)\n const visiblePages = between * 2 + 1\n\n let range\n\n if (totalPages < visiblePages) {\n // если общее количество страниц меньше, чем нужно отобразить, то отображаем все страницы\n range = positions\n } else if (page - 1 <= between) {\n // если текущая страница близка к началу, то отображаем страницы с начала\n range = positions.slice(0, visiblePages - (ellipsis > 0 ? ellipsis + 1 : 0))\n } else if (page + between >= totalPages) {\n // если текущая страница близка к концу, то отображаем страницы с конца\n range = positions.slice(totalPages - visiblePages + (ellipsis > 0 ? ellipsis + 1 : 0), totalPages)\n } else {\n // иначе показываем страницы обрезая их слева и справа\n range = positions.slice(\n page - 1 - (between - (ellipsis > 0 ? ellipsis + 1 : 0)),\n page + (between - (ellipsis > 0 ? ellipsis + 1 : 0))\n )\n }\n\n return (\n <div className={cn('flex', classes?.root)}>\n {next && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark disabled:text-icon-disabled', classes?.button)}\n disabled={page <= 1}\n onClick={() => page > 1 && changePage(page - 2)}\n >\n <Icon name='arrows/arrowRight' className='rotate-180' />\n </Button>\n )}\n {totalPages > visiblePages &&\n ellipsis > 0 &&\n positions.slice(0, page - 1 <= between ? 0 : ellipsis).map((value) => (\n <Button\n key={value}\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark', classes?.button)}\n onClick={() => value !== page - 1 && changePage(value)}\n >\n {value + 1}\n </Button>\n ))}\n {totalPages > visiblePages && ellipsis > 0 && page - 1 > between && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l pointer-events-none w-[40px] p-0 text-color-dark', classes?.ellipsis)}\n >\n ...\n </Button>\n )}\n {range.map((value) => {\n const active = value === page - 1\n\n return (\n <Button\n key={value}\n size='sm'\n className={cn(\n 'mob-body-regular-l w-[40px] p-0 text-color-dark',\n {\n [`text-color-primary-default ${classes?.active}`]: active\n },\n classes?.button\n )}\n intent={active ? 'secondary' : 'ghost'}\n onClick={() => !active && changePage(value)}\n >\n {value + 1}\n </Button>\n )\n })}\n {totalPages > visiblePages && ellipsis > 0 && page < totalPages - between && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l pointer-events-none w-[40px] p-0 text-color-dark', classes?.ellipsis)}\n >\n ...\n </Button>\n )}\n {totalPages > visiblePages &&\n ellipsis > 0 &&\n positions.slice(page >= totalPages - between ? totalPages : totalPages - ellipsis, totalPages).map((value) => (\n <Button\n key={value}\n size='sm'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark', classes?.button)}\n intent='ghost'\n onClick={() => value !== page - 1 && changePage(value)}\n >\n {value + 1}\n </Button>\n ))}\n {next && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark disabled:text-icon-disabled', classes?.button)}\n disabled={page >= totalPages}\n onClick={() => page < totalPages && changePage(page)}\n >\n <Icon name='arrows/arrowRight' />\n </Button>\n )}\n </div>\n )\n}\n","import { cn } from '../../utils'\nimport { Pagination, type PaginationProps } from '../pagination'\n\ntype TablePaginationClasses = {\n root?: string\n displayShown?: string\n pagination?: PaginationProps['classes']\n}\n\nexport type TablePaginationProps = {\n pageSize: number\n page: number\n rowsCount: number\n pageCount: number\n onPageIndexChange: (page: number) => void\n classes?: TablePaginationClasses\n}\n\nexport const TablePagination = ({ page, pageCount, pageSize, onPageIndexChange, rowsCount, classes }: TablePaginationProps) => {\n const prevRows = pageSize * page\n const rowsLeft = prevRows > rowsCount ? rowsCount : prevRows\n\n return (\n <div className={cn('flex w-full items-center justify-between', classes?.root)}>\n <span className={cn('desk-body-regular-m text-color-tetriary', classes?.displayShown)}>\n Показано {rowsLeft} из {rowsCount}\n </span>\n <Pagination\n totalPages={pageCount}\n changePage={(pageIndex) => onPageIndexChange(pageIndex)}\n page={page}\n ellipsis={1}\n classes={classes?.pagination}\n />\n </div>\n )\n}\n","import { flexRender, type Table as TTable } from '@tanstack/react-table'\nimport type { DataTableProps } from './model'\nimport { TablePagination } from './TablePagination'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from './ui'\nimport { cn } from '$/shared/utils'\n\ntype DesktopTableProps<TData extends {}> = Pick<DataTableProps<TData>, 'enableHeaders' | 'classes' | 'mode' | 'pagination'> & {\n table: TTable<TData>\n}\n\nexport const Desktop = <TData extends {}>({ mode, enableHeaders, table, classes, pagination }: DesktopTableProps<TData>) => {\n const paginationEnabled = pagination !== false && table.getPageCount() > 1\n\n const paginationProps = {\n pageCount: table.getPageCount(),\n rowsCount: table.getCoreRowModel().rows.length,\n pageSize: table.getState().pagination.pageSize,\n page: table.getState().pagination.pageIndex + 1,\n onPageIndexChange: table.setPageIndex,\n classes: classes?.pagination\n }\n\n return (\n <div className={cn('flex w-full flex-col gap-y-4', classes?.root)}>\n <Table className={cn('w-full', classes?.table)}>\n {enableHeaders && (\n <TableHeader className='px-2'>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow\n key={headerGroup.id}\n className={cn(\n 'w-full',\n {\n 'border-b border-b-[rgba(234,237,241,1)]': mode === 'solid'\n },\n classes?.tableHeader\n )}\n >\n {headerGroup.headers.map((header) => (\n <TableHead\n key={header.id}\n className={cn(\n 'py-3',\n {\n 'px-2': mode === 'odd'\n },\n classes?.tableHead\n )}\n >\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n )}\n <TableBody>\n {table.getRowModel().rows.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n className={cn(\n 'w-full',\n {\n '[&:not(:last-child)]:border-b [&:not(:last-child)]:border-b-[rgba(234,237,241,1)]': mode === 'solid',\n '[&:nth-child(odd)]:bg-color-primary-light-default': mode === 'odd'\n },\n classes?.tableRow\n )}\n >\n {row.getVisibleCells().map((cell, cellIndex) => (\n <TableCell\n key={cell.id}\n className={cn(\n 'py-3',\n {\n 'px-2': mode === 'odd',\n 'font-medium': cellIndex !== 0\n },\n classes?.tableCell\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={table.getRowCount()}>Not found</TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n {paginationEnabled ? (\n typeof pagination === 'function' ? (\n pagination(paginationProps)\n ) : (\n <TablePagination {...paginationProps} />\n )\n ) : null}\n </div>\n )\n}\n","import { flexRender, type Table } from '@tanstack/react-table'\nimport type { DataTableProps } from './model'\nimport { cn } from '$/shared/utils'\n\nexport const Mobile = <TData extends {}>({\n mode,\n enableHeaders,\n table,\n classes\n}: Pick<DataTableProps<TData>, 'enableHeaders' | 'classes' | 'mode'> & { table: Table<TData> }) => {\n return (\n <div className={cn('w-full', classes?.table)}>\n {table.getRowModel().rows.length ? (\n table.getRowModel().rows.map((row) => (\n <div\n key={row.id}\n className={cn(\n {\n '[&:not(:last-child)]:border-b [&:not(:last-child)]:border-b-[rgba(234,237,241,1)]': mode === 'solid',\n '[&:nth-child(odd)]:bg-color-primary-light-default': mode === 'odd'\n },\n classes?.tableRow\n )}\n >\n {row.getVisibleCells().map((cell, index) => {\n const header = table.getHeaderGroups()[0].headers[index]\n\n return (\n <div\n key={cell.id}\n className={cn(\n 'grid grid-cols-2 p-2',\n {\n 'px-2': mode === 'odd',\n 'font-medium': index !== 0\n },\n classes?.tableCell\n )}\n >\n {enableHeaders && (\n <p className='font-bold'>{flexRender(header.column.columnDef.header, header.getContext())}</p>\n )}\n <p>{flexRender(cell.column.columnDef.cell, cell.getContext())}</p>\n </div>\n )\n })}\n </div>\n ))\n ) : (\n <div>Not found</div>\n )}\n </div>\n )\n}\n","import { useState } from 'react'\nimport {\n type ColumnFiltersState,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type SortingState,\n useReactTable\n} from '@tanstack/react-table'\nimport { Desktop } from './Desktop'\nimport { Mobile } from './Mobile'\nimport { type DataTableProps } from './model'\nimport { useDevice } from '$/shared/hooks'\n\nexport const DataTable = <TData extends {}>({\n columns,\n data,\n enableHeaders = true,\n mode = 'solid',\n classes,\n pagination = true\n}: DataTableProps<TData>) => {\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([])\n const [sorting, setSorting] = useState<SortingState>([])\n\n const table = useReactTable({\n data,\n columns,\n state: { columnFilters, sorting },\n enableRowSelection: true,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n getPaginationRowModel: getPaginationRowModel()\n })\n\n const { isMobile } = useDevice()\n\n return isMobile ? (\n <Mobile table={table} enableHeaders={enableHeaders} mode={mode} classes={classes} />\n ) : (\n <Desktop table={table} enableHeaders={enableHeaders} mode={mode} pagination={pagination} classes={classes} />\n )\n}\n","import {\n type CellContext,\n type ColumnDef,\n type ColumnHelper,\n createColumnHelper,\n type HeaderContext\n} from '@tanstack/react-table'\nimport { DataTableColumnHeader } from '../ui'\nimport { TypeGuards } from '$/shared/utils'\n\ntype ColumnDefOptions<TData, TValue> = {\n enableSorting?: (keyof TData)[] | boolean\n enableColumnFilter?: (keyof TData)[] | boolean\n helper?: ColumnHelper<TData>\n cellAccessor?: Partial<Record<keyof TData, (cellContext: CellContext<TData, TValue>) => React.ReactNode>>\n headerAccessor?: Partial<\n Record<keyof TData, (key: keyof TData, headerContext: HeaderContext<TData, TValue>) => React.ReactNode>\n >\n}\n\nexport class TableUtils {\n static getColumnHelper<TData extends {}>(): ColumnHelper<TData> {\n return createColumnHelper<TData>()\n }\n\n static getColumns<TData extends {}, TValue = TData[keyof TData]>(\n template: TData,\n options?: ColumnDefOptions<TData, TValue>\n ): ColumnDef<TData>[] {\n const {\n helper = this.getColumnHelper<TData>(),\n enableColumnFilter = false,\n enableSorting = false,\n cellAccessor,\n headerAccessor\n } = options || {}\n\n const keys = Object.keys(template) as (keyof TData)[]\n\n return keys.map((key) => {\n return helper.accessor<any, TValue>(key, {\n header: (header) => {\n const { column } = header\n const accessor = headerAccessor ? headerAccessor[key] : null\n\n return (\n <DataTableColumnHeader\n isSorted={column.getIsSorted() === 'desc'}\n nextSortingOrder={column.getNextSortingOrder()}\n toggleSorting={column.toggleSorting}\n canSort={column.getCanSort()}\n >\n {accessor ? accessor(key, header) : (key as string)}\n </DataTableColumnHeader>\n )\n },\n cell: (cell) => {\n const accessor = cellAccessor ? cellAccessor[key] : null\n\n return accessor ? accessor(cell) : cell.getValue()\n },\n enableColumnFilter: TypeGuards.isBoolean(enableColumnFilter) ? enableColumnFilter : enableColumnFilter.includes(key),\n enableSorting: TypeGuards.isBoolean(enableSorting) ? enableSorting : enableSorting.includes(key)\n })\n }) as ColumnDef<TData>[]\n }\n}\n","'use client'\n\nimport { useEffect } from 'react'\nimport toast, { Toaster, useToasterStore } from 'react-hot-toast'\n\nexport interface NotificationProviderProps {\n maxToastViewLimit?: number\n toastDuration?: number\n}\n\nexport const NotificationProvider = ({ maxToastViewLimit = 2, toastDuration = 5000 }: NotificationProviderProps) => {\n const { toasts } = useToasterStore()\n\n useEffect(() => {\n toasts\n .filter((t) => t.visible)\n .filter((_, i) => i >= maxToastViewLimit)\n .forEach((t) => toast.dismiss(t.id))\n }, [maxToastViewLimit, toasts])\n\n return (\n <Toaster\n position='top-center'\n toastOptions={{\n duration: toastDuration\n }}\n />\n )\n}\n","import { type ReactElement } from 'react'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface BreadcrumbLink {\n label: string | ReactElement\n path: string\n isDisabled?: boolean\n}\ninterface BreadcrumbLinkWithoutPath {\n label: string\n isDisabled?: boolean\n}\n\nexport type LinksList = [...BreadcrumbLink[], BreadcrumbLinkWithoutPath]\n\nexport interface BreadcrumbsProps {\n linksList: LinksList\n}\n\n//TODO: Его должны переработать не использовать! DEPRECATED\n\nexport const Breadcrumbs = ({ linksList }: BreadcrumbsProps) => {\n return (\n <div aria-label='Breadcrumb' className='flex max-w-[840px] items-center gap-2'>\n {linksList.map((link) => (\n <>\n {'path' in link ? (\n <div\n className={cn(\n 'flex items-center gap-1 rounded-sm border-2 border-solid border-transparent px-1 focus-within:border-primary-focus',\n { 'pointer-events-none !border-transparent': link?.isDisabled }\n )}\n >\n <a\n href={link.path}\n target='_blank'\n rel='noreferrer'\n className={cn(\n 'desk-body-regular-m text-color-primary-default outline-none hover:text-color-primary-hover focus:text-color-primary-default',\n { '!text-color-disabled': link?.isDisabled }\n )}\n >\n {link.label}\n </a>\n <Icon\n name='arrows/arrowRight'\n className={cn('size-4 text-icon-primary-default', { '!text-icon-disabled': link?.isDisabled })}\n />\n </div>\n ) : (\n <div aria-current='page' className='desk-body-regular-m text-color-blue-grey-600'>\n {link.label}\n </div>\n )}\n </>\n ))}\n </div>\n )\n}\n","export type SlottableProps = {\n children: React.ReactNode\n}\n\nexport const Slottable = ({ children }: SlottableProps) => <>{children}</>\n","import { Children, cloneElement, forwardRef, isValidElement } from 'react'\nimport { getElementRef, mergeProps } from '../model'\nimport { mergeRefs } from '$/shared/utils'\n\nexport type SlotCloneProps = {\n children: React.ReactNode\n}\n\nexport const SlotClone = forwardRef<any, SlotCloneProps>(({ children, ...props }, ref) => {\n if (isValidElement(children)) {\n const childrenRef = getElementRef(children)\n\n return cloneElement(children, {\n ...mergeProps(props, children.props),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n ref: ref ? mergeRefs(ref, childrenRef) : childrenRef\n })\n }\n\n return Children.count(children) > 1 ? Children.only(null) : null\n})\nSlotClone.displayName = 'SlotClone'\n","import { isValidElement } from 'react'\nimport { Slottable, type SlottableProps } from '../ui'\n\nexport const isSlottable = (child: React.ReactNode): child is React.ReactElement<SlottableProps, typeof Slottable> => {\n return isValidElement(child) && child.type === Slottable\n}\n","export const getElementRef = (element: React.ReactElement) => {\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let warn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (warn) {\n return (element as any).ref\n }\n\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n warn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (warn) {\n return (element.props as { ref?: React.Ref<unknown> }).ref\n }\n\n return (element.props as { ref?: React.Ref<unknown> }).ref || (element as any).ref\n}\n","type AnyProps = Record<string, any>\n\nexport const mergeProps = (slotProps: AnyProps, childProps: AnyProps) => {\n const override = { ...childProps }\n\n for (const prop in childProps) {\n const slotPropValue = slotProps[prop]\n const childPropValue = childProps[prop]\n\n // check if is handler\n if (/^on[A-Z]/.test(prop)) {\n if (slotPropValue && childPropValue) {\n override[prop] = (...args: unknown[]) => {\n slotPropValue(...args)\n childPropValue(...args)\n }\n }\n } else if (slotPropValue) {\n override[prop] = slotPropValue\n } else if (prop === 'style') {\n override[prop] = { ...slotPropValue, ...childPropValue }\n } else if (prop === 'className') {\n override[prop] = [slotPropValue, childPropValue].filter(Boolean).join(' ')\n }\n }\n\n return { ...slotProps, ...override }\n}\n","import { Children, cloneElement, forwardRef, isValidElement } from 'react'\nimport { isSlottable } from './model'\nimport { SlotClone, type SlottableProps } from '$/shared/ui/slot/ui'\n\nexport type SlotProps = React.HTMLAttributes<HTMLElement> & {\n children?: React.ReactNode\n}\n\nexport const Slot = forwardRef<HTMLElement, SlotProps>(({ children, ...props }, ref) => {\n const childrenArray = Children.toArray(children)\n const slottable = childrenArray.find(isSlottable)\n\n if (slottable) {\n const newElement = slottable.props.children\n\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (Children.count(newElement) > 1) {\n return Children.only(null)\n }\n\n return isValidElement(newElement) ? (newElement.props as SlottableProps).children : null\n } else {\n return child\n }\n })\n\n return (\n <SlotClone {...props} ref={ref}>\n {isValidElement(newElement) ? cloneElement(newElement, undefined, newChildren) : null}\n </SlotClone>\n )\n }\n\n return (\n <SlotClone {...props} ref={ref}>\n {children}\n </SlotClone>\n )\n})\nSlot.displayName = 'Slot'\n"],"names":["buttonConfig","cva","ButtonIcon","forwardRef","size","intent","children","classes","type","props","ref","jsx","cn","Skeleton","className","FloatButton","isVisible","buttonProps","jsxs","ResponsiveContainer","Button","allowedIcons","TABS_NAME","createTabsContext","createTabsScope","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","React","forwardedRef","__scopeTabs","valueProp","onValueChange","defaultValue","orientation","dir","activationMode","tabsProps","direction","useDirection","value","setValue","useControllableState","useId","Primitive","TAB_LIST_NAME","TabsList","loop","listProps","context","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","composeEventHandlers","event","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","contentProps","isMountAnimationPreventedRef","rAF","Presence","present","baseId","Root2","List","Trigger","Content","TabContent","contents","id","body","accordion","TabPrimitive.Content","Accordion","TabsSwitcher","renderContent","defaultActiveTabId","onChangeTab","TabPrimitive.Root","TabPrimitive.List","_a","label","TabPrimitive.Trigger","modalOverlayAnimation","modalContentAnimation","ModalHeader","title","closeModal","Heading","Icon","Modal","isModalOpen","isPortal","portalContainer","modalBody","AnimatePresence","motion","createPortal","Table","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","DataTableColumnHeader","canSort","toggleSorting","nextSortingOrder","isSorted","root","content","icon","isDesktop","useDevice","isSortable","createColumnHelper","accessor","column","functionalUpdate","updater","input","makeStateUpdater","key","instance","old","isFunction","d","isNumberArray","val","flattenBy","arr","getChildren","flat","recurse","subArr","item","memo","getDeps","fn","opts","deps","result","depArgs","depTime","newDeps","dep","index","resultTime","depEndTime","resultEndTime","resultFpsPercentage","pad","str","num","getMemoOptions","tableOptions","debugLevel","onChange","_tableOptions$debugAl","createCell","table","row","columnId","getRenderValue","_cell$getValue","cell","feature","createColumn","columnDef","depth","parent","_ref","_resolvedColumnDef$id","resolvedColumnDef","accessorKey","accessorFn","originalRow","_result","_column$columns","orderColumns","_column$columns2","leafColumns","debug","createHeader","options","_options$id","header","leafHeaders","recurseHeader","h","Headers","allColumns","left","right","_left$map$filter","_right$map$filter","leftColumns","rightColumns","centerColumns","buildHeaderGroups","_left$map$filter2","orderedLeafColumns","_right$map$filter2","headerGroups","headerGroup","flatHeaders","_header$subHeaders","_header$subHeaders2","_header$subHeaders3","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","columns","createHeaderGroup","headersToGroup","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","isPlaceholder","bottomHeaders","recurseHeadersForSpans","headers","colSpan","rowSpan","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","createRow","original","rowIndex","subRows","parentId","_row$getValue","parentRows","currentRow","parentRow","allCells","acc","i","ColumnFaceting","includesString","filterValue","_filterValue$toString","search","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","arrIncludes","_row$getValue4","arrIncludesAll","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","min","max","rowValue","unsafeMin","unsafeMax","parsedMin","parsedMax","temp","filterFns","ColumnFiltering","state","firstRow","_table$options$filter","_table$options$filter2","_column$columnDef$ena","_table$options$enable","_table$options$enable2","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","filterFn","previousFilter","newFilter","shouldAutoRemoveFilter","_old$filter","newFilterObj","_old$map","_table","updateFn","_functionalUpdate","filter","defaultState","_table$initialState$c","_table$initialState","sum","_leafRows","childRows","next","nextValue","extent","mean","leafRows","count","median","values","mid","nums","a","b","unique","uniqueCount","_columnId","aggregationFns","ColumnGrouping","_toString","_props$getValue","_table$getState$group","_table$getState$group2","canGroup","_table$options$aggreg","_table$options$aggreg2","_table$initialState$g","_row$subRows","grouping","groupedColumnMode","nonGroupingColumns","col","g","ColumnOrdering","position","_getVisibleLeafColumns","_columns$","_columns","columnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","foundIndex","getDefaultColumnPinningState","ColumnPinning","columnIds","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","_d$columnDef$enablePi","leafColumnIds","isLeft","isRight","leftAndRight","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","defaultColumnSizing","getDefaultColumnSizingInfoState","ColumnSizing","_column$columnDef$min","_column$columnDef$max","columnSize","_ref2","_","rest","_header$column$getSiz","prevSiblingHeader","_contextDocument","canResize","e","isTouchStartEvent","startSize","columnSizingStart","clientX","newColumnSizing","updateOffset","eventType","clientXPos","_old$startOffset","_old$startSize","deltaDirection","deltaOffset","deltaPercentage","_ref3","headerSize","onMove","onEnd","contextDocument","mouseEvents","touchEvents","_e$touches$","passiveIfSupported","passiveEventSupported","_table$initialState$c2","_table$getHeaderGroup","_table$getHeaderGroup2","_table$getLeftHeaderG","_table$getLeftHeaderG2","_table$getCenterHeade","_table$getCenterHeade2","_table$getRightHeader","_table$getRightHeader2","passiveSupported","supported","noop","ColumnVisibility","childColumns","c","cells","makeVisibleColumnsMethod","getColumns","_value","obj","_target","GlobalFaceting","GlobalFiltering","_table$getCoreRowMode","_table$options$getCol","globalFilterFn","RowExpanding","registered","queued","_table$options$autoRe","expanded","_table$initialState$e","splitId","_expanded","exists","oldExpanded","rowId","_table$options$getIsR","_table$options$getRow","isFullyExpanded","canExpand","defaultPageIndex","defaultPageSize","getDefaultPaginationState","RowPagination","safeUpdater","_table$initialState$p","pageIndex","maxPageIndex","_table$initialState$p2","_table$initialState$p3","_table$initialState2","pageSize","topRowIndex","_table$options$pageCo","newPageCount","pageCount","pageOptions","_table$options$pageCo2","_table$options$rowCou","getDefaultRowPinningState","RowPinning","includeLeafRows","includeParentRows","leafRowIds","parentRowIds","rowIds","_old$top3","_old$bottom3","_old$top","_old$bottom","_old$top2","_old$bottom2","enableRowPinning","enablePinning","top","bottom","isTop","isBottom","_ref4","_visiblePinnedRowIds$","visiblePinnedRowIds","_ref5","_table$initialState$r","_pinningState$top","_pinningState$bottom","visibleRows","pinnedRowIds","_table$options$keepPi","allRows","topPinnedRowIds","bottomPinnedRowIds","topAndBottom","RowSelection","rowSelection","preGroupedFlatRows","resolvedValue","mutateRowIsSelected","rowModel","selectRowsFn","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","_table$getState$rowSe","totalSelected","_opts$selectChildren","selectedRowIds","isRowSelected","isSubRowSelected","_table$options$enable3","canSelect","includeChildren","newSelectedFlatRows","newSelectedRowsById","recurseRows","rows","_row$subRows2","selection","_selection$row$id","_row$subRows3","allChildrenSelected","someSelected","subRow","subRowChildrenSelected","reSplitAlphaNumeric","alphanumeric","rowA","rowB","compareAlphanumeric","toString","alphanumericCaseSensitive","text","compareBasic","textCaseSensitive","datetime","basic","aStr","bStr","aa","bb","an","bn","combo","sortingFns","RowSorting","firstRows","isString","_table$options$sortin","_table$options$sortin2","desc","multi","hasManualValue","existingSorting","existingIndex","newSorting","sortAction","nextDesc","_table$options$maxMul","_column$columnDef$sor","firstSortDirection","_column$columnDef$ena2","_table$getState$sorti","columnSort","_table$getState$sorti2","_table$getState$sorti3","_table$initialState$s","builtInFeatures","createTable","_options$_features","_options$initialState","_features","defaultOptions","mergeOptions","initialState","_feature$getInitialSt","queuedTimeout","coreInstance","cb","error","newOptions","searchAll","defaultColumn","_defaultColumn","_props$renderValue$to","_props$renderValue","columnDefs","recurseColumns","groupingColumnDef","flatColumns","getCoreRowModel","data","accessRows","originalRows","_row$originalSubRows","expandRows","expandedRows","handleRow","filterRows","filterRowImpl","filterRowModelFromLeafs","filterRowModelFromRoot","rowsToFilter","filterRow","_table$options$maxLea","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","newRow","_table$options$maxLea2","getFacetedRowModel","preRowModel","columnFilters","globalFilter","filterableIds","filterRowsImpl","getFacetedUniqueValues","_table$getColumn","facetedRowModel","facetedUniqueValues","j","_facetedUniqueValues$","getFilteredRowModel","resolvedColumnFilters","resolvedGlobalFilters","_filterFn$resolveFilt","globallyFilterableColumns","_globalFilterFn$resol","currentColumnFilter","currentGlobalFilter","filterMeta","getPaginationRowModel","pagination","flatRows","rowsById","pageStart","pageEnd","paginatedRowModel","getSortedRowModel","sorting","sortingState","sortedFlatRows","availableSorting","sort","columnInfoById","sortEntry","sortData","sortedData","_sortEntry$desc","columnInfo","sortUndefined","isDesc","sortInt","aValue","bValue","aUndefined","bUndefined","flexRender","Comp","isReactComponent","component","isClassComponent","isExoticComponent","proto","useReactTable","resolvedOptions","tableRef","setState","prev","Pagination","page","between","totalPages","changePage","ellipsis","positions","visiblePages","range","active","TablePagination","onPageIndexChange","rowsCount","prevRows","rowsLeft","Desktop","mode","enableHeaders","paginationEnabled","paginationProps","cellIndex","Mobile","DataTable","setColumnFilters","useState","setSorting","isMobile","TableUtils","template","helper","enableColumnFilter","enableSorting","cellAccessor","headerAccessor","TypeGuards","NotificationProvider","maxToastViewLimit","toastDuration","toasts","useToasterStore","useEffect","t","toast","Toaster","Breadcrumbs","linksList","link","Fragment","Slottable","SlotClone","isValidElement","childrenRef","getElementRef","cloneElement","mergeProps","mergeRefs","Children","isSlottable","child","element","getter","warn","_b","slotProps","childProps","override","prop","slotPropValue","childPropValue","args","Slot","childrenArray","slottable","newElement","newChildren"],"mappings":"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","x_google_ignoreList":[4,12,13]}
|