material-react-table 0.17.0 → 0.18.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"material-react-table.cjs.development.js","sources":["../src/localization.ts","../src/icons.ts","../src/buttons/MRT_ExpandAllButton.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/filtersFns.ts","../src/menus/MRT_FilterOptionMenu.tsx","../node_modules/react-dnd/src/core/DndContext.ts","../node_modules/redux/es/redux.js","../node_modules/@react-dnd/invariant/src/index.ts","../node_modules/dnd-core/src/utils/js_utils.ts","../node_modules/dnd-core/src/actions/dragDrop/types.ts","../node_modules/dnd-core/src/actions/dragDrop/local/setClientOffset.ts","../node_modules/dnd-core/src/actions/dragDrop/beginDrag.ts","../node_modules/dnd-core/src/actions/dragDrop/drop.ts","../node_modules/dnd-core/src/actions/dragDrop/endDrag.ts","../node_modules/dnd-core/src/utils/matchesType.ts","../node_modules/dnd-core/src/actions/dragDrop/hover.ts","../node_modules/dnd-core/src/actions/dragDrop/publishDragSource.ts","../node_modules/dnd-core/src/actions/dragDrop/index.ts","../node_modules/dnd-core/src/classes/DragDropManagerImpl.ts","../node_modules/dnd-core/src/utils/coords.ts","../node_modules/dnd-core/src/utils/dirtiness.ts","../node_modules/dnd-core/src/classes/DragDropMonitorImpl.ts","../node_modules/@react-dnd/asap/src/makeRequestCall.ts","../node_modules/@react-dnd/asap/src/AsapQueue.ts","../node_modules/@react-dnd/asap/src/RawTask.ts","../node_modules/@react-dnd/asap/src/TaskFactory.ts","../node_modules/@react-dnd/asap/src/asap.ts","../node_modules/dnd-core/src/actions/registry.ts","../node_modules/dnd-core/src/contracts.ts","../node_modules/dnd-core/src/interfaces.ts","../node_modules/dnd-core/src/utils/getNextUniqueId.ts","../node_modules/dnd-core/src/classes/HandlerRegistryImpl.ts","../node_modules/dnd-core/src/utils/equality.ts","../node_modules/dnd-core/src/reducers/dirtyHandlerIds.ts","../node_modules/dnd-core/src/reducers/dragOffset.ts","../node_modules/dnd-core/src/reducers/dragOperation.ts","../node_modules/dnd-core/src/reducers/refCount.ts","../node_modules/dnd-core/src/reducers/stateId.ts","../node_modules/dnd-core/src/reducers/index.ts","../node_modules/dnd-core/src/createDragDropManager.ts","../node_modules/react-dnd/src/core/DndProvider.tsx","../node_modules/fast-deep-equal/index.js","../node_modules/react-dnd/src/hooks/useIsomorphicLayoutEffect.ts","../node_modules/react-dnd/src/hooks/useCollector.ts","../node_modules/react-dnd/src/hooks/useMonitorOutput.ts","../node_modules/react-dnd/src/hooks/useCollectedProps.ts","../node_modules/react-dnd/src/hooks/useOptionalFactory.ts","../node_modules/react-dnd/src/hooks/useDrag/connectors.ts","../node_modules/react-dnd/src/internals/DragSourceMonitorImpl.ts","../node_modules/react-dnd/src/internals/DropTargetMonitorImpl.ts","../node_modules/react-dnd/src/internals/registration.ts","../node_modules/@react-dnd/shallowequal/src/index.ts","../node_modules/react-dnd/src/internals/isRef.ts","../node_modules/react-dnd/src/internals/wrapConnectorHooks.ts","../node_modules/react-dnd/src/internals/SourceConnector.ts","../node_modules/react-dnd/src/internals/TargetConnector.ts","../node_modules/react-dnd/src/hooks/useDragDropManager.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragSourceConnector.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragSourceMonitor.ts","../node_modules/react-dnd/src/hooks/useDrag/DragSourceImpl.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragSource.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragType.ts","../node_modules/react-dnd/src/hooks/useDrag/useRegisteredDragSource.ts","../node_modules/react-dnd/src/hooks/useDrag/useDrag.ts","../node_modules/react-dnd/src/hooks/useDrop/connectors.ts","../node_modules/react-dnd/src/hooks/useDrop/useDropTargetConnector.ts","../node_modules/react-dnd/src/hooks/useDrop/useDropTargetMonitor.ts","../node_modules/react-dnd/src/hooks/useDrop/useAccept.ts","../node_modules/react-dnd/src/hooks/useDrop/DropTargetImpl.ts","../node_modules/react-dnd/src/hooks/useDrop/useDropTarget.ts","../node_modules/react-dnd/src/hooks/useDrop/useRegisteredDropTarget.ts","../node_modules/react-dnd/src/hooks/useDrop/useDrop.ts","../src/buttons/MRT_ColumnPinningButtons.tsx","../src/buttons/MRT_GrabHandleButton.tsx","../src/utils.ts","../src/menus/MRT_ShowHideColumnsMenuItems.tsx","../src/menus/MRT_ShowHideColumnsMenu.tsx","../src/menus/MRT_ColumnActionMenu.tsx","../src/menus/MRT_RowActionMenu.tsx","../src/buttons/MRT_EditActionButtons.tsx","../src/buttons/MRT_ToggleRowActionMenuButton.tsx","../src/inputs/MRT_SelectCheckbox.tsx","../node_modules/react-dnd-html5-backend/src/utils/js_utils.ts","../node_modules/react-dnd-html5-backend/src/EnterLeaveCounter.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/NativeDragSource.ts","../node_modules/react-dnd-html5-backend/src/NativeTypes.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/getDataFromDataTransfer.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/nativeTypesConfig.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/index.ts","../node_modules/react-dnd-html5-backend/src/BrowserDetector.ts","../node_modules/react-dnd-html5-backend/src/MonotonicInterpolant.ts","../node_modules/react-dnd-html5-backend/src/OffsetUtils.ts","../node_modules/react-dnd-html5-backend/src/OptionsReader.ts","../node_modules/react-dnd-html5-backend/src/HTML5BackendImpl.ts","../node_modules/react-dnd-html5-backend/src/index.ts","../src/buttons/MRT_FullScreenToggleButton.tsx","../src/buttons/MRT_ShowHideColumnsButton.tsx","../src/buttons/MRT_ToggleDensePaddingButton.tsx","../src/buttons/MRT_ToggleFiltersButton.tsx","../src/buttons/MRT_ToggleGlobalFilterButton.tsx","../src/inputs/MRT_GlobalFilterTextField.tsx","../src/toolbar/MRT_ToolbarInternalButtons.tsx","../src/toolbar/MRT_TablePagination.tsx","../src/toolbar/MRT_ToolbarAlertBanner.tsx","../src/toolbar/MRT_LinearProgressBar.tsx","../src/toolbar/MRT_ToolbarTop.tsx","../src/toolbar/MRT_ToolbarBottom.tsx","../src/inputs/MRT_FilterTextField.tsx","../src/inputs/MRT_FilterRangeFields.tsx","../src/head/MRT_TableHeadCellFilterContainer.tsx","../src/head/MRT_TableHeadCellFilterLabel.tsx","../src/head/MRT_TableHeadCellResizeHandle.tsx","../src/head/MRT_TableHeadCellSortLabel.tsx","../src/head/MRT_TableHeadCellColumnActionsButton.tsx","../src/head/MRT_TableHeadCell.tsx","../src/head/MRT_DraggableTableHeadCell.tsx","../src/head/MRT_TableHeadRow.tsx","../src/head/MRT_TableHead.tsx","../node_modules/react-virtual/node_modules/@reach/observe-rect/dist/observe-rect.esm.js","../node_modules/react-virtual/src/useIsomorphicLayoutEffect.js","../node_modules/react-virtual/src/useRect.js","../node_modules/react-virtual/src/index.js","../src/inputs/MRT_EditCellTextField.tsx","../src/buttons/MRT_CopyButton.tsx","../src/body/MRT_TableBodyCell.tsx","../src/body/MRT_TableDetailPanel.tsx","../src/body/MRT_TableBodyRow.tsx","../src/sortingFns.ts","../src/body/MRT_TableBody.tsx","../src/footer/MRT_TableFooterCell.tsx","../src/footer/MRT_TableFooterRow.tsx","../src/footer/MRT_TableFooter.tsx","../src/table/MRT_Table.tsx","../src/table/MRT_TableContainer.tsx","../src/table/MRT_TablePaper.tsx","../src/table/MRT_TableRoot.tsx","../src/MaterialReactTable.tsx"],"sourcesContent":["export interface MRT_Localization {\n actions: string;\n and: string;\n cancel: string;\n changeFilterMode: string;\n changeSearchMode: string;\n clearFilter: string;\n clearSearch: string;\n clearSort: string;\n clickToCopy: string;\n columnActions: string;\n copiedToClipboard: string;\n edit: string;\n expand: string;\n expandAll: string;\n filterBetween: string;\n filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterFuzzy: string;\n filterGreaterThan: string;\n filterLessThan: string;\n filterMode: string;\n filterNotEmpty: string;\n filterNotEquals: string;\n filterStartsWith: string;\n filteringByColumn: string;\n grab: string;\n groupByColumn: string;\n groupedBy: string;\n hideAll: string;\n hideColumn: string;\n max: string;\n min: string;\n pinToLeft: string;\n pinToRight: string;\n resetColumnSize: string;\n resetOrder: string;\n rowActions: string;\n rowNumber: string;\n rowNumbers: string;\n save: string;\n search: string;\n select: string;\n selectedCountOfRowCountRowsSelected: string;\n showAll: string;\n showAllColumns: string;\n showHideColumns: string;\n showHideFilters: string;\n showHideSearch: string;\n sortByColumnAsc: string;\n sortByColumnDesc: string;\n sortedByColumnAsc: string;\n sortedByColumnDesc: string;\n thenBy: string;\n toggleDensity: string;\n toggleFullScreen: string;\n toggleSelectAll: string;\n toggleSelectRow: string;\n toggleVisibility: string;\n ungroupByColumn: string;\n unpin: string;\n unpinAll: string;\n unsorted: string;\n}\n\nexport const MRT_DefaultLocalization_EN: MRT_Localization = {\n actions: 'Actions',\n and: 'and',\n cancel: 'Cancel',\n changeFilterMode: 'Change filter mode',\n changeSearchMode: 'Change search mode',\n clearFilter: 'Clear filter',\n clearSearch: 'Clear search',\n clearSort: 'Clear sort',\n clickToCopy: 'Click to copy',\n columnActions: 'Column Actions',\n copiedToClipboard: 'Copied to clipboard',\n edit: 'Edit',\n expand: 'Expand',\n expandAll: 'Expand all',\n filterBetween: 'Between',\n filterByColumn: 'Filter by {column}',\n filterContains: 'Contains',\n filterEmpty: 'Empty',\n filterEndsWith: 'Ends With',\n filterEquals: 'Equals',\n filterFuzzy: 'Fuzzy',\n filterGreaterThan: 'Greater Than',\n filterLessThan: 'Less Than',\n filterMode: 'Filter Mode: {filterType}',\n filterNotEmpty: 'Not Empty',\n filterNotEquals: 'Not Equals',\n filterStartsWith: 'Starts With',\n filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',\n grab: 'Grab',\n groupByColumn: 'Group by {column}',\n groupedBy: 'Grouped by ',\n hideAll: 'Hide all',\n hideColumn: 'Hide {column} column',\n max: 'Max',\n min: 'Min',\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n resetColumnSize: 'Reset column size',\n resetOrder: 'Reset order',\n rowActions: 'Row Actions',\n rowNumber: '#',\n rowNumbers: 'Row Numbers',\n save: 'Save',\n search: 'Search',\n selectedCountOfRowCountRowsSelected:\n '{selectedCount} of {rowCount} row(s) selected',\n select: 'Select',\n showAll: 'Show all',\n showAllColumns: 'Show all columns',\n showHideColumns: 'Show/Hide columns',\n showHideFilters: 'Show/Hide filters',\n showHideSearch: 'Show/Hide search',\n sortByColumnAsc: 'Sort by {column} ascending',\n sortByColumnDesc: 'Sort by {column} descending',\n sortedByColumnAsc: 'Sorted by {column} ascending',\n sortedByColumnDesc: 'Sorted by {column} descending',\n thenBy: ', then by ',\n toggleDensity: 'Toggle density',\n toggleFullScreen: 'Toggle full screen',\n toggleSelectAll: 'Toggle select all',\n toggleSelectRow: 'Toggle select row',\n toggleVisibility: 'Toggle visibility',\n ungroupByColumn: 'Ungroup by {column}',\n unpin: 'Unpin',\n unpinAll: 'Unpin all',\n unsorted: 'Unsorted',\n};\n","import {\n ArrowRight,\n Cancel,\n CheckBox,\n ClearAll,\n Close,\n DensityLarge,\n DensityMedium,\n DensitySmall,\n DragHandle,\n DynamicFeed,\n Edit,\n ExpandLess,\n ExpandMore,\n FilterAlt,\n FilterAltOff,\n FilterList,\n FilterListOff,\n Fullscreen,\n FullscreenExit,\n KeyboardDoubleArrowDown,\n MoreHoriz,\n MoreVert,\n PushPin,\n RestartAlt,\n Save,\n Search,\n SearchOff,\n Sort,\n ViewColumn,\n VisibilityOff,\n} from '@mui/icons-material';\n\nexport interface MRT_Icons {\n ArrowRightIcon: any;\n CancelIcon: any;\n CheckBoxIcon: any;\n ClearAllIcon: any;\n CloseIcon: any;\n DensityLargeIcon: any;\n DensityMediumIcon: any;\n DensitySmallIcon: any;\n KeyboardDoubleArrowDownIcon: any;\n DragHandleIcon: any;\n DynamicFeedIcon: any;\n EditIcon: any;\n ExpandLessIcon: any;\n ExpandMoreIcon: any;\n FilterAltIcon: any;\n FilterAltOffIcon: any;\n FilterListIcon: any;\n FilterListOffIcon: any;\n FullscreenExitIcon: any;\n FullscreenIcon: any;\n MoreHorizIcon: any;\n MoreVertIcon: any;\n PushPinIcon: any;\n RestartAltIcon: any;\n SaveIcon: any;\n SearchIcon: any;\n SearchOffIcon: any;\n SortIcon: any;\n ViewColumnIcon: any;\n VisibilityOffIcon: any;\n}\n\nexport const MRT_Default_Icons: MRT_Icons = {\n ArrowRightIcon: ArrowRight,\n CancelIcon: Cancel,\n CheckBoxIcon: CheckBox,\n ClearAllIcon: ClearAll,\n CloseIcon: Close,\n DensityLargeIcon: DensityLarge,\n DensityMediumIcon: DensityMedium,\n DensitySmallIcon: DensitySmall,\n DragHandleIcon: DragHandle,\n DynamicFeedIcon: DynamicFeed,\n EditIcon: Edit,\n ExpandLessIcon: ExpandLess,\n ExpandMoreIcon: ExpandMore,\n FilterAltIcon: FilterAlt,\n FilterAltOffIcon: FilterAltOff,\n FilterListIcon: FilterList,\n FilterListOffIcon: FilterListOff,\n FullscreenExitIcon: FullscreenExit,\n FullscreenIcon: Fullscreen,\n KeyboardDoubleArrowDownIcon: KeyboardDoubleArrowDown,\n MoreHorizIcon: MoreHoriz,\n MoreVertIcon: MoreVert,\n PushPinIcon: PushPin,\n RestartAltIcon: RestartAlt,\n SaveIcon: Save,\n SearchIcon: Search,\n SearchOffIcon: SearchOff,\n SortIcon: Sort,\n ViewColumnIcon: ViewColumn,\n VisibilityOffIcon: VisibilityOff,\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ExpandAllButton: FC<Props> = ({ instance }) => {\n const {\n getIsAllRowsExpanded,\n getIsSomeRowsExpanded,\n getCanSomeRowsExpand,\n getState,\n options: {\n icons: { KeyboardDoubleArrowDownIcon },\n localization,\n muiExpandAllButtonProps,\n renderDetailPanel,\n },\n toggleAllRowsExpanded,\n } = instance;\n\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandAllButtonProps instanceof Function\n ? muiExpandAllButtonProps({ instance })\n : muiExpandAllButtonProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expandAll}\n >\n <span>\n <IconButton\n aria-label={localization.expandAll}\n disabled={!getCanSomeRowsExpand() && !renderDetailPanel}\n onClick={() => toggleAllRowsExpanded(!getIsAllRowsExpanded())}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\n }}\n >\n <KeyboardDoubleArrowDownIcon\n style={{\n transform: `rotate(${\n getIsAllRowsExpanded()\n ? -180\n : getIsSomeRowsExpanded()\n ? -90\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ExpandButton: FC<Props> = ({ row, instance }) => {\n const {\n getState,\n options: {\n icons: { ExpandMoreIcon },\n localization,\n muiExpandButtonProps,\n onExpandChanged,\n renderDetailPanel,\n },\n } = instance;\n\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandButtonProps instanceof Function\n ? muiExpandButtonProps({ instance, row })\n : muiExpandButtonProps;\n\n const handleToggleExpand = (event: MouseEvent<HTMLButtonElement>) => {\n row.toggleExpanded();\n onExpandChanged?.({ event, row, instance });\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expand}\n >\n <span>\n <IconButton\n aria-label={localization.expand}\n disabled={!row.getCanExpand() && !renderDetailPanel}\n onClick={handleToggleExpand}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\n }}\n >\n <ExpandMoreIcon\n style={{\n transform: `rotate(${\n !row.getCanExpand() && !renderDetailPanel\n ? -90\n : row.getIsExpanded()\n ? -180\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { MRT_Row } from '.';\n\nexport const fuzzy = (\n row: MRT_Row,\n columnId: string,\n filterValue: string,\n addMeta: (item: RankingInfo) => void,\n) => {\n const itemRank = rankItem(row.getValue(columnId), filterValue, {\n threshold: rankings.MATCHES,\n });\n addMeta(itemRank);\n return itemRank.passed;\n};\n\nfuzzy.autoRemove = (val: any) => !val;\n\nexport const contains = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim());\n\ncontains.autoRemove = (val: any) => !val;\n\nexport const startsWith = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim());\n\nstartsWith.autoRemove = (val: any) => !val;\n\nexport const endsWith = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim());\n\nendsWith.autoRemove = (val: any) => !val;\n\nexport const equals = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue(id).toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim();\n\nequals.autoRemove = (val: any) => !val;\n\nexport const notEquals = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue(id).toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim();\n\nnotEquals.autoRemove = (val: any) => !val;\n\nexport const greaterThan = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue(id))\n ? +row.getValue(id) >= +filterValue\n : row.getValue(id).toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim();\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nexport const lessThan = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue(id))\n ? +row.getValue(id) <= +filterValue\n : row.getValue(id).toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim();\n\nlessThan.autoRemove = (val: any) => !val;\n\nexport const between = (\n row: MRT_Row,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThan(row, id, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as any[]).includes(filterValues[1]) ||\n lessThan(row, id, filterValues[1]));\n\nbetween.autoRemove = (val: any) => !val;\n\nexport const empty = (\n row: MRT_Row,\n id: string,\n _filterValue: string | number,\n) => !row.getValue(id).toString().trim();\n\nempty.autoRemove = (val: any) => !val;\n\nexport const notEmpty = (\n row: MRT_Row,\n id: string,\n _filterValue: string | number,\n) => !!row.getValue(id).toString().trim();\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const MRT_FilterFns = {\n between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import React, { FC, useMemo } from 'react';\nimport { Menu, MenuItem } from '@mui/material';\nimport type {\n MRT_FilterFn,\n MRT_FILTER_OPTION,\n MRT_Header,\n MRT_TableInstance,\n} from '..';\nimport {\n between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n} from '../filtersFns';\n\nconst commonMenuItemStyles = {\n py: '6px',\n my: 0,\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header?: MRT_Header;\n onSelect?: () => void;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_FilterOptionMenu: FC<Props> = ({\n anchorEl,\n header,\n onSelect,\n setAnchorEl,\n instance,\n}) => {\n const {\n getState,\n options: {\n enabledGlobalFilterOptions,\n enabledColumnFilterOptions,\n localization,\n },\n setCurrentFilterFns,\n setCurrentGlobalFilterFn,\n } = instance;\n\n const { density, currentFilterFns, currentGlobalFilterFn } = getState();\n\n const { column } = header ?? {};\n\n const { columnDef } = column ?? {};\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const filterOptions = useMemo(\n () =>\n [\n {\n option: 'fuzzy',\n label: localization.filterFuzzy,\n divider: false,\n fn: fuzzy,\n },\n {\n option: 'contains',\n label: localization.filterContains,\n divider: false,\n fn: contains,\n },\n {\n option: 'startsWith',\n label: localization.filterStartsWith,\n divider: false,\n fn: startsWith,\n },\n {\n option: 'endsWith',\n label: localization.filterEndsWith,\n divider: true,\n fn: endsWith,\n },\n {\n option: 'equals',\n label: localization.filterEquals,\n divider: false,\n fn: equals,\n },\n {\n option: 'notEquals',\n label: localization.filterNotEquals,\n divider: true,\n fn: notEquals,\n },\n {\n option: 'between',\n label: localization.filterBetween,\n divider: false,\n fn: between,\n },\n {\n option: 'greaterThan',\n label: localization.filterGreaterThan,\n divider: false,\n fn: greaterThan,\n },\n {\n option: 'lessThan',\n label: localization.filterLessThan,\n divider: true,\n fn: lessThan,\n },\n {\n option: 'empty',\n label: localization.filterEmpty,\n divider: false,\n fn: empty,\n },\n {\n option: 'notEmpty',\n label: localization.filterNotEmpty,\n divider: false,\n fn: notEmpty,\n },\n ].filter((filterType) =>\n columnDef\n ? allowedColumnFilterOptions === undefined ||\n allowedColumnFilterOptions?.includes(filterType.option)\n : (!enabledGlobalFilterOptions ||\n enabledGlobalFilterOptions.includes(filterType.option)) &&\n ['fuzzy', 'contains'].includes(filterType.option),\n ) as Array<{\n option: MRT_FILTER_OPTION;\n label: string;\n divider: boolean;\n fn: Function;\n }>,\n [],\n );\n\n const handleSelectFilterType = (value: string) => {\n if (header && column) {\n setCurrentFilterFns((prev: { [key: string]: MRT_FilterFn }) => ({\n ...prev,\n [header.id]: value,\n }));\n if (['empty', 'notEmpty'].includes(value)) {\n column.setFilterValue(' ');\n } else if (value === 'between') {\n column.setFilterValue(['', '']);\n } else {\n column.setFilterValue('');\n }\n } else {\n setCurrentGlobalFilterFn(value);\n }\n setAnchorEl(null);\n onSelect?.();\n };\n\n const filterOption = !!header\n ? currentFilterFns[header.id]\n : currentGlobalFilterFn;\n\n return (\n <Menu\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'center', horizontal: 'right' }}\n onClose={() => setAnchorEl(null)}\n open={!!anchorEl}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {filterOptions.map(({ option, label, divider, fn }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(option as string)}\n selected={option === filterOption || fn === filterOption}\n sx={commonMenuItemStyles}\n value={option as string}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import type { DragDropManager } from 'dnd-core'\nimport { createContext } from 'react'\n\n/**\n * The React context type\n */\nexport interface DndContextType {\n\tdragDropManager: DragDropManager | undefined\n}\n\n/**\n * Create the React Context\n */\nexport const DndContext = createContext<DndContextType>({\n\tdragDropManager: undefined,\n})\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nexport function invariant(condition: any, format: string, ...args: any[]) {\n\tif (isProduction()) {\n\t\tif (format === undefined) {\n\t\t\tthrow new Error('invariant requires an error message argument')\n\t\t}\n\t}\n\n\tif (!condition) {\n\t\tlet error\n\t\tif (format === undefined) {\n\t\t\terror = new Error(\n\t\t\t\t'Minified exception occurred; use the non-minified dev environment ' +\n\t\t\t\t\t'for the full error message and additional helpful warnings.',\n\t\t\t)\n\t\t} else {\n\t\t\tlet argIndex = 0\n\t\t\terror = new Error(\n\t\t\t\tformat.replace(/%s/g, function () {\n\t\t\t\t\treturn args[argIndex++]\n\t\t\t\t}),\n\t\t\t)\n\t\t\terror.name = 'Invariant Violation'\n\t\t}\n\n\t\t;(error as any).framesToPop = 1 // we don't care about invariant's own frame\n\t\tthrow error\n\t}\n}\n\nfunction isProduction() {\n\treturn (\n\t\ttypeof process !== 'undefined' && process.env['NODE_ENV'] === 'production'\n\t)\n}\n","// cheap lodash replacements\n\n/**\n * drop-in replacement for _.get\n * @param obj\n * @param path\n * @param defaultValue\n */\nexport function get<T>(obj: any, path: string, defaultValue: T): T {\n\treturn path\n\t\t.split('.')\n\t\t.reduce((a, c) => (a && a[c] ? a[c] : defaultValue || null), obj) as T\n}\n\n/**\n * drop-in replacement for _.without\n */\nexport function without<T>(items: T[], item: T): T[] {\n\treturn items.filter((i) => i !== item)\n}\n\n/**\n * drop-in replacement for _.isString\n * @param input\n */\nexport function isString(input: any): boolean {\n\treturn typeof input === 'string'\n}\n\n/**\n * drop-in replacement for _.isString\n * @param input\n */\nexport function isObject(input: any): boolean {\n\treturn typeof input === 'object'\n}\n\n/**\n * replacement for _.xor\n * @param itemsA\n * @param itemsB\n */\nexport function xor<T extends string | number>(itemsA: T[], itemsB: T[]): T[] {\n\tconst map = new Map<T, number>()\n\tconst insertItem = (item: T) => {\n\t\tmap.set(item, map.has(item) ? (map.get(item) as number) + 1 : 1)\n\t}\n\titemsA.forEach(insertItem)\n\titemsB.forEach(insertItem)\n\n\tconst result: T[] = []\n\tmap.forEach((count, key) => {\n\t\tif (count === 1) {\n\t\t\tresult.push(key)\n\t\t}\n\t})\n\treturn result\n}\n\n/**\n * replacement for _.intersection\n * @param itemsA\n * @param itemsB\n */\nexport function intersection<T>(itemsA: T[], itemsB: T[]): T[] {\n\treturn itemsA.filter((t) => itemsB.indexOf(t) > -1)\n}\n","export const INIT_COORDS = 'dnd-core/INIT_COORDS'\nexport const BEGIN_DRAG = 'dnd-core/BEGIN_DRAG'\nexport const PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE'\nexport const HOVER = 'dnd-core/HOVER'\nexport const DROP = 'dnd-core/DROP'\nexport const END_DRAG = 'dnd-core/END_DRAG'\n","import type { AnyAction } from 'redux'\n\nimport type { XYCoord } from '../../../interfaces.js'\nimport { INIT_COORDS } from '../types.js'\n\nexport function setClientOffset(\n\tclientOffset: XYCoord | null | undefined,\n\tsourceClientOffset?: XYCoord | null | undefined,\n): AnyAction {\n\treturn {\n\t\ttype: INIT_COORDS,\n\t\tpayload: {\n\t\t\tsourceClientOffset: sourceClientOffset || null,\n\t\t\tclientOffset: clientOffset || null,\n\t\t},\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tAction,\n\tBeginDragOptions,\n\tBeginDragPayload,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tIdentifier,\n\tXYCoord,\n} from '../../interfaces.js'\nimport { isObject } from '../../utils/js_utils.js'\nimport { setClientOffset } from './local/setClientOffset.js'\nimport { BEGIN_DRAG, INIT_COORDS } from './types.js'\n\nconst ResetCoordinatesAction = {\n\ttype: INIT_COORDS,\n\tpayload: {\n\t\tclientOffset: null,\n\t\tsourceClientOffset: null,\n\t},\n}\n\nexport function createBeginDrag(manager: DragDropManager) {\n\treturn function beginDrag(\n\t\tsourceIds: Identifier[] = [],\n\t\toptions: BeginDragOptions = {\n\t\t\tpublishSource: true,\n\t\t},\n\t): Action<BeginDragPayload> | undefined {\n\t\tconst {\n\t\t\tpublishSource = true,\n\t\t\tclientOffset,\n\t\t\tgetSourceClientOffset,\n\t\t}: BeginDragOptions = options\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\n\t\t// Initialize the coordinates using the client offset\n\t\tmanager.dispatch(setClientOffset(clientOffset))\n\n\t\tverifyInvariants(sourceIds, monitor, registry)\n\n\t\t// Get the draggable source\n\t\tconst sourceId = getDraggableSource(sourceIds, monitor)\n\t\tif (sourceId == null) {\n\t\t\tmanager.dispatch(ResetCoordinatesAction)\n\t\t\treturn\n\t\t}\n\n\t\t// Get the source client offset\n\t\tlet sourceClientOffset: XYCoord | null = null\n\t\tif (clientOffset) {\n\t\t\tif (!getSourceClientOffset) {\n\t\t\t\tthrow new Error('getSourceClientOffset must be defined')\n\t\t\t}\n\t\t\tverifyGetSourceClientOffsetIsFunction(getSourceClientOffset)\n\t\t\tsourceClientOffset = getSourceClientOffset(sourceId)\n\t\t}\n\n\t\t// Initialize the full coordinates\n\t\tmanager.dispatch(setClientOffset(clientOffset, sourceClientOffset))\n\n\t\tconst source = registry.getSource(sourceId)\n\t\tconst item = source.beginDrag(monitor, sourceId)\n\t\t// If source.beginDrag returns null, this is an indicator to cancel the drag\n\t\tif (item == null) {\n\t\t\treturn undefined\n\t\t}\n\t\tverifyItemIsObject(item)\n\t\tregistry.pinSource(sourceId)\n\n\t\tconst itemType = registry.getSourceType(sourceId)\n\t\treturn {\n\t\t\ttype: BEGIN_DRAG,\n\t\t\tpayload: {\n\t\t\t\titemType,\n\t\t\t\titem,\n\t\t\t\tsourceId,\n\t\t\t\tclientOffset: clientOffset || null,\n\t\t\t\tsourceClientOffset: sourceClientOffset || null,\n\t\t\t\tisSourcePublic: !!publishSource,\n\t\t\t},\n\t\t}\n\t}\n}\n\nfunction verifyInvariants(\n\tsourceIds: Identifier[],\n\tmonitor: DragDropMonitor,\n\tregistry: HandlerRegistry,\n) {\n\tinvariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.')\n\tsourceIds.forEach(function (sourceId) {\n\t\tinvariant(\n\t\t\tregistry.getSource(sourceId),\n\t\t\t'Expected sourceIds to be registered.',\n\t\t)\n\t})\n}\n\nfunction verifyGetSourceClientOffsetIsFunction(getSourceClientOffset: any) {\n\tinvariant(\n\t\ttypeof getSourceClientOffset === 'function',\n\t\t'When clientOffset is provided, getSourceClientOffset must be a function.',\n\t)\n}\n\nfunction verifyItemIsObject(item: any) {\n\tinvariant(isObject(item), 'Item must be an object.')\n}\n\nfunction getDraggableSource(sourceIds: Identifier[], monitor: DragDropMonitor) {\n\tlet sourceId = null\n\tfor (let i = sourceIds.length - 1; i >= 0; i--) {\n\t\tif (monitor.canDragSource(sourceIds[i])) {\n\t\t\tsourceId = sourceIds[i]\n\t\t\tbreak\n\t\t}\n\t}\n\treturn sourceId\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tAction,\n\tDragDropManager,\n\tDragDropMonitor,\n\tDropPayload,\n\tHandlerRegistry,\n\tIdentifier,\n} from '../../interfaces.js'\nimport { isObject } from '../../utils/js_utils.js'\nimport { DROP } from './types.js'\n\nexport function createDrop(manager: DragDropManager) {\n\treturn function drop(options = {}): void {\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\t\tverifyInvariants(monitor)\n\t\tconst targetIds = getDroppableTargets(monitor)\n\n\t\t// Multiple actions are dispatched here, which is why this doesn't return an action\n\t\ttargetIds.forEach((targetId, index) => {\n\t\t\tconst dropResult = determineDropResult(targetId, index, registry, monitor)\n\t\t\tconst action: Action<DropPayload> = {\n\t\t\t\ttype: DROP,\n\t\t\t\tpayload: {\n\t\t\t\t\tdropResult: {\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\t...dropResult,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t\tmanager.dispatch(action)\n\t\t})\n\t}\n}\n\nfunction verifyInvariants(monitor: DragDropMonitor) {\n\tinvariant(monitor.isDragging(), 'Cannot call drop while not dragging.')\n\tinvariant(\n\t\t!monitor.didDrop(),\n\t\t'Cannot call drop twice during one drag operation.',\n\t)\n}\n\nfunction determineDropResult(\n\ttargetId: Identifier,\n\tindex: number,\n\tregistry: HandlerRegistry,\n\tmonitor: DragDropMonitor,\n) {\n\tconst target = registry.getTarget(targetId)\n\tlet dropResult = target ? target.drop(monitor, targetId) : undefined\n\tverifyDropResultType(dropResult)\n\tif (typeof dropResult === 'undefined') {\n\t\tdropResult = index === 0 ? {} : monitor.getDropResult()\n\t}\n\treturn dropResult\n}\n\nfunction verifyDropResultType(dropResult: any) {\n\tinvariant(\n\t\ttypeof dropResult === 'undefined' || isObject(dropResult),\n\t\t'Drop result must either be an object or undefined.',\n\t)\n}\n\nfunction getDroppableTargets(monitor: DragDropMonitor) {\n\tconst targetIds = monitor\n\t\t.getTargetIds()\n\t\t.filter(monitor.canDropOnTarget, monitor)\n\ttargetIds.reverse()\n\treturn targetIds\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tDragDropManager,\n\tDragDropMonitor,\n\tSentinelAction,\n} from '../../interfaces.js'\nimport { END_DRAG } from './types.js'\n\nexport function createEndDrag(manager: DragDropManager) {\n\treturn function endDrag(): SentinelAction {\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\t\tverifyIsDragging(monitor)\n\n\t\tconst sourceId = monitor.getSourceId()\n\t\tif (sourceId != null) {\n\t\t\tconst source = registry.getSource(sourceId, true)\n\t\t\tsource.endDrag(monitor, sourceId)\n\t\t\tregistry.unpinSource()\n\t\t}\n\t\treturn { type: END_DRAG }\n\t}\n}\n\nfunction verifyIsDragging(monitor: DragDropMonitor) {\n\tinvariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.')\n}\n","import type { Identifier } from '../interfaces.js'\n\nexport function matchesType(\n\ttargetType: Identifier | Identifier[] | null,\n\tdraggedItemType: Identifier | null,\n): boolean {\n\tif (draggedItemType === null) {\n\t\treturn targetType === null\n\t}\n\treturn Array.isArray(targetType)\n\t\t? (targetType as Identifier[]).some((t) => t === draggedItemType)\n\t\t: targetType === draggedItemType\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tAction,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tHoverOptions,\n\tHoverPayload,\n\tIdentifier,\n} from '../../interfaces.js'\nimport { matchesType } from '../../utils/matchesType.js'\nimport { HOVER } from './types.js'\n\nexport function createHover(manager: DragDropManager) {\n\treturn function hover(\n\t\ttargetIdsArg: string[],\n\t\t{ clientOffset }: HoverOptions = {},\n\t): Action<HoverPayload> {\n\t\tverifyTargetIdsIsArray(targetIdsArg)\n\t\tconst targetIds = targetIdsArg.slice(0)\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\t\tconst draggedItemType = monitor.getItemType()\n\t\tremoveNonMatchingTargetIds(targetIds, registry, draggedItemType)\n\t\tcheckInvariants(targetIds, monitor, registry)\n\t\thoverAllTargets(targetIds, monitor, registry)\n\n\t\treturn {\n\t\t\ttype: HOVER,\n\t\t\tpayload: {\n\t\t\t\ttargetIds,\n\t\t\t\tclientOffset: clientOffset || null,\n\t\t\t},\n\t\t}\n\t}\n}\n\nfunction verifyTargetIdsIsArray(targetIdsArg: string[]) {\n\tinvariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.')\n}\n\nfunction checkInvariants(\n\ttargetIds: string[],\n\tmonitor: DragDropMonitor,\n\tregistry: HandlerRegistry,\n) {\n\tinvariant(monitor.isDragging(), 'Cannot call hover while not dragging.')\n\tinvariant(!monitor.didDrop(), 'Cannot call hover after drop.')\n\tfor (let i = 0; i < targetIds.length; i++) {\n\t\tconst targetId = targetIds[i] as string\n\t\tinvariant(\n\t\t\ttargetIds.lastIndexOf(targetId) === i,\n\t\t\t'Expected targetIds to be unique in the passed array.',\n\t\t)\n\n\t\tconst target = registry.getTarget(targetId)\n\t\tinvariant(target, 'Expected targetIds to be registered.')\n\t}\n}\n\nfunction removeNonMatchingTargetIds(\n\ttargetIds: string[],\n\tregistry: HandlerRegistry,\n\tdraggedItemType: Identifier | null,\n) {\n\t// Remove those targetIds that don't match the targetType. This\n\t// fixes shallow isOver which would only be non-shallow because of\n\t// non-matching targets.\n\tfor (let i = targetIds.length - 1; i >= 0; i--) {\n\t\tconst targetId = targetIds[i] as string\n\t\tconst targetType = registry.getTargetType(targetId)\n\t\tif (!matchesType(targetType, draggedItemType)) {\n\t\t\ttargetIds.splice(i, 1)\n\t\t}\n\t}\n}\n\nfunction hoverAllTargets(\n\ttargetIds: string[],\n\tmonitor: DragDropMonitor,\n\tregistry: HandlerRegistry,\n) {\n\t// Finally call hover on all matching targets.\n\ttargetIds.forEach(function (targetId) {\n\t\tconst target = registry.getTarget(targetId)\n\t\ttarget.hover(monitor, targetId)\n\t})\n}\n","import type { DragDropManager, SentinelAction } from '../../interfaces.js'\nimport { PUBLISH_DRAG_SOURCE } from './types.js'\n\nexport function createPublishDragSource(manager: DragDropManager) {\n\treturn function publishDragSource(): SentinelAction | undefined {\n\t\tconst monitor = manager.getMonitor()\n\t\tif (monitor.isDragging()) {\n\t\t\treturn { type: PUBLISH_DRAG_SOURCE }\n\t\t}\n\t\treturn\n\t}\n}\n","import type { DragDropActions, DragDropManager } from '../../interfaces.js'\nimport { createBeginDrag } from './beginDrag.js'\nimport { createDrop } from './drop.js'\nimport { createEndDrag } from './endDrag.js'\nimport { createHover } from './hover.js'\nimport { createPublishDragSource } from './publishDragSource.js'\n\nexport * from './types.js'\n\nexport function createDragDropActions(\n\tmanager: DragDropManager,\n): DragDropActions {\n\treturn {\n\t\tbeginDrag: createBeginDrag(manager),\n\t\tpublishDragSource: createPublishDragSource(manager),\n\t\thover: createHover(manager),\n\t\tdrop: createDrop(manager),\n\t\tendDrag: createEndDrag(manager),\n\t}\n}\n","import type { Action, Store } from 'redux'\n\nimport { createDragDropActions } from '../actions/dragDrop/index.js'\nimport type {\n\tActionCreator,\n\tBackend,\n\tDragDropActions,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n} from '../interfaces.js'\nimport type { State } from '../reducers/index.js'\nimport type { DragDropMonitorImpl } from './DragDropMonitorImpl.js'\n\nexport class DragDropManagerImpl implements DragDropManager {\n\tprivate store: Store<State>\n\tprivate monitor: DragDropMonitor\n\tprivate backend: Backend | undefined\n\tprivate isSetUp = false\n\n\tpublic constructor(store: Store<State>, monitor: DragDropMonitor) {\n\t\tthis.store = store\n\t\tthis.monitor = monitor\n\t\tstore.subscribe(this.handleRefCountChange)\n\t}\n\n\tpublic receiveBackend(backend: Backend): void {\n\t\tthis.backend = backend\n\t}\n\n\tpublic getMonitor(): DragDropMonitor {\n\t\treturn this.monitor\n\t}\n\n\tpublic getBackend(): Backend {\n\t\treturn this.backend as Backend\n\t}\n\n\tpublic getRegistry(): HandlerRegistry {\n\t\treturn (this.monitor as DragDropMonitorImpl).registry\n\t}\n\n\tpublic getActions(): DragDropActions {\n\t\t/* eslint-disable-next-line @typescript-eslint/no-this-alias */\n\t\tconst manager = this\n\t\tconst { dispatch } = this.store\n\n\t\tfunction bindActionCreator(actionCreator: ActionCreator<any>) {\n\t\t\treturn (...args: any[]) => {\n\t\t\t\tconst action = actionCreator.apply(manager, args as any)\n\t\t\t\tif (typeof action !== 'undefined') {\n\t\t\t\t\tdispatch(action)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst actions = createDragDropActions(this)\n\n\t\treturn Object.keys(actions).reduce(\n\t\t\t(boundActions: DragDropActions, key: string) => {\n\t\t\t\tconst action: ActionCreator<any> = (actions as any)[\n\t\t\t\t\tkey\n\t\t\t\t] as ActionCreator<any>\n\t\t\t\t;(boundActions as any)[key] = bindActionCreator(action)\n\t\t\t\treturn boundActions\n\t\t\t},\n\t\t\t{} as DragDropActions,\n\t\t)\n\t}\n\n\tpublic dispatch(action: Action<any>): void {\n\t\tthis.store.dispatch(action)\n\t}\n\n\tprivate handleRefCountChange = (): void => {\n\t\tconst shouldSetUp = this.store.getState().refCount > 0\n\t\tif (this.backend) {\n\t\t\tif (shouldSetUp && !this.isSetUp) {\n\t\t\t\tthis.backend.setup()\n\t\t\t\tthis.isSetUp = true\n\t\t\t} else if (!shouldSetUp && this.isSetUp) {\n\t\t\t\tthis.backend.teardown()\n\t\t\t\tthis.isSetUp = false\n\t\t\t}\n\t\t}\n\t}\n}\n","import type { XYCoord } from '../interfaces.js'\nimport type { State } from '../reducers/dragOffset.js'\n\n/**\n * Coordinate addition\n * @param a The first coordinate\n * @param b The second coordinate\n */\nexport function add(a: XYCoord, b: XYCoord): XYCoord {\n\treturn {\n\t\tx: a.x + b.x,\n\t\ty: a.y + b.y,\n\t}\n}\n\n/**\n * Coordinate subtraction\n * @param a The first coordinate\n * @param b The second coordinate\n */\nexport function subtract(a: XYCoord, b: XYCoord): XYCoord {\n\treturn {\n\t\tx: a.x - b.x,\n\t\ty: a.y - b.y,\n\t}\n}\n\n/**\n * Returns the cartesian distance of the drag source component's position, based on its position\n * at the time when the current drag operation has started, and the movement difference.\n *\n * Returns null if no item is being dragged.\n *\n * @param state The offset state to compute from\n */\nexport function getSourceClientOffset(state: State): XYCoord | null {\n\tconst { clientOffset, initialClientOffset, initialSourceClientOffset } = state\n\tif (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n\t\treturn null\n\t}\n\treturn subtract(\n\t\tadd(clientOffset, initialSourceClientOffset),\n\t\tinitialClientOffset,\n\t)\n}\n\n/**\n * Determines the x,y offset between the client offset and the initial client offset\n *\n * @param state The offset state to compute from\n */\nexport function getDifferenceFromInitialOffset(state: State): XYCoord | null {\n\tconst { clientOffset, initialClientOffset } = state\n\tif (!clientOffset || !initialClientOffset) {\n\t\treturn null\n\t}\n\treturn subtract(clientOffset, initialClientOffset)\n}\n","import { intersection } from './js_utils.js'\n\nexport const NONE: string[] = []\nexport const ALL: string[] = []\n// Add these flags for debug\n;(NONE as any).__IS_NONE__ = true\n;(ALL as any).__IS_ALL__ = true\n\n/**\n * Determines if the given handler IDs are dirty or not.\n *\n * @param dirtyIds The set of dirty handler ids\n * @param handlerIds The set of handler ids to check\n */\nexport function areDirty(\n\tdirtyIds: string[],\n\thandlerIds: string[] | undefined,\n): boolean {\n\tif (dirtyIds === NONE) {\n\t\treturn false\n\t}\n\n\tif (dirtyIds === ALL || typeof handlerIds === 'undefined') {\n\t\treturn true\n\t}\n\n\tconst commonIds = intersection(handlerIds, dirtyIds)\n\treturn commonIds.length > 0\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { Store } from 'redux'\n\nimport type {\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tIdentifier,\n\tListener,\n\tUnsubscribe,\n\tXYCoord,\n} from '../interfaces.js'\nimport type { State } from '../reducers/index.js'\nimport {\n\tgetDifferenceFromInitialOffset,\n\tgetSourceClientOffset,\n} from '../utils/coords.js'\nimport { areDirty } from '../utils/dirtiness.js'\nimport { matchesType } from '../utils/matchesType.js'\n\nexport class DragDropMonitorImpl implements DragDropMonitor {\n\tprivate store: Store<State>\n\tpublic readonly registry: HandlerRegistry\n\n\tpublic constructor(store: Store<State>, registry: HandlerRegistry) {\n\t\tthis.store = store\n\t\tthis.registry = registry\n\t}\n\n\tpublic subscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions: { handlerIds?: string[] } = {},\n\t): Unsubscribe {\n\t\tconst { handlerIds } = options\n\t\tinvariant(typeof listener === 'function', 'listener must be a function.')\n\t\tinvariant(\n\t\t\ttypeof handlerIds === 'undefined' || Array.isArray(handlerIds),\n\t\t\t'handlerIds, when specified, must be an array of strings.',\n\t\t)\n\n\t\tlet prevStateId = this.store.getState().stateId\n\t\tconst handleChange = () => {\n\t\t\tconst state = this.store.getState()\n\t\t\tconst currentStateId = state.stateId\n\t\t\ttry {\n\t\t\t\tconst canSkipListener =\n\t\t\t\t\tcurrentStateId === prevStateId ||\n\t\t\t\t\t(currentStateId === prevStateId + 1 &&\n\t\t\t\t\t\t!areDirty(state.dirtyHandlerIds, handlerIds))\n\n\t\t\t\tif (!canSkipListener) {\n\t\t\t\t\tlistener()\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tprevStateId = currentStateId\n\t\t\t}\n\t\t}\n\n\t\treturn this.store.subscribe(handleChange)\n\t}\n\n\tpublic subscribeToOffsetChange(listener: Listener): Unsubscribe {\n\t\tinvariant(typeof listener === 'function', 'listener must be a function.')\n\n\t\tlet previousState = this.store.getState().dragOffset\n\t\tconst handleChange = () => {\n\t\t\tconst nextState = this.store.getState().dragOffset\n\t\t\tif (nextState === previousState) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tpreviousState = nextState\n\t\t\tlistener()\n\t\t}\n\n\t\treturn this.store.subscribe(handleChange)\n\t}\n\n\tpublic canDragSource(sourceId: string | undefined): boolean {\n\t\tif (!sourceId) {\n\t\t\treturn false\n\t\t}\n\t\tconst source = this.registry.getSource(sourceId)\n\t\tinvariant(source, `Expected to find a valid source. sourceId=${sourceId}`)\n\n\t\tif (this.isDragging()) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn source.canDrag(this, sourceId)\n\t}\n\n\tpublic canDropOnTarget(targetId: string | undefined): boolean {\n\t\t// undefined on initial render\n\t\tif (!targetId) {\n\t\t\treturn false\n\t\t}\n\t\tconst target = this.registry.getTarget(targetId)\n\t\tinvariant(target, `Expected to find a valid target. targetId=${targetId}`)\n\n\t\tif (!this.isDragging() || this.didDrop()) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst targetType = this.registry.getTargetType(targetId)\n\t\tconst draggedItemType = this.getItemType()\n\t\treturn (\n\t\t\tmatchesType(targetType, draggedItemType) && target.canDrop(this, targetId)\n\t\t)\n\t}\n\n\tpublic isDragging(): boolean {\n\t\treturn Boolean(this.getItemType())\n\t}\n\n\tpublic isDraggingSource(sourceId: string | undefined): boolean {\n\t\t// undefined on initial render\n\t\tif (!sourceId) {\n\t\t\treturn false\n\t\t}\n\t\tconst source = this.registry.getSource(sourceId, true)\n\t\tinvariant(source, `Expected to find a valid source. sourceId=${sourceId}`)\n\n\t\tif (!this.isDragging() || !this.isSourcePublic()) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst sourceType = this.registry.getSourceType(sourceId)\n\t\tconst draggedItemType = this.getItemType()\n\t\tif (sourceType !== draggedItemType) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn source.isDragging(this, sourceId)\n\t}\n\n\tpublic isOverTarget(\n\t\ttargetId: string | undefined,\n\t\toptions = { shallow: false },\n\t): boolean {\n\t\t// undefined on initial render\n\t\tif (!targetId) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst { shallow } = options\n\t\tif (!this.isDragging()) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst targetType = this.registry.getTargetType(targetId)\n\t\tconst draggedItemType = this.getItemType()\n\t\tif (draggedItemType && !matchesType(targetType, draggedItemType)) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst targetIds = this.getTargetIds()\n\t\tif (!targetIds.length) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst index = targetIds.indexOf(targetId)\n\t\tif (shallow) {\n\t\t\treturn index === targetIds.length - 1\n\t\t} else {\n\t\t\treturn index > -1\n\t\t}\n\t}\n\n\tpublic getItemType(): Identifier {\n\t\treturn this.store.getState().dragOperation.itemType as Identifier\n\t}\n\n\tpublic getItem(): any {\n\t\treturn this.store.getState().dragOperation.item\n\t}\n\n\tpublic getSourceId(): string | null {\n\t\treturn this.store.getState().dragOperation.sourceId\n\t}\n\n\tpublic getTargetIds(): string[] {\n\t\treturn this.store.getState().dragOperation.targetIds\n\t}\n\n\tpublic getDropResult(): any {\n\t\treturn this.store.getState().dragOperation.dropResult\n\t}\n\n\tpublic didDrop(): boolean {\n\t\treturn this.store.getState().dragOperation.didDrop\n\t}\n\n\tpublic isSourcePublic(): boolean {\n\t\treturn Boolean(this.store.getState().dragOperation.isSourcePublic)\n\t}\n\n\tpublic getInitialClientOffset(): XYCoord | null {\n\t\treturn this.store.getState().dragOffset.initialClientOffset\n\t}\n\n\tpublic getInitialSourceClientOffset(): XYCoord | null {\n\t\treturn this.store.getState().dragOffset.initialSourceClientOffset\n\t}\n\n\tpublic getClientOffset(): XYCoord | null {\n\t\treturn this.store.getState().dragOffset.clientOffset\n\t}\n\n\tpublic getSourceClientOffset(): XYCoord | null {\n\t\treturn getSourceClientOffset(this.store.getState().dragOffset)\n\t}\n\n\tpublic getDifferenceFromInitialOffset(): XYCoord | null {\n\t\treturn getDifferenceFromInitialOffset(this.store.getState().dragOffset)\n\t}\n}\n","// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nconst scope = typeof global !== 'undefined' ? global : self\nconst BrowserMutationObserver =\n\t(scope as any).MutationObserver || (scope as any).WebKitMutationObserver\n\nexport function makeRequestCallFromTimer(callback: () => void) {\n\treturn function requestCall() {\n\t\t// We dispatch a timeout with a specified delay of 0 for engines that\n\t\t// can reliably accommodate that request. This will usually be snapped\n\t\t// to a 4 milisecond delay, but once we're flushing, there's no delay\n\t\t// between events.\n\t\tconst timeoutHandle = setTimeout(handleTimer, 0)\n\t\t// However, since this timer gets frequently dropped in Firefox\n\t\t// workers, we enlist an interval handle that will try to fire\n\t\t// an event 20 times per second until it succeeds.\n\t\tconst intervalHandle = setInterval(handleTimer, 50)\n\n\t\tfunction handleTimer() {\n\t\t\t// Whichever timer succeeds will cancel both timers and\n\t\t\t// execute the callback.\n\t\t\tclearTimeout(timeoutHandle)\n\t\t\tclearInterval(intervalHandle)\n\t\t\tcallback()\n\t\t}\n\t}\n}\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nexport function makeRequestCallFromMutationObserver(callback: () => void) {\n\tlet toggle = 1\n\tconst observer = new BrowserMutationObserver(callback)\n\tconst node = document.createTextNode('')\n\tobserver.observe(node, { characterData: true })\n\treturn function requestCall() {\n\t\ttoggle = -toggle\n\t\t;(node as any).data = toggle\n\t}\n}\n\nexport const makeRequestCall =\n\ttypeof BrowserMutationObserver === 'function'\n\t\t? // MutationObservers are desirable because they have high priority and work\n\t\t // reliably everywhere they are implemented.\n\t\t // They are implemented in all modern browsers.\n\t\t //\n\t\t // - Android 4-4.3\n\t\t // - Chrome 26-34\n\t\t // - Firefox 14-29\n\t\t // - Internet Explorer 11\n\t\t // - iPad Safari 6-7.1\n\t\t // - iPhone Safari 7-7.1\n\t\t // - Safari 6-7\n\t\t makeRequestCallFromMutationObserver\n\t\t: // MessageChannels are desirable because they give direct access to the HTML\n\t\t // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n\t\t // 11-12, and in web workers in many engines.\n\t\t // Although message channels yield to any queued rendering and IO tasks, they\n\t\t // would be better than imposing the 4ms delay of timers.\n\t\t // However, they do not work reliably in Internet Explorer or Safari.\n\n\t\t // Internet Explorer 10 is the only browser that has setImmediate but does\n\t\t // not have MutationObservers.\n\t\t // Although setImmediate yields to the browser's renderer, it would be\n\t\t // preferrable to falling back to setTimeout since it does not have\n\t\t // the minimum 4ms penalty.\n\t\t // Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n\t\t // Desktop to a lesser extent) that renders both setImmediate and\n\t\t // MessageChannel useless for the purposes of ASAP.\n\t\t // https://github.com/kriskowal/q/issues/396\n\n\t\t // Timers are implemented universally.\n\t\t // We fall back to timers in workers in most engines, and in foreground\n\t\t // contexts in the following browsers.\n\t\t // However, note that even this simple case requires nuances to operate in a\n\t\t // broad spectrum of browsers.\n\t\t //\n\t\t // - Firefox 3-13\n\t\t // - Internet Explorer 6-9\n\t\t // - iPad Safari 4.3\n\t\t // - Lynx 2.8.7\n\t\t makeRequestCallFromTimer\n","/* eslint-disable no-restricted-globals, @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-non-null-assertion */\nimport { makeRequestCall, makeRequestCallFromTimer } from './makeRequestCall.js'\nimport type { Task } from './types.js'\n\nexport class AsapQueue {\n\tprivate queue: Task[] = []\n\t// We queue errors to ensure they are thrown in right order (FIFO).\n\t// Array-as-queue is good enough here, since we are just dealing with exceptions.\n\tprivate pendingErrors: any[] = []\n\t// Once a flush has been requested, no further calls to `requestFlush` are\n\t// necessary until the next `flush` completes.\n\t// @ts-ignore\n\tprivate flushing = false\n\t// `requestFlush` is an implementation-specific method that attempts to kick\n\t// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n\t// the event queue before yielding to the browser's own event loop.\n\tprivate requestFlush: () => void\n\n\tprivate requestErrorThrow: () => void\n\t// The position of the next task to execute in the task queue. This is\n\t// preserved between calls to `flush` so that it can be resumed if\n\t// a task throws an exception.\n\tprivate index = 0\n\t// If a task schedules additional tasks recursively, the task queue can grow\n\t// unbounded. To prevent memory exhaustion, the task queue will periodically\n\t// truncate already-completed tasks.\n\tprivate capacity = 1024\n\n\tpublic constructor() {\n\t\t// `requestFlush` requests that the high priority event queue be flushed as\n\t\t// soon as possible.\n\t\t// This is useful to prevent an error thrown in a task from stalling the event\n\t\t// queue if the exception handled by Node.js’s\n\t\t// `process.on(\"uncaughtException\")` or by a domain.\n\n\t\t// `requestFlush` is implemented using a strategy based on data collected from\n\t\t// every available SauceLabs Selenium web driver worker at time of writing.\n\t\t// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\t\tthis.requestFlush = makeRequestCall(this.flush)\n\t\tthis.requestErrorThrow = makeRequestCallFromTimer(() => {\n\t\t\t// Throw first error\n\t\t\tif (this.pendingErrors.length) {\n\t\t\t\tthrow this.pendingErrors.shift()\n\t\t\t}\n\t\t})\n\t}\n\n\t// Use the fastest means possible to execute a task in its own turn, with\n\t// priority over other events including IO, animation, reflow, and redraw\n\t// events in browsers.\n\t//\n\t// An exception thrown by a task will permanently interrupt the processing of\n\t// subsequent tasks. The higher level `asap` function ensures that if an\n\t// exception is thrown by a task, that the task queue will continue flushing as\n\t// soon as possible, but if you use `rawAsap` directly, you are responsible to\n\t// either ensure that no exceptions are thrown from your task, or to manually\n\t// call `rawAsap.requestFlush` if an exception is thrown.\n\tpublic enqueueTask(task: Task): void {\n\t\tconst { queue: q, requestFlush } = this\n\t\tif (!q.length) {\n\t\t\trequestFlush()\n\t\t\tthis.flushing = true\n\t\t}\n\t\t// Equivalent to push, but avoids a function call.\n\t\tq[q.length] = task\n\t}\n\n\t// The flush function processes all tasks that have been scheduled with\n\t// `rawAsap` unless and until one of those tasks throws an exception.\n\t// If a task throws an exception, `flush` ensures that its state will remain\n\t// consistent and will resume where it left off when called again.\n\t// However, `flush` does not make any arrangements to be called again if an\n\t// exception is thrown.\n\tprivate flush = () => {\n\t\tconst { queue: q } = this\n\t\twhile (this.index < q.length) {\n\t\t\tconst currentIndex = this.index\n\t\t\t// Advance the index before calling the task. This ensures that we will\n\t\t\t// begin flushing on the next task the task throws an error.\n\t\t\tthis.index++\n\t\t\tq[currentIndex]!.call()\n\t\t\t// Prevent leaking memory for long chains of recursive calls to `asap`.\n\t\t\t// If we call `asap` within tasks scheduled by `asap`, the queue will\n\t\t\t// grow, but to avoid an O(n) walk for every task we execute, we don't\n\t\t\t// shift tasks off the queue after they have been executed.\n\t\t\t// Instead, we periodically shift 1024 tasks off the queue.\n\t\t\tif (this.index > this.capacity) {\n\t\t\t\t// Manually shift all values starting at the index back to the\n\t\t\t\t// beginning of the queue.\n\t\t\t\tfor (\n\t\t\t\t\tlet scan = 0, newLength = q.length - this.index;\n\t\t\t\t\tscan < newLength;\n\t\t\t\t\tscan++\n\t\t\t\t) {\n\t\t\t\t\tq[scan] = q[scan + this.index]!\n\t\t\t\t}\n\t\t\t\tq.length -= this.index\n\t\t\t\tthis.index = 0\n\t\t\t}\n\t\t}\n\t\tq.length = 0\n\t\tthis.index = 0\n\t\tthis.flushing = false\n\t}\n\n\t// In a web browser, exceptions are not fatal. However, to avoid\n\t// slowing down the queue of pending tasks, we rethrow the error in a\n\t// lower priority turn.\n\tpublic registerPendingError = (err: any) => {\n\t\tthis.pendingErrors.push(err)\n\t\tthis.requestErrorThrow()\n\t}\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// // its existence.\n// rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n","// We wrap tasks with recyclable task objects. A task object implements\n\nimport type { Task, TaskFn } from 'types'\n\n// `call`, just like a function.\nexport class RawTask implements Task {\n\tpublic task: TaskFn | null = null\n\n\tpublic constructor(\n\t\tprivate onError: (err: any) => void,\n\t\tprivate release: (t: RawTask) => void,\n\t) {}\n\n\tpublic call() {\n\t\ttry {\n\t\t\tthis.task && this.task()\n\t\t} catch (error) {\n\t\t\tthis.onError(error)\n\t\t} finally {\n\t\t\tthis.task = null\n\t\t\tthis.release(this)\n\t\t}\n\t}\n}\n","import { RawTask } from './RawTask.js'\nimport type { Task } from './types.js'\n\nexport class TaskFactory {\n\tprivate freeTasks: RawTask[] = []\n\n\tpublic constructor(private onError: (err: any) => void) {}\n\n\tpublic create(task: () => void): Task {\n\t\tconst tasks = this.freeTasks\n\t\tconst t = tasks.length\n\t\t\t? (tasks.pop() as RawTask)\n\t\t\t: new RawTask(this.onError, (t) => (tasks[tasks.length] = t))\n\t\tt.task = task\n\t\treturn t\n\t}\n}\n","import { AsapQueue } from './AsapQueue.js'\nimport { TaskFactory } from './TaskFactory.js'\nimport type { TaskFn } from './types.js'\n\nconst asapQueue = new AsapQueue()\nconst taskFactory = new TaskFactory(asapQueue.registerPendingError)\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nexport function asap(task: TaskFn) {\n\tasapQueue.enqueueTask(taskFactory.create(task))\n}\n","import type { Action, SourceIdPayload, TargetIdPayload } from '../interfaces.js'\n\nexport const ADD_SOURCE = 'dnd-core/ADD_SOURCE'\nexport const ADD_TARGET = 'dnd-core/ADD_TARGET'\nexport const REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE'\nexport const REMOVE_TARGET = 'dnd-core/REMOVE_TARGET'\n\nexport function addSource(sourceId: string): Action<SourceIdPayload> {\n\treturn {\n\t\ttype: ADD_SOURCE,\n\t\tpayload: {\n\t\t\tsourceId,\n\t\t},\n\t}\n}\n\nexport function addTarget(targetId: string): Action<TargetIdPayload> {\n\treturn {\n\t\ttype: ADD_TARGET,\n\t\tpayload: {\n\t\t\ttargetId,\n\t\t},\n\t}\n}\n\nexport function removeSource(sourceId: string): Action<SourceIdPayload> {\n\treturn {\n\t\ttype: REMOVE_SOURCE,\n\t\tpayload: {\n\t\t\tsourceId,\n\t\t},\n\t}\n}\n\nexport function removeTarget(targetId: string): Action<TargetIdPayload> {\n\treturn {\n\t\ttype: REMOVE_TARGET,\n\t\tpayload: {\n\t\t\ttargetId,\n\t\t},\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type { DragSource, DropTarget, Identifier } from './interfaces.js'\n\nexport function validateSourceContract(source: DragSource): void {\n\tinvariant(\n\t\ttypeof source.canDrag === 'function',\n\t\t'Expected canDrag to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof source.beginDrag === 'function',\n\t\t'Expected beginDrag to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof source.endDrag === 'function',\n\t\t'Expected endDrag to be a function.',\n\t)\n}\n\nexport function validateTargetContract(target: DropTarget): void {\n\tinvariant(\n\t\ttypeof target.canDrop === 'function',\n\t\t'Expected canDrop to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof target.hover === 'function',\n\t\t'Expected hover to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof target.drop === 'function',\n\t\t'Expected beginDrag to be a function.',\n\t)\n}\n\nexport function validateType(\n\ttype: Identifier | Identifier[],\n\tallowArray?: boolean,\n): void {\n\tif (allowArray && Array.isArray(type)) {\n\t\ttype.forEach((t) => validateType(t, false))\n\t\treturn\n\t}\n\n\tinvariant(\n\t\ttypeof type === 'string' || typeof type === 'symbol',\n\t\tallowArray\n\t\t\t? 'Type can only be a string, a symbol, or an array of either.'\n\t\t\t: 'Type can only be a string or a symbol.',\n\t)\n}\n","export type Identifier = string | symbol\nexport type SourceType = Identifier\nexport type TargetType = Identifier | Identifier[]\nexport type Unsubscribe = () => void\nexport type Listener = () => void\n\nexport interface XYCoord {\n\tx: number\n\ty: number\n}\n\nexport enum HandlerRole {\n\tSOURCE = 'SOURCE',\n\tTARGET = 'TARGET',\n}\n\nexport interface Backend {\n\tsetup(): void\n\tteardown(): void\n\tconnectDragSource(sourceId: any, node?: any, options?: any): Unsubscribe\n\tconnectDragPreview(sourceId: any, node?: any, options?: any): Unsubscribe\n\tconnectDropTarget(targetId: any, node?: any, options?: any): Unsubscribe\n\tprofile(): Record<string, number>\n}\n\nexport interface DragDropMonitor {\n\tsubscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions?: {\n\t\t\thandlerIds?: Identifier[]\n\t\t},\n\t): Unsubscribe\n\tsubscribeToOffsetChange(listener: Listener): Unsubscribe\n\tcanDragSource(sourceId: Identifier | undefined): boolean\n\tcanDropOnTarget(targetId: Identifier | undefined): boolean\n\n\t/**\n\t * Returns true if a drag operation is in progress, and either the owner initiated the drag, or its isDragging()\n\t * is defined and returns true.\n\t */\n\tisDragging(): boolean\n\tisDraggingSource(sourceId: Identifier | undefined): boolean\n\tisOverTarget(\n\t\ttargetId: Identifier | undefined,\n\t\toptions?: {\n\t\t\tshallow?: boolean\n\t\t},\n\t): boolean\n\n\t/**\n\t * Returns a string or a symbol identifying the type of the current dragged item. Returns null if no item is being dragged.\n\t */\n\tgetItemType(): Identifier | null\n\n\t/**\n\t * Returns a plain object representing the currently dragged item. Every drag source must specify it by returning an object\n\t * from its beginDrag() method. Returns null if no item is being dragged.\n\t */\n\tgetItem(): any\n\tgetSourceId(): Identifier | null\n\tgetTargetIds(): Identifier[]\n\t/**\n\t * Returns a plain object representing the last recorded drop result. The drop targets may optionally specify it by returning an\n\t * object from their drop() methods. When a chain of drop() is dispatched for the nested targets, bottom up, any parent that\n\t * explicitly returns its own result from drop() overrides the child drop result previously set by the child. Returns null if\n\t * called outside endDrag().\n\t */\n\tgetDropResult(): any\n\t/**\n\t * Returns true if some drop target has handled the drop event, false otherwise. Even if a target did not return a drop result,\n\t * didDrop() returns true. Use it inside endDrag() to test whether any drop target has handled the drop. Returns false if called\n\t * outside endDrag().\n\t */\n\tdidDrop(): boolean\n\tisSourcePublic(): boolean | null\n\t/**\n\t * Returns the { x, y } client offset of the pointer at the time when the current drag operation has started.\n\t * Returns null if no item is being dragged.\n\t */\n\tgetInitialClientOffset(): XYCoord | null\n\t/**\n\t * Returns the { x, y } client offset of the drag source component's root DOM node at the time when the current drag\n\t * operation has started. Returns null if no item is being dragged.\n\t */\n\tgetInitialSourceClientOffset(): XYCoord | null\n\n\t/**\n\t * Returns the last recorded { x, y } client offset of the pointer while a drag operation is in progress.\n\t * Returns null if no item is being dragged.\n\t */\n\tgetClientOffset(): XYCoord | null\n\n\t/**\n\t * Returns the projected { x, y } client offset of the drag source component's root DOM node, based on its position at the time\n\t * when the current drag operation has started, and the movement difference. Returns null if no item is being dragged.\n\t */\n\tgetSourceClientOffset(): XYCoord | null\n\n\t/**\n\t * Returns the { x, y } difference between the last recorded client offset of the pointer and the client offset when the current\n\t * drag operation has started. Returns null if no item is being dragged.\n\t */\n\tgetDifferenceFromInitialOffset(): XYCoord | null\n}\n\nexport interface HandlerRegistry {\n\taddSource(type: SourceType, source: DragSource): Identifier\n\taddTarget(type: TargetType, target: DropTarget): Identifier\n\tcontainsHandler(handler: DragSource | DropTarget): boolean\n\tgetSource(sourceId: Identifier, includePinned?: boolean): DragSource\n\tgetSourceType(sourceId: Identifier): SourceType\n\tgetTargetType(targetId: Identifier): TargetType\n\tgetTarget(targetId: Identifier): DropTarget\n\tisSourceId(handlerId: Identifier): boolean\n\tisTargetId(handlerId: Identifier): boolean\n\tremoveSource(sourceId: Identifier): void\n\tremoveTarget(targetId: Identifier): void\n\tpinSource(sourceId: Identifier): void\n\tunpinSource(): void\n}\n\nexport interface Action<Payload> {\n\ttype: Identifier\n\tpayload: Payload\n}\nexport interface SentinelAction {\n\ttype: Identifier\n}\n\nexport type ActionCreator<Payload> = (args: any[]) => Action<Payload>\n\nexport interface BeginDragOptions {\n\tpublishSource?: boolean\n\tclientOffset?: XYCoord\n\tgetSourceClientOffset?: (sourceId: Identifier | undefined) => XYCoord\n}\n\nexport interface InitCoordsPayload {\n\tclientOffset: XYCoord | null\n\tsourceClientOffset: XYCoord | null\n}\n\nexport interface BeginDragPayload {\n\titemType: Identifier\n\titem: any\n\tsourceId: Identifier\n\tclientOffset: XYCoord | null\n\tsourceClientOffset: XYCoord | null\n\tisSourcePublic: boolean\n}\n\nexport interface HoverPayload {\n\ttargetIds: Identifier[]\n\tclientOffset: XYCoord | null\n}\n\nexport interface HoverOptions {\n\tclientOffset?: XYCoord\n}\n\nexport interface DropPayload {\n\tdropResult: any\n}\n\nexport interface TargetIdPayload {\n\ttargetId: Identifier\n}\n\nexport interface SourceIdPayload {\n\tsourceId: Identifier\n}\n\nexport interface DragDropActions {\n\tbeginDrag(\n\t\tsourceIds?: Identifier[],\n\t\toptions?: any,\n\t): Action<BeginDragPayload> | undefined\n\tpublishDragSource(): SentinelAction | undefined\n\thover(targetIds: Identifier[], options?: any): Action<HoverPayload>\n\tdrop(options?: any): void\n\tendDrag(): SentinelAction\n}\n\nexport interface DragDropManager {\n\tgetMonitor(): DragDropMonitor\n\tgetBackend(): Backend\n\tgetRegistry(): HandlerRegistry\n\tgetActions(): DragDropActions\n\tdispatch(action: any): void\n}\n\nexport type BackendFactory = (\n\tmanager: DragDropManager,\n\tglobalContext?: any,\n\tconfiguration?: any,\n) => Backend\n\nexport interface DragSource {\n\tbeginDrag(monitor: DragDropMonitor, targetId: Identifier): void\n\tendDrag(monitor: DragDropMonitor, targetId: Identifier): void\n\tcanDrag(monitor: DragDropMonitor, targetId: Identifier): boolean\n\tisDragging(monitor: DragDropMonitor, targetId: Identifier): boolean\n}\n\nexport interface DropTarget {\n\tcanDrop(monitor: DragDropMonitor, targetId: Identifier): boolean\n\thover(monitor: DragDropMonitor, targetId: Identifier): void\n\tdrop(monitor: DragDropMonitor, targetId: Identifier): any\n}\n","let nextUniqueId = 0\n\nexport function getNextUniqueId(): number {\n\treturn nextUniqueId++\n}\n","import { asap } from '@react-dnd/asap'\nimport { invariant } from '@react-dnd/invariant'\nimport type { Store } from 'redux'\n\nimport {\n\taddSource,\n\taddTarget,\n\tremoveSource,\n\tremoveTarget,\n} from '../actions/registry.js'\nimport {\n\tvalidateSourceContract,\n\tvalidateTargetContract,\n\tvalidateType,\n} from '../contracts.js'\nimport type {\n\tDragSource,\n\tDropTarget,\n\tHandlerRegistry,\n\tIdentifier,\n\tSourceType,\n\tTargetType,\n} from '../interfaces.js'\nimport { HandlerRole } from '../interfaces.js'\nimport type { State } from '../reducers/index.js'\nimport { getNextUniqueId } from '../utils/getNextUniqueId.js'\n\nfunction getNextHandlerId(role: HandlerRole): string {\n\tconst id = getNextUniqueId().toString()\n\tswitch (role) {\n\t\tcase HandlerRole.SOURCE:\n\t\t\treturn `S${id}`\n\t\tcase HandlerRole.TARGET:\n\t\t\treturn `T${id}`\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Handler Role: ${role}`)\n\t}\n}\n\nfunction parseRoleFromHandlerId(handlerId: string) {\n\tswitch (handlerId[0]) {\n\t\tcase 'S':\n\t\t\treturn HandlerRole.SOURCE\n\t\tcase 'T':\n\t\t\treturn HandlerRole.TARGET\n\t\tdefault:\n\t\t\tthrow new Error(`Cannot parse handler ID: ${handlerId}`)\n\t}\n}\n\nfunction mapContainsValue<T>(map: Map<string, T>, searchValue: T) {\n\tconst entries = map.entries()\n\tlet isDone = false\n\tdo {\n\t\tconst {\n\t\t\tdone,\n\t\t\tvalue: [, value],\n\t\t} = entries.next()\n\t\tif (value === searchValue) {\n\t\t\treturn true\n\t\t}\n\t\tisDone = !!done\n\t} while (!isDone)\n\treturn false\n}\n\nexport class HandlerRegistryImpl implements HandlerRegistry {\n\tprivate types: Map<string, SourceType | TargetType> = new Map()\n\tprivate dragSources: Map<string, DragSource> = new Map()\n\tprivate dropTargets: Map<string, DropTarget> = new Map()\n\tprivate pinnedSourceId: string | null = null\n\tprivate pinnedSource: any = null\n\tprivate store: Store<State>\n\n\tpublic constructor(store: Store<State>) {\n\t\tthis.store = store\n\t}\n\n\tpublic addSource(type: SourceType, source: DragSource): string {\n\t\tvalidateType(type)\n\t\tvalidateSourceContract(source)\n\n\t\tconst sourceId = this.addHandler(HandlerRole.SOURCE, type, source)\n\t\tthis.store.dispatch(addSource(sourceId))\n\t\treturn sourceId\n\t}\n\n\tpublic addTarget(type: TargetType, target: DropTarget): string {\n\t\tvalidateType(type, true)\n\t\tvalidateTargetContract(target)\n\n\t\tconst targetId = this.addHandler(HandlerRole.TARGET, type, target)\n\t\tthis.store.dispatch(addTarget(targetId))\n\t\treturn targetId\n\t}\n\n\tpublic containsHandler(handler: DragSource | DropTarget): boolean {\n\t\treturn (\n\t\t\tmapContainsValue(this.dragSources, handler) ||\n\t\t\tmapContainsValue(this.dropTargets, handler)\n\t\t)\n\t}\n\n\tpublic getSource(sourceId: string, includePinned = false): DragSource {\n\t\tinvariant(this.isSourceId(sourceId), 'Expected a valid source ID.')\n\t\tconst isPinned = includePinned && sourceId === this.pinnedSourceId\n\t\tconst source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId)\n\t\treturn source\n\t}\n\n\tpublic getTarget(targetId: string): DropTarget {\n\t\tinvariant(this.isTargetId(targetId), 'Expected a valid target ID.')\n\t\treturn this.dropTargets.get(targetId) as DropTarget\n\t}\n\n\tpublic getSourceType(sourceId: string): Identifier {\n\t\tinvariant(this.isSourceId(sourceId), 'Expected a valid source ID.')\n\t\treturn this.types.get(sourceId) as Identifier\n\t}\n\n\tpublic getTargetType(targetId: string): Identifier | Identifier[] {\n\t\tinvariant(this.isTargetId(targetId), 'Expected a valid target ID.')\n\t\treturn this.types.get(targetId) as Identifier | Identifier[]\n\t}\n\n\tpublic isSourceId(handlerId: string): boolean {\n\t\tconst role = parseRoleFromHandlerId(handlerId)\n\t\treturn role === HandlerRole.SOURCE\n\t}\n\n\tpublic isTargetId(handlerId: string): boolean {\n\t\tconst role = parseRoleFromHandlerId(handlerId)\n\t\treturn role === HandlerRole.TARGET\n\t}\n\n\tpublic removeSource(sourceId: string): void {\n\t\tinvariant(this.getSource(sourceId), 'Expected an existing source.')\n\t\tthis.store.dispatch(removeSource(sourceId))\n\t\tasap(() => {\n\t\t\tthis.dragSources.delete(sourceId)\n\t\t\tthis.types.delete(sourceId)\n\t\t})\n\t}\n\n\tpublic removeTarget(targetId: string): void {\n\t\tinvariant(this.getTarget(targetId), 'Expected an existing target.')\n\t\tthis.store.dispatch(removeTarget(targetId))\n\t\tthis.dropTargets.delete(targetId)\n\t\tthis.types.delete(targetId)\n\t}\n\n\tpublic pinSource(sourceId: string): void {\n\t\tconst source = this.getSource(sourceId)\n\t\tinvariant(source, 'Expected an existing source.')\n\n\t\tthis.pinnedSourceId = sourceId\n\t\tthis.pinnedSource = source\n\t}\n\n\tpublic unpinSource(): void {\n\t\tinvariant(this.pinnedSource, 'No source is pinned at the time.')\n\n\t\tthis.pinnedSourceId = null\n\t\tthis.pinnedSource = null\n\t}\n\n\tprivate addHandler(\n\t\trole: HandlerRole,\n\t\ttype: SourceType | TargetType,\n\t\thandler: DragSource | DropTarget,\n\t): string {\n\t\tconst id = getNextHandlerId(role)\n\t\tthis.types.set(id, type)\n\t\tif (role === HandlerRole.SOURCE) {\n\t\t\tthis.dragSources.set(id, handler as DragSource)\n\t\t} else if (role === HandlerRole.TARGET) {\n\t\t\tthis.dropTargets.set(id, handler as DropTarget)\n\t\t}\n\t\treturn id\n\t}\n}\n","import type { XYCoord } from '../interfaces.js'\n\nexport type EqualityCheck<T> = (a: T, b: T) => boolean\nexport const strictEquality = <T>(a: T, b: T): boolean => a === b\n\n/**\n * Determine if two cartesian coordinate offsets are equal\n * @param offsetA\n * @param offsetB\n */\nexport function areCoordsEqual(\n\toffsetA: XYCoord | null | undefined,\n\toffsetB: XYCoord | null | undefined,\n): boolean {\n\tif (!offsetA && !offsetB) {\n\t\treturn true\n\t} else if (!offsetA || !offsetB) {\n\t\treturn false\n\t} else {\n\t\treturn offsetA.x === offsetB.x && offsetA.y === offsetB.y\n\t}\n}\n\n/**\n * Determines if two arrays of items are equal\n * @param a The first array of items\n * @param b The second array of items\n */\nexport function areArraysEqual<T>(\n\ta: T[],\n\tb: T[],\n\tisEqual: EqualityCheck<T> = strictEquality,\n): boolean {\n\tif (a.length !== b.length) {\n\t\treturn false\n\t}\n\tfor (let i = 0; i < a.length; ++i) {\n\t\tif (!isEqual(a[i] as T, b[i] as T)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n","import {\n\tBEGIN_DRAG,\n\tDROP,\n\tEND_DRAG,\n\tHOVER,\n\tPUBLISH_DRAG_SOURCE,\n} from '../actions/dragDrop/index.js'\nimport {\n\tADD_SOURCE,\n\tADD_TARGET,\n\tREMOVE_SOURCE,\n\tREMOVE_TARGET,\n} from '../actions/registry.js'\nimport type { Action } from '../interfaces.js'\nimport { ALL, NONE } from '../utils/dirtiness.js'\nimport { areArraysEqual } from '../utils/equality.js'\nimport { xor } from '../utils/js_utils.js'\n\nexport type State = string[]\n\nexport interface DirtyHandlerIdPayload {\n\ttargetIds: string[]\n\tprevTargetIds: string[]\n}\n\nexport function reduce(\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t_state: State = NONE,\n\taction: Action<DirtyHandlerIdPayload>,\n): State {\n\tswitch (action.type) {\n\t\tcase HOVER:\n\t\t\tbreak\n\t\tcase ADD_SOURCE:\n\t\tcase ADD_TARGET:\n\t\tcase REMOVE_TARGET:\n\t\tcase REMOVE_SOURCE:\n\t\t\treturn NONE\n\t\tcase BEGIN_DRAG:\n\t\tcase PUBLISH_DRAG_SOURCE:\n\t\tcase END_DRAG:\n\t\tcase DROP:\n\t\tdefault:\n\t\t\treturn ALL\n\t}\n\n\tconst { targetIds = [], prevTargetIds = [] } = action.payload\n\tconst result = xor(targetIds, prevTargetIds)\n\tconst didChange =\n\t\tresult.length > 0 || !areArraysEqual(targetIds, prevTargetIds)\n\n\tif (!didChange) {\n\t\treturn NONE\n\t}\n\n\t// Check the target ids at the innermost position. If they are valid, add them\n\t// to the result\n\tconst prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1]\n\tconst innermostTargetId = targetIds[targetIds.length - 1]\n\tif (prevInnermostTargetId !== innermostTargetId) {\n\t\tif (prevInnermostTargetId) {\n\t\t\tresult.push(prevInnermostTargetId)\n\t\t}\n\t\tif (innermostTargetId) {\n\t\t\tresult.push(innermostTargetId)\n\t\t}\n\t}\n\n\treturn result\n}\n","import {\n\tBEGIN_DRAG,\n\tDROP,\n\tEND_DRAG,\n\tHOVER,\n\tINIT_COORDS,\n} from '../actions/dragDrop/index.js'\nimport type { Action, XYCoord } from '../interfaces.js'\nimport { areCoordsEqual } from '../utils/equality.js'\n\nexport interface State {\n\tinitialSourceClientOffset: XYCoord | null\n\tinitialClientOffset: XYCoord | null\n\tclientOffset: XYCoord | null\n}\n\nconst initialState: State = {\n\tinitialSourceClientOffset: null,\n\tinitialClientOffset: null,\n\tclientOffset: null,\n}\n\nexport function reduce(\n\tstate: State = initialState,\n\taction: Action<{\n\t\tsourceClientOffset: XYCoord\n\t\tclientOffset: XYCoord\n\t}>,\n): State {\n\tconst { payload } = action\n\tswitch (action.type) {\n\t\tcase INIT_COORDS:\n\t\tcase BEGIN_DRAG:\n\t\t\treturn {\n\t\t\t\tinitialSourceClientOffset: payload.sourceClientOffset,\n\t\t\t\tinitialClientOffset: payload.clientOffset,\n\t\t\t\tclientOffset: payload.clientOffset,\n\t\t\t}\n\t\tcase HOVER:\n\t\t\tif (areCoordsEqual(state.clientOffset, payload.clientOffset)) {\n\t\t\t\treturn state\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tclientOffset: payload.clientOffset,\n\t\t\t}\n\t\tcase END_DRAG:\n\t\tcase DROP:\n\t\t\treturn initialState\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n","import {\n\tBEGIN_DRAG,\n\tDROP,\n\tEND_DRAG,\n\tHOVER,\n\tPUBLISH_DRAG_SOURCE,\n} from '../actions/dragDrop/index.js'\nimport { REMOVE_TARGET } from '../actions/registry.js'\nimport type { Action, Identifier } from '../interfaces.js'\nimport { without } from '../utils/js_utils.js'\n\nexport interface State {\n\titemType: Identifier | Identifier[] | null\n\titem: any\n\tsourceId: string | null\n\ttargetIds: string[]\n\tdropResult: any\n\tdidDrop: boolean\n\tisSourcePublic: boolean | null\n}\n\nconst initialState: State = {\n\titemType: null,\n\titem: null,\n\tsourceId: null,\n\ttargetIds: [],\n\tdropResult: null,\n\tdidDrop: false,\n\tisSourcePublic: null,\n}\n\nexport function reduce(\n\tstate: State = initialState,\n\taction: Action<{\n\t\titemType: Identifier | Identifier[]\n\t\titem: any\n\t\tsourceId: string\n\t\ttargetId: string\n\t\ttargetIds: string[]\n\t\tisSourcePublic: boolean\n\t\tdropResult: any\n\t}>,\n): State {\n\tconst { payload } = action\n\tswitch (action.type) {\n\t\tcase BEGIN_DRAG:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\titemType: payload.itemType,\n\t\t\t\titem: payload.item,\n\t\t\t\tsourceId: payload.sourceId,\n\t\t\t\tisSourcePublic: payload.isSourcePublic,\n\t\t\t\tdropResult: null,\n\t\t\t\tdidDrop: false,\n\t\t\t}\n\t\tcase PUBLISH_DRAG_SOURCE:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisSourcePublic: true,\n\t\t\t}\n\t\tcase HOVER:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\ttargetIds: payload.targetIds,\n\t\t\t}\n\t\tcase REMOVE_TARGET:\n\t\t\tif (state.targetIds.indexOf(payload.targetId) === -1) {\n\t\t\t\treturn state\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\ttargetIds: without(state.targetIds, payload.targetId),\n\t\t\t}\n\t\tcase DROP:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tdropResult: payload.dropResult,\n\t\t\t\tdidDrop: true,\n\t\t\t\ttargetIds: [],\n\t\t\t}\n\t\tcase END_DRAG:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\titemType: null,\n\t\t\t\titem: null,\n\t\t\t\tsourceId: null,\n\t\t\t\tdropResult: null,\n\t\t\t\tdidDrop: false,\n\t\t\t\tisSourcePublic: null,\n\t\t\t\ttargetIds: [],\n\t\t\t}\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n","import {\n\tADD_SOURCE,\n\tADD_TARGET,\n\tREMOVE_SOURCE,\n\tREMOVE_TARGET,\n} from '../actions/registry.js'\nimport type { Action } from '../interfaces.js'\n\nexport type State = number\n\nexport function reduce(state: State = 0, action: Action<any>): State {\n\tswitch (action.type) {\n\t\tcase ADD_SOURCE:\n\t\tcase ADD_TARGET:\n\t\t\treturn state + 1\n\t\tcase REMOVE_SOURCE:\n\t\tcase REMOVE_TARGET:\n\t\t\treturn state - 1\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n","export type State = number\n\nexport function reduce(state: State = 0): State {\n\treturn state + 1\n}\n","import type { Action } from '../interfaces.js'\nimport { get } from '../utils/js_utils.js'\nimport type { State as DirtyHandlerIdsState } from './dirtyHandlerIds.js'\nimport { reduce as dirtyHandlerIds } from './dirtyHandlerIds.js'\nimport type { State as DragOffsetState } from './dragOffset.js'\nimport { reduce as dragOffset } from './dragOffset.js'\nimport type { State as DragOperationState } from './dragOperation.js'\nimport { reduce as dragOperation } from './dragOperation.js'\nimport type { State as RefCountState } from './refCount.js'\nimport { reduce as refCount } from './refCount.js'\nimport type { State as StateIdState } from './stateId.js'\nimport { reduce as stateId } from './stateId.js'\n\nexport interface State {\n\tdirtyHandlerIds: DirtyHandlerIdsState\n\tdragOffset: DragOffsetState\n\trefCount: RefCountState\n\tdragOperation: DragOperationState\n\tstateId: StateIdState\n}\n\nexport function reduce(state: State = {} as State, action: Action<any>): State {\n\treturn {\n\t\tdirtyHandlerIds: dirtyHandlerIds(state.dirtyHandlerIds, {\n\t\t\ttype: action.type,\n\t\t\tpayload: {\n\t\t\t\t...action.payload,\n\t\t\t\tprevTargetIds: get<string[]>(state, 'dragOperation.targetIds', []),\n\t\t\t},\n\t\t}),\n\t\tdragOffset: dragOffset(state.dragOffset, action),\n\t\trefCount: refCount(state.refCount, action),\n\t\tdragOperation: dragOperation(state.dragOperation, action),\n\t\tstateId: stateId(state.stateId),\n\t}\n}\n","import type { Store } from 'redux'\nimport { createStore } from 'redux'\n\nimport { DragDropManagerImpl } from './classes/DragDropManagerImpl.js'\nimport { DragDropMonitorImpl } from './classes/DragDropMonitorImpl.js'\nimport { HandlerRegistryImpl } from './classes/HandlerRegistryImpl.js'\nimport type { BackendFactory, DragDropManager } from './interfaces.js'\nimport type { State } from './reducers/index.js'\nimport { reduce } from './reducers/index.js'\n\nexport function createDragDropManager(\n\tbackendFactory: BackendFactory,\n\tglobalContext: unknown = undefined,\n\tbackendOptions: unknown = {},\n\tdebugMode = false,\n): DragDropManager {\n\tconst store = makeStoreInstance(debugMode)\n\tconst monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store))\n\tconst manager = new DragDropManagerImpl(store, monitor)\n\tconst backend = backendFactory(manager, globalContext, backendOptions)\n\tmanager.receiveBackend(backend)\n\treturn manager\n}\n\nfunction makeStoreInstance(debugMode: boolean): Store<State> {\n\t// TODO: if we ever make a react-native version of this,\n\t// we'll need to consider how to pull off dev-tooling\n\tconst reduxDevTools =\n\t\ttypeof window !== 'undefined' &&\n\t\t(window as any).__REDUX_DEVTOOLS_EXTENSION__\n\treturn createStore(\n\t\treduce,\n\t\tdebugMode &&\n\t\t\treduxDevTools &&\n\t\t\treduxDevTools({\n\t\t\t\tname: 'dnd-core',\n\t\t\t\tinstanceId: 'dnd-core',\n\t\t\t}),\n\t)\n}\n","import type { BackendFactory, DragDropManager } from 'dnd-core'\nimport { createDragDropManager } from 'dnd-core'\nimport type { FC, ReactNode } from 'react'\nimport { memo, useEffect } from 'react'\n\nimport { DndContext } from './DndContext.js'\n\nexport type DndProviderProps<BackendContext, BackendOptions> =\n\t| {\n\t\t\tchildren?: ReactNode\n\t\t\tmanager: DragDropManager\n\t }\n\t| {\n\t\t\tbackend: BackendFactory\n\t\t\tchildren?: ReactNode\n\t\t\tcontext?: BackendContext\n\t\t\toptions?: BackendOptions\n\t\t\tdebugMode?: boolean\n\t }\n\nlet refCount = 0\nconst INSTANCE_SYM = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__')\n\n/**\n * A React component that provides the React-DnD context\n */\nexport const DndProvider: FC<DndProviderProps<unknown, unknown>> = memo(\n\tfunction DndProvider({ children, ...props }) {\n\t\tconst [manager, isGlobalInstance] = getDndContextValue(props) // memoized from props\n\t\t/**\n\t\t * If the global context was used to store the DND context\n\t\t * then where theres no more references to it we should\n\t\t * clean it up to avoid memory leaks\n\t\t */\n\t\tuseEffect(() => {\n\t\t\tif (isGlobalInstance) {\n\t\t\t\tconst context = getGlobalContext()\n\t\t\t\t++refCount\n\n\t\t\t\treturn () => {\n\t\t\t\t\tif (--refCount === 0) {\n\t\t\t\t\t\tcontext[INSTANCE_SYM] = null\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn\n\t\t}, [])\n\n\t\treturn <DndContext.Provider value={manager}>{children}</DndContext.Provider>\n\t},\n)\n\nfunction getDndContextValue(props: DndProviderProps<unknown, unknown>) {\n\tif ('manager' in props) {\n\t\tconst manager = { dragDropManager: props.manager }\n\t\treturn [manager, false]\n\t}\n\n\tconst manager = createSingletonDndContext(\n\t\tprops.backend,\n\t\tprops.context,\n\t\tprops.options,\n\t\tprops.debugMode,\n\t)\n\tconst isGlobalInstance = !props.context\n\n\treturn [manager, isGlobalInstance]\n}\n\nfunction createSingletonDndContext<BackendContext, BackendOptions>(\n\tbackend: BackendFactory,\n\tcontext: BackendContext = getGlobalContext(),\n\toptions: BackendOptions,\n\tdebugMode?: boolean,\n) {\n\tconst ctx = context as any\n\tif (!ctx[INSTANCE_SYM]) {\n\t\tctx[INSTANCE_SYM] = {\n\t\t\tdragDropManager: createDragDropManager(\n\t\t\t\tbackend,\n\t\t\t\tcontext,\n\t\t\t\toptions,\n\t\t\t\tdebugMode,\n\t\t\t),\n\t\t}\n\t}\n\treturn ctx[INSTANCE_SYM]\n}\n\ndeclare const global: any\nfunction getGlobalContext() {\n\treturn typeof global !== 'undefined' ? global : (window as any)\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import { useEffect, useLayoutEffect } from 'react'\n\n// suppress the useLayoutEffect warning on server side.\nexport const useIsomorphicLayoutEffect =\n\ttypeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import equal from 'fast-deep-equal'\nimport { useCallback, useState } from 'react'\n\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js'\n\n/**\n *\n * @param monitor The monitor to collect state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */\nexport function useCollector<T, S>(\n\tmonitor: T,\n\tcollect: (monitor: T) => S,\n\tonUpdate?: () => void,\n): [S, () => void] {\n\tconst [collected, setCollected] = useState(() => collect(monitor))\n\n\tconst updateCollected = useCallback(() => {\n\t\tconst nextValue = collect(monitor)\n\t\t// This needs to be a deep-equality check because some monitor-collected values\n\t\t// include XYCoord objects that may be equivalent, but do not have instance equality.\n\t\tif (!equal(collected, nextValue)) {\n\t\t\tsetCollected(nextValue)\n\t\t\tif (onUpdate) {\n\t\t\t\tonUpdate()\n\t\t\t}\n\t\t}\n\t}, [collected, monitor, onUpdate])\n\n\t// update the collected properties after react renders.\n\t// Note that the \"Dustbin Stress Test\" fails if this is not\n\t// done when the component updates\n\tuseIsomorphicLayoutEffect(updateCollected)\n\n\treturn [collected, updateCollected]\n}\n","import type { HandlerManager, MonitorEventEmitter } from '../types/index.js'\nimport { useCollector } from './useCollector.js'\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js'\n\nexport function useMonitorOutput<Monitor extends HandlerManager, Collected>(\n\tmonitor: Monitor & MonitorEventEmitter,\n\tcollect: (monitor: Monitor) => Collected,\n\tonCollect?: () => void,\n): Collected {\n\tconst [collected, updateCollected] = useCollector(monitor, collect, onCollect)\n\n\tuseIsomorphicLayoutEffect(\n\t\tfunction subscribeToMonitorStateChange() {\n\t\t\tconst handlerId = monitor.getHandlerId()\n\t\t\tif (handlerId == null) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\treturn monitor.subscribeToStateChange(updateCollected, {\n\t\t\t\thandlerIds: [handlerId],\n\t\t\t})\n\t\t},\n\t\t[monitor, updateCollected],\n\t)\n\n\treturn collected\n}\n","import type { Connector } from '../internals/index.js'\nimport type { HandlerManager, MonitorEventEmitter } from '../types/index.js'\nimport { useMonitorOutput } from './useMonitorOutput.js'\n\nexport function useCollectedProps<Collected, Monitor extends HandlerManager>(\n\tcollector: ((monitor: Monitor) => Collected) | undefined,\n\tmonitor: Monitor & MonitorEventEmitter,\n\tconnector: Connector,\n) {\n\treturn useMonitorOutput(monitor, collector || (() => ({} as Collected)), () =>\n\t\tconnector.reconnect(),\n\t)\n}\n","import { useMemo } from 'react'\n\nimport type { FactoryOrInstance } from './types.js'\n\nexport function useOptionalFactory<T>(\n\targ: FactoryOrInstance<T>,\n\tdeps?: unknown[],\n): T {\n\tconst memoDeps = [...(deps || [])]\n\tif (deps == null && typeof arg !== 'function') {\n\t\tmemoDeps.push(arg)\n\t}\n\treturn useMemo<T>(() => {\n\t\treturn typeof arg === 'function' ? (arg as () => T)() : (arg as T)\n\t}, memoDeps)\n}\n","import { useMemo } from 'react'\n\nimport type { SourceConnector } from '../../internals/index.js'\n\nexport function useConnectDragSource(connector: SourceConnector) {\n\treturn useMemo(() => connector.hooks.dragSource(), [connector])\n}\n\nexport function useConnectDragPreview(connector: SourceConnector) {\n\treturn useMemo(() => connector.hooks.dragPreview(), [connector])\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type {\n\tDragDropManager,\n\tDragDropMonitor,\n\tIdentifier,\n\tListener,\n\tUnsubscribe,\n\tXYCoord,\n} from 'dnd-core'\n\nimport type { DragSourceMonitor } from '../types/index.js'\n\nlet isCallingCanDrag = false\nlet isCallingIsDragging = false\n\nexport class DragSourceMonitorImpl implements DragSourceMonitor {\n\tprivate internalMonitor: DragDropMonitor\n\tprivate sourceId: Identifier | null = null\n\n\tpublic constructor(manager: DragDropManager) {\n\t\tthis.internalMonitor = manager.getMonitor()\n\t}\n\n\tpublic receiveHandlerId(sourceId: Identifier | null): void {\n\t\tthis.sourceId = sourceId\n\t}\n\n\tpublic getHandlerId(): Identifier | null {\n\t\treturn this.sourceId\n\t}\n\n\tpublic canDrag(): boolean {\n\t\tinvariant(\n\t\t\t!isCallingCanDrag,\n\t\t\t'You may not call monitor.canDrag() inside your canDrag() implementation. ' +\n\t\t\t\t'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor',\n\t\t)\n\n\t\ttry {\n\t\t\tisCallingCanDrag = true\n\t\t\treturn this.internalMonitor.canDragSource(this.sourceId as Identifier)\n\t\t} finally {\n\t\t\tisCallingCanDrag = false\n\t\t}\n\t}\n\n\tpublic isDragging(): boolean {\n\t\tif (!this.sourceId) {\n\t\t\treturn false\n\t\t}\n\t\tinvariant(\n\t\t\t!isCallingIsDragging,\n\t\t\t'You may not call monitor.isDragging() inside your isDragging() implementation. ' +\n\t\t\t\t'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor',\n\t\t)\n\n\t\ttry {\n\t\t\tisCallingIsDragging = true\n\t\t\treturn this.internalMonitor.isDraggingSource(this.sourceId)\n\t\t} finally {\n\t\t\tisCallingIsDragging = false\n\t\t}\n\t}\n\n\tpublic subscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions?: { handlerIds?: Identifier[] },\n\t): Unsubscribe {\n\t\treturn this.internalMonitor.subscribeToStateChange(listener, options)\n\t}\n\n\tpublic isDraggingSource(sourceId: Identifier): boolean {\n\t\treturn this.internalMonitor.isDraggingSource(sourceId)\n\t}\n\n\tpublic isOverTarget(\n\t\ttargetId: Identifier,\n\t\toptions?: { shallow: boolean },\n\t): boolean {\n\t\treturn this.internalMonitor.isOverTarget(targetId, options)\n\t}\n\n\tpublic getTargetIds(): Identifier[] {\n\t\treturn this.internalMonitor.getTargetIds()\n\t}\n\n\tpublic isSourcePublic(): boolean | null {\n\t\treturn this.internalMonitor.isSourcePublic()\n\t}\n\n\tpublic getSourceId(): Identifier | null {\n\t\treturn this.internalMonitor.getSourceId()\n\t}\n\n\tpublic subscribeToOffsetChange(listener: Listener): Unsubscribe {\n\t\treturn this.internalMonitor.subscribeToOffsetChange(listener)\n\t}\n\n\tpublic canDragSource(sourceId: Identifier): boolean {\n\t\treturn this.internalMonitor.canDragSource(sourceId)\n\t}\n\n\tpublic canDropOnTarget(targetId: Identifier): boolean {\n\t\treturn this.internalMonitor.canDropOnTarget(targetId)\n\t}\n\n\tpublic getItemType(): Identifier | null {\n\t\treturn this.internalMonitor.getItemType()\n\t}\n\n\tpublic getItem(): any {\n\t\treturn this.internalMonitor.getItem()\n\t}\n\n\tpublic getDropResult(): any {\n\t\treturn this.internalMonitor.getDropResult()\n\t}\n\n\tpublic didDrop(): boolean {\n\t\treturn this.internalMonitor.didDrop()\n\t}\n\n\tpublic getInitialClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialClientOffset()\n\t}\n\n\tpublic getInitialSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialSourceClientOffset()\n\t}\n\n\tpublic getSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getSourceClientOffset()\n\t}\n\n\tpublic getClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getClientOffset()\n\t}\n\n\tpublic getDifferenceFromInitialOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getDifferenceFromInitialOffset()\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type {\n\tDragDropManager,\n\tDragDropMonitor,\n\tIdentifier,\n\tListener,\n\tUnsubscribe,\n\tXYCoord,\n} from 'dnd-core'\n\nimport type { DropTargetMonitor } from '../types/index.js'\n\nlet isCallingCanDrop = false\n\nexport class DropTargetMonitorImpl implements DropTargetMonitor {\n\tprivate internalMonitor: DragDropMonitor\n\tprivate targetId: Identifier | null = null\n\n\tpublic constructor(manager: DragDropManager) {\n\t\tthis.internalMonitor = manager.getMonitor()\n\t}\n\n\tpublic receiveHandlerId(targetId: Identifier | null): void {\n\t\tthis.targetId = targetId\n\t}\n\n\tpublic getHandlerId(): Identifier | null {\n\t\treturn this.targetId\n\t}\n\n\tpublic subscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions?: { handlerIds?: Identifier[] },\n\t): Unsubscribe {\n\t\treturn this.internalMonitor.subscribeToStateChange(listener, options)\n\t}\n\n\tpublic canDrop(): boolean {\n\t\t// Cut out early if the target id has not been set. This should prevent errors\n\t\t// where the user has an older version of dnd-core like in\n\t\t// https://github.com/react-dnd/react-dnd/issues/1310\n\t\tif (!this.targetId) {\n\t\t\treturn false\n\t\t}\n\t\tinvariant(\n\t\t\t!isCallingCanDrop,\n\t\t\t'You may not call monitor.canDrop() inside your canDrop() implementation. ' +\n\t\t\t\t'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor',\n\t\t)\n\n\t\ttry {\n\t\t\tisCallingCanDrop = true\n\t\t\treturn this.internalMonitor.canDropOnTarget(this.targetId)\n\t\t} finally {\n\t\t\tisCallingCanDrop = false\n\t\t}\n\t}\n\n\tpublic isOver(options?: { shallow?: boolean }): boolean {\n\t\tif (!this.targetId) {\n\t\t\treturn false\n\t\t}\n\t\treturn this.internalMonitor.isOverTarget(this.targetId, options)\n\t}\n\n\tpublic getItemType(): Identifier | null {\n\t\treturn this.internalMonitor.getItemType()\n\t}\n\n\tpublic getItem(): any {\n\t\treturn this.internalMonitor.getItem()\n\t}\n\n\tpublic getDropResult(): any {\n\t\treturn this.internalMonitor.getDropResult()\n\t}\n\n\tpublic didDrop(): boolean {\n\t\treturn this.internalMonitor.didDrop()\n\t}\n\n\tpublic getInitialClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialClientOffset()\n\t}\n\n\tpublic getInitialSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialSourceClientOffset()\n\t}\n\n\tpublic getSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getSourceClientOffset()\n\t}\n\n\tpublic getClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getClientOffset()\n\t}\n\n\tpublic getDifferenceFromInitialOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getDifferenceFromInitialOffset()\n\t}\n}\n","import type {\n\tDragDropManager,\n\tDragSource,\n\tDropTarget,\n\tIdentifier,\n\tSourceType,\n\tTargetType,\n\tUnsubscribe,\n} from 'dnd-core'\n\nexport function registerTarget(\n\ttype: TargetType,\n\ttarget: DropTarget,\n\tmanager: DragDropManager,\n): [Identifier, Unsubscribe] {\n\tconst registry = manager.getRegistry()\n\tconst targetId = registry.addTarget(type, target)\n\n\treturn [targetId, () => registry.removeTarget(targetId)]\n}\n\nexport function registerSource(\n\ttype: SourceType,\n\tsource: DragSource,\n\tmanager: DragDropManager,\n): [Identifier, Unsubscribe] {\n\tconst registry = manager.getRegistry()\n\tconst sourceId = registry.addSource(type, source)\n\n\treturn [sourceId, () => registry.removeSource(sourceId)]\n}\n","export function shallowEqual<T>(\n\tobjA: T,\n\tobjB: T,\n\tcompare?: (a: T, b: T, key?: string) => boolean | void,\n\tcompareContext?: any,\n) {\n\tlet compareResult = compare\n\t\t? compare.call(compareContext, objA, objB)\n\t\t: void 0\n\tif (compareResult !== void 0) {\n\t\treturn !!compareResult\n\t}\n\n\tif (objA === objB) {\n\t\treturn true\n\t}\n\n\tif (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n\t\treturn false\n\t}\n\n\tconst keysA = Object.keys(objA)\n\tconst keysB = Object.keys(objB)\n\n\tif (keysA.length !== keysB.length) {\n\t\treturn false\n\t}\n\n\tconst bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB)\n\n\t// Test for A's keys different from B.\n\tfor (let idx = 0; idx < keysA.length; idx++) {\n\t\tconst key = keysA[idx] as string\n\n\t\tif (!bHasOwnProperty(key)) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst valueA = (objA as any)[key]\n\t\tconst valueB = (objB as any)[key]\n\n\t\tcompareResult = compare\n\t\t\t? compare.call(compareContext, valueA, valueB, key)\n\t\t\t: void 0\n\n\t\tif (\n\t\t\tcompareResult === false ||\n\t\t\t(compareResult === void 0 && valueA !== valueB)\n\t\t) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n","export interface Ref<T> {\n\tcurrent: T\n}\n\nexport function isRef(obj: unknown): boolean {\n\treturn (\n\t\t// eslint-disable-next-line no-prototype-builtins\n\t\tobj !== null &&\n\t\ttypeof obj === 'object' &&\n\t\tObject.prototype.hasOwnProperty.call(obj, 'current')\n\t)\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { ReactElement } from 'react'\nimport { cloneElement, isValidElement } from 'react'\n\nfunction throwIfCompositeComponentElement(element: ReactElement<any>) {\n\t// Custom components can no longer be wrapped directly in React DnD 2.0\n\t// so that we don't need to depend on findDOMNode() from react-dom.\n\tif (typeof element.type === 'string') {\n\t\treturn\n\t}\n\n\tconst displayName =\n\t\t(element.type as any).displayName || element.type.name || 'the component'\n\n\tthrow new Error(\n\t\t'Only native element nodes can now be passed to React DnD connectors.' +\n\t\t\t`You can either wrap ${displayName} into a <div>, or turn it into a ` +\n\t\t\t'drag source or a drop target itself.',\n\t)\n}\n\nfunction wrapHookToRecognizeElement(hook: (node: any, options: any) => void) {\n\treturn (elementOrNode = null, options = null) => {\n\t\t// When passed a node, call the hook straight away.\n\t\tif (!isValidElement(elementOrNode)) {\n\t\t\tconst node = elementOrNode\n\t\t\thook(node, options)\n\t\t\t// return the node so it can be chained (e.g. when within callback refs\n\t\t\t// <div ref={node => connectDragSource(connectDropTarget(node))}/>\n\t\t\treturn node\n\t\t}\n\n\t\t// If passed a ReactElement, clone it and attach this function as a ref.\n\t\t// This helps us achieve a neat API where user doesn't even know that refs\n\t\t// are being used under the hood.\n\t\tconst element: ReactElement | null = elementOrNode\n\t\tthrowIfCompositeComponentElement(element as any)\n\n\t\t// When no options are passed, use the hook directly\n\t\tconst ref = options ? (node: Element) => hook(node, options) : hook\n\t\treturn cloneWithRef(element, ref)\n\t}\n}\n\nexport function wrapConnectorHooks(hooks: any) {\n\tconst wrappedHooks: any = {}\n\n\tObject.keys(hooks).forEach((key) => {\n\t\tconst hook = hooks[key]\n\n\t\t// ref objects should be passed straight through without wrapping\n\t\tif (key.endsWith('Ref')) {\n\t\t\twrappedHooks[key] = hooks[key]\n\t\t} else {\n\t\t\tconst wrappedHook = wrapHookToRecognizeElement(hook)\n\t\t\twrappedHooks[key] = () => wrappedHook\n\t\t}\n\t})\n\n\treturn wrappedHooks\n}\n\nfunction setRef(ref: any, node: any) {\n\tif (typeof ref === 'function') {\n\t\tref(node)\n\t} else {\n\t\tref.current = node\n\t}\n}\n\nfunction cloneWithRef(element: any, newRef: any): ReactElement<any> {\n\tconst previousRef = element.ref\n\tinvariant(\n\t\ttypeof previousRef !== 'string',\n\t\t'Cannot connect React DnD to an element with an existing string ref. ' +\n\t\t\t'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' +\n\t\t\t'Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs',\n\t)\n\n\tif (!previousRef) {\n\t\t// When there is no ref on the element, use the new ref directly\n\t\treturn cloneElement(element, {\n\t\t\tref: newRef,\n\t\t})\n\t} else {\n\t\treturn cloneElement(element, {\n\t\t\tref: (node: any) => {\n\t\t\t\tsetRef(previousRef, node)\n\t\t\t\tsetRef(newRef, node)\n\t\t\t},\n\t\t})\n\t}\n}\n","import { shallowEqual } from '@react-dnd/shallowequal'\nimport type { Backend, Identifier, Unsubscribe } from 'dnd-core'\nimport type { ReactElement, Ref, RefObject } from 'react'\n\nimport type { DragPreviewOptions, DragSourceOptions } from '../types/index.js'\nimport { isRef } from './isRef.js'\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js'\n\nexport interface Connector {\n\thooks: any\n\tconnectTarget: any\n\treceiveHandlerId(handlerId: Identifier | null): void\n\treconnect(): void\n}\n\nexport class SourceConnector implements Connector {\n\tpublic hooks = wrapConnectorHooks({\n\t\tdragSource: (\n\t\t\tnode: Element | ReactElement | Ref<any>,\n\t\t\toptions?: DragSourceOptions,\n\t\t) => {\n\t\t\tthis.clearDragSource()\n\t\t\tthis.dragSourceOptions = options || null\n\t\t\tif (isRef(node)) {\n\t\t\t\tthis.dragSourceRef = node as RefObject<any>\n\t\t\t} else {\n\t\t\t\tthis.dragSourceNode = node\n\t\t\t}\n\t\t\tthis.reconnectDragSource()\n\t\t},\n\t\tdragPreview: (node: any, options?: DragPreviewOptions) => {\n\t\t\tthis.clearDragPreview()\n\t\t\tthis.dragPreviewOptions = options || null\n\t\t\tif (isRef(node)) {\n\t\t\t\tthis.dragPreviewRef = node\n\t\t\t} else {\n\t\t\t\tthis.dragPreviewNode = node\n\t\t\t}\n\t\t\tthis.reconnectDragPreview()\n\t\t},\n\t})\n\tprivate handlerId: Identifier | null = null\n\n\t// The drop target may either be attached via ref or connect function\n\tprivate dragSourceRef: RefObject<any> | null = null\n\tprivate dragSourceNode: any\n\tprivate dragSourceOptionsInternal: DragSourceOptions | null = null\n\tprivate dragSourceUnsubscribe: Unsubscribe | undefined\n\n\t// The drag preview may either be attached via ref or connect function\n\tprivate dragPreviewRef: RefObject<any> | null = null\n\tprivate dragPreviewNode: any\n\tprivate dragPreviewOptionsInternal: DragPreviewOptions | null = null\n\tprivate dragPreviewUnsubscribe: Unsubscribe | undefined\n\n\tprivate lastConnectedHandlerId: Identifier | null = null\n\tprivate lastConnectedDragSource: any = null\n\tprivate lastConnectedDragSourceOptions: any = null\n\tprivate lastConnectedDragPreview: any = null\n\tprivate lastConnectedDragPreviewOptions: any = null\n\n\tprivate readonly backend: Backend\n\n\tpublic constructor(backend: Backend) {\n\t\tthis.backend = backend\n\t}\n\n\tpublic receiveHandlerId(newHandlerId: Identifier | null): void {\n\t\tif (this.handlerId === newHandlerId) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.handlerId = newHandlerId\n\t\tthis.reconnect()\n\t}\n\n\tpublic get connectTarget(): any {\n\t\treturn this.dragSource\n\t}\n\n\tpublic get dragSourceOptions(): DragSourceOptions | null {\n\t\treturn this.dragSourceOptionsInternal\n\t}\n\tpublic set dragSourceOptions(options: DragSourceOptions | null) {\n\t\tthis.dragSourceOptionsInternal = options\n\t}\n\n\tpublic get dragPreviewOptions(): DragPreviewOptions | null {\n\t\treturn this.dragPreviewOptionsInternal\n\t}\n\n\tpublic set dragPreviewOptions(options: DragPreviewOptions | null) {\n\t\tthis.dragPreviewOptionsInternal = options\n\t}\n\n\tpublic reconnect(): void {\n\t\tconst didChange = this.reconnectDragSource()\n\t\tthis.reconnectDragPreview(didChange)\n\t}\n\n\tprivate reconnectDragSource(): boolean {\n\t\tconst dragSource = this.dragSource\n\t\t// if nothing has changed then don't resubscribe\n\t\tconst didChange =\n\t\t\tthis.didHandlerIdChange() ||\n\t\t\tthis.didConnectedDragSourceChange() ||\n\t\t\tthis.didDragSourceOptionsChange()\n\n\t\tif (didChange) {\n\t\t\tthis.disconnectDragSource()\n\t\t}\n\n\t\tif (!this.handlerId) {\n\t\t\treturn didChange\n\t\t}\n\t\tif (!dragSource) {\n\t\t\tthis.lastConnectedDragSource = dragSource\n\t\t\treturn didChange\n\t\t}\n\n\t\tif (didChange) {\n\t\t\tthis.lastConnectedHandlerId = this.handlerId\n\t\t\tthis.lastConnectedDragSource = dragSource\n\t\t\tthis.lastConnectedDragSourceOptions = this.dragSourceOptions\n\t\t\tthis.dragSourceUnsubscribe = this.backend.connectDragSource(\n\t\t\t\tthis.handlerId,\n\t\t\t\tdragSource,\n\t\t\t\tthis.dragSourceOptions,\n\t\t\t)\n\t\t}\n\t\treturn didChange\n\t}\n\n\tprivate reconnectDragPreview(forceDidChange = false): void {\n\t\tconst dragPreview = this.dragPreview\n\t\t// if nothing has changed then don't resubscribe\n\t\tconst didChange =\n\t\t\tforceDidChange ||\n\t\t\tthis.didHandlerIdChange() ||\n\t\t\tthis.didConnectedDragPreviewChange() ||\n\t\t\tthis.didDragPreviewOptionsChange()\n\n\t\tif (didChange) {\n\t\t\tthis.disconnectDragPreview()\n\t\t}\n\n\t\tif (!this.handlerId) {\n\t\t\treturn\n\t\t}\n\t\tif (!dragPreview) {\n\t\t\tthis.lastConnectedDragPreview = dragPreview\n\t\t\treturn\n\t\t}\n\n\t\tif (didChange) {\n\t\t\tthis.lastConnectedHandlerId = this.handlerId\n\t\t\tthis.lastConnectedDragPreview = dragPreview\n\t\t\tthis.lastConnectedDragPreviewOptions = this.dragPreviewOptions\n\t\t\tthis.dragPreviewUnsubscribe = this.backend.connectDragPreview(\n\t\t\t\tthis.handlerId,\n\t\t\t\tdragPreview,\n\t\t\t\tthis.dragPreviewOptions,\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate didHandlerIdChange(): boolean {\n\t\treturn this.lastConnectedHandlerId !== this.handlerId\n\t}\n\n\tprivate didConnectedDragSourceChange(): boolean {\n\t\treturn this.lastConnectedDragSource !== this.dragSource\n\t}\n\n\tprivate didConnectedDragPreviewChange(): boolean {\n\t\treturn this.lastConnectedDragPreview !== this.dragPreview\n\t}\n\n\tprivate didDragSourceOptionsChange(): boolean {\n\t\treturn !shallowEqual(\n\t\t\tthis.lastConnectedDragSourceOptions,\n\t\t\tthis.dragSourceOptions,\n\t\t)\n\t}\n\n\tprivate didDragPreviewOptionsChange(): boolean {\n\t\treturn !shallowEqual(\n\t\t\tthis.lastConnectedDragPreviewOptions,\n\t\t\tthis.dragPreviewOptions,\n\t\t)\n\t}\n\n\tpublic disconnectDragSource() {\n\t\tif (this.dragSourceUnsubscribe) {\n\t\t\tthis.dragSourceUnsubscribe()\n\t\t\tthis.dragSourceUnsubscribe = undefined\n\t\t}\n\t}\n\n\tpublic disconnectDragPreview() {\n\t\tif (this.dragPreviewUnsubscribe) {\n\t\t\tthis.dragPreviewUnsubscribe()\n\t\t\tthis.dragPreviewUnsubscribe = undefined\n\t\t\tthis.dragPreviewNode = null\n\t\t\tthis.dragPreviewRef = null\n\t\t}\n\t}\n\n\tprivate get dragSource() {\n\t\treturn (\n\t\t\tthis.dragSourceNode || (this.dragSourceRef && this.dragSourceRef.current)\n\t\t)\n\t}\n\n\tprivate get dragPreview() {\n\t\treturn (\n\t\t\tthis.dragPreviewNode ||\n\t\t\t(this.dragPreviewRef && this.dragPreviewRef.current)\n\t\t)\n\t}\n\n\tprivate clearDragSource() {\n\t\tthis.dragSourceNode = null\n\t\tthis.dragSourceRef = null\n\t}\n\n\tprivate clearDragPreview() {\n\t\tthis.dragPreviewNode = null\n\t\tthis.dragPreviewRef = null\n\t}\n}\n","import { shallowEqual } from '@react-dnd/shallowequal'\nimport type { Backend, Identifier, Unsubscribe } from 'dnd-core'\nimport type { RefObject } from 'react'\n\nimport type { DropTargetOptions } from '../types/index.js'\nimport { isRef } from './isRef.js'\nimport type { Connector } from './SourceConnector.js'\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js'\n\nexport class TargetConnector implements Connector {\n\tpublic hooks = wrapConnectorHooks({\n\t\tdropTarget: (node: any, options: DropTargetOptions) => {\n\t\t\tthis.clearDropTarget()\n\t\t\tthis.dropTargetOptions = options\n\t\t\tif (isRef(node)) {\n\t\t\t\tthis.dropTargetRef = node\n\t\t\t} else {\n\t\t\t\tthis.dropTargetNode = node\n\t\t\t}\n\t\t\tthis.reconnect()\n\t\t},\n\t})\n\n\tprivate handlerId: Identifier | null = null\n\t// The drop target may either be attached via ref or connect function\n\tprivate dropTargetRef: RefObject<any> | null = null\n\tprivate dropTargetNode: any\n\tprivate dropTargetOptionsInternal: DropTargetOptions | null = null\n\tprivate unsubscribeDropTarget: Unsubscribe | undefined\n\n\tprivate lastConnectedHandlerId: Identifier | null = null\n\tprivate lastConnectedDropTarget: any = null\n\tprivate lastConnectedDropTargetOptions: DropTargetOptions | null = null\n\tprivate readonly backend: Backend\n\n\tpublic constructor(backend: Backend) {\n\t\tthis.backend = backend\n\t}\n\n\tpublic get connectTarget(): any {\n\t\treturn this.dropTarget\n\t}\n\n\tpublic reconnect(): void {\n\t\t// if nothing has changed then don't resubscribe\n\t\tconst didChange =\n\t\t\tthis.didHandlerIdChange() ||\n\t\t\tthis.didDropTargetChange() ||\n\t\t\tthis.didOptionsChange()\n\n\t\tif (didChange) {\n\t\t\tthis.disconnectDropTarget()\n\t\t}\n\n\t\tconst dropTarget = this.dropTarget\n\t\tif (!this.handlerId) {\n\t\t\treturn\n\t\t}\n\t\tif (!dropTarget) {\n\t\t\tthis.lastConnectedDropTarget = dropTarget\n\t\t\treturn\n\t\t}\n\n\t\tif (didChange) {\n\t\t\tthis.lastConnectedHandlerId = this.handlerId\n\t\t\tthis.lastConnectedDropTarget = dropTarget\n\t\t\tthis.lastConnectedDropTargetOptions = this.dropTargetOptions\n\n\t\t\tthis.unsubscribeDropTarget = this.backend.connectDropTarget(\n\t\t\t\tthis.handlerId,\n\t\t\t\tdropTarget,\n\t\t\t\tthis.dropTargetOptions,\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic receiveHandlerId(newHandlerId: Identifier | null): void {\n\t\tif (newHandlerId === this.handlerId) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.handlerId = newHandlerId\n\t\tthis.reconnect()\n\t}\n\n\tpublic get dropTargetOptions(): DropTargetOptions {\n\t\treturn this.dropTargetOptionsInternal\n\t}\n\tpublic set dropTargetOptions(options: DropTargetOptions) {\n\t\tthis.dropTargetOptionsInternal = options\n\t}\n\n\tprivate didHandlerIdChange(): boolean {\n\t\treturn this.lastConnectedHandlerId !== this.handlerId\n\t}\n\n\tprivate didDropTargetChange(): boolean {\n\t\treturn this.lastConnectedDropTarget !== this.dropTarget\n\t}\n\n\tprivate didOptionsChange(): boolean {\n\t\treturn !shallowEqual(\n\t\t\tthis.lastConnectedDropTargetOptions,\n\t\t\tthis.dropTargetOptions,\n\t\t)\n\t}\n\n\tpublic disconnectDropTarget() {\n\t\tif (this.unsubscribeDropTarget) {\n\t\t\tthis.unsubscribeDropTarget()\n\t\t\tthis.unsubscribeDropTarget = undefined\n\t\t}\n\t}\n\n\tprivate get dropTarget() {\n\t\treturn (\n\t\t\tthis.dropTargetNode || (this.dropTargetRef && this.dropTargetRef.current)\n\t\t)\n\t}\n\n\tprivate clearDropTarget() {\n\t\tthis.dropTargetRef = null\n\t\tthis.dropTargetNode = null\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { DragDropManager } from 'dnd-core'\nimport { useContext } from 'react'\n\nimport { DndContext } from '../core/index.js'\n\n/**\n * A hook to retrieve the DragDropManager from Context\n */\nexport function useDragDropManager(): DragDropManager {\n\tconst { dragDropManager } = useContext(DndContext)\n\tinvariant(dragDropManager != null, 'Expected drag drop context')\n\treturn dragDropManager as DragDropManager\n}\n","import { useMemo } from 'react'\n\nimport { SourceConnector } from '../../internals/index.js'\nimport type {\n\tDragPreviewOptions,\n\tDragSourceOptions,\n} from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\n\nexport function useDragSourceConnector(\n\tdragSourceOptions: DragSourceOptions | undefined,\n\tdragPreviewOptions: DragPreviewOptions | undefined,\n): SourceConnector {\n\tconst manager = useDragDropManager()\n\tconst connector = useMemo(\n\t\t() => new SourceConnector(manager.getBackend()),\n\t\t[manager],\n\t)\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconnector.dragSourceOptions = dragSourceOptions || null\n\t\tconnector.reconnect()\n\t\treturn () => connector.disconnectDragSource()\n\t}, [connector, dragSourceOptions])\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconnector.dragPreviewOptions = dragPreviewOptions || null\n\t\tconnector.reconnect()\n\t\treturn () => connector.disconnectDragPreview()\n\t}, [connector, dragPreviewOptions])\n\treturn connector\n}\n","import { useMemo } from 'react'\n\nimport { DragSourceMonitorImpl } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\n\nexport function useDragSourceMonitor<O, R>(): DragSourceMonitor<O, R> {\n\tconst manager = useDragDropManager()\n\treturn useMemo<DragSourceMonitor<O, R>>(\n\t\t() => new DragSourceMonitorImpl(manager),\n\t\t[manager],\n\t)\n}\n","import type { DragDropMonitor, DragSource, Identifier } from 'dnd-core'\n\nimport type { Connector } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport type { DragObjectFactory, DragSourceHookSpec } from '../types.js'\n\nexport class DragSourceImpl<O, R, P> implements DragSource {\n\tpublic constructor(\n\t\tpublic spec: DragSourceHookSpec<O, R, P>,\n\t\tprivate monitor: DragSourceMonitor<O, R>,\n\t\tprivate connector: Connector,\n\t) {}\n\n\tpublic beginDrag() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\n\t\tlet result: O | null = null\n\t\tif (typeof spec.item === 'object') {\n\t\t\tresult = spec.item as O\n\t\t} else if (typeof spec.item === 'function') {\n\t\t\tresult = (spec.item as DragObjectFactory<O>)(monitor)\n\t\t} else {\n\t\t\tresult = {} as O\n\t\t}\n\t\treturn result ?? null\n\t}\n\n\tpublic canDrag() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tif (typeof spec.canDrag === 'boolean') {\n\t\t\treturn spec.canDrag\n\t\t} else if (typeof spec.canDrag === 'function') {\n\t\t\treturn spec.canDrag(monitor)\n\t\t} else {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tpublic isDragging(globalMonitor: DragDropMonitor, target: Identifier) {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tconst { isDragging } = spec\n\t\treturn isDragging\n\t\t\t? isDragging(monitor)\n\t\t\t: target === globalMonitor.getSourceId()\n\t}\n\n\tpublic endDrag() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tconst connector = this.connector\n\t\tconst { end } = spec\n\t\tif (end) {\n\t\t\tend(monitor.getItem(), monitor)\n\t\t}\n\t\tconnector.reconnect()\n\t}\n}\n","import { useEffect, useMemo } from 'react'\n\nimport type { Connector } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport type { DragSourceHookSpec } from '../types.js'\nimport { DragSourceImpl } from './DragSourceImpl.js'\n\nexport function useDragSource<O, R, P>(\n\tspec: DragSourceHookSpec<O, R, P>,\n\tmonitor: DragSourceMonitor<O, R>,\n\tconnector: Connector,\n) {\n\tconst handler = useMemo(\n\t\t() => new DragSourceImpl(spec, monitor, connector),\n\t\t[monitor, connector],\n\t)\n\tuseEffect(() => {\n\t\thandler.spec = spec\n\t}, [spec])\n\treturn handler\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { Identifier } from 'dnd-core'\nimport { useMemo } from 'react'\n\nimport type { DragSourceHookSpec } from '../types.js'\n\nexport function useDragType(\n\tspec: DragSourceHookSpec<any, any, any>,\n): Identifier {\n\treturn useMemo(() => {\n\t\tconst result: Identifier = spec.type\n\t\tinvariant(result != null, 'spec.type must be defined')\n\t\treturn result\n\t}, [spec])\n}\n","import type { SourceConnector } from '../../internals/index.js'\nimport { registerSource } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport type { DragSourceHookSpec } from '../types.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\nimport { useDragSource } from './useDragSource.js'\nimport { useDragType } from './useDragType.js'\n\nexport function useRegisteredDragSource<O, R, P>(\n\tspec: DragSourceHookSpec<O, R, P>,\n\tmonitor: DragSourceMonitor<O, R>,\n\tconnector: SourceConnector,\n): void {\n\tconst manager = useDragDropManager()\n\tconst handler = useDragSource(spec, monitor, connector)\n\tconst itemType = useDragType(spec)\n\n\tuseIsomorphicLayoutEffect(\n\t\tfunction registerDragSource() {\n\t\t\tif (itemType != null) {\n\t\t\t\tconst [handlerId, unregister] = registerSource(\n\t\t\t\t\titemType,\n\t\t\t\t\thandler,\n\t\t\t\t\tmanager,\n\t\t\t\t)\n\t\t\t\tmonitor.receiveHandlerId(handlerId)\n\t\t\t\tconnector.receiveHandlerId(handlerId)\n\t\t\t\treturn unregister\n\t\t\t}\n\t\t\treturn\n\t\t},\n\t\t[manager, monitor, connector, handler, itemType],\n\t)\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tConnectDragPreview,\n\tConnectDragSource,\n} from '../../types/index.js'\nimport type { DragSourceHookSpec, FactoryOrInstance } from '../types.js'\nimport { useCollectedProps } from '../useCollectedProps.js'\nimport { useOptionalFactory } from '../useOptionalFactory.js'\nimport { useConnectDragPreview, useConnectDragSource } from './connectors.js'\nimport { useDragSourceConnector } from './useDragSourceConnector.js'\nimport { useDragSourceMonitor } from './useDragSourceMonitor.js'\nimport { useRegisteredDragSource } from './useRegisteredDragSource.js'\n\n/**\n * useDragSource hook\n * @param sourceSpec The drag source specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\nexport function useDrag<\n\tDragObject = unknown,\n\tDropResult = unknown,\n\tCollectedProps = unknown,\n>(\n\tspecArg: FactoryOrInstance<\n\t\tDragSourceHookSpec<DragObject, DropResult, CollectedProps>\n\t>,\n\tdeps?: unknown[],\n): [CollectedProps, ConnectDragSource, ConnectDragPreview] {\n\tconst spec = useOptionalFactory(specArg, deps)\n\tinvariant(\n\t\t!(spec as any).begin,\n\t\t`useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)`,\n\t)\n\n\tconst monitor = useDragSourceMonitor<DragObject, DropResult>()\n\tconst connector = useDragSourceConnector(spec.options, spec.previewOptions)\n\tuseRegisteredDragSource(spec, monitor, connector)\n\n\treturn [\n\t\tuseCollectedProps(spec.collect, monitor, connector),\n\t\tuseConnectDragSource(connector),\n\t\tuseConnectDragPreview(connector),\n\t]\n}\n","import { useMemo } from 'react'\n\nimport type { TargetConnector } from '../../internals/index.js'\n\nexport function useConnectDropTarget(connector: TargetConnector) {\n\treturn useMemo(() => connector.hooks.dropTarget(), [connector])\n}\n","import { useMemo } from 'react'\n\nimport { TargetConnector } from '../../internals/index.js'\nimport type { DropTargetOptions } from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\n\nexport function useDropTargetConnector(\n\toptions: DropTargetOptions,\n): TargetConnector {\n\tconst manager = useDragDropManager()\n\tconst connector = useMemo(\n\t\t() => new TargetConnector(manager.getBackend()),\n\t\t[manager],\n\t)\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconnector.dropTargetOptions = options || null\n\t\tconnector.reconnect()\n\t\treturn () => connector.disconnectDropTarget()\n\t}, [options])\n\treturn connector\n}\n","import { useMemo } from 'react'\n\nimport { DropTargetMonitorImpl } from '../../internals/index.js'\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\n\nexport function useDropTargetMonitor<O, R>(): DropTargetMonitor<O, R> {\n\tconst manager = useDragDropManager()\n\treturn useMemo(() => new DropTargetMonitorImpl(manager), [manager])\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { Identifier } from 'dnd-core'\nimport { useMemo } from 'react'\n\nimport type { DropTargetHookSpec } from '../types.js'\n\n/**\n * Internal utility hook to get an array-version of spec.accept.\n * The main utility here is that we aren't creating a new array on every render if a non-array spec.accept is passed in.\n * @param spec\n */\nexport function useAccept<O, R, P>(\n\tspec: DropTargetHookSpec<O, R, P>,\n): Identifier[] {\n\tconst { accept } = spec\n\treturn useMemo(() => {\n\t\tinvariant(spec.accept != null, 'accept must be defined')\n\t\treturn Array.isArray(accept) ? accept : [accept]\n\t}, [accept])\n}\n","import type { DropTarget } from 'dnd-core'\n\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport type { DropTargetHookSpec } from '../types.js'\n\nexport class DropTargetImpl<O, R, P> implements DropTarget {\n\tpublic constructor(\n\t\tpublic spec: DropTargetHookSpec<O, R, P>,\n\t\tprivate monitor: DropTargetMonitor<O, R>,\n\t) {}\n\n\tpublic canDrop() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\treturn spec.canDrop ? spec.canDrop(monitor.getItem(), monitor) : true\n\t}\n\n\tpublic hover() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tif (spec.hover) {\n\t\t\tspec.hover(monitor.getItem(), monitor)\n\t\t}\n\t}\n\n\tpublic drop() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tif (spec.drop) {\n\t\t\treturn spec.drop(monitor.getItem(), monitor)\n\t\t}\n\t\treturn\n\t}\n}\n","import { useEffect, useMemo } from 'react'\n\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport type { DropTargetHookSpec } from '../types.js'\nimport { DropTargetImpl } from './DropTargetImpl.js'\n\nexport function useDropTarget<O, R, P>(\n\tspec: DropTargetHookSpec<O, R, P>,\n\tmonitor: DropTargetMonitor<O, R>,\n) {\n\tconst dropTarget = useMemo(() => new DropTargetImpl(spec, monitor), [monitor])\n\tuseEffect(() => {\n\t\tdropTarget.spec = spec\n\t}, [spec])\n\treturn dropTarget\n}\n","import type { TargetConnector } from '../../internals/index.js'\nimport { registerTarget } from '../../internals/index.js'\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport type { DropTargetHookSpec } from '../types.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\nimport { useAccept } from './useAccept.js'\nimport { useDropTarget } from './useDropTarget.js'\n\nexport function useRegisteredDropTarget<O, R, P>(\n\tspec: DropTargetHookSpec<O, R, P>,\n\tmonitor: DropTargetMonitor<O, R>,\n\tconnector: TargetConnector,\n): void {\n\tconst manager = useDragDropManager()\n\tconst dropTarget = useDropTarget(spec, monitor)\n\tconst accept = useAccept(spec)\n\n\tuseIsomorphicLayoutEffect(\n\t\tfunction registerDropTarget() {\n\t\t\tconst [handlerId, unregister] = registerTarget(\n\t\t\t\taccept,\n\t\t\t\tdropTarget,\n\t\t\t\tmanager,\n\t\t\t)\n\t\t\tmonitor.receiveHandlerId(handlerId)\n\t\t\tconnector.receiveHandlerId(handlerId)\n\t\t\treturn unregister\n\t\t},\n\t\t[\n\t\t\tmanager,\n\t\t\tmonitor,\n\t\t\tdropTarget,\n\t\t\tconnector,\n\t\t\taccept.map((a) => a.toString()).join('|'),\n\t\t],\n\t)\n}\n","import type { ConnectDropTarget } from '../../types/index.js'\nimport type { DropTargetHookSpec, FactoryOrInstance } from '../types.js'\nimport { useCollectedProps } from '../useCollectedProps.js'\nimport { useOptionalFactory } from '../useOptionalFactory.js'\nimport { useConnectDropTarget } from './connectors.js'\nimport { useDropTargetConnector } from './useDropTargetConnector.js'\nimport { useDropTargetMonitor } from './useDropTargetMonitor.js'\nimport { useRegisteredDropTarget } from './useRegisteredDropTarget.js'\n\n/**\n * useDropTarget Hook\n * @param spec The drop target specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\nexport function useDrop<\n\tDragObject = unknown,\n\tDropResult = unknown,\n\tCollectedProps = unknown,\n>(\n\tspecArg: FactoryOrInstance<\n\t\tDropTargetHookSpec<DragObject, DropResult, CollectedProps>\n\t>,\n\tdeps?: unknown[],\n): [CollectedProps, ConnectDropTarget] {\n\tconst spec = useOptionalFactory(specArg, deps)\n\tconst monitor = useDropTargetMonitor<DragObject, DropResult>()\n\tconst connector = useDropTargetConnector(spec.options)\n\tuseRegisteredDropTarget(spec, monitor, connector)\n\n\treturn [\n\t\tuseCollectedProps(spec.collect, monitor, connector),\n\t\tuseConnectDropTarget(connector),\n\t]\n}\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ColumnPinningButtons: FC<Props> = ({ column, instance }) => {\n const {\n options: {\n icons: { PushPinIcon },\n localization,\n },\n } = instance;\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n };\n\n return (\n <Box sx={{ minWidth: '70px', textAlign: 'center' }}>\n {column.getIsPinned() ? (\n <Tooltip arrow title={localization.unpin}>\n <IconButton onClick={() => handlePinColumn(false)} size=\"small\">\n <PushPinIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <>\n <Tooltip arrow title={localization.pinToLeft}>\n <IconButton onClick={() => handlePinColumn('left')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.pinToRight}>\n <IconButton onClick={() => handlePinColumn('right')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(-90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n );\n};\n","import { IconButton, Tooltip } from '@mui/material';\nimport React, { FC, forwardRef, Ref } from 'react';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n ref: Ref<HTMLButtonElement>;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_GrabHandleButton: FC<Props> = forwardRef(\n ({ instance }, ref) => {\n const {\n options: {\n icons: { DragHandleIcon },\n localization,\n },\n } = instance;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.grab}\n >\n <IconButton\n disableRipple\n ref={ref}\n size=\"small\"\n sx={{\n cursor: 'grab',\n m: 0,\n opacity: 0.5,\n p: '2px',\n transition: 'all 0.2s ease-in-out',\n '&:hover': {\n backgroundColor: 'transparent',\n opacity: 1,\n },\n '&:active': {\n cursor: 'grabbing',\n },\n }}\n >\n <DragHandleIcon />\n </IconButton>\n </Tooltip>\n );\n },\n);\n","import { ColumnDef, ColumnOrderState, Table } from '@tanstack/react-table';\nimport {\n MaterialReactTableProps,\n MRT_Column,\n MRT_ColumnDef,\n MRT_FilterFn,\n} from '.';\nimport { MRT_FilterFns } from './filtersFns';\n\nexport const getAllLeafColumnDefs = (\n columns: MRT_ColumnDef[],\n): MRT_ColumnDef[] => {\n let lowestLevelColumns: MRT_ColumnDef[] = columns;\n let currentCols: MRT_ColumnDef[] | undefined = columns;\n while (!!currentCols?.length && currentCols.some((col) => col.columns)) {\n const nextCols: MRT_ColumnDef[] = currentCols\n .filter((col) => !!col.columns)\n .map((col) => col.columns)\n .flat() as MRT_ColumnDef[];\n if (nextCols.every((col) => !col?.columns)) {\n lowestLevelColumns = [...lowestLevelColumns, ...nextCols];\n }\n currentCols = nextCols;\n }\n return lowestLevelColumns.filter((col) => !col.columns);\n};\n\nexport const createGroup = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: MRT_ColumnDef<D>,\n currentFilterFns: { [key: string]: MRT_FilterFn },\n): ColumnDef<D> =>\n table.createGroup({\n ...column,\n columns: column?.columns?.map?.((col) =>\n col.columns\n ? createGroup<D>(table, col, currentFilterFns)\n : createDataColumn(table, col, currentFilterFns),\n ),\n } as any);\n\nexport const createDataColumn = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: MRT_ColumnDef<D>,\n currentFilterFns: { [key: string]: MRT_FilterFn },\n): ColumnDef<D> => // @ts-ignore\n table.createDataColumn(column.id, {\n filterFn:\n currentFilterFns[column.id] instanceof Function\n ? currentFilterFns[column.id]\n : // @ts-ignore\n MRT_FilterFns[currentFilterFns[column.id]],\n ...column,\n }) as any;\n\nexport const createDisplayColumn = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: Omit<MRT_ColumnDef<D>, 'header'> & { header?: string },\n): ColumnDef<D> => table.createDisplayColumn(column as ColumnDef<D>);\n\nexport const reorderColumn = (\n movingColumn: MRT_Column,\n receivingColumn: MRT_Column,\n columnOrder: ColumnOrderState,\n): ColumnOrderState => {\n if (movingColumn.getCanPin()) {\n movingColumn.pin(receivingColumn.getIsPinned());\n }\n columnOrder.splice(\n columnOrder.indexOf(receivingColumn.id),\n 0,\n columnOrder.splice(columnOrder.indexOf(movingColumn.id), 1)[0],\n );\n return [...columnOrder];\n};\n\nexport const getLeadingDisplayColumnIds = (\n props: MaterialReactTableProps<any>,\n) =>\n [\n ((props.positionActionsColumn === 'first' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n (props.enableExpanding || props.enableGrouping) && 'mrt-expand',\n props.enableRowSelection && 'mrt-select',\n props.enableRowNumbers && 'mrt-row-numbers',\n ].filter(Boolean) as string[];\n\nexport const getTrailingDisplayColumnIds = (\n props: MaterialReactTableProps<any>,\n) => [\n ((props.positionActionsColumn === 'last' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n];\n\nexport const getDefaultColumnOrderIds = (props: MaterialReactTableProps<any>) =>\n [\n ...getLeadingDisplayColumnIds(props),\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map((c) => c.id),\n ...getTrailingDisplayColumnIds(props),\n ].filter(Boolean) as string[];\n","import React, { FC, Ref } from 'react';\nimport { useDrag, useDrop } from 'react-dnd';\nimport {\n Box,\n FormControlLabel,\n MenuItem,\n Switch,\n Tooltip,\n Typography,\n} from '@mui/material';\nimport { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n allColumns: MRT_Column[];\n column: MRT_Column;\n isSubMenu?: boolean;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenuItems: FC<Props> = ({\n allColumns,\n column,\n isSubMenu,\n instance,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n enableHiding,\n enablePinning,\n localization,\n },\n setColumnOrder,\n } = instance;\n\n const { columnOrder } = getState();\n\n const { columnDef, columnDefType } = column;\n\n const [, dropRef] = useDrop({\n accept: 'column',\n drop: (movingColumn: MRT_Column) => {\n const newColumnOrder = reorderColumn(movingColumn, column, columnOrder);\n setColumnOrder(newColumnOrder);\n },\n });\n\n const [, dragRef, previewRef] = useDrag({\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n item: () => column,\n type: 'column',\n });\n\n const switchChecked =\n (columnDefType !== 'group' && column.getIsVisible()) ||\n (columnDefType === 'group' &&\n column.getLeafColumns().some((col) => col.getIsVisible()));\n\n const handleToggleColumnHidden = (column: MRT_Column) => {\n if (columnDefType === 'group') {\n column?.columns?.forEach?.((childColumn: MRT_Column) => {\n childColumn.toggleVisibility(!switchChecked);\n });\n } else {\n column.toggleVisibility();\n }\n };\n\n return (\n <>\n <MenuItem\n ref={columnDefType === 'data' ? dropRef : undefined}\n sx={{\n alignItems: 'center',\n justifyContent: 'flex-start',\n my: 0,\n pl: `${(column.depth + 0.5) * 2}rem`,\n py: '6px',\n }}\n >\n <Box\n ref={previewRef}\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n gap: '8px',\n }}\n >\n {columnDefType !== 'group' &&\n enableColumnOrdering &&\n !allColumns.some((col) => col.columnDefType === 'group') &&\n (columnDef.enableColumnOrdering !== false ? (\n <MRT_GrabHandleButton\n ref={dragRef as Ref<HTMLButtonElement>}\n instance={instance}\n />\n ) : (\n <Box sx={{ width: '28px' }} />\n ))}\n {enablePinning &&\n !isSubMenu &&\n (column.getCanPin() ? (\n <MRT_ColumnPinningButtons column={column} instance={instance} />\n ) : (\n <Box sx={{ width: '70px' }} />\n ))}\n {enableHiding ? (\n <FormControlLabel\n componentsProps={{\n typography: {\n sx: {\n mb: 0,\n opacity: columnDefType !== 'display' ? 1 : 0.5,\n },\n },\n }}\n checked={switchChecked}\n control={\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.toggleVisibility}\n >\n <Switch />\n </Tooltip>\n }\n disabled={\n (isSubMenu && switchChecked) ||\n !column.getCanHide() ||\n column.getIsGrouped()\n }\n label={columnDef.header}\n onChange={() => handleToggleColumnHidden(column)}\n />\n ) : (\n <Typography sx={{ alignSelf: 'center' }}>\n {columnDef.header}\n </Typography>\n )}\n </Box>\n </MenuItem>\n {column.columns?.map((c: MRT_Column, i) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n key={`${i}-${c.id}`}\n column={c}\n isSubMenu={isSubMenu}\n instance={instance}\n />\n ))}\n </>\n );\n};\n","import React, { FC, useMemo } from 'react';\nimport { Button, Menu, Divider, Box } from '@mui/material';\nimport { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems';\nimport type { MRT_Column, MRT_TableInstance } from '..';\nimport { getDefaultColumnOrderIds } from '../utils';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n isSubMenu?: boolean;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenu: FC<Props> = ({\n anchorEl,\n isSubMenu,\n setAnchorEl,\n instance,\n}) => {\n const {\n getAllColumns,\n getAllLeafColumns,\n getCenterLeafColumns,\n getIsAllColumnsVisible,\n getIsSomeColumnsPinned,\n getIsSomeColumnsVisible,\n getLeftLeafColumns,\n getRightLeafColumns,\n getState,\n toggleAllColumnsVisible,\n options: { localization, enablePinning, enableColumnOrdering },\n } = instance;\n\n const { density, columnOrder, columnPinning } = getState();\n\n const hideAllColumns = () => {\n getAllLeafColumns()\n .filter((col) => col.columnDef.enableHiding !== false)\n .forEach((col) => col.toggleVisibility(false));\n };\n\n const allColumns = useMemo(() => {\n const columns = getAllColumns();\n if (\n columnOrder.length > 0 &&\n !columns.some((col) => col.columnDefType === 'group')\n ) {\n return [\n ...getLeftLeafColumns(),\n ...Array.from(new Set(columnOrder)).map((colId) =>\n getCenterLeafColumns().find((col) => col?.id === colId),\n ),\n ...getRightLeafColumns(),\n ].filter(Boolean);\n }\n return columns;\n }, [\n columnOrder,\n columnPinning,\n getAllColumns(),\n getCenterLeafColumns(),\n getLeftLeafColumns(),\n getRightLeafColumns(),\n ]) as MRT_Column[];\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: isSubMenu ? 'center' : 'space-between',\n p: '0.5rem',\n pt: 0,\n }}\n >\n {!isSubMenu && (\n <Button\n disabled={!getIsSomeColumnsVisible()}\n onClick={hideAllColumns}\n >\n {localization.hideAll}\n </Button>\n )}\n {!isSubMenu && enableColumnOrdering && (\n <Button\n onClick={() =>\n instance.setColumnOrder(\n getDefaultColumnOrderIds(instance.options as any),\n )\n }\n >\n {localization.resetOrder}\n </Button>\n )}\n {!isSubMenu && enablePinning && (\n <Button\n disabled={!getIsSomeColumnsPinned()}\n onClick={() => instance.resetColumnPinning(true)}\n >\n {localization.unpinAll}\n </Button>\n )}\n <Button\n disabled={getIsAllColumnsVisible()}\n onClick={() => toggleAllColumnsVisible(true)}\n >\n {localization.showAll}\n </Button>\n </Box>\n <Divider />\n {allColumns.map((column, index) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={column}\n isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n instance={instance}\n />\n ))}\n </Menu>\n );\n};\n","import React, { FC, useState } from 'react';\nimport { Box, IconButton, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\nimport { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';\nimport { MRT_ShowHideColumnsMenu } from './MRT_ShowHideColumnsMenu';\n\nexport const commonMenuItemStyles = {\n py: '6px',\n my: 0,\n justifyContent: 'space-between',\n alignItems: 'center',\n};\n\nexport const commonListItemStyles = {\n display: 'flex',\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header: MRT_Header;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ColumnActionMenu: FC<Props> = ({\n anchorEl,\n header,\n setAnchorEl,\n instance,\n}) => {\n const {\n getState,\n toggleAllColumnsVisible,\n setColumnOrder,\n options: {\n enableColumnFilterChangeMode,\n enableColumnFilters,\n enableColumnResizing,\n enableGrouping,\n enableHiding,\n enablePinning,\n enableSorting,\n enabledColumnFilterOptions,\n icons: {\n ArrowRightIcon,\n ClearAllIcon,\n ViewColumnIcon,\n DynamicFeedIcon,\n FilterListIcon,\n FilterListOffIcon,\n PushPinIcon,\n SortIcon,\n RestartAltIcon,\n VisibilityOffIcon,\n },\n tableId,\n localization,\n },\n setShowFilters,\n } = instance;\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const { columnSizing, columnVisibility, density } = getState();\n\n const [filterMenuAnchorEl, setFilterMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const [showHideColumnsMenuAnchorEl, setShowHideColumnsMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const handleClearSort = () => {\n column.clearSorting();\n setAnchorEl(null);\n };\n\n const handleSortAsc = () => {\n column.toggleSorting(false);\n setAnchorEl(null);\n };\n\n const handleSortDesc = () => {\n column.toggleSorting(true);\n setAnchorEl(null);\n };\n\n const handleResetColumnSize = () => {\n column.resetSize();\n setAnchorEl(null);\n };\n\n const handleHideColumn = () => {\n column.toggleVisibility(false);\n setAnchorEl(null);\n };\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n setAnchorEl(null);\n };\n\n const handleGroupByColumn = () => {\n column.toggleGrouping();\n setColumnOrder((old) => ['mrt-expand', ...old]);\n setAnchorEl(null);\n };\n\n const handleClearFilter = () => {\n column.setFilterValue('');\n setAnchorEl(null);\n };\n\n const handleFilterByColumn = () => {\n setShowFilters(true);\n setTimeout(\n () =>\n document\n .getElementById(\n // @ts-ignore\n header.muiTableHeadCellFilterTextFieldProps?.id ??\n `mrt-${tableId}-${header.id}-filter-text-field`,\n )\n ?.focus(),\n 200,\n );\n setAnchorEl(null);\n };\n\n const handleShowAllColumns = () => {\n toggleAllColumnsVisible(true);\n setAnchorEl(null);\n };\n\n const handleOpenFilterModeMenu = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setFilterMenuAnchorEl(event.currentTarget);\n };\n\n const handleOpenShowHideColumnsMenu = (\n event: React.MouseEvent<HTMLElement>,\n ) => {\n event.stopPropagation();\n setShowHideColumnsMenuAnchorEl(event.currentTarget);\n };\n\n const isSelectFilter = !!columnDef.filterSelectOptions;\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showFilterModeSubMenu =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableSorting &&\n column.getCanSort() && [\n <MenuItem\n disabled={!column.getIsSorted()}\n key={0}\n onClick={handleClearSort}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ClearAllIcon />\n </ListItemIcon>\n {localization.clearSort}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsSorted() === 'asc'}\n key={1}\n onClick={handleSortAsc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon />\n </ListItemIcon>\n {localization.sortByColumnAsc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableColumnFilters || enableGrouping || enableHiding}\n key={2}\n disabled={column.getIsSorted() === 'desc'}\n onClick={handleSortDesc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />\n </ListItemIcon>\n {localization.sortByColumnDesc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnFilters &&\n column.getCanFilter() &&\n [\n <MenuItem\n disabled={!column.getFilterValue()}\n key={0}\n onClick={handleClearFilter}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListOffIcon />\n </ListItemIcon>\n {localization.clearFilter}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableGrouping || enableHiding}\n key={1}\n onClick={handleFilterByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListIcon />\n </ListItemIcon>\n {localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n {showFilterModeSubMenu && (\n <IconButton\n onClick={handleOpenFilterModeMenu}\n onMouseEnter={handleOpenFilterModeMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </MenuItem>,\n showFilterModeSubMenu && (\n <MRT_FilterOptionMenu\n anchorEl={filterMenuAnchorEl}\n header={header}\n key={2}\n onSelect={handleFilterByColumn}\n setAnchorEl={setFilterMenuAnchorEl}\n instance={instance}\n />\n ),\n ].filter(Boolean)}\n {enableGrouping &&\n column.getCanGroup() && [\n <MenuItem\n divider={enablePinning}\n key={0}\n onClick={handleGroupByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <DynamicFeedIcon />\n </ListItemIcon>\n {localization[\n column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn'\n ]?.replace('{column}', String(columnDef.header))}\n </Box>\n </MenuItem>,\n ]}\n {enablePinning &&\n column.getCanPin() && [\n <MenuItem\n disabled={column.getIsPinned() === 'left' || !column.getCanPin()}\n key={0}\n onClick={() => handlePinColumn('left')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(90deg)' }} />\n </ListItemIcon>\n {localization.pinToLeft}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsPinned() === 'right' || !column.getCanPin()}\n key={1}\n onClick={() => handlePinColumn('right')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(-90deg)' }} />\n </ListItemIcon>\n {localization.pinToRight}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={!column.getIsPinned()}\n divider={enableHiding}\n key={2}\n onClick={() => handlePinColumn(false)}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon />\n </ListItemIcon>\n {localization.unpin}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnResizing && [\n <MenuItem\n disabled={!column.getCanResize() || !columnSizing[column.id]}\n key={0}\n onClick={handleResetColumnSize}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <RestartAltIcon />\n </ListItemIcon>\n {localization.resetColumnSize}\n </Box>\n </MenuItem>,\n ]}\n {enableHiding && [\n <MenuItem\n disabled={columnDef.enableHiding === false}\n key={0}\n onClick={handleHideColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <VisibilityOffIcon />\n </ListItemIcon>\n {localization.hideColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={\n !Object.values(columnVisibility).filter((visible) => !visible)\n .length\n }\n key={1}\n onClick={handleShowAllColumns}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ViewColumnIcon />\n </ListItemIcon>\n {localization.showAllColumns?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n <IconButton\n onClick={handleOpenShowHideColumnsMenu}\n onMouseEnter={handleOpenShowHideColumnsMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n </MenuItem>,\n <MRT_ShowHideColumnsMenu\n anchorEl={showHideColumnsMenuAnchorEl}\n isSubMenu\n key={2}\n setAnchorEl={setShowHideColumnsMenuAnchorEl}\n instance={instance}\n />,\n ]}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\nimport {\n commonListItemStyles,\n commonMenuItemStyles,\n} from './MRT_ColumnActionMenu';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n handleEdit: () => void;\n row: MRT_Row;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_RowActionMenu: FC<Props> = ({\n anchorEl,\n handleEdit,\n row,\n setAnchorEl,\n instance,\n}) => {\n const {\n getState,\n options: {\n icons: { EditIcon },\n enableEditing,\n localization,\n renderRowActionMenuItems,\n },\n } = instance;\n\n const { density } = getState();\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableEditing && (\n <MenuItem onClick={handleEdit} sx={commonMenuItemStyles}>\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <EditIcon />\n </ListItemIcon>\n {localization.edit}\n </Box>\n </MenuItem>\n )}\n {renderRowActionMenuItems?.({\n row,\n instance,\n closeMenu: () => setAnchorEl(null),\n })}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_EditActionButtons: FC<Props> = ({ row, instance }) => {\n const {\n getState,\n options: {\n icons: { CancelIcon, SaveIcon },\n localization,\n onEditRowSubmit,\n },\n setCurrentEditingRow,\n } = instance;\n\n const { currentEditingRow } = getState();\n\n const handleCancel = () => {\n row._valuesCache = row.original ?? {};\n setCurrentEditingRow(null);\n };\n\n const handleSave = () => {\n onEditRowSubmit?.({ row: currentEditingRow ?? row, instance });\n setCurrentEditingRow(null);\n };\n\n return (\n <Box sx={{ display: 'flex', gap: '0.75rem' }}>\n <Tooltip arrow title={localization.cancel}>\n <IconButton aria-label={localization.cancel} onClick={handleCancel}>\n <CancelIcon />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.save}>\n <IconButton\n aria-label={localization.save}\n color=\"info\"\n onClick={handleSave}\n >\n <SaveIcon />\n </IconButton>\n </Tooltip>\n </Box>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu';\nimport { MRT_EditActionButtons } from './MRT_EditActionButtons';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\nconst commonIconButtonStyles = {\n height: '2rem',\n ml: '10px',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n};\n\ninterface Props {\n row: MRT_Row;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, instance }) => {\n const {\n getState,\n options: {\n enableEditing,\n icons: { EditIcon, MoreHorizIcon },\n localization,\n renderRowActionMenuItems,\n renderRowActions,\n },\n setCurrentEditingRow,\n } = instance;\n\n const { currentEditingRow } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleOpenRowActionMenu = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const handleStartEditMode = () => {\n setCurrentEditingRow({ ...row });\n setAnchorEl(null);\n };\n\n return (\n <>\n {renderRowActions ? (\n <>{renderRowActions({ row, instance })}</>\n ) : row.id === currentEditingRow?.id ? (\n <MRT_EditActionButtons row={row} instance={instance} />\n ) : !renderRowActionMenuItems && enableEditing ? (\n <Tooltip placement=\"right\" arrow title={localization.edit}>\n <IconButton sx={commonIconButtonStyles} onClick={handleStartEditMode}>\n <EditIcon />\n </IconButton>\n </Tooltip>\n ) : renderRowActionMenuItems ? (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.rowActions}\n >\n <IconButton\n aria-label={localization.rowActions}\n onClick={handleOpenRowActionMenu}\n size=\"small\"\n sx={commonIconButtonStyles}\n >\n <MoreHorizIcon />\n </IconButton>\n </Tooltip>\n <MRT_RowActionMenu\n anchorEl={anchorEl}\n handleEdit={handleStartEditMode}\n row={row}\n setAnchorEl={setAnchorEl}\n instance={instance}\n />\n </>\n ) : null}\n </>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { Checkbox, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row?: MRT_Row;\n selectAll?: boolean;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, instance }) => {\n const {\n getRowModel,\n getPaginationRowModel,\n getSelectedRowModel,\n getState,\n options: {\n localization,\n muiSelectCheckboxProps,\n muiSelectAllCheckboxProps,\n onRowSelectionChanged,\n onRowSelectAllChanged,\n selectAllMode,\n },\n } = instance;\n\n const { density } = getState();\n\n const handleSelectChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (selectAll) {\n if (selectAllMode === 'all') {\n instance.getToggleAllRowsSelectedHandler()(event as any);\n } else if (selectAllMode === 'page') {\n instance.getToggleAllPageRowsSelectedHandler()(event as any);\n }\n onRowSelectAllChanged?.({\n event,\n selectedRows: event.target.checked\n ? selectAllMode === 'all'\n ? getRowModel().flatRows\n : getPaginationRowModel().flatRows\n : [],\n instance,\n });\n } else if (row) {\n row?.getToggleSelectedHandler()(event as any);\n onRowSelectionChanged?.({\n event,\n row,\n selectedRows: event.target.checked\n ? [...getSelectedRowModel().flatRows, row]\n : getSelectedRowModel().flatRows.filter(\n (selectedRow) => selectedRow.id !== row.id,\n ),\n instance,\n });\n }\n };\n\n const checkboxProps = selectAll\n ? muiSelectAllCheckboxProps instanceof Function\n ? muiSelectAllCheckboxProps({ instance })\n : muiSelectAllCheckboxProps\n : muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ row: row as MRT_Row, instance })\n : muiSelectCheckboxProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={\n selectAll ? localization.toggleSelectAll : localization.toggleSelectRow\n }\n >\n <Checkbox\n checked={\n selectAll ? instance.getIsAllRowsSelected() : row?.getIsSelected()\n }\n indeterminate={\n selectAll\n ? instance.getIsSomeRowsSelected()\n : row?.getIsSomeSelected()\n }\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n onChange={handleSelectChange}\n size={density === 'compact' ? 'small' : 'medium'}\n {...checkboxProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...checkboxProps?.sx,\n }}\n />\n </Tooltip>\n );\n};\n","// cheap lodash replacements\n\nexport function memoize<T>(fn: () => T): () => T {\n\tlet result: T | null = null\n\tconst memoized = () => {\n\t\tif (result == null) {\n\t\t\tresult = fn()\n\t\t}\n\t\treturn result\n\t}\n\treturn memoized\n}\n\n/**\n * drop-in replacement for _.without\n */\nexport function without<T>(items: T[], item: T) {\n\treturn items.filter((i) => i !== item)\n}\n\nexport function union<T extends string | number>(itemsA: T[], itemsB: T[]) {\n\tconst set = new Set<T>()\n\tconst insertItem = (item: T) => set.add(item)\n\titemsA.forEach(insertItem)\n\titemsB.forEach(insertItem)\n\n\tconst result: T[] = []\n\tset.forEach((key) => result.push(key))\n\treturn result\n}\n","import { union, without } from './utils/js_utils.js'\n\ntype NodePredicate = (node: Node | null | undefined) => boolean\n\nexport class EnterLeaveCounter {\n\tprivate entered: any[] = []\n\tprivate isNodeInDocument: NodePredicate\n\n\tpublic constructor(isNodeInDocument: NodePredicate) {\n\t\tthis.isNodeInDocument = isNodeInDocument\n\t}\n\n\tpublic enter(enteringNode: EventTarget | null): boolean {\n\t\tconst previousLength = this.entered.length\n\n\t\tconst isNodeEntered = (node: Node): boolean =>\n\t\t\tthis.isNodeInDocument(node) &&\n\t\t\t(!node.contains || node.contains(enteringNode as Node))\n\n\t\tthis.entered = union(this.entered.filter(isNodeEntered), [enteringNode])\n\n\t\treturn previousLength === 0 && this.entered.length > 0\n\t}\n\n\tpublic leave(leavingNode: EventTarget | null): boolean {\n\t\tconst previousLength = this.entered.length\n\n\t\tthis.entered = without(\n\t\t\tthis.entered.filter(this.isNodeInDocument),\n\t\t\tleavingNode,\n\t\t)\n\n\t\treturn previousLength > 0 && this.entered.length === 0\n\t}\n\n\tpublic reset(): void {\n\t\tthis.entered = []\n\t}\n}\n","import type { DragDropMonitor } from 'dnd-core'\n\nimport type { NativeItemConfig } from './nativeTypesConfig.js'\n\nexport class NativeDragSource {\n\tpublic item: any\n\tprivate config: NativeItemConfig\n\n\tpublic constructor(config: NativeItemConfig) {\n\t\tthis.config = config\n\t\tthis.item = {}\n\t\tthis.initializeExposedProperties()\n\t}\n\n\tprivate initializeExposedProperties() {\n\t\tObject.keys(this.config.exposeProperties).forEach((property) => {\n\t\t\tObject.defineProperty(this.item, property, {\n\t\t\t\tconfigurable: true, // This is needed to allow redefining it later\n\t\t\t\tenumerable: true,\n\t\t\t\tget() {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`Browser doesn't allow reading \"${property}\" until the drop event.`,\n\t\t\t\t\t)\n\t\t\t\t\treturn null\n\t\t\t\t},\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic loadDataTransfer(dataTransfer: DataTransfer | null | undefined): void {\n\t\tif (dataTransfer) {\n\t\t\tconst newProperties: PropertyDescriptorMap = {}\n\t\t\tObject.keys(this.config.exposeProperties).forEach((property) => {\n\t\t\t\tconst propertyFn = this.config.exposeProperties[property]\n\t\t\t\tif (propertyFn != null) {\n\t\t\t\t\tnewProperties[property] = {\n\t\t\t\t\t\tvalue: propertyFn(dataTransfer, this.config.matchesTypes),\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\tObject.defineProperties(this.item, newProperties)\n\t\t}\n\t}\n\n\tpublic canDrag(): boolean {\n\t\treturn true\n\t}\n\n\tpublic beginDrag(): any {\n\t\treturn this.item\n\t}\n\n\tpublic isDragging(monitor: DragDropMonitor, handle: string): boolean {\n\t\treturn handle === monitor.getSourceId()\n\t}\n\n\tpublic endDrag(): void {\n\t\t// empty\n\t}\n}\n","export const FILE = '__NATIVE_FILE__'\nexport const URL = '__NATIVE_URL__'\nexport const TEXT = '__NATIVE_TEXT__'\nexport const HTML = '__NATIVE_HTML__'\n","export function getDataFromDataTransfer(\n\tdataTransfer: DataTransfer,\n\ttypesToTry: string[],\n\tdefaultValue: string,\n): string {\n\tconst result = typesToTry.reduce(\n\t\t(resultSoFar, typeToTry) => resultSoFar || dataTransfer.getData(typeToTry),\n\t\t'',\n\t)\n\n\treturn result != null ? result : defaultValue\n}\n","import * as NativeTypes from '../NativeTypes.js'\nimport { getDataFromDataTransfer } from './getDataFromDataTransfer.js'\n\nexport interface NativeItemConfigExposePropreties {\n\t[property: string]: (\n\t\tdataTransfer: DataTransfer,\n\t\tmatchesTypes: string[],\n\t) => any\n}\n\nexport interface NativeItemConfig {\n\texposeProperties: NativeItemConfigExposePropreties\n\tmatchesTypes: string[]\n}\n\nexport const nativeTypesConfig: {\n\t[key: string]: NativeItemConfig\n} = {\n\t[NativeTypes.FILE]: {\n\t\texposeProperties: {\n\t\t\tfiles: (dataTransfer: DataTransfer): File[] =>\n\t\t\t\tArray.prototype.slice.call(dataTransfer.files),\n\t\t\titems: (dataTransfer: DataTransfer): DataTransferItemList =>\n\t\t\t\tdataTransfer.items,\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Files'],\n\t},\n\t[NativeTypes.HTML]: {\n\t\texposeProperties: {\n\t\t\thtml: (dataTransfer: DataTransfer, matchesTypes: string[]): string =>\n\t\t\t\tgetDataFromDataTransfer(dataTransfer, matchesTypes, ''),\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Html', 'text/html'],\n\t},\n\t[NativeTypes.URL]: {\n\t\texposeProperties: {\n\t\t\turls: (dataTransfer: DataTransfer, matchesTypes: string[]): string[] =>\n\t\t\t\tgetDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n'),\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Url', 'text/uri-list'],\n\t},\n\t[NativeTypes.TEXT]: {\n\t\texposeProperties: {\n\t\t\ttext: (dataTransfer: DataTransfer, matchesTypes: string[]): string =>\n\t\t\t\tgetDataFromDataTransfer(dataTransfer, matchesTypes, ''),\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Text', 'text/plain'],\n\t},\n}\n","import { NativeDragSource } from './NativeDragSource.js'\nimport { nativeTypesConfig } from './nativeTypesConfig.js'\n\nexport function createNativeDragSource(\n\ttype: string,\n\tdataTransfer?: DataTransfer,\n): NativeDragSource {\n\tconst config = nativeTypesConfig[type]\n\tif (!config) {\n\t\tthrow new Error(`native type ${type} has no configuration`)\n\t}\n\tconst result = new NativeDragSource(config)\n\tresult.loadDataTransfer(dataTransfer)\n\treturn result\n}\n\nexport function matchNativeItemType(\n\tdataTransfer: DataTransfer | null,\n): string | null {\n\tif (!dataTransfer) {\n\t\treturn null\n\t}\n\n\tconst dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || [])\n\treturn (\n\t\tObject.keys(nativeTypesConfig).filter((nativeItemType) => {\n\t\t\tconst typeConfig = nativeTypesConfig[nativeItemType]\n\t\t\tif (!typeConfig?.matchesTypes) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn typeConfig.matchesTypes.some(\n\t\t\t\t(t) => dataTransferTypes.indexOf(t) > -1,\n\t\t\t)\n\t\t})[0] || null\n\t)\n}\n","import { memoize } from './utils/js_utils.js'\n\ndeclare global {\n\tinterface Window extends HTMLElement {\n\t\tsafari: any\n\t}\n}\n\nexport type Predicate = () => boolean\nexport const isFirefox: Predicate = memoize(() =>\n\t/firefox/i.test(navigator.userAgent),\n)\nexport const isSafari: Predicate = memoize(() => Boolean(window.safari))\n","export class MonotonicInterpolant {\n\tprivate xs: any\n\tprivate ys: any\n\tprivate c1s: any\n\tprivate c2s: any\n\tprivate c3s: any\n\n\tpublic constructor(xs: number[], ys: number[]) {\n\t\tconst { length } = xs\n\n\t\t// Rearrange xs and ys so that xs is sorted\n\t\tconst indexes = []\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tindexes.push(i)\n\t\t}\n\t\tindexes.sort((a, b) => ((xs[a] as number) < (xs[b] as number) ? -1 : 1))\n\n\t\t// Get consecutive differences and slopes\n\t\tconst dys = []\n\t\tconst dxs = []\n\t\tconst ms = []\n\t\tlet dx\n\t\tlet dy\n\t\tfor (let i = 0; i < length - 1; i++) {\n\t\t\tdx = (xs[i + 1] as number) - (xs[i] as number)\n\t\t\tdy = (ys[i + 1] as number) - (ys[i] as number)\n\t\t\tdxs.push(dx)\n\t\t\tdys.push(dy)\n\t\t\tms.push(dy / dx)\n\t\t}\n\n\t\t// Get degree-1 coefficients\n\t\tconst c1s = [ms[0]]\n\t\tfor (let i = 0; i < dxs.length - 1; i++) {\n\t\t\tconst m2 = ms[i] as number\n\t\t\tconst mNext = ms[i + 1] as number\n\t\t\tif (m2 * mNext <= 0) {\n\t\t\t\tc1s.push(0)\n\t\t\t} else {\n\t\t\t\tdx = dxs[i] as number\n\t\t\t\tconst dxNext = dxs[i + 1] as number\n\t\t\t\tconst common = dx + dxNext\n\t\t\t\tc1s.push(\n\t\t\t\t\t(3 * common) / ((common + dxNext) / m2 + (common + dx) / mNext),\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tc1s.push(ms[ms.length - 1])\n\n\t\t// Get degree-2 and degree-3 coefficients\n\t\tconst c2s = []\n\t\tconst c3s = []\n\t\tlet m\n\t\tfor (let i = 0; i < c1s.length - 1; i++) {\n\t\t\tm = ms[i] as number\n\t\t\tconst c1 = c1s[i] as number\n\t\t\tconst invDx = 1 / (dxs[i] as number)\n\t\t\tconst common = c1 + (c1s[i + 1] as number) - m - m\n\t\t\tc2s.push((m - c1 - common) * invDx)\n\t\t\tc3s.push(common * invDx * invDx)\n\t\t}\n\n\t\tthis.xs = xs\n\t\tthis.ys = ys\n\t\tthis.c1s = c1s\n\t\tthis.c2s = c2s\n\t\tthis.c3s = c3s\n\t}\n\n\tpublic interpolate(x: number): number {\n\t\tconst { xs, ys, c1s, c2s, c3s } = this\n\n\t\t// The rightmost point in the dataset should give an exact result\n\t\tlet i = xs.length - 1\n\t\tif (x === xs[i]) {\n\t\t\treturn ys[i]\n\t\t}\n\n\t\t// Search for the interval x is in, returning the corresponding y if x is one of the original xs\n\t\tlet low = 0\n\t\tlet high = c3s.length - 1\n\t\tlet mid\n\t\twhile (low <= high) {\n\t\t\tmid = Math.floor(0.5 * (low + high))\n\t\t\tconst xHere = xs[mid]\n\t\t\tif (xHere < x) {\n\t\t\t\tlow = mid + 1\n\t\t\t} else if (xHere > x) {\n\t\t\t\thigh = mid - 1\n\t\t\t} else {\n\t\t\t\treturn ys[mid]\n\t\t\t}\n\t\t}\n\t\ti = Math.max(0, high)\n\n\t\t// Interpolate\n\t\tconst diff = x - xs[i]\n\t\tconst diffSq = diff * diff\n\t\treturn ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq\n\t}\n}\n","import type { XYCoord } from 'dnd-core'\n\nimport { isFirefox, isSafari } from './BrowserDetector.js'\nimport { MonotonicInterpolant } from './MonotonicInterpolant.js'\n\nconst ELEMENT_NODE = 1\n\nexport function getNodeClientOffset(node: Node): XYCoord | null {\n\tconst el = node.nodeType === ELEMENT_NODE ? node : node.parentElement\n\n\tif (!el) {\n\t\treturn null\n\t}\n\n\tconst { top, left } = (el as HTMLElement).getBoundingClientRect()\n\treturn { x: left, y: top }\n}\n\nexport function getEventClientOffset(e: MouseEvent): XYCoord {\n\treturn {\n\t\tx: e.clientX,\n\t\ty: e.clientY,\n\t}\n}\n\nfunction isImageNode(node: any) {\n\treturn (\n\t\tnode.nodeName === 'IMG' &&\n\t\t(isFirefox() || !document.documentElement?.contains(node))\n\t)\n}\n\nfunction getDragPreviewSize(\n\tisImage: boolean,\n\tdragPreview: any,\n\tsourceWidth: number,\n\tsourceHeight: number,\n) {\n\tlet dragPreviewWidth = isImage ? dragPreview.width : sourceWidth\n\tlet dragPreviewHeight = isImage ? dragPreview.height : sourceHeight\n\n\t// Work around @2x coordinate discrepancies in browsers\n\tif (isSafari() && isImage) {\n\t\tdragPreviewHeight /= window.devicePixelRatio\n\t\tdragPreviewWidth /= window.devicePixelRatio\n\t}\n\treturn { dragPreviewWidth, dragPreviewHeight }\n}\n\nexport function getDragPreviewOffset(\n\tsourceNode: HTMLElement,\n\tdragPreview: HTMLElement,\n\tclientOffset: XYCoord,\n\tanchorPoint: { anchorX: number; anchorY: number },\n\toffsetPoint: { offsetX: number; offsetY: number },\n): XYCoord {\n\t// The browsers will use the image intrinsic size under different conditions.\n\t// Firefox only cares if it's an image, but WebKit also wants it to be detached.\n\tconst isImage = isImageNode(dragPreview)\n\tconst dragPreviewNode = isImage ? sourceNode : dragPreview\n\tconst dragPreviewNodeOffsetFromClient = getNodeClientOffset(\n\t\tdragPreviewNode,\n\t) as XYCoord\n\tconst offsetFromDragPreview = {\n\t\tx: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n\t\ty: clientOffset.y - dragPreviewNodeOffsetFromClient.y,\n\t}\n\tconst { offsetWidth: sourceWidth, offsetHeight: sourceHeight } = sourceNode\n\tconst { anchorX, anchorY } = anchorPoint\n\tconst { dragPreviewWidth, dragPreviewHeight } = getDragPreviewSize(\n\t\tisImage,\n\t\tdragPreview,\n\t\tsourceWidth,\n\t\tsourceHeight,\n\t)\n\n\tconst calculateYOffset = () => {\n\t\tconst interpolantY = new MonotonicInterpolant(\n\t\t\t[0, 0.5, 1],\n\t\t\t[\n\t\t\t\t// Dock to the top\n\t\t\t\toffsetFromDragPreview.y,\n\t\t\t\t// Align at the center\n\t\t\t\t(offsetFromDragPreview.y / sourceHeight) * dragPreviewHeight,\n\t\t\t\t// Dock to the bottom\n\t\t\t\toffsetFromDragPreview.y + dragPreviewHeight - sourceHeight,\n\t\t\t],\n\t\t)\n\t\tlet y = interpolantY.interpolate(anchorY)\n\t\t// Work around Safari 8 positioning bug\n\t\tif (isSafari() && isImage) {\n\t\t\t// We'll have to wait for @3x to see if this is entirely correct\n\t\t\ty += (window.devicePixelRatio - 1) * dragPreviewHeight\n\t\t}\n\t\treturn y\n\t}\n\n\tconst calculateXOffset = () => {\n\t\t// Interpolate coordinates depending on anchor point\n\t\t// If you know a simpler way to do this, let me know\n\t\tconst interpolantX = new MonotonicInterpolant(\n\t\t\t[0, 0.5, 1],\n\t\t\t[\n\t\t\t\t// Dock to the left\n\t\t\t\toffsetFromDragPreview.x,\n\t\t\t\t// Align at the center\n\t\t\t\t(offsetFromDragPreview.x / sourceWidth) * dragPreviewWidth,\n\t\t\t\t// Dock to the right\n\t\t\t\toffsetFromDragPreview.x + dragPreviewWidth - sourceWidth,\n\t\t\t],\n\t\t)\n\t\treturn interpolantX.interpolate(anchorX)\n\t}\n\n\t// Force offsets if specified in the options.\n\tconst { offsetX, offsetY } = offsetPoint\n\tconst isManualOffsetX = offsetX === 0 || offsetX\n\tconst isManualOffsetY = offsetY === 0 || offsetY\n\treturn {\n\t\tx: isManualOffsetX ? offsetX : calculateXOffset(),\n\t\ty: isManualOffsetY ? offsetY : calculateYOffset(),\n\t}\n}\n","import type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\n\nexport class OptionsReader {\n\tpublic ownerDocument: Document | null = null\n\tprivate globalContext: HTML5BackendContext\n\tprivate optionsArgs: HTML5BackendOptions | undefined\n\n\tpublic constructor(\n\t\tglobalContext: HTML5BackendContext,\n\t\toptions?: HTML5BackendOptions,\n\t) {\n\t\tthis.globalContext = globalContext\n\t\tthis.optionsArgs = options\n\t}\n\n\tpublic get window(): Window | undefined {\n\t\tif (this.globalContext) {\n\t\t\treturn this.globalContext\n\t\t} else if (typeof window !== 'undefined') {\n\t\t\treturn window\n\t\t}\n\t\treturn undefined\n\t}\n\n\tpublic get document(): Document | undefined {\n\t\tif (this.globalContext?.document) {\n\t\t\treturn this.globalContext.document\n\t\t} else if (this.window) {\n\t\t\treturn this.window.document\n\t\t} else {\n\t\t\treturn undefined\n\t\t}\n\t}\n\n\tpublic get rootElement(): Node | undefined {\n\t\treturn this.optionsArgs?.rootElement || this.window\n\t}\n}\n","import type {\n\tBackend,\n\tDragDropActions,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tIdentifier,\n\tUnsubscribe,\n\tXYCoord,\n} from 'dnd-core'\n\nimport { EnterLeaveCounter } from './EnterLeaveCounter.js'\nimport {\n\tcreateNativeDragSource,\n\tmatchNativeItemType,\n} from './NativeDragSources/index.js'\nimport type { NativeDragSource } from './NativeDragSources/NativeDragSource.js'\nimport * as NativeTypes from './NativeTypes.js'\nimport {\n\tgetDragPreviewOffset,\n\tgetEventClientOffset,\n\tgetNodeClientOffset,\n} from './OffsetUtils.js'\nimport { OptionsReader } from './OptionsReader.js'\nimport type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\n\ntype RootNode = Node & { __isReactDndBackendSetUp: boolean | undefined }\n\nexport class HTML5BackendImpl implements Backend {\n\tprivate options: OptionsReader\n\n\t// React-Dnd Components\n\tprivate actions: DragDropActions\n\tprivate monitor: DragDropMonitor\n\tprivate registry: HandlerRegistry\n\n\t// Internal State\n\tprivate enterLeaveCounter: EnterLeaveCounter\n\n\tprivate sourcePreviewNodes: Map<string, Element> = new Map()\n\tprivate sourcePreviewNodeOptions: Map<string, any> = new Map()\n\tprivate sourceNodes: Map<string, Element> = new Map()\n\tprivate sourceNodeOptions: Map<string, any> = new Map()\n\n\tprivate dragStartSourceIds: string[] | null = null\n\tprivate dropTargetIds: string[] = []\n\tprivate dragEnterTargetIds: string[] = []\n\tprivate currentNativeSource: NativeDragSource | null = null\n\tprivate currentNativeHandle: Identifier | null = null\n\tprivate currentDragSourceNode: Element | null = null\n\tprivate altKeyPressed = false\n\tprivate mouseMoveTimeoutTimer: number | null = null\n\tprivate asyncEndDragFrameId: number | null = null\n\tprivate dragOverTargetIds: string[] | null = null\n\n\tprivate lastClientOffset: XYCoord | null = null\n\tprivate hoverRafId: number | null = null\n\n\tpublic constructor(\n\t\tmanager: DragDropManager,\n\t\tglobalContext?: HTML5BackendContext,\n\t\toptions?: HTML5BackendOptions,\n\t) {\n\t\tthis.options = new OptionsReader(globalContext, options)\n\t\tthis.actions = manager.getActions()\n\t\tthis.monitor = manager.getMonitor()\n\t\tthis.registry = manager.getRegistry()\n\t\tthis.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument)\n\t}\n\n\t/**\n\t * Generate profiling statistics for the HTML5Backend.\n\t */\n\tpublic profile(): Record<string, number> {\n\t\treturn {\n\t\t\tsourcePreviewNodes: this.sourcePreviewNodes.size,\n\t\t\tsourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,\n\t\t\tsourceNodeOptions: this.sourceNodeOptions.size,\n\t\t\tsourceNodes: this.sourceNodes.size,\n\t\t\tdragStartSourceIds: this.dragStartSourceIds?.length || 0,\n\t\t\tdropTargetIds: this.dropTargetIds.length,\n\t\t\tdragEnterTargetIds: this.dragEnterTargetIds.length,\n\t\t\tdragOverTargetIds: this.dragOverTargetIds?.length || 0,\n\t\t}\n\t}\n\n\t// public for test\n\tpublic get window(): Window | undefined {\n\t\treturn this.options.window\n\t}\n\tpublic get document(): Document | undefined {\n\t\treturn this.options.document\n\t}\n\t/**\n\t * Get the root element to use for event subscriptions\n\t */\n\tprivate get rootElement(): Node | undefined {\n\t\treturn this.options.rootElement as Node\n\t}\n\n\tpublic setup(): void {\n\t\tconst root = this.rootElement as RootNode | undefined\n\t\tif (root === undefined) {\n\t\t\treturn\n\t\t}\n\n\t\tif (root.__isReactDndBackendSetUp) {\n\t\t\tthrow new Error('Cannot have two HTML5 backends at the same time.')\n\t\t}\n\t\troot.__isReactDndBackendSetUp = true\n\t\tthis.addEventListeners(root)\n\t}\n\n\tpublic teardown(): void {\n\t\tconst root = this.rootElement as RootNode\n\t\tif (root === undefined) {\n\t\t\treturn\n\t\t}\n\n\t\troot.__isReactDndBackendSetUp = false\n\t\tthis.removeEventListeners(this.rootElement as Element)\n\t\tthis.clearCurrentDragSourceNode()\n\t\tif (this.asyncEndDragFrameId) {\n\t\t\tthis.window?.cancelAnimationFrame(this.asyncEndDragFrameId)\n\t\t}\n\t}\n\n\tpublic connectDragPreview(\n\t\tsourceId: string,\n\t\tnode: Element,\n\t\toptions: any,\n\t): Unsubscribe {\n\t\tthis.sourcePreviewNodeOptions.set(sourceId, options)\n\t\tthis.sourcePreviewNodes.set(sourceId, node)\n\n\t\treturn (): void => {\n\t\t\tthis.sourcePreviewNodes.delete(sourceId)\n\t\t\tthis.sourcePreviewNodeOptions.delete(sourceId)\n\t\t}\n\t}\n\n\tpublic connectDragSource(\n\t\tsourceId: string,\n\t\tnode: Element,\n\t\toptions: any,\n\t): Unsubscribe {\n\t\tthis.sourceNodes.set(sourceId, node)\n\t\tthis.sourceNodeOptions.set(sourceId, options)\n\n\t\tconst handleDragStart = (e: any) => this.handleDragStart(e, sourceId)\n\t\tconst handleSelectStart = (e: any) => this.handleSelectStart(e)\n\n\t\tnode.setAttribute('draggable', 'true')\n\t\tnode.addEventListener('dragstart', handleDragStart)\n\t\tnode.addEventListener('selectstart', handleSelectStart)\n\n\t\treturn (): void => {\n\t\t\tthis.sourceNodes.delete(sourceId)\n\t\t\tthis.sourceNodeOptions.delete(sourceId)\n\n\t\t\tnode.removeEventListener('dragstart', handleDragStart)\n\t\t\tnode.removeEventListener('selectstart', handleSelectStart)\n\t\t\tnode.setAttribute('draggable', 'false')\n\t\t}\n\t}\n\n\tpublic connectDropTarget(targetId: string, node: HTMLElement): Unsubscribe {\n\t\tconst handleDragEnter = (e: DragEvent) => this.handleDragEnter(e, targetId)\n\t\tconst handleDragOver = (e: DragEvent) => this.handleDragOver(e, targetId)\n\t\tconst handleDrop = (e: DragEvent) => this.handleDrop(e, targetId)\n\n\t\tnode.addEventListener('dragenter', handleDragEnter)\n\t\tnode.addEventListener('dragover', handleDragOver)\n\t\tnode.addEventListener('drop', handleDrop)\n\n\t\treturn (): void => {\n\t\t\tnode.removeEventListener('dragenter', handleDragEnter)\n\t\t\tnode.removeEventListener('dragover', handleDragOver)\n\t\t\tnode.removeEventListener('drop', handleDrop)\n\t\t}\n\t}\n\n\tprivate addEventListeners(target: Node) {\n\t\t// SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n\t\tif (!target.addEventListener) {\n\t\t\treturn\n\t\t}\n\t\ttarget.addEventListener(\n\t\t\t'dragstart',\n\t\t\tthis.handleTopDragStart as EventListener,\n\t\t)\n\t\ttarget.addEventListener('dragstart', this.handleTopDragStartCapture, true)\n\t\ttarget.addEventListener('dragend', this.handleTopDragEndCapture, true)\n\t\ttarget.addEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnter as EventListener,\n\t\t)\n\t\ttarget.addEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnterCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.addEventListener(\n\t\t\t'dragleave',\n\t\t\tthis.handleTopDragLeaveCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.addEventListener('dragover', this.handleTopDragOver as EventListener)\n\t\ttarget.addEventListener(\n\t\t\t'dragover',\n\t\t\tthis.handleTopDragOverCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.addEventListener('drop', this.handleTopDrop as EventListener)\n\t\ttarget.addEventListener(\n\t\t\t'drop',\n\t\t\tthis.handleTopDropCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t}\n\n\tprivate removeEventListeners(target: Node) {\n\t\t// SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n\t\tif (!target.removeEventListener) {\n\t\t\treturn\n\t\t}\n\t\ttarget.removeEventListener('dragstart', this.handleTopDragStart as any)\n\t\ttarget.removeEventListener(\n\t\t\t'dragstart',\n\t\t\tthis.handleTopDragStartCapture,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener('dragend', this.handleTopDragEndCapture, true)\n\t\ttarget.removeEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnter as EventListener,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnterCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragleave',\n\t\t\tthis.handleTopDragLeaveCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragover',\n\t\t\tthis.handleTopDragOver as EventListener,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragover',\n\t\t\tthis.handleTopDragOverCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener('drop', this.handleTopDrop as EventListener)\n\t\ttarget.removeEventListener(\n\t\t\t'drop',\n\t\t\tthis.handleTopDropCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t}\n\n\tprivate getCurrentSourceNodeOptions() {\n\t\tconst sourceId = this.monitor.getSourceId() as string\n\t\tconst sourceNodeOptions = this.sourceNodeOptions.get(sourceId)\n\n\t\treturn {\n\t\t\tdropEffect: this.altKeyPressed ? 'copy' : 'move',\n\t\t\t...(sourceNodeOptions || {}),\n\t\t}\n\t}\n\n\tprivate getCurrentDropEffect() {\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\t// It makes more sense to default to 'copy' for native resources\n\t\t\treturn 'copy'\n\t\t}\n\n\t\treturn this.getCurrentSourceNodeOptions().dropEffect\n\t}\n\n\tprivate getCurrentSourcePreviewNodeOptions() {\n\t\tconst sourceId = this.monitor.getSourceId() as string\n\t\tconst sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId)\n\n\t\treturn {\n\t\t\tanchorX: 0.5,\n\t\t\tanchorY: 0.5,\n\t\t\tcaptureDraggingState: false,\n\t\t\t...(sourcePreviewNodeOptions || {}),\n\t\t}\n\t}\n\n\tprivate getSourceClientOffset = (sourceId: string): XYCoord | null => {\n\t\tconst source = this.sourceNodes.get(sourceId)\n\t\treturn (source && getNodeClientOffset(source as HTMLElement)) || null\n\t}\n\n\tprivate isDraggingNativeItem() {\n\t\tconst itemType = this.monitor.getItemType()\n\t\treturn Object.keys(NativeTypes).some(\n\t\t\t(key: string) => (NativeTypes as any)[key] === itemType,\n\t\t)\n\t}\n\n\tprivate beginDragNativeItem(type: string, dataTransfer?: DataTransfer) {\n\t\tthis.clearCurrentDragSourceNode()\n\n\t\tthis.currentNativeSource = createNativeDragSource(type, dataTransfer)\n\t\tthis.currentNativeHandle = this.registry.addSource(\n\t\t\ttype,\n\t\t\tthis.currentNativeSource,\n\t\t)\n\t\tthis.actions.beginDrag([this.currentNativeHandle])\n\t}\n\n\tprivate endDragNativeItem = (): void => {\n\t\tif (!this.isDraggingNativeItem()) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.actions.endDrag()\n\t\tif (this.currentNativeHandle) {\n\t\t\tthis.registry.removeSource(this.currentNativeHandle)\n\t\t}\n\t\tthis.currentNativeHandle = null\n\t\tthis.currentNativeSource = null\n\t}\n\n\tprivate isNodeInDocument = (node: Node | null | undefined): boolean => {\n\t\t// Check the node either in the main document or in the current context\n\t\treturn Boolean(\n\t\t\tnode &&\n\t\t\t\tthis.document &&\n\t\t\t\tthis.document.body &&\n\t\t\t\tthis.document.body.contains(node),\n\t\t)\n\t}\n\n\tprivate endDragIfSourceWasRemovedFromDOM = (): void => {\n\t\tconst node = this.currentDragSourceNode\n\t\tif (node == null || this.isNodeInDocument(node)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n\t\t\tthis.actions.endDrag()\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tprivate setCurrentDragSourceNode(node: Element | null) {\n\t\tthis.clearCurrentDragSourceNode()\n\t\tthis.currentDragSourceNode = node\n\n\t\t// A timeout of > 0 is necessary to resolve Firefox issue referenced\n\t\t// See:\n\t\t// * https://github.com/react-dnd/react-dnd/pull/928\n\t\t// * https://github.com/react-dnd/react-dnd/issues/869\n\t\tconst MOUSE_MOVE_TIMEOUT = 1000\n\n\t\t// Receiving a mouse event in the middle of a dragging operation\n\t\t// means it has ended and the drag source node disappeared from DOM,\n\t\t// so the browser didn't dispatch the dragend event.\n\t\t//\n\t\t// We need to wait before we start listening for mousemove events.\n\t\t// This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event\n\t\t// immediately in some browsers.\n\t\t//\n\t\t// See:\n\t\t// * https://github.com/react-dnd/react-dnd/pull/928\n\t\t// * https://github.com/react-dnd/react-dnd/issues/869\n\t\t//\n\t\tthis.mouseMoveTimeoutTimer = setTimeout(() => {\n\t\t\treturn this.rootElement?.addEventListener(\n\t\t\t\t'mousemove',\n\t\t\t\tthis.endDragIfSourceWasRemovedFromDOM,\n\t\t\t\ttrue,\n\t\t\t)\n\t\t}, MOUSE_MOVE_TIMEOUT) as any as number\n\t}\n\n\tprivate clearCurrentDragSourceNode() {\n\t\tif (this.currentDragSourceNode) {\n\t\t\tthis.currentDragSourceNode = null\n\n\t\t\tif (this.rootElement) {\n\t\t\t\tthis.window?.clearTimeout(this.mouseMoveTimeoutTimer || undefined)\n\t\t\t\tthis.rootElement.removeEventListener(\n\t\t\t\t\t'mousemove',\n\t\t\t\t\tthis.endDragIfSourceWasRemovedFromDOM,\n\t\t\t\t\ttrue,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.mouseMoveTimeoutTimer = null\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tprivate scheduleHover = (dragOverTargetIds: string[] | null) => {\n\t\tif (\n\t\t\tthis.hoverRafId === null &&\n\t\t\ttypeof requestAnimationFrame !== 'undefined'\n\t\t) {\n\t\t\tthis.hoverRafId = requestAnimationFrame(() => {\n\t\t\t\tif (this.monitor.isDragging()) {\n\t\t\t\t\tthis.actions.hover(dragOverTargetIds || [], {\n\t\t\t\t\t\tclientOffset: this.lastClientOffset,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tthis.hoverRafId = null\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate cancelHover = () => {\n\t\tif (\n\t\t\tthis.hoverRafId !== null &&\n\t\t\ttypeof cancelAnimationFrame !== 'undefined'\n\t\t) {\n\t\t\tcancelAnimationFrame(this.hoverRafId)\n\t\t\tthis.hoverRafId = null\n\t\t}\n\t}\n\n\tpublic handleTopDragStartCapture = (): void => {\n\t\tthis.clearCurrentDragSourceNode()\n\t\tthis.dragStartSourceIds = []\n\t}\n\n\tpublic handleDragStart(e: DragEvent, sourceId: string): void {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn\n\t\t}\n\n\t\tif (!this.dragStartSourceIds) {\n\t\t\tthis.dragStartSourceIds = []\n\t\t}\n\t\tthis.dragStartSourceIds.unshift(sourceId)\n\t}\n\n\tpublic handleTopDragStart = (e: DragEvent): void => {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn\n\t\t}\n\n\t\tconst { dragStartSourceIds } = this\n\t\tthis.dragStartSourceIds = null\n\n\t\tconst clientOffset = getEventClientOffset(e)\n\n\t\t// Avoid crashing if we missed a drop event or our previous drag died\n\t\tif (this.monitor.isDragging()) {\n\t\t\tthis.actions.endDrag()\n\t\t\tthis.cancelHover()\n\t\t}\n\n\t\t// Don't publish the source just yet (see why below)\n\t\tthis.actions.beginDrag(dragStartSourceIds || [], {\n\t\t\tpublishSource: false,\n\t\t\tgetSourceClientOffset: this.getSourceClientOffset,\n\t\t\tclientOffset,\n\t\t})\n\n\t\tconst { dataTransfer } = e\n\t\tconst nativeType = matchNativeItemType(dataTransfer)\n\n\t\tif (this.monitor.isDragging()) {\n\t\t\tif (dataTransfer && typeof dataTransfer.setDragImage === 'function') {\n\t\t\t\t// Use custom drag image if user specifies it.\n\t\t\t\t// If child drag source refuses drag but parent agrees,\n\t\t\t\t// use parent's node as drag image. Neither works in IE though.\n\t\t\t\tconst sourceId: string = this.monitor.getSourceId() as string\n\t\t\t\tconst sourceNode = this.sourceNodes.get(sourceId)\n\t\t\t\tconst dragPreview = this.sourcePreviewNodes.get(sourceId) || sourceNode\n\n\t\t\t\tif (dragPreview) {\n\t\t\t\t\tconst { anchorX, anchorY, offsetX, offsetY } =\n\t\t\t\t\t\tthis.getCurrentSourcePreviewNodeOptions()\n\t\t\t\t\tconst anchorPoint = { anchorX, anchorY }\n\t\t\t\t\tconst offsetPoint = { offsetX, offsetY }\n\t\t\t\t\tconst dragPreviewOffset = getDragPreviewOffset(\n\t\t\t\t\t\tsourceNode as HTMLElement,\n\t\t\t\t\t\tdragPreview as HTMLElement,\n\t\t\t\t\t\tclientOffset,\n\t\t\t\t\t\tanchorPoint,\n\t\t\t\t\t\toffsetPoint,\n\t\t\t\t\t)\n\n\t\t\t\t\tdataTransfer.setDragImage(\n\t\t\t\t\t\tdragPreview,\n\t\t\t\t\t\tdragPreviewOffset.x,\n\t\t\t\t\t\tdragPreviewOffset.y,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\t// Firefox won't drag without setting data\n\t\t\t\tdataTransfer?.setData('application/json', {} as any)\n\t\t\t} catch (err) {\n\t\t\t\t// IE doesn't support MIME types in setData\n\t\t\t}\n\n\t\t\t// Store drag source node so we can check whether\n\t\t\t// it is removed from DOM and trigger endDrag manually.\n\t\t\tthis.setCurrentDragSourceNode(e.target as Element)\n\n\t\t\t// Now we are ready to publish the drag source.. or are we not?\n\t\t\tconst { captureDraggingState } = this.getCurrentSourcePreviewNodeOptions()\n\t\t\tif (!captureDraggingState) {\n\t\t\t\t// Usually we want to publish it in the next tick so that browser\n\t\t\t\t// is able to screenshot the current (not yet dragging) state.\n\t\t\t\t//\n\t\t\t\t// It also neatly avoids a situation where render() returns null\n\t\t\t\t// in the same tick for the source element, and browser freaks out.\n\t\t\t\tsetTimeout(() => this.actions.publishDragSource(), 0)\n\t\t\t} else {\n\t\t\t\t// In some cases the user may want to override this behavior, e.g.\n\t\t\t\t// to work around IE not supporting custom drag previews.\n\t\t\t\t//\n\t\t\t\t// When using a custom drag layer, the only way to prevent\n\t\t\t\t// the default drag preview from drawing in IE is to screenshot\n\t\t\t\t// the dragging state in which the node itself has zero opacity\n\t\t\t\t// and height. In this case, though, returning null from render()\n\t\t\t\t// will abruptly end the dragging, which is not obvious.\n\t\t\t\t//\n\t\t\t\t// This is the reason such behavior is strictly opt-in.\n\t\t\t\tthis.actions.publishDragSource()\n\t\t\t}\n\t\t} else if (nativeType) {\n\t\t\t// A native item (such as URL) dragged from inside the document\n\t\t\tthis.beginDragNativeItem(nativeType)\n\t\t} else if (\n\t\t\tdataTransfer &&\n\t\t\t!dataTransfer.types &&\n\t\t\t((e.target && !(e.target as Element).hasAttribute) ||\n\t\t\t\t!(e.target as Element).hasAttribute('draggable'))\n\t\t) {\n\t\t\t// Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.\n\t\t\t// Just let it drag. It's a native type (URL or text) and will be picked up in\n\t\t\t// dragenter handler.\n\t\t\treturn\n\t\t} else {\n\t\t\t// If by this time no drag source reacted, tell browser not to drag.\n\t\t\te.preventDefault()\n\t\t}\n\t}\n\n\tpublic handleTopDragEndCapture = (): void => {\n\t\tif (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n\t\t\t// Firefox can dispatch this event in an infinite loop\n\t\t\t// if dragend handler does something like showing an alert.\n\t\t\t// Only proceed if we have not handled it already.\n\t\t\tthis.actions.endDrag()\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tpublic handleTopDragEnterCapture = (e: DragEvent): void => {\n\t\tthis.dragEnterTargetIds = []\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tthis.currentNativeSource?.loadDataTransfer(e.dataTransfer)\n\t\t}\n\n\t\tconst isFirstEnter = this.enterLeaveCounter.enter(e.target)\n\t\tif (!isFirstEnter || this.monitor.isDragging()) {\n\t\t\treturn\n\t\t}\n\n\t\tconst { dataTransfer } = e\n\t\tconst nativeType = matchNativeItemType(dataTransfer)\n\n\t\tif (nativeType) {\n\t\t\t// A native item (such as file or URL) dragged from outside the document\n\t\t\tthis.beginDragNativeItem(nativeType, dataTransfer as DataTransfer)\n\t\t}\n\t}\n\n\tpublic handleDragEnter(_e: DragEvent, targetId: string): void {\n\t\tthis.dragEnterTargetIds.unshift(targetId)\n\t}\n\n\tpublic handleTopDragEnter = (e: DragEvent): void => {\n\t\tconst { dragEnterTargetIds } = this\n\t\tthis.dragEnterTargetIds = []\n\n\t\tif (!this.monitor.isDragging()) {\n\t\t\t// This is probably a native item type we don't understand.\n\t\t\treturn\n\t\t}\n\n\t\tthis.altKeyPressed = e.altKey\n\n\t\t// If the target changes position as the result of `dragenter`, `dragover` might still\n\t\t// get dispatched despite target being no longer there. The easy solution is to check\n\t\t// whether there actually is a target before firing `hover`.\n\t\tif (dragEnterTargetIds.length > 0) {\n\t\t\tthis.actions.hover(dragEnterTargetIds, {\n\t\t\t\tclientOffset: getEventClientOffset(e),\n\t\t\t})\n\t\t}\n\n\t\tconst canDrop = dragEnterTargetIds.some((targetId) =>\n\t\t\tthis.monitor.canDropOnTarget(targetId),\n\t\t)\n\n\t\tif (canDrop) {\n\t\t\t// IE requires this to fire dragover events\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = this.getCurrentDropEffect()\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic handleTopDragOverCapture = (e: DragEvent): void => {\n\t\tthis.dragOverTargetIds = []\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tthis.currentNativeSource?.loadDataTransfer(e.dataTransfer)\n\t\t}\n\t}\n\n\tpublic handleDragOver(_e: DragEvent, targetId: string): void {\n\t\tif (this.dragOverTargetIds === null) {\n\t\t\tthis.dragOverTargetIds = []\n\t\t}\n\t\tthis.dragOverTargetIds.unshift(targetId)\n\t}\n\n\tpublic handleTopDragOver = (e: DragEvent): void => {\n\t\tconst { dragOverTargetIds } = this\n\t\tthis.dragOverTargetIds = []\n\n\t\tif (!this.monitor.isDragging()) {\n\t\t\t// This is probably a native item type we don't understand.\n\t\t\t// Prevent default \"drop and blow away the whole document\" action.\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = 'none'\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tthis.altKeyPressed = e.altKey\n\t\tthis.lastClientOffset = getEventClientOffset(e)\n\n\t\tthis.scheduleHover(dragOverTargetIds)\n\n\t\tconst canDrop = (dragOverTargetIds || []).some((targetId) =>\n\t\t\tthis.monitor.canDropOnTarget(targetId),\n\t\t)\n\n\t\tif (canDrop) {\n\t\t\t// Show user-specified drop effect.\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = this.getCurrentDropEffect()\n\t\t\t}\n\t\t} else if (this.isDraggingNativeItem()) {\n\t\t\t// Don't show a nice cursor but still prevent default\n\t\t\t// \"drop and blow away the whole document\" action.\n\t\t\te.preventDefault()\n\t\t} else {\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = 'none'\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic handleTopDragLeaveCapture = (e: DragEvent): void => {\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\te.preventDefault()\n\t\t}\n\n\t\tconst isLastLeave = this.enterLeaveCounter.leave(e.target)\n\t\tif (!isLastLeave) {\n\t\t\treturn\n\t\t}\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tsetTimeout(() => this.endDragNativeItem(), 0)\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tpublic handleTopDropCapture = (e: DragEvent): void => {\n\t\tthis.dropTargetIds = []\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\te.preventDefault()\n\t\t\tthis.currentNativeSource?.loadDataTransfer(e.dataTransfer)\n\t\t} else if (matchNativeItemType(e.dataTransfer)) {\n\t\t\t// Dragging some elements, like <a> and <img> may still behave like a native drag event,\n\t\t\t// even if the current drag event matches a user-defined type.\n\t\t\t// Stop the default behavior when we're not expecting a native item to be dropped.\n\n\t\t\te.preventDefault()\n\t\t}\n\n\t\tthis.enterLeaveCounter.reset()\n\t}\n\n\tpublic handleDrop(_e: DragEvent, targetId: string): void {\n\t\tthis.dropTargetIds.unshift(targetId)\n\t}\n\n\tpublic handleTopDrop = (e: DragEvent): void => {\n\t\tconst { dropTargetIds } = this\n\t\tthis.dropTargetIds = []\n\n\t\tthis.actions.hover(dropTargetIds, {\n\t\t\tclientOffset: getEventClientOffset(e),\n\t\t})\n\t\tthis.actions.drop({ dropEffect: this.getCurrentDropEffect() })\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tthis.endDragNativeItem()\n\t\t} else if (this.monitor.isDragging()) {\n\t\t\tthis.actions.endDrag()\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tpublic handleSelectStart = (e: DragEvent): void => {\n\t\tconst target = e.target as HTMLElement & { dragDrop: () => void }\n\n\t\t// Only IE requires us to explicitly say\n\t\t// we want drag drop operation to start\n\t\tif (typeof target.dragDrop !== 'function') {\n\t\t\treturn\n\t\t}\n\n\t\t// Inputs and textareas should be selectable\n\t\tif (\n\t\t\ttarget.tagName === 'INPUT' ||\n\t\t\ttarget.tagName === 'SELECT' ||\n\t\t\ttarget.tagName === 'TEXTAREA' ||\n\t\t\ttarget.isContentEditable\n\t\t) {\n\t\t\treturn\n\t\t}\n\n\t\t// For other targets, ask IE\n\t\t// to enable drag and drop\n\t\te.preventDefault()\n\t\ttarget.dragDrop()\n\t}\n}\n","import type { BackendFactory, DragDropManager } from 'dnd-core'\n\nimport { HTML5BackendImpl } from './HTML5BackendImpl.js'\nimport type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\nexport { getEmptyImage } from './getEmptyImage.js'\nexport * as NativeTypes from './NativeTypes.js'\nexport type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\n\nexport const HTML5Backend: BackendFactory = function createBackend(\n\tmanager: DragDropManager,\n\tcontext?: HTML5BackendContext,\n\toptions?: HTML5BackendOptions,\n): HTML5BackendImpl {\n\treturn new HTML5BackendImpl(manager, context, options)\n}\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_FullScreenToggleButton: FC<Props> = ({\n instance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { FullscreenExitIcon, FullscreenIcon },\n localization,\n onIsFullScreenChanged,\n },\n setIsFullScreen,\n } = instance;\n\n const { isFullScreen } = getState();\n\n const handleToggleFullScreen = (event: MouseEvent<HTMLButtonElement>) => {\n onIsFullScreenChanged?.({\n event,\n isFullScreen: !isFullScreen,\n instance,\n });\n setIsFullScreen(!isFullScreen);\n };\n\n return (\n <Tooltip arrow title={localization.toggleFullScreen}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleFullScreen}\n {...rest}\n >\n {isFullScreen ? <FullscreenExitIcon /> : <FullscreenIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip, IconButtonProps } from '@mui/material';\nimport { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsButton: FC<Props> = ({ instance, ...rest }) => {\n const {\n options: {\n icons: { ViewColumnIcon },\n localization,\n },\n } = instance;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n return (\n <>\n <Tooltip arrow title={localization.showHideColumns}>\n <IconButton\n aria-label={localization.showHideColumns}\n onClick={handleClick}\n {...rest}\n >\n <ViewColumnIcon />\n </IconButton>\n </Tooltip>\n <MRT_ShowHideColumnsMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n instance={instance}\n />\n </>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleDensePaddingButton: FC<Props> = ({\n instance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { DensityLargeIcon, DensityMediumIcon, DensitySmallIcon },\n localization,\n onDensityChanged,\n },\n setDensity,\n } = instance;\n\n const { density } = getState();\n\n const handleToggleDensePadding = (event: MouseEvent<HTMLButtonElement>) => {\n const nextDensity =\n density === 'comfortable'\n ? 'compact'\n : density === 'compact'\n ? 'spacious'\n : 'comfortable';\n onDensityChanged?.({\n event,\n density: nextDensity,\n instance,\n });\n setDensity(nextDensity);\n };\n\n return (\n <Tooltip arrow title={localization.toggleDensity}>\n <IconButton\n aria-label={localization.toggleDensity}\n onClick={handleToggleDensePadding}\n {...rest}\n >\n {density === 'compact' ? (\n <DensitySmallIcon />\n ) : density === 'comfortable' ? (\n <DensityMediumIcon />\n ) : (\n <DensityLargeIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleFiltersButton: FC<Props> = ({ instance, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, FilterListOffIcon },\n localization,\n onShowFiltersChanged,\n },\n setShowFilters,\n } = instance;\n\n const { showFilters } = getState();\n\n const handleToggleShowFilters = (event: MouseEvent<HTMLButtonElement>) => {\n onShowFiltersChanged?.({\n event,\n showFilters: !showFilters,\n instance,\n });\n setShowFilters(!showFilters);\n };\n\n return (\n <Tooltip arrow title={localization.showHideFilters}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleShowFilters}\n {...rest}\n >\n {showFilters ? <FilterListOffIcon /> : <FilterListIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleGlobalFilterButton: FC<Props> = ({\n instance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { SearchIcon, SearchOffIcon },\n tableId,\n localization,\n muiSearchTextFieldProps,\n onShowGlobalFilterChanged,\n },\n setShowGlobalFilter,\n } = instance;\n\n const { showGlobalFilter } = getState();\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ instance })\n : muiSearchTextFieldProps;\n\n const handleToggleSearch = (event: MouseEvent<HTMLButtonElement>) => {\n onShowGlobalFilterChanged?.({\n event,\n showGlobalFilter: !showGlobalFilter,\n instance,\n });\n setShowGlobalFilter(!showGlobalFilter);\n setTimeout(\n () =>\n document\n .getElementById(\n textFieldProps?.id ?? `mrt-${tableId}-search-text-field`,\n )\n ?.focus(),\n 200,\n );\n };\n\n return (\n <Tooltip arrow title={localization.showHideSearch}>\n <IconButton onClick={handleToggleSearch} {...rest}>\n {showGlobalFilter ? <SearchOffIcon /> : <SearchIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Collapse,\n debounce,\n IconButton,\n InputAdornment,\n TextField,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_GlobalFilterTextField: FC<Props> = ({ instance }) => {\n const {\n getState,\n setGlobalFilter,\n options: {\n enableGlobalFilterChangeMode,\n icons: { SearchIcon, CloseIcon },\n localization,\n muiSearchTextFieldProps,\n onGlobalFilterValueChanged,\n onGlobalFilterValueChangedDebounced,\n tableId,\n },\n } = instance;\n\n const { globalFilter, showGlobalFilter } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [searchValue, setSearchValue] = useState(globalFilter ?? '');\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n setGlobalFilter(event.target.value ?? undefined);\n onGlobalFilterValueChangedDebounced?.({ event, instance });\n }, 250),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value);\n handleChangeDebounced(event);\n onGlobalFilterValueChanged?.({ event, instance });\n };\n\n const handleGlobalFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setSearchValue('');\n setGlobalFilter(undefined);\n };\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ instance })\n : muiSearchTextFieldProps;\n\n return (\n <Collapse in={showGlobalFilter} orientation=\"horizontal\">\n <TextField\n id={`mrt-${tableId}-search-text-field`}\n placeholder={localization.search}\n onChange={handleChange}\n value={searchValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: enableGlobalFilterChangeMode ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeSearchMode}>\n <IconButton\n aria-label={localization.changeSearchMode}\n onClick={handleGlobalFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <SearchIcon />\n </IconButton>\n </Tooltip>\n </InputAdornment>\n ) : (\n <SearchIcon />\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <Tooltip arrow title={localization.clearSearch ?? ''}>\n <span>\n <IconButton\n aria-label={localization.clearSearch}\n disabled={!searchValue?.length}\n onClick={handleClear}\n size=\"small\"\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n />\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n instance={instance}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FullScreenToggleButton } from '../buttons/MRT_FullScreenToggleButton';\nimport { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';\nimport { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton';\nimport { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';\nimport { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarInternalButtons: FC<Props> = ({ instance }) => {\n const {\n options: {\n enableColumnFilters,\n enableColumnOrdering,\n enableDensityToggle,\n enableFilters,\n enableFullScreenToggle,\n enableGlobalFilter,\n enableHiding,\n enablePinning,\n positionGlobalFilter,\n renderToolbarInternalActions,\n },\n } = instance;\n\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n zIndex: 3,\n }}\n >\n {renderToolbarInternalActions?.({\n MRT_FullScreenToggleButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_ToggleFiltersButton,\n MRT_ToggleGlobalFilterButton,\n instance,\n }) ?? (\n <>\n {enableGlobalFilter && positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField instance={instance} />\n )}\n {enableFilters && enableGlobalFilter && (\n <MRT_ToggleGlobalFilterButton instance={instance} />\n )}\n {enableFilters && enableColumnFilters && (\n <MRT_ToggleFiltersButton instance={instance} />\n )}\n {(enableHiding || enableColumnOrdering || enablePinning) && (\n <MRT_ShowHideColumnsButton instance={instance} />\n )}\n {enableDensityToggle && (\n <MRT_ToggleDensePaddingButton instance={instance} />\n )}\n {enableFullScreenToggle && (\n <MRT_FullScreenToggleButton instance={instance} />\n )}\n </>\n )}\n </Box>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { TablePagination } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n position: 'top' | 'bottom';\n}\n\nexport const MRT_TablePagination: FC<Props> = ({ instance, position }) => {\n const {\n getPrePaginationRowModel,\n getState,\n setPageIndex,\n setPageSize,\n options: {\n muiTablePaginationProps,\n enableToolbarInternalActions,\n rowCount,\n },\n } = instance;\n\n const {\n pagination: { pageSize = 10, pageIndex = 0 },\n showGlobalFilter,\n } = getState();\n\n const tablePaginationProps =\n muiTablePaginationProps instanceof Function\n ? muiTablePaginationProps({ instance })\n : muiTablePaginationProps;\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n setPageSize(+event.target.value);\n };\n\n const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;\n\n const showFirstLastPageButtons = totalRowCount / pageSize > 2;\n\n return (\n <TablePagination\n SelectProps={{\n sx: { m: '0 1rem 0 1ch' },\n MenuProps: { MenuListProps: { disablePadding: true } },\n }}\n component=\"div\"\n count={totalRowCount}\n onPageChange={(_: any, newPage: number) => setPageIndex(newPage)}\n onRowsPerPageChange={handleChangeRowsPerPage}\n page={pageIndex}\n rowsPerPage={pageSize}\n rowsPerPageOptions={[5, 10, 15, 20, 25, 30, 50, 100]}\n showFirstButton={showFirstLastPageButtons}\n showLastButton={showFirstLastPageButtons}\n {...tablePaginationProps}\n sx={{\n m: '0 0.5rem',\n mt:\n position === 'top' &&\n enableToolbarInternalActions &&\n !showGlobalFilter\n ? '3.5rem'\n : undefined,\n position: 'relative',\n zIndex: 2,\n ...tablePaginationProps?.sx,\n }}\n />\n );\n};\n","import React, { FC, Fragment } from 'react';\nimport { Alert, Box, Chip, Collapse } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n stackAlertBanner?: boolean;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarAlertBanner: FC<Props> = ({\n stackAlertBanner,\n instance,\n}) => {\n const {\n getPrePaginationRowModel,\n getSelectedRowModel,\n getState,\n options: { localization, muiTableToolbarAlertBannerProps },\n } = instance;\n\n const { grouping } = getState();\n\n const alertProps =\n muiTableToolbarAlertBannerProps instanceof Function\n ? muiTableToolbarAlertBannerProps({ instance })\n : muiTableToolbarAlertBannerProps;\n\n const selectMessage =\n getSelectedRowModel().rows.length > 0\n ? localization.selectedCountOfRowCountRowsSelected\n ?.replace(\n '{selectedCount}',\n getSelectedRowModel().rows.length.toString(),\n )\n ?.replace(\n '{rowCount}',\n getPrePaginationRowModel().rows.length.toString(),\n )\n : null;\n\n const groupedByMessage =\n grouping.length > 0 ? (\n <span>\n {localization.groupedBy}{' '}\n {grouping.map((columnId, index) => (\n <Fragment key={`${index}-${columnId}`}>\n {index > 0 ? localization.thenBy : ''}\n <Chip\n color=\"secondary\"\n label={instance.getColumn(columnId).columnDef.header}\n onDelete={() => instance.getColumn(columnId).toggleGrouping()}\n />\n </Fragment>\n ))}\n </span>\n ) : null;\n\n return (\n <Collapse\n in={!!selectMessage || !!groupedByMessage}\n timeout={stackAlertBanner ? 200 : 0}\n >\n <Alert\n color=\"info\"\n icon={false}\n sx={{\n borderRadius: 0,\n fontSize: '1rem',\n left: 0,\n p: 0,\n position: 'relative',\n right: 0,\n top: 0,\n width: '100%',\n zIndex: 2,\n ...alertProps?.sx,\n }}\n {...alertProps}\n >\n <Box sx={{ p: '0.5rem 1rem' }}>\n {selectMessage}\n {selectMessage && groupedByMessage && <br />}\n {groupedByMessage}\n </Box>\n </Alert>\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, LinearProgress } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n alignTo: 'bottom' | 'top';\n instance: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ alignTo, instance }) => {\n const {\n options: { muiLinearProgressProps },\n getState,\n } = instance;\n\n const { isLoading, showProgressBars } = getState();\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ instance })\n : muiLinearProgressProps;\n\n return (\n <Collapse\n in={isLoading || showProgressBars}\n mountOnEnter\n unmountOnExit\n sx={{\n bottom: alignTo === 'bottom' ? 0 : undefined,\n position: 'absolute',\n top: alignTo === 'top' ? 0 : undefined,\n width: '100%',\n }}\n >\n <LinearProgress\n aria-label=\"Loading\"\n aria-busy=\"true\"\n sx={{ position: 'relative' }}\n {...linearProgressProps}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, lighten, Theme, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\nexport const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n backgroundImage: 'none',\n display: 'grid',\n minHeight: '3.5rem',\n overflow: 'hidden',\n p: '0 !important',\n transition: 'all 0.2s ease-in-out',\n zIndex: 1,\n});\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarTop: FC<Props> = ({ instance }) => {\n const {\n getState,\n options: {\n enableGlobalFilter,\n enablePagination,\n enableToolbarInternalActions,\n muiTableToolbarTopProps,\n positionGlobalFilter,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarTopCustomActions,\n tableId,\n },\n } = instance;\n\n const { isFullScreen, showGlobalFilter } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarTopProps instanceof Function\n ? muiTableToolbarTopProps({ instance })\n : muiTableToolbarTopProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'top' &&\n (!!renderToolbarTopCustomActions || showGlobalFilter));\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-top`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n position: isFullScreen ? 'sticky' : undefined,\n top: isFullScreen ? '0' : undefined,\n ...commonToolbarStyles({ theme }),\n ...toolbarProps?.sx,\n } as any)\n }\n >\n {positionToolbarAlertBanner === 'top' && (\n <MRT_ToolbarAlertBanner\n stackAlertBanner={stackAlertBanner}\n instance={instance}\n />\n )}\n <Box\n sx={{\n alignItems: 'flex-start',\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'space-between',\n p: '0.5rem',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n width: '100%',\n }}\n >\n {enableGlobalFilter && positionGlobalFilter === 'left' && (\n <MRT_GlobalFilterTextField instance={instance} />\n )}\n\n {renderToolbarTopCustomActions?.({ instance }) ?? <span />}\n {enableToolbarInternalActions ? (\n <MRT_ToolbarInternalButtons instance={instance} />\n ) : (\n enableGlobalFilter &&\n positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField instance={instance} />\n )\n )}\n </Box>\n {enablePagination &&\n ['top', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination instance={instance} position=\"top\" />\n )}\n <MRT_LinearProgressBar alignTo=\"bottom\" instance={instance} />\n </Toolbar>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, Box, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { commonToolbarStyles } from './MRT_ToolbarTop';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarBottom: FC<Props> = ({ instance }) => {\n const {\n getState,\n options: {\n enablePagination,\n muiTableToolbarBottomProps,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarBottomCustomActions,\n tableId,\n },\n } = instance;\n\n const { isFullScreen } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarBottomProps instanceof Function\n ? muiTableToolbarBottomProps({ instance })\n : muiTableToolbarBottomProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'bottom' &&\n !!renderToolbarBottomCustomActions);\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-bottom`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n ...commonToolbarStyles({ theme }),\n bottom: isFullScreen ? '0' : undefined,\n boxShadow: `-3px 0 6px ${alpha(theme.palette.common.black, 0.1)}`,\n left: 0,\n position: isFullScreen ? 'fixed' : 'relative',\n right: 0,\n ...toolbarProps?.sx,\n } as any)\n }\n >\n <MRT_LinearProgressBar alignTo=\"top\" instance={instance} />\n {positionToolbarAlertBanner === 'bottom' && (\n <MRT_ToolbarAlertBanner instance={instance} />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n {renderToolbarBottomCustomActions ? (\n <Box sx={{ p: '0.5rem' }}>\n {renderToolbarBottomCustomActions({ instance })}\n </Box>\n ) : (\n <span />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n }}\n >\n {enablePagination &&\n ['bottom', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination instance={instance} position=\"bottom\" />\n )}\n </Box>\n </Box>\n </Toolbar>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Chip,\n debounce,\n IconButton,\n InputAdornment,\n MenuItem,\n TextField,\n TextFieldProps,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n inputIndex?: number;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({\n header,\n inputIndex,\n instance,\n}) => {\n const {\n getState,\n options: {\n enableColumnFilterChangeMode,\n enabledColumnFilterOptions,\n icons: { FilterListIcon, CloseIcon },\n localization,\n muiTableHeadCellFilterTextFieldProps,\n onColumnFilterValueChanged,\n onColumnFilterValueChangedDebounced,\n tableId,\n },\n setCurrentFilterFns,\n } = instance;\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const { currentFilterFns } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const mTableHeadCellFilterTextFieldProps =\n muiTableHeadCellFilterTextFieldProps instanceof Function\n ? muiTableHeadCellFilterTextFieldProps({ column, instance })\n : muiTableHeadCellFilterTextFieldProps;\n\n const mcTableHeadCellFilterTextFieldProps =\n columnDef.muiTableHeadCellFilterTextFieldProps instanceof Function\n ? columnDef.muiTableHeadCellFilterTextFieldProps({\n column,\n instance,\n })\n : columnDef.muiTableHeadCellFilterTextFieldProps;\n\n const textFieldProps = {\n ...mTableHeadCellFilterTextFieldProps,\n ...mcTableHeadCellFilterTextFieldProps,\n } as TextFieldProps;\n\n const [filterValue, setFilterValue] = useState<string>(() =>\n inputIndex !== undefined\n ? (column.getFilterValue() as [string, string])?.[inputIndex] ?? ''\n : (column.getFilterValue() as string) ?? '',\n );\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string, string]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = event.target.value;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(event.target.value ?? undefined);\n }\n onColumnFilterValueChangedDebounced?.({\n column,\n event,\n filterValue: event.target.value,\n instance,\n });\n columnDef.onColumnFilterValueChangedDebounced?.({\n column,\n event,\n filterValue: event.target.value,\n instance,\n });\n }, 200),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n handleChangeDebounced(event);\n onColumnFilterValueChanged?.({\n column,\n event,\n filterValue: event.target.value,\n instance,\n });\n columnDef.onColumnFilterValueChanged?.({\n column,\n event,\n filterValue: event.target.value,\n instance,\n });\n };\n\n const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setFilterValue('');\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string | undefined, string | undefined]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = undefined;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(undefined);\n }\n };\n\n const handleClearFilterChip = () => {\n setFilterValue('');\n column.setFilterValue(undefined);\n setCurrentFilterFns((prev) => ({\n ...prev,\n [header.id]: 'fuzzy',\n }));\n };\n\n if (columnDef.Filter) {\n return <>{columnDef.Filter?.({ header, instance })}</>;\n }\n\n const filterId = `mrt-${tableId}-${header.id}-filter-text-field${\n inputIndex ?? ''\n }`;\n const filterFn = currentFilterFns?.[header.id];\n const isSelectFilter = !!columnDef.filterSelectOptions;\n const filterChipLabel =\n !(filterFn instanceof Function) && ['empty', 'notEmpty'].includes(filterFn)\n ? //@ts-ignore\n localization[\n `filter${filterFn.charAt(0).toUpperCase() + filterFn.slice(1)}`\n ]\n : '';\n const filterPlaceholder =\n inputIndex === undefined\n ? localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )\n : inputIndex === 0\n ? localization.min\n : inputIndex === 1\n ? localization.max\n : '';\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showChangeModeButton =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n !inputIndex &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <>\n <TextField\n fullWidth\n id={filterId}\n inputProps={{\n disabled: !!filterChipLabel,\n sx: {\n textOverflow: 'ellipsis',\n width: filterChipLabel ? 0 : undefined,\n },\n title: filterPlaceholder,\n }}\n helperText={\n showChangeModeButton ? (\n <label htmlFor={filterId}>\n {filterFn instanceof Function\n ? localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n filterFn.name.charAt(0).toUpperCase() +\n filterFn.name.slice(1)\n }`\n ] ?? '',\n ) ?? ''\n : localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n filterFn.charAt(0).toUpperCase() + filterFn.slice(1)\n }`\n ],\n )}\n </label>\n ) : null\n }\n FormHelperTextProps={{\n sx: {\n fontSize: '0.6rem',\n lineHeight: '0.8rem',\n whiteSpace: 'nowrap',\n },\n }}\n margin=\"none\"\n placeholder={\n filterChipLabel || isSelectFilter ? undefined : filterPlaceholder\n }\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n select={isSelectFilter}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: showChangeModeButton ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeFilterMode}>\n <span>\n <IconButton\n aria-label={localization.changeFilterMode}\n onClick={handleFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <FilterListIcon />\n </IconButton>\n </span>\n </Tooltip>\n {filterChipLabel && (\n <Chip\n onDelete={handleClearFilterChip}\n label={filterChipLabel}\n />\n )}\n </InputAdornment>\n ) : (\n <FilterListIcon />\n ),\n endAdornment: !filterChipLabel && (\n <InputAdornment position=\"end\">\n <Tooltip\n arrow\n disableHoverListener={isSelectFilter}\n placement=\"right\"\n title={localization.clearFilter ?? ''}\n >\n <span>\n <IconButton\n aria-label={localization.clearFilter}\n disabled={!filterValue?.length}\n onClick={handleClear}\n size=\"small\"\n sx={{\n height: '1.75rem',\n width: '1.75rem',\n }}\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n sx={{\n m: '-0.25rem',\n p: 0,\n minWidth: !filterChipLabel ? '8rem' : 'auto',\n width: 'calc(100% + 0.5rem)',\n '&\t.MuiSelect-icon': {\n mr: '1.5rem',\n },\n ...textFieldProps?.sx,\n }}\n >\n {isSelectFilter && (\n <MenuItem divider disabled={!filterValue} value=\"\">\n {localization.clearFilter}\n </MenuItem>\n )}\n {columnDef?.filterSelectOptions?.map((option) => {\n let value;\n let text;\n if (typeof option === 'string') {\n value = option;\n text = option;\n } else if (typeof option === 'object') {\n value = option.value;\n text = option.text;\n }\n return (\n <MenuItem key={value} value={value}>\n {text}\n </MenuItem>\n );\n })}\n </TextField>\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n instance={instance}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FilterTextField } from './MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_FilterRangeFields: FC<Props> = ({ header, instance }) => {\n return (\n <Box sx={{ display: 'grid', gridTemplateColumns: '6fr 6fr', gap: '1rem' }}>\n <MRT_FilterTextField header={header} inputIndex={0} instance={instance} />\n <MRT_FilterTextField header={header} inputIndex={1} instance={instance} />\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse } from '@mui/material';\nimport { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields';\nimport { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterContainer: FC<Props> = ({\n header,\n instance,\n}) => {\n const { getState } = instance;\n\n const { currentFilterFns, showFilters } = getState();\n\n const { column } = header;\n\n return (\n <Collapse in={showFilters} mountOnEnter unmountOnExit>\n {currentFilterFns[column.id] === 'between' ? (\n <MRT_FilterRangeFields header={header} instance={instance} />\n ) : (\n <MRT_FilterTextField header={header} instance={instance} />\n )}\n </Collapse>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { Grow, IconButton, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterLabel: FC<Props> = ({\n header,\n instance,\n}) => {\n const {\n getState,\n options: {\n icons: { FilterAltIcon },\n localization,\n },\n } = instance;\n\n const { currentFilterFns } = getState();\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const filterFn = currentFilterFns?.[header.id];\n\n const filterTooltip = localization.filteringByColumn\n .replace('{column}', String(columnDef.header))\n .replace(\n '{filterType}',\n filterFn instanceof Function\n ? ''\n : // @ts-ignore\n localization[\n `filter${filterFn.charAt(0).toUpperCase() + filterFn.slice(1)}`\n ],\n )\n .replace(\n '{filterValue}',\n `\"${\n Array.isArray(column.getFilterValue())\n ? (column.getFilterValue() as [string, string]).join(\n `\" ${localization.and} \"`,\n )\n : (column.getFilterValue() as string)\n }\"`,\n )\n .replace('\" \"', '');\n\n return (\n <Grow\n unmountOnExit\n in={\n (!!column.getFilterValue() && filterFn !== 'between') ||\n (filterFn === 'between' && // @ts-ignore\n (!!column.getFilterValue()?.[0] || !!column.getFilterValue()?.[1]))\n }\n >\n <span>\n <Tooltip arrow placement=\"top\" title={filterTooltip}>\n <IconButton\n disableRipple\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n }}\n size=\"small\"\n sx={{\n m: 0,\n opacity: 0.8,\n p: '2px',\n transform: 'scale(0.66)',\n width: '1.5ch',\n }}\n >\n <FilterAltIcon />\n </IconButton>\n </Tooltip>\n </span>\n </Grow>\n );\n};\n","import React, { FC } from 'react';\nimport { Divider, Theme } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellResizeHandle: FC<Props> = ({\n header,\n instance,\n}) => {\n const { getState } = instance;\n\n const { showFilters } = getState();\n\n const { column } = header;\n\n const { columnDefType } = column;\n\n return (\n <Divider\n flexItem\n orientation=\"vertical\"\n onDoubleClick={() => column.resetSize()}\n sx={(theme: Theme) => ({\n borderRadius: '2px',\n borderRightWidth: '2px',\n cursor: 'col-resize',\n height: showFilters && columnDefType === 'data' ? '4rem' : '2rem',\n opacity: 0.8,\n position: 'absolute',\n mr: '-1rem',\n right: '1px',\n touchAction: 'none',\n transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',\n userSelect: 'none',\n '&:active': {\n backgroundColor: theme.palette.info.main,\n opacity: 1,\n },\n })}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n style={{\n transform: column.getIsResizing()\n ? `translateX(${getState().columnSizingInfo.deltaOffset}px)`\n : 'none',\n }}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { TableSortLabel, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellSortLabel: FC<Props> = ({ header, instance }) => {\n const {\n options: { localization },\n } = instance;\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const sortTooltip = !!column.getIsSorted()\n ? column.getIsSorted() === 'desc'\n ? localization.sortedByColumnDesc.replace('{column}', columnDef.header)\n : localization.sortedByColumnAsc.replace('{column}', columnDef.header)\n : localization.unsorted;\n\n return (\n <Tooltip arrow placement=\"top\" title={sortTooltip}>\n <TableSortLabel\n aria-label={sortTooltip}\n active={!!column.getIsSorted()}\n direction={\n column.getIsSorted()\n ? (column.getIsSorted() as 'asc' | 'desc')\n : undefined\n }\n sx={{\n width: '2ch',\n transform: 'translateX(-0.5ch)',\n }}\n />\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({\n header,\n instance,\n}) => {\n const {\n options: {\n icons: { MoreVertIcon },\n localization,\n muiTableHeadCellColumnActionsButtonProps,\n },\n } = instance;\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const mTableHeadCellColumnActionsButtonProps =\n muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? muiTableHeadCellColumnActionsButtonProps({ column, instance })\n : muiTableHeadCellColumnActionsButtonProps;\n\n const mcTableHeadCellColumnActionsButtonProps =\n columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? columnDef.muiTableHeadCellColumnActionsButtonProps({\n column,\n instance,\n })\n : columnDef.muiTableHeadCellColumnActionsButtonProps;\n\n const iconButtonProps = {\n ...mTableHeadCellColumnActionsButtonProps,\n ...mcTableHeadCellColumnActionsButtonProps,\n };\n\n return (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.columnActions}\n >\n <IconButton\n aria-label={localization.columnActions}\n onClick={handleClick}\n size=\"small\"\n {...iconButtonProps}\n sx={{\n height: '2rem',\n mt: '-0.2rem',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n ...iconButtonProps.sx,\n }}\n >\n <MoreVertIcon />\n </IconButton>\n </Tooltip>\n <MRT_ColumnActionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n instance={instance}\n />\n </>\n );\n};\n","import React, { FC, ReactNode, Ref } from 'react';\nimport { Box, TableCell, Theme, alpha, lighten } from '@mui/material';\nimport { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer';\nimport { MRT_TableHeadCellFilterLabel } from './MRT_TableHeadCellFilterLabel';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';\nimport { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';\nimport { MRT_TableHeadCellColumnActionsButton } from './MRT_TableHeadCellColumnActionsButton';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n dragRef?: Ref<HTMLButtonElement>;\n dropRef?: Ref<HTMLDivElement>;\n header: MRT_Header;\n instance: MRT_TableInstance;\n isDragging?: boolean;\n previewRef?: Ref<HTMLTableCellElement>;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({\n dragRef,\n dropRef,\n header,\n instance,\n isDragging,\n previewRef,\n}) => {\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnOrdering,\n enableColumnResizing,\n enableGrouping,\n enableMultiSort,\n muiTableHeadCellProps,\n },\n } = instance;\n\n const { density, showFilters } = getState();\n\n const { column } = header;\n\n const { columnDef, columnDefType } = column;\n\n const mTableHeadCellProps =\n muiTableHeadCellProps instanceof Function\n ? muiTableHeadCellProps({ column, instance })\n : muiTableHeadCellProps;\n\n const mcTableHeadCellProps =\n columnDef.muiTableHeadCellProps instanceof Function\n ? columnDef.muiTableHeadCellProps({ column, instance })\n : columnDef.muiTableHeadCellProps;\n\n const tableCellProps = {\n ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const headerElement = ((columnDef?.Header instanceof Function\n ? columnDef?.Header?.({\n header,\n instance,\n })\n : columnDef?.Header) ??\n header.renderHeader() ??\n columnDef.header) as ReactNode;\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n instance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (instance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) *\n 150\n );\n };\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={header.colSpan}\n {...tableCellProps}\n ref={\n columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined\n }\n sx={(theme: Theme) => ({\n backgroundColor:\n column.getIsPinned() && columnDefType !== 'group'\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : 'inherit',\n backgroundImage: 'inherit',\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n fontWeight: 'bold',\n height: '100%',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'visible',\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pb: columnDefType === 'display' ? 0 : undefined,\n position:\n column.getIsPinned() && columnDefType !== 'group'\n ? 'sticky'\n : undefined,\n pt:\n columnDefType !== 'data'\n ? 0\n : density === 'compact'\n ? '0.25'\n : density === 'comfortable'\n ? '.75rem'\n : '1.25rem',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,\n userSelect: enableMultiSort ? 'none' : undefined,\n verticalAlign:\n columnDefType === 'display' && showFilters ? 'center' : 'text-top',\n zIndex: column.getIsResizing()\n ? 3\n : column.getIsPinned() && columnDefType !== 'group'\n ? 2\n : 1,\n ...(tableCellProps?.sx as any),\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: header.getSize(),\n })}\n >\n {header.isPlaceholder ? null : columnDefType === 'display' ? (\n headerElement\n ) : (\n <Box\n ref={previewRef}\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n columnDefType === 'group' ? 'center' : 'space-between',\n opacity: isDragging ? 0.5 : 1,\n position: 'relative',\n width: '100%',\n }}\n >\n <Box\n onClick={column.getToggleSortingHandler()}\n sx={{\n alignItems: 'center',\n cursor:\n column.getCanSort() && columnDefType !== 'group'\n ? 'pointer'\n : undefined,\n display: 'flex',\n flexWrap: 'nowrap',\n whiteSpace:\n (columnDef.header?.length ?? 0) < 24 ? 'nowrap' : 'normal',\n }}\n >\n {headerElement}\n {columnDefType === 'data' && column.getCanSort() && (\n <MRT_TableHeadCellSortLabel header={header} instance={instance} />\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterLabel\n header={header}\n instance={instance}\n />\n )}\n </Box>\n <Box sx={{ whiteSpace: 'nowrap' }}>\n {columnDefType === 'data' &&\n ((enableColumnOrdering &&\n columnDef.enableColumnOrdering !== false) ||\n (enableGrouping && columnDef.enableGrouping !== false)) && (\n <MRT_GrabHandleButton\n ref={dragRef as Ref<HTMLButtonElement>}\n instance={instance}\n />\n )}\n {(enableColumnActions || columnDef.enableColumnActions) &&\n columnDef.enableColumnActions !== false &&\n columnDefType !== 'group' && (\n <MRT_TableHeadCellColumnActionsButton\n header={header}\n instance={instance}\n />\n )}\n </Box>\n {column.getCanResize() && (\n <MRT_TableHeadCellResizeHandle\n header={header}\n instance={instance}\n />\n )}\n </Box>\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterContainer header={header} instance={instance} />\n )}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { useDrag, useDrop } from 'react-dnd';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport type { MRT_Column, MRT_Header, MRT_TableInstance } from '..';\nimport { reorderColumn } from '../utils';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_DraggableTableHeadCell: FC<Props> = ({ header, instance }) => {\n const { getState, setColumnOrder } = instance;\n\n const { columnOrder } = getState();\n\n const { column } = header;\n\n const [, dropRef] = useDrop({\n accept: 'column',\n drop: (movingColumn: MRT_Column) => {\n const newColumnOrder = reorderColumn(movingColumn, column, columnOrder);\n setColumnOrder(newColumnOrder);\n },\n });\n\n const [{ isDragging }, dragRef, previewRef] = useDrag({\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n item: () => column,\n type: 'column',\n });\n\n return (\n <MRT_TableHeadCell\n dragRef={dragRef}\n dropRef={dropRef}\n header={header}\n isDragging={isDragging}\n previewRef={previewRef}\n instance={instance}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, lighten, TableRow } from '@mui/material';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport { MRT_DraggableTableHeadCell } from './MRT_DraggableTableHeadCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n headerGroup: MRT_HeaderGroup;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup, instance }) => {\n const {\n options: { enableColumnOrdering, enableGrouping, muiTableHeadRowProps },\n } = instance;\n\n const tableRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, instance })\n : muiTableHeadRowProps;\n\n return (\n <TableRow\n {...tableRowProps}\n sx={(theme) => ({\n boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`,\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n ...(tableRowProps?.sx as any),\n })}\n >\n {headerGroup.headers.map((header: MRT_Header, index) =>\n enableColumnOrdering || enableGrouping ? (\n <MRT_DraggableTableHeadCell\n header={header}\n key={header.id || index}\n instance={instance}\n />\n ) : (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n instance={instance}\n />\n ),\n )}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableHead } from '@mui/material';\nimport { MRT_TableHeadRow } from './MRT_TableHeadRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ instance }) => {\n const {\n getHeaderGroups,\n options: { muiTableHeadProps },\n } = instance;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ instance })\n : muiTableHeadProps;\n\n return (\n <TableHead {...tableHeadProps}>\n {getHeaderGroups().map((headerGroup) => (\n <MRT_TableHeadRow\n headerGroup={headerGroup as any}\n key={headerGroup.id}\n instance={instance}\n />\n ))}\n </TableHead>\n );\n};\n","var props = ['bottom', 'height', 'left', 'right', 'top', 'width'];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes =\n/*#__PURE__*/\nnew Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes[\"delete\"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\nexport default observeRect;\n//# sourceMappingURL=observe-rect.esm.js.map\n","import React from 'react'\n\nexport default typeof window !== 'undefined'\n ? React.useLayoutEffect\n : React.useEffect\n","import React from 'react'\nimport observeRect from '@reach/observe-rect'\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect'\n\nexport default function useRect(\n nodeRef,\n initialRect = { width: 0, height: 0 }\n) {\n const [element, setElement] = React.useState(nodeRef.current)\n const [rect, dispatch] = React.useReducer(rectReducer, initialRect)\n const initialRectSet = React.useRef(false)\n\n useIsomorphicLayoutEffect(() => {\n if (nodeRef.current !== element) {\n setElement(nodeRef.current)\n }\n })\n\n useIsomorphicLayoutEffect(() => {\n if (element && !initialRectSet.current) {\n initialRectSet.current = true\n const rect = element.getBoundingClientRect()\n dispatch({ rect })\n }\n }, [element])\n\n React.useEffect(() => {\n if (!element) {\n return\n }\n\n const observer = observeRect(element, rect => {\n dispatch({ rect })\n })\n\n observer.observe()\n\n return () => {\n observer.unobserve()\n }\n }, [element])\n\n return rect\n}\n\nfunction rectReducer(state, action) {\n const rect = action.rect\n if (state.height !== rect.height || state.width !== rect.width) {\n return rect\n }\n return state\n}\n","import React from 'react'\nimport useRect from './useRect'\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect'\n\nconst defaultEstimateSize = () => 50\n\nconst defaultKeyExtractor = index => index\n\nconst defaultMeasureSize = (el, horizontal) => {\n const key = horizontal ? 'offsetWidth' : 'offsetHeight'\n\n return el[key]\n}\n\nexport const defaultRangeExtractor = range => {\n const start = Math.max(range.start - range.overscan, 0)\n const end = Math.min(range.end + range.overscan, range.size - 1)\n\n const arr = []\n\n for (let i = start; i <= end; i++) {\n arr.push(i)\n }\n\n return arr\n}\n\nexport function useVirtual({\n size = 0,\n estimateSize = defaultEstimateSize,\n overscan = 1,\n paddingStart = 0,\n paddingEnd = 0,\n parentRef,\n horizontal,\n scrollToFn,\n useObserver,\n initialRect,\n onScrollElement,\n scrollOffsetFn,\n keyExtractor = defaultKeyExtractor,\n measureSize = defaultMeasureSize,\n rangeExtractor = defaultRangeExtractor,\n}) {\n const sizeKey = horizontal ? 'width' : 'height'\n const scrollKey = horizontal ? 'scrollLeft' : 'scrollTop'\n\n const latestRef = React.useRef({\n scrollOffset: 0,\n measurements: [],\n })\n\n const [scrollOffset, setScrollOffset] = React.useState(0)\n latestRef.current.scrollOffset = scrollOffset\n\n const useMeasureParent = useObserver || useRect\n\n const { [sizeKey]: outerSize } = useMeasureParent(parentRef, initialRect)\n\n latestRef.current.outerSize = outerSize\n\n const defaultScrollToFn = React.useCallback(\n offset => {\n if (parentRef.current) {\n parentRef.current[scrollKey] = offset\n }\n },\n [parentRef, scrollKey]\n )\n\n const resolvedScrollToFn = scrollToFn || defaultScrollToFn\n\n scrollToFn = React.useCallback(\n offset => {\n resolvedScrollToFn(offset, defaultScrollToFn)\n },\n [defaultScrollToFn, resolvedScrollToFn]\n )\n\n const [measuredCache, setMeasuredCache] = React.useState({})\n\n const measure = React.useCallback(() => setMeasuredCache({}), [])\n\n const pendingMeasuredCacheIndexesRef = React.useRef([])\n\n const measurements = React.useMemo(() => {\n const min =\n pendingMeasuredCacheIndexesRef.current.length > 0\n ? Math.min(...pendingMeasuredCacheIndexesRef.current)\n : 0\n pendingMeasuredCacheIndexesRef.current = []\n\n const measurements = latestRef.current.measurements.slice(0, min)\n\n for (let i = min; i < size; i++) {\n const key = keyExtractor(i)\n const measuredSize = measuredCache[key]\n const start = measurements[i - 1] ? measurements[i - 1].end : paddingStart\n const size =\n typeof measuredSize === 'number' ? measuredSize : estimateSize(i)\n const end = start + size\n measurements[i] = { index: i, start, size, end, key }\n }\n return measurements\n }, [estimateSize, measuredCache, paddingStart, size, keyExtractor])\n\n const totalSize = (measurements[size - 1]?.end || paddingStart) + paddingEnd\n\n latestRef.current.measurements = measurements\n latestRef.current.totalSize = totalSize\n\n const element = onScrollElement ? onScrollElement.current : parentRef.current\n\n const scrollOffsetFnRef = React.useRef(scrollOffsetFn)\n scrollOffsetFnRef.current = scrollOffsetFn\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n setScrollOffset(0)\n\n return\n }\n\n const onScroll = event => {\n const offset = scrollOffsetFnRef.current\n ? scrollOffsetFnRef.current(event)\n : element[scrollKey]\n\n setScrollOffset(offset)\n }\n\n onScroll()\n\n element.addEventListener('scroll', onScroll, {\n capture: false,\n passive: true,\n })\n\n return () => {\n element.removeEventListener('scroll', onScroll)\n }\n }, [element, scrollKey])\n\n const { start, end } = calculateRange(latestRef.current)\n\n const indexes = React.useMemo(\n () =>\n rangeExtractor({\n start,\n end,\n overscan,\n size: measurements.length,\n }),\n [start, end, overscan, measurements.length, rangeExtractor]\n )\n\n const measureSizeRef = React.useRef(measureSize)\n measureSizeRef.current = measureSize\n\n const virtualItems = React.useMemo(() => {\n const virtualItems = []\n\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k]\n const measurement = measurements[i]\n\n const item = {\n ...measurement,\n measureRef: el => {\n if (el) {\n const measuredSize = measureSizeRef.current(el, horizontal)\n\n if (measuredSize !== item.size) {\n const { scrollOffset } = latestRef.current\n\n if (item.start < scrollOffset) {\n defaultScrollToFn(scrollOffset + (measuredSize - item.size))\n }\n\n pendingMeasuredCacheIndexesRef.current.push(i)\n\n setMeasuredCache(old => ({\n ...old,\n [item.key]: measuredSize,\n }))\n }\n }\n },\n }\n\n virtualItems.push(item)\n }\n\n return virtualItems\n }, [indexes, defaultScrollToFn, horizontal, measurements])\n\n const mountedRef = React.useRef(false)\n\n useIsomorphicLayoutEffect(() => {\n if (mountedRef.current) {\n setMeasuredCache({})\n }\n mountedRef.current = true\n }, [estimateSize])\n\n const scrollToOffset = React.useCallback(\n (toOffset, { align = 'start' } = {}) => {\n const { scrollOffset, outerSize } = latestRef.current\n\n if (align === 'auto') {\n if (toOffset <= scrollOffset) {\n align = 'start'\n } else if (toOffset >= scrollOffset + outerSize) {\n align = 'end'\n } else {\n align = 'start'\n }\n }\n\n if (align === 'start') {\n scrollToFn(toOffset)\n } else if (align === 'end') {\n scrollToFn(toOffset - outerSize)\n } else if (align === 'center') {\n scrollToFn(toOffset - outerSize / 2)\n }\n },\n [scrollToFn]\n )\n\n const tryScrollToIndex = React.useCallback(\n (index, { align = 'auto', ...rest } = {}) => {\n const { measurements, scrollOffset, outerSize } = latestRef.current\n\n const measurement = measurements[Math.max(0, Math.min(index, size - 1))]\n\n if (!measurement) {\n return\n }\n\n if (align === 'auto') {\n if (measurement.end >= scrollOffset + outerSize) {\n align = 'end'\n } else if (measurement.start <= scrollOffset) {\n align = 'start'\n } else {\n return\n }\n }\n\n const toOffset =\n align === 'center'\n ? measurement.start + measurement.size / 2\n : align === 'end'\n ? measurement.end\n : measurement.start\n\n scrollToOffset(toOffset, { align, ...rest })\n },\n [scrollToOffset, size]\n )\n\n const scrollToIndex = React.useCallback(\n (...args) => {\n // We do a double request here because of\n // dynamic sizes which can cause offset shift\n // and end up in the wrong spot. Unfortunately,\n // we can't know about those dynamic sizes until\n // we try and render them. So double down!\n tryScrollToIndex(...args)\n requestAnimationFrame(() => {\n tryScrollToIndex(...args)\n })\n },\n [tryScrollToIndex]\n )\n\n return {\n virtualItems,\n totalSize,\n scrollToOffset,\n scrollToIndex,\n measure,\n }\n}\n\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n let middle = ((low + high) / 2) | 0\n let currentValue = getCurrentValue(middle)\n\n if (currentValue < value) {\n low = middle + 1\n } else if (currentValue > value) {\n high = middle - 1\n } else {\n return middle\n }\n }\n\n if (low > 0) {\n return low - 1\n } else {\n return 0\n }\n}\n\nfunction calculateRange({ measurements, outerSize, scrollOffset }) {\n const size = measurements.length - 1\n const getOffset = index => measurements[index].start\n\n let start = findNearestBinarySearch(0, size, getOffset, scrollOffset)\n let end = start\n\n while (end < size && measurements[end].end < scrollOffset + outerSize) {\n end++\n }\n\n return { start, end }\n}\n","import React, {\n ChangeEvent,\n FC,\n FocusEvent,\n MouseEvent,\n useState,\n} from 'react';\nimport { TextField } from '@mui/material';\nimport type { MRT_Cell, MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_EditCellTextField: FC<Props> = ({ cell, instance }) => {\n const {\n getState,\n options: {\n tableId,\n enableEditing,\n muiTableBodyCellEditTextFieldProps,\n onCellEditBlur,\n onCellEditChanged,\n },\n setCurrentEditingCell,\n setCurrentEditingRow,\n } = instance;\n\n const [value, setValue] = useState(cell.getValue());\n\n const { column, row } = cell;\n\n const { columnDef } = column;\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value);\n columnDef.onCellEditChanged?.({ event, cell, instance });\n onCellEditChanged?.({ event, cell, instance });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (getState().currentEditingRow) {\n if (!row._valuesCache) row._valuesCache = {};\n (row._valuesCache as Record<string, any>)[column.id] = value;\n setCurrentEditingRow({ ...getState().currentEditingRow } as MRT_Row);\n }\n setCurrentEditingCell(null);\n columnDef.onCellEditBlur?.({ event, cell, instance });\n onCellEditBlur?.({ event, cell, instance });\n };\n\n const mTableBodyCellEditTextFieldProps =\n muiTableBodyCellEditTextFieldProps instanceof Function\n ? muiTableBodyCellEditTextFieldProps({ cell, instance })\n : muiTableBodyCellEditTextFieldProps;\n\n const mcTableBodyCellEditTextFieldProps =\n columnDef.muiTableBodyCellEditTextFieldProps instanceof Function\n ? columnDef.muiTableBodyCellEditTextFieldProps({\n cell,\n instance,\n })\n : columnDef.muiTableBodyCellEditTextFieldProps;\n\n const textFieldProps = {\n ...mTableBodyCellEditTextFieldProps,\n ...mcTableBodyCellEditTextFieldProps,\n };\n\n if (enableEditing && columnDef.enableEditing !== false && columnDef.Edit) {\n return <>{columnDef.Edit?.({ cell, instance })}</>;\n }\n\n return (\n <TextField\n id={`mrt-${tableId}-edit-cell-text-field-${cell.id}`}\n margin=\"dense\"\n onBlur={handleBlur}\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n placeholder={columnDef.header}\n value={value}\n variant=\"standard\"\n {...textFieldProps}\n />\n );\n};\n","import React, { FC, ReactNode, useState } from 'react';\nimport { Button, Tooltip } from '@mui/material';\nimport { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n children: ReactNode;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_CopyButton: FC<Props> = ({ cell, children, instance }) => {\n const {\n options: { localization, muiTableBodyCellCopyButtonProps },\n } = instance;\n\n const { column } = cell;\n\n const { columnDef } = column;\n\n const [copied, setCopied] = useState(false);\n\n const handleCopy = (text: unknown) => {\n navigator.clipboard.writeText(text as string);\n setCopied(true);\n setTimeout(() => setCopied(false), 4000);\n };\n\n const mTableBodyCellCopyButtonProps =\n muiTableBodyCellCopyButtonProps instanceof Function\n ? muiTableBodyCellCopyButtonProps({ cell, instance })\n : muiTableBodyCellCopyButtonProps;\n\n const mcTableBodyCellCopyButtonProps =\n columnDef.muiTableBodyCellCopyButtonProps instanceof Function\n ? columnDef.muiTableBodyCellCopyButtonProps({\n cell,\n instance,\n })\n : columnDef.muiTableBodyCellCopyButtonProps;\n\n const buttonProps = {\n ...mTableBodyCellCopyButtonProps,\n ...mcTableBodyCellCopyButtonProps,\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={copied ? localization.copiedToClipboard : localization.clickToCopy}\n >\n <Button\n aria-label={localization.clickToCopy}\n onClick={() => handleCopy(cell.getValue())}\n size=\"small\"\n type=\"button\"\n variant=\"text\"\n {...buttonProps}\n sx={{\n backgroundColor: 'transparent',\n border: 'none',\n color: 'inherit',\n cursor: 'copy',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n letterSpacing: 'inherit',\n m: '-0.25rem',\n minWidth: 'unset',\n textAlign: 'inherit',\n textTransform: 'inherit',\n ...buttonProps?.sx,\n }}\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useMemo } from 'react';\nimport { useDrop } from 'react-dnd';\nimport { alpha, darken, lighten, Skeleton, TableCell } from '@mui/material';\nimport { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';\nimport { MRT_CopyButton } from '../buttons/MRT_CopyButton';\nimport { reorderColumn } from '../utils';\nimport type { MRT_Cell, MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n enableHover?: boolean;\n rowIndex: number;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({\n cell,\n enableHover,\n rowIndex,\n instance,\n}) => {\n const {\n getState,\n options: {\n editingMode,\n enableClickToCopy,\n enableColumnOrdering,\n enableEditing,\n enableRowNumbers,\n muiTableBodyCellProps,\n muiTableBodyCellSkeletonProps,\n onCellClick,\n onRowClick,\n rowNumberMode,\n tableId,\n },\n setColumnOrder,\n setCurrentEditingCell,\n } = instance;\n\n const {\n columnOrder,\n currentEditingCell,\n currentEditingRow,\n density,\n isLoading,\n showSkeletons,\n } = getState();\n\n const { column, row } = cell;\n\n const { columnDef, columnDefType } = column;\n\n const [, dropRef] = useDrop({\n accept: 'column',\n drop: (movingColumn: MRT_Column) => {\n const newColumnOrder = reorderColumn(movingColumn, column, columnOrder);\n setColumnOrder(newColumnOrder);\n },\n });\n\n const mTableCellBodyProps =\n muiTableBodyCellProps instanceof Function\n ? muiTableBodyCellProps({ cell, instance })\n : muiTableBodyCellProps;\n\n const mcTableCellBodyProps =\n columnDef.muiTableBodyCellProps instanceof Function\n ? columnDef.muiTableBodyCellProps({ cell, instance })\n : columnDef.muiTableBodyCellProps;\n\n const tableCellProps = {\n ...mTableCellBodyProps,\n ...mcTableCellBodyProps,\n };\n\n const skeletonWidth = useMemo(\n () =>\n columnDefType === 'display'\n ? column.getSize() / 2\n : Math.random() * (column.getSize() - column.getSize() / 3) +\n column.getSize() / 3,\n [columnDefType, column.getSize()],\n );\n\n const isEditable =\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false;\n\n const isEditing =\n isEditable &&\n (editingMode === 'table' ||\n currentEditingRow?.id === row.id ||\n currentEditingCell?.id === cell.id);\n\n const handleDoubleClick = (_event: MouseEvent<HTMLTableCellElement>) => {\n if (\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false &&\n editingMode === 'cell'\n ) {\n setCurrentEditingCell(cell);\n setTimeout(() => {\n const textField = document.getElementById(\n `mrt-${tableId}-edit-cell-text-field-${cell.id}`,\n ) as HTMLInputElement;\n if (textField) {\n textField.focus();\n textField.select();\n }\n }, 200);\n }\n };\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n instance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (instance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) *\n 150\n );\n };\n\n return (\n <TableCell\n onClick={(event: MouseEvent<HTMLTableCellElement>) =>\n onCellClick?.({ event, cell, instance })\n }\n onDoubleClick={handleDoubleClick}\n {...tableCellProps}\n ref={\n columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined\n }\n sx={(theme) => ({\n backgroundColor: column.getIsPinned()\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : undefined,\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n cursor:\n (isEditable && editingMode === 'cell') || onRowClick || onCellClick\n ? 'pointer'\n : 'text',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'hidden',\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pl:\n column.id === 'mrt-expand'\n ? `${\n row.depth +\n (density === 'compact'\n ? 0.5\n : density === 'comfortable'\n ? 0.75\n : 1.25)\n }rem`\n : undefined,\n position: column.getIsPinned() ? 'sticky' : 'relative',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined,\n transition: 'all 0.2s ease-in-out',\n whiteSpace: density === 'compact' ? 'nowrap' : 'normal',\n zIndex: column.getIsPinned() ? 1 : undefined,\n '&:hover': {\n backgroundColor:\n enableHover && enableEditing && editingMode !== 'row'\n ? theme.palette.mode === 'dark'\n ? `${lighten(\n theme.palette.background.default,\n 0.13,\n )} !important`\n : `${darken(theme.palette.background.default, 0.07)} !important`\n : undefined,\n },\n ...(tableCellProps?.sx as any),\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: column.getSize(),\n })}\n >\n <>\n {isLoading || showSkeletons ? (\n <Skeleton\n animation=\"wave\"\n height={20}\n width={skeletonWidth}\n {...muiTableBodyCellSkeletonProps}\n />\n ) : enableRowNumbers &&\n rowNumberMode === 'static' &&\n column.id === 'mrt-row-numbers' ? (\n rowIndex + 1\n ) : columnDefType === 'display' ? (\n columnDef.Cell?.({ cell, instance })\n ) : cell.getIsPlaceholder() ||\n (row.getIsGrouped() &&\n column.id !==\n row.groupingColumnId) ? null : cell.getIsAggregated() ? (\n columnDef.AggregatedCell?.({ cell, instance }) ??\n cell.renderAggregatedCell()\n ) : isEditing ? (\n <MRT_EditCellTextField cell={cell} instance={instance} />\n ) : (enableClickToCopy || columnDef.enableClickToCopy) &&\n columnDef.enableClickToCopy !== false ? (\n <>\n <MRT_CopyButton cell={cell} instance={instance}>\n <>{columnDef?.Cell?.({ cell, instance }) ?? cell.renderCell()}</>\n </MRT_CopyButton>\n {row.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {columnDef?.Cell?.({ cell, instance }) ?? cell.renderCell()}\n {row.getIsGrouped() && <> ({row.subRows?.length ?? ''})</>}\n </>\n )}\n </>\n </TableCell>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { Collapse, TableCell, TableRow } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row, instance }) => {\n const {\n getVisibleLeafColumns,\n options: {\n muiTableBodyRowProps,\n muiTableDetailPanelProps,\n onDetailPanelClick,\n renderDetailPanel,\n },\n } = instance;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, instance })\n : muiTableBodyRowProps;\n\n const tableCellProps =\n muiTableDetailPanelProps instanceof Function\n ? muiTableDetailPanelProps({ row, instance })\n : muiTableDetailPanelProps;\n\n return (\n <TableRow {...tableRowProps}>\n <TableCell\n colSpan={getVisibleLeafColumns().length}\n onClick={(event: MouseEvent<HTMLTableCellElement>) =>\n onDetailPanelClick?.({ event, row, instance })\n }\n {...tableCellProps}\n sx={{\n borderBottom: !row.getIsExpanded() ? 'none' : undefined,\n pb: row.getIsExpanded() ? '1rem' : 0,\n pt: row.getIsExpanded() ? '1rem' : 0,\n transition: 'all 0.2s ease-in-out',\n width: `${instance.getTotalSize()}px`,\n ...tableCellProps?.sx,\n }}\n >\n {renderDetailPanel && (\n <Collapse in={row.getIsExpanded()}>\n {renderDetailPanel({ row, instance })}\n </Collapse>\n )}\n </TableCell>\n </TableRow>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { darken, lighten, TableRow } from '@mui/material';\nimport { MRT_TableBodyCell } from './MRT_TableBodyCell';\nimport { MRT_TableDetailPanel } from './MRT_TableDetailPanel';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n rowIndex: number;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row, rowIndex, instance }) => {\n const {\n getIsSomeColumnsPinned,\n options: { muiTableBodyRowProps, onRowClick, renderDetailPanel },\n } = instance;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, instance })\n : muiTableBodyRowProps;\n\n return (\n <>\n <TableRow\n hover\n onClick={(event: MouseEvent<HTMLTableRowElement>) =>\n onRowClick?.({ event, row, instance })\n }\n selected={row.getIsSelected()}\n {...tableRowProps}\n sx={(theme) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.06),\n transition: 'all 0.2s ease-in-out',\n '&:hover td': {\n backgroundColor:\n tableRowProps?.hover !== false && getIsSomeColumnsPinned()\n ? theme.palette.mode === 'dark'\n ? `${lighten(theme.palette.background.default, 0.12)}`\n : `${darken(theme.palette.background.default, 0.05)}`\n : undefined,\n },\n ...(tableRowProps?.sx as any),\n })}\n >\n {row.getVisibleCells().map((cell) => (\n <MRT_TableBodyCell\n cell={cell}\n key={cell.id}\n enableHover={tableRowProps?.hover !== false}\n rowIndex={rowIndex}\n instance={instance}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !row.getIsGrouped() && (\n <MRT_TableDetailPanel row={row} instance={instance} />\n )}\n </>\n );\n};\n","import { compareItems, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { Row, sortingFns } from '@tanstack/react-table';\nimport type { MRT_Row } from '.';\n\nconst fuzzy = (rowA: MRT_Row, rowB: MRT_Row, columnId: string) => {\n let dir = 0;\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]! as RankingInfo,\n rowB.columnFiltersMeta[columnId]! as RankingInfo,\n );\n }\n // Provide a fallback for when the item ranks are equal\n return dir === 0\n ? sortingFns.alphanumeric(rowA as Row<any>, rowB as Row<any>, columnId)\n : dir;\n};\n\nexport const MRT_SortingFns = {\n fuzzy,\n};\n\nexport const rankGlobalFuzzy = (rowA: MRT_Row, rowB: MRT_Row) =>\n Math.max(...Object.values(rowB.columnFiltersMeta).map((v: any) => v.rank)) -\n Math.max(...Object.values(rowA.columnFiltersMeta).map((v: any) => v.rank));\n","import React, { FC, RefObject, useMemo } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { TableBody } from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport type { MRT_Row, MRT_TableInstance } from '..';\nimport { rankGlobalFuzzy } from '../sortingFns';\n\ninterface Props {\n instance: MRT_TableInstance;\n tableContainerRef: RefObject<HTMLDivElement>;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ instance, tableContainerRef }) => {\n const {\n getRowModel,\n getPrePaginationRowModel,\n getState,\n options: {\n enableGlobalFilterRankedResults,\n enablePagination,\n enableRowVirtualization,\n muiTableBodyProps,\n virtualizerProps,\n },\n } = instance;\n\n const { density, globalFilter, pagination, sorting } = getState();\n\n const tableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ instance })\n : muiTableBodyProps;\n\n const getIsSomeColumnsSorted = () => {\n return Object.values(sorting).some(Boolean);\n };\n\n const rows = useMemo(() => {\n if (\n enableGlobalFilterRankedResults &&\n globalFilter &&\n !getIsSomeColumnsSorted()\n ) {\n const rankedRows = getPrePaginationRowModel().rows.sort((a, b) =>\n rankGlobalFuzzy(a, b),\n );\n if (enablePagination) {\n return rankedRows.slice(0, pagination.pageSize);\n }\n return rankedRows;\n }\n\n return enablePagination\n ? getRowModel().rows\n : getPrePaginationRowModel().rows;\n }, [\n enableGlobalFilterRankedResults,\n (enableGlobalFilterRankedResults && globalFilter) || !enablePagination\n ? getPrePaginationRowModel().rows\n : getRowModel().rows,\n globalFilter,\n ]);\n\n const rowVirtualizer = enableRowVirtualization\n ? useVirtual({\n overscan: density === 'compact' ? 20 : 10,\n size: rows.length,\n parentRef: tableContainerRef,\n ...virtualizerProps,\n })\n : ({} as any);\n\n const { virtualItems: virtualRows } = rowVirtualizer;\n const paddingTop = virtualRows?.length > 0 ? virtualRows[0].start : 0;\n const paddingBottom =\n virtualRows?.length > 0\n ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end\n : 0;\n\n return (\n <TableBody {...tableBodyProps}>\n {enableRowVirtualization && paddingTop > 0 && (\n <tr>\n <td style={{ height: `${paddingTop}px` }} />\n </tr>\n )}\n {/* @ts-ignore */}\n {(enableRowVirtualization ? virtualRows : rows).map(\n (rowOrVirtualRow: any, rowIndex: number) => {\n const row = enableRowVirtualization\n ? (rows[rowOrVirtualRow.index] as MRT_Row)\n : (rowOrVirtualRow as MRT_Row);\n return (\n <MRT_TableBodyRow\n key={row.id}\n row={row}\n rowIndex={\n enableRowVirtualization ? rowOrVirtualRow.index : rowIndex\n }\n instance={instance}\n />\n );\n },\n )}\n {enableRowVirtualization && paddingBottom > 0 && (\n <tr>\n <td style={{ height: `${paddingBottom}px` }} />\n </tr>\n )}\n </TableBody>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, TableCell } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n footer: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ footer, instance }) => {\n const {\n getState,\n options: { muiTableFooterCellProps, enableColumnResizing },\n } = instance;\n\n const { density } = getState();\n\n const { column } = footer;\n\n const { columnDef, columnDefType } = column;\n\n const mTableFooterCellProps =\n muiTableFooterCellProps instanceof Function\n ? muiTableFooterCellProps({ column, instance })\n : muiTableFooterCellProps;\n\n const mcTableFooterCellProps =\n columnDef.muiTableFooterCellProps instanceof Function\n ? columnDef.muiTableFooterCellProps({ column, instance })\n : columnDef.muiTableFooterCellProps;\n\n const tableCellProps = {\n ...mTableFooterCellProps,\n ...mcTableFooterCellProps,\n };\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={footer.colSpan}\n variant=\"head\"\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: theme.palette.background.default,\n backgroundImage: `linear-gradient(${alpha(\n theme.palette.common.white,\n 0.05,\n )},${alpha(theme.palette.common.white, 0.05)})`,\n fontWeight: 'bold',\n maxWidth: `${column.getSize()}px`,\n minWidth: `${column.getSize()}px`,\n p:\n density === 'compact'\n ? '0.5rem'\n : density === 'comfortable'\n ? '1rem'\n : '1.5rem',\n transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`,\n width: column.getSize(),\n verticalAlign: 'text-top',\n ...(tableCellProps?.sx as any),\n })}\n >\n <>\n {footer.isPlaceholder\n ? null\n : (columnDef.Footer instanceof Function\n ? columnDef.Footer?.({\n footer,\n instance,\n })\n : columnDef.Footer) ??\n columnDef.footer ??\n footer.renderFooter() ??\n null}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableRow } from '@mui/material';\nimport { MRT_TableFooterCell } from './MRT_TableFooterCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n footerGroup: MRT_HeaderGroup;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({ footerGroup, instance }) => {\n const {\n options: { muiTableFooterRowProps },\n } = instance;\n\n // if no content in row, skip row\n if (\n !footerGroup.headers?.some(\n (header) =>\n (typeof header.column.columnDef.footer === 'string' &&\n !!header.column.columnDef.footer) ||\n header.column.columnDef.Footer,\n )\n )\n return null;\n\n const tableRowProps =\n muiTableFooterRowProps instanceof Function\n ? muiTableFooterRowProps({ footerGroup, instance })\n : muiTableFooterRowProps;\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell\n footer={footer}\n key={footer.id}\n instance={instance}\n />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableFooter } from '@mui/material';\nimport { MRT_TableFooterRow } from './MRT_TableFooterRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ instance }) => {\n const {\n getFooterGroups,\n\n options: { muiTableFooterProps },\n } = instance;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ instance })\n : muiTableFooterProps;\n\n return (\n <TableFooter {...tableFooterProps}>\n {getFooterGroups().map((footerGroup) => (\n <MRT_TableFooterRow\n footerGroup={footerGroup as any}\n key={footerGroup.id}\n instance={instance}\n />\n ))}\n </TableFooter>\n );\n};\n","import React, { FC, RefObject } from 'react';\nimport { Table } from '@mui/material';\nimport { MRT_TableHead } from '../head/MRT_TableHead';\nimport { MRT_TableBody } from '../body/MRT_TableBody';\nimport { MRT_TableFooter } from '../footer/MRT_TableFooter';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableContainerRef: RefObject<HTMLDivElement>;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ tableContainerRef, instance }) => {\n const {\n getState,\n options: {\n enableColumnResizing,\n enableRowVirtualization,\n enableStickyHeader,\n enableTableFooter,\n enableTableHead,\n muiTableProps,\n },\n } = instance;\n\n const { isFullScreen } = getState();\n\n const tableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ instance })\n : muiTableProps;\n\n return (\n <Table\n stickyHeader={\n enableStickyHeader || enableRowVirtualization || isFullScreen\n }\n {...tableProps}\n sx={{\n tableLayout:\n enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto',\n ...tableProps?.sx,\n }}\n >\n {enableTableHead && <MRT_TableHead instance={instance} />}\n <MRT_TableBody\n tableContainerRef={tableContainerRef}\n instance={instance}\n />\n {enableTableFooter && <MRT_TableFooter instance={instance} />}\n </Table>\n );\n};\n","import React, { FC, useEffect, useLayoutEffect, useState } from 'react';\nimport { TableContainer } from '@mui/material';\nimport { MRT_Table } from './MRT_Table';\nimport type { MRT_TableInstance } from '..';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ instance }) => {\n const {\n getState,\n options: {\n enableStickyHeader,\n enableRowVirtualization,\n muiTableContainerProps,\n tableId,\n },\n } = instance;\n\n const { isFullScreen } = getState();\n\n const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);\n\n const tableContainerProps =\n muiTableContainerProps instanceof Function\n ? muiTableContainerProps({ instance })\n : muiTableContainerProps;\n\n useIsomorphicLayoutEffect(() => {\n const topToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-top`)\n ?.offsetHeight ?? 0\n : 0;\n\n const bottomToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-bottom`)\n ?.offsetHeight ?? 0\n : 0;\n\n setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);\n });\n\n const tableContainerRef = React.useRef<HTMLDivElement>(null);\n\n return (\n <TableContainer\n {...tableContainerProps}\n ref={tableContainerRef}\n sx={{\n maxWidth: '100%',\n maxHeight:\n enableStickyHeader || enableRowVirtualization\n ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`\n : undefined,\n overflow: 'auto',\n ...tableContainerProps?.sx,\n }}\n style={{\n maxHeight: isFullScreen\n ? `calc(100vh - ${totalToolbarHeight}px)`\n : undefined,\n ...tableContainerProps?.style,\n }}\n >\n <MRT_Table tableContainerRef={tableContainerRef} instance={instance} />\n </TableContainer>\n );\n};\n","import React, { FC, useEffect } from 'react';\nimport { Paper } from '@mui/material';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { MRT_ToolbarTop } from '../toolbar/MRT_ToolbarTop';\nimport { MRT_ToolbarBottom } from '../toolbar/MRT_ToolbarBottom';\nimport { MRT_TableContainer } from './MRT_TableContainer';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TablePaper: FC<Props> = ({ instance }) => {\n const {\n getState,\n options: { enableToolbarBottom, enableToolbarTop, muiTablePaperProps },\n } = instance;\n\n const { isFullScreen } = getState();\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n if (isFullScreen) {\n document.body.style.height = '100vh';\n } else {\n document.body.style.height = 'auto';\n }\n }\n }, [isFullScreen]);\n\n const tablePaperProps =\n muiTablePaperProps instanceof Function\n ? muiTablePaperProps({ instance })\n : muiTablePaperProps;\n\n return (\n <DndProvider backend={HTML5Backend}>\n <Paper\n elevation={2}\n {...tablePaperProps}\n sx={{\n transition: 'all 0.2s ease-in-out',\n ...tablePaperProps?.sx,\n }}\n style={{\n ...tablePaperProps?.style,\n height: isFullScreen ? '100vh' : undefined,\n margin: isFullScreen ? '0' : undefined,\n maxHeight: isFullScreen ? '100vh' : undefined,\n maxWidth: isFullScreen ? '100vw' : undefined,\n padding: isFullScreen ? '0' : undefined,\n width: isFullScreen ? '100vw' : undefined,\n }}\n >\n {enableToolbarTop && <MRT_ToolbarTop instance={instance} />}\n <MRT_TableContainer instance={instance} />\n {enableToolbarBottom && <MRT_ToolbarBottom instance={instance} />}\n </Paper>\n </DndProvider>\n );\n};\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n FilterFn,\n ReactTableGenerics,\n Table,\n TableState,\n createTable,\n filterFns,\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useTableInstance,\n sortingFns,\n} from '@tanstack/react-table';\nimport {\n MRT_Cell,\n MRT_ColumnDef,\n MRT_FilterFn,\n MRT_FILTER_OPTION,\n MRT_Row,\n MRT_TableInstance,\n MRT_TableState,\n} from '..';\nimport { MRT_ExpandAllButton } from '../buttons/MRT_ExpandAllButton';\nimport { MRT_ExpandButton } from '../buttons/MRT_ExpandButton';\nimport { MRT_ToggleRowActionMenuButton } from '../buttons/MRT_ToggleRowActionMenuButton';\nimport { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox';\nimport { MaterialReactTableProps } from '../MaterialReactTable';\nimport { MRT_TablePaper } from './MRT_TablePaper';\nimport { Box, Dialog, Grow } from '@mui/material';\nimport {\n createDataColumn,\n createDisplayColumn,\n createGroup,\n getAllLeafColumnDefs,\n getDefaultColumnOrderIds,\n} from '../utils';\nimport { MRT_FilterFns } from '../filtersFns';\nimport { MRT_SortingFns } from '../sortingFns';\n\nexport const MRT_TableRoot = <D extends Record<string, any> = {}>(\n props: MaterialReactTableProps<D>,\n) => {\n const [tableId, setIdPrefix] = useState(props.tableId);\n useEffect(\n () =>\n setIdPrefix(props.tableId ?? Math.random().toString(36).substring(2, 9)),\n [props.tableId],\n );\n\n const initialState: Partial<MRT_TableState<D>> = useMemo(() => {\n const initState = props.initialState ?? {};\n initState.columnOrder =\n initState.columnOrder ?? getDefaultColumnOrderIds(props);\n return initState;\n }, []);\n\n const [columnOrder, setColumnOrder] = useState(\n initialState.columnOrder ?? [],\n );\n const [currentEditingCell, setCurrentEditingCell] =\n useState<MRT_Cell<D> | null>(initialState?.currentEditingCell ?? null);\n const [currentEditingRow, setCurrentEditingRow] = useState<MRT_Row<D> | null>(\n initialState?.currentEditingRow ?? null,\n );\n const [density, setDensity] = useState(\n initialState?.density ?? 'comfortable',\n );\n const [isFullScreen, setIsFullScreen] = useState(\n initialState?.isFullScreen ?? false,\n );\n const [showFilters, setShowFilters] = useState(\n initialState?.showFilters ?? false,\n );\n const [showGlobalFilter, setShowGlobalFilter] = useState(\n initialState?.showGlobalFilter ?? false,\n );\n\n const [currentFilterFns, setCurrentFilterFns] = useState<{\n [key: string]: MRT_FilterFn;\n }>(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map((c) => ({\n [c.id as string]:\n c.filterFn ??\n initialState?.currentFilterFns?.[c.id] ??\n (!!c.filterSelectOptions?.length ? 'equals' : 'fuzzy'),\n })),\n ),\n );\n\n const [currentGlobalFilterFn, setCurrentGlobalFilterFn] = useState<\n MRT_FILTER_OPTION | FilterFn<ReactTableGenerics> | string | number | symbol\n >(props.globalFilterFn ?? 'fuzzy');\n\n const table = useMemo(\n () =>\n // @ts-ignore\n createTable().setOptions({\n filterFns: { ...filterFns, ...MRT_FilterFns, ...props.filterFns },\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n sortingFns: { ...sortingFns, ...MRT_SortingFns, ...props.sortingFns },\n }) as Table<D>,\n [],\n );\n\n const displayColumns = useMemo(() => {\n return [\n columnOrder.includes('mrt-row-actions') &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_ToggleRowActionMenuButton\n row={cell.row as any}\n instance={instance}\n />\n ),\n header: props.localization?.actions,\n id: 'mrt-row-actions',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 70,\n }),\n columnOrder.includes('mrt-expand') &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_ExpandButton row={cell.row as any} instance={instance} />\n ),\n Header: () =>\n props.enableExpandAll ? (\n <MRT_ExpandAllButton instance={instance} />\n ) : null,\n header: props.localization?.expand,\n id: 'mrt-expand',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n }),\n columnOrder.includes('mrt-select') &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox row={cell.row as any} instance={instance} />\n ),\n Header: () =>\n props.enableSelectAll ? (\n <MRT_SelectCheckbox selectAll instance={instance} />\n ) : null,\n header: props.localization?.select,\n id: 'mrt-select',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n }),\n columnOrder.includes('mrt-row-numbers') &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => cell.row.index + 1,\n Header: () => props.localization?.rowNumber,\n header: props.localization?.rowNumbers,\n id: 'mrt-row-numbers',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n }),\n ].filter(Boolean) as MRT_ColumnDef<D>[];\n }, [\n columnOrder,\n props.editingMode,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanding,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowNumbers,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n props.muiTableBodyCellProps,\n props.muiTableHeadCellProps,\n props.positionActionsColumn,\n table,\n ]);\n\n const columns = useMemo(\n () => [\n ...displayColumns,\n ...props.columns.map((column) =>\n column.columns\n ? createGroup(table, column as any, currentFilterFns)\n : createDataColumn(table, column as any, currentFilterFns),\n ),\n ],\n [table, props.columns, currentFilterFns],\n );\n\n const data: D[] = useMemo(\n () =>\n (props.state?.isLoading || props.state?.showSkeletons) &&\n !props.data.length\n ? [...Array(10).fill(null)].map(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(\n (c) => ({\n [c.id]: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.state?.isLoading, props.state?.showSkeletons],\n );\n\n //@ts-ignore\n const instance = {\n //@ts-ignore\n ...useTableInstance(table, {\n onColumnOrderChange: setColumnOrder,\n ...props,\n //@ts-ignore\n columns,\n data,\n getSubRows: (row) => (row as MRT_Row)?.subRows,\n //@ts-ignore\n globalFilterFn: currentGlobalFilterFn,\n initialState,\n state: {\n columnOrder,\n currentEditingCell,\n currentEditingRow,\n currentFilterFns,\n currentGlobalFilterFn,\n density,\n isFullScreen,\n showFilters,\n showGlobalFilter,\n ...props.state,\n } as TableState,\n tableId,\n }),\n setCurrentEditingCell:\n props.onCurrentEditingCellChange ?? setCurrentEditingCell,\n setCurrentEditingRow:\n props.onCurrentEditingRowChange ?? setCurrentEditingRow,\n setCurrentFilterFns: props.onCurrentFilterFnsChange ?? setCurrentFilterFns,\n setCurrentGlobalFilterFn:\n props.onCurrentGlobalFilterFnChange ?? setCurrentGlobalFilterFn,\n setDensity: props.onDensityChange ?? setDensity,\n setIsFullScreen: props.onIsFullScreenChange ?? setIsFullScreen,\n setShowFilters: props.onShowFiltersChange ?? setShowFilters,\n setShowGlobalFilter: props.onShowGlobalFilterChange ?? setShowGlobalFilter,\n } as MRT_TableInstance;\n\n useEffect(() => {\n props?.onColumnOrderChanged?.({\n columnOrder: instance.getState().columnOrder,\n //@ts-ignore\n instance,\n });\n }, [instance.getState().columnOrder]);\n\n useEffect(() => {\n props?.onColumnPinningChanged?.({\n columnPinning: instance.getState().columnPinning,\n //@ts-ignore\n instance,\n });\n }, [instance.getState().columnPinning]);\n\n useEffect(() => {\n props?.onColumnVisibilityChanged?.({\n columnPinning: instance.getState().columnVisibility,\n //@ts-ignore\n instance,\n });\n }, [instance.getState().columnVisibility]);\n\n return (\n <>\n <Dialog\n PaperComponent={Box}\n TransitionComponent={Grow}\n disablePortal\n fullScreen\n keepMounted={false}\n onClose={() => setIsFullScreen(false)}\n open={isFullScreen}\n transitionDuration={400}\n >\n <MRT_TablePaper instance={instance} />\n </Dialog>\n {!isFullScreen && <MRT_TablePaper instance={instance} />}\n </>\n );\n};\n","import React, {\n ChangeEvent,\n Dispatch,\n FC,\n FocusEvent,\n MouseEvent,\n ReactNode,\n SetStateAction,\n} from 'react';\nimport {\n AlertProps,\n ButtonProps,\n CheckboxProps,\n IconButtonProps,\n LinearProgressProps,\n PaperProps,\n SkeletonProps,\n TableBodyProps,\n TableCellProps,\n TableContainerProps,\n TableFooterProps,\n TableHeadProps,\n TablePaginationProps,\n TableProps,\n TableRowProps,\n TextFieldProps,\n ToolbarProps,\n} from '@mui/material';\nimport {\n Cell,\n Column,\n ColumnDef,\n ColumnOrderState,\n ColumnPinningState,\n FilterFn,\n FilterFnOption,\n Header,\n HeaderGroup,\n OnChangeFn,\n Overwrite,\n ReactTableGenerics,\n Row,\n SortingFn,\n SortingFnOption,\n TableGenerics,\n TableInstance,\n TableState,\n UseTableInstanceOptions,\n VisibilityState,\n} from '@tanstack/react-table';\nimport { Options as VirtualizerOptions } from 'react-virtual';\nimport { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';\nimport { MRT_Default_Icons, MRT_Icons } from './icons';\nimport { MRT_TableRoot } from './table/MRT_TableRoot';\n\nexport type MRT_TableOptions<D extends Record<string, any> = {}> = Partial<\n Omit<\n UseTableInstanceOptions<ReactTableGenerics>,\n 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'\n >\n> & {\n columns: MRT_ColumnDef<D>[];\n data: D[];\n expandRowsFn?: (dataRow: D) => D[];\n initialState?: Partial<MRT_TableState<D>>;\n state?: Partial<MRT_TableState<D>>;\n};\n\nexport interface MRT_RowModel<D extends Record<string, any> = {}> {\n flatRows: MRT_Row<D>[];\n rows: MRT_Row<D>[];\n rowsById: { [key: string]: MRT_Row<D> };\n}\n\nexport type MRT_TableInstance<D extends Record<string, any> = {}> = Omit<\n TableInstance<\n Overwrite<\n Partial<TableGenerics>,\n {\n Row: D;\n }\n >\n >,\n | 'getAllColumns'\n | 'getAllFlatColumns'\n | 'getAllLeafColumns'\n | 'getCenterLeafColumns'\n | 'getColumn'\n | 'getExpandedRowModel'\n | 'getFlatHeaders'\n | 'getLeftLeafColumns'\n | 'getPaginationRowModel'\n | 'getPreFilteredRowModel'\n | 'getPrePaginationRowModel'\n | 'getRightLeafColumns'\n | 'getRowModel'\n | 'getSelectedRowModel'\n | 'getState'\n | 'options'\n> & {\n getAllColumns: () => MRT_Column<D>[];\n getAllFlatColumns: () => MRT_Column<D>[];\n getAllLeafColumns: () => MRT_Column<D>[];\n getCenterLeafColumns: () => MRT_Column<D>[];\n getColumn: (columnId: string) => MRT_Column<D>;\n getExpandedRowModel: () => MRT_RowModel<D>;\n getFlatHeaders: () => MRT_Header<D>[];\n getLeftLeafColumns: () => MRT_Column<D>[];\n getPaginationRowModel: () => MRT_RowModel<D>;\n getPreFilteredRowModel: () => MRT_RowModel<D>;\n getPrePaginationRowModel: () => MRT_RowModel<D>;\n getRightLeafColumns: () => MRT_Column<D>[];\n getRowModel: () => MRT_RowModel<D>;\n getSelectedRowModel: () => MRT_RowModel<D>;\n getState: () => MRT_TableState<D>;\n options: MaterialReactTableProps<D> & {\n icons: MRT_Icons;\n tableId: string;\n localization: MRT_Localization;\n };\n setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setCurrentFilterFns: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterFn;\n }>\n >;\n setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterFn>>;\n setDensity: Dispatch<SetStateAction<'comfortable' | 'compact' | 'spacious'>>;\n setIsFullScreen: Dispatch<SetStateAction<boolean>>;\n setShowFilters: Dispatch<SetStateAction<boolean>>;\n setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;\n};\n\nexport type MRT_TableState<D extends Record<string, any> = {}> = TableState & {\n currentEditingCell: MRT_Cell<D> | null;\n currentEditingRow: MRT_Row<D> | null;\n currentFilterFns: Record<string, string | Function>;\n currentGlobalFilterFn: Record<string, string | Function>;\n density: 'comfortable' | 'compact' | 'spacious';\n isLoading: boolean;\n isFullScreen: boolean;\n showFilters: boolean;\n showGlobalFilter: boolean;\n showProgressBars: boolean;\n showSkeletons: boolean;\n};\n\nexport type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<\n ColumnDef<D>,\n | 'accessorFn'\n | 'aggregatedCell'\n | 'cell'\n | 'columns'\n | 'filterFn'\n | 'footer'\n | 'header'\n | 'sortingFn'\n> & {\n AggregatedCell?: ({\n cell,\n instance,\n }: {\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n Cell?: ({\n cell,\n instance,\n }: {\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n Edit?: ({\n cell,\n instance,\n }: {\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n Filter?: ({\n header,\n instance,\n }: {\n header: MRT_Header<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n Footer?:\n | ReactNode\n | (({\n footer,\n instance,\n }: {\n footer: MRT_Header<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode);\n Header?:\n | ReactNode\n | (({\n header,\n instance,\n }: {\n header: MRT_Header<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode);\n accessorFn?: (row: D) => any;\n columns?: MRT_ColumnDef<D>[];\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableEditing?: boolean;\n enabledColumnFilterOptions?: (MRT_FILTER_OPTION | string)[] | null;\n filterFn?: MRT_FilterFn;\n filterSelectOptions?: (string | { text: string; value: string })[];\n footer?: string;\n header: string;\n id: keyof D | string;\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n onCellEditBlur?: ({\n cell,\n event,\n instance,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onCellEditChanged?: ({\n cell,\n event,\n instance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onColumnFilterValueChanged?: ({\n column,\n event,\n filterValue,\n instance,\n }: {\n column: MRT_Column<D>;\n event: ChangeEvent<HTMLInputElement>;\n filterValue: any;\n instance: MRT_TableInstance<D>;\n }) => void;\n onColumnFilterValueChangedDebounced?: ({\n column,\n event,\n filterValue,\n instance,\n }: {\n column: MRT_Column<D>;\n event: ChangeEvent<HTMLInputElement>;\n filterValue: any;\n instance: MRT_TableInstance<D>;\n }) => void;\n sortingFn?: MRT_SortingFn;\n};\n\nexport type MRT_Column<D extends Record<string, any> = {}> = Omit<\n Column<D>,\n 'header' | 'footer' | 'columns' | 'columnDef'\n> & {\n columns?: MRT_Column<D>[];\n columnDef: MRT_ColumnDef<D>;\n header: string;\n footer: string;\n};\n\nexport type MRT_Header<D extends Record<string, any> = {}> = Omit<\n Header<D>,\n 'column'\n> & {\n column: MRT_Column<D>;\n};\n\nexport type MRT_HeaderGroup<D extends Record<string, any> = {}> = Omit<\n HeaderGroup<D>,\n 'headers'\n> & {\n headers: MRT_Header<D>[];\n};\n\nexport type MRT_Row<D extends Record<string, any> = {}> = Omit<\n Row<D>,\n 'getVisibleCells' | 'getAllCells' | 'subRows' | 'original' | '_valuesCache'\n> & {\n getAllCells: () => MRT_Cell<D>[];\n getVisibleCells: () => MRT_Cell<D>[];\n subRows?: MRT_Row<D>[];\n original: D;\n _valuesCache?: D;\n};\n\nexport type MRT_Cell<D extends Record<string, any> = {}> = Omit<\n Cell<D>,\n 'column' | 'row'\n> & {\n column: MRT_Column<D>;\n row: MRT_Row<D>;\n};\n\nexport type MRT_SortingOption = SortingFnOption<TableGenerics> | 'fuzzy';\n\nexport type MRT_SortingFn = SortingFn<TableGenerics> | MRT_SortingOption;\n\nexport type MRT_FILTER_OPTION =\n | 'between'\n | 'contains'\n | 'empty'\n | 'endsWith'\n | 'equals'\n | 'fuzzy'\n | 'greaterThan'\n | 'greaterThanOrEqual'\n | 'lessThan'\n | 'lessThanOrEqual'\n | 'notEmpty'\n | 'notEquals'\n | 'startsWith'\n | FilterFnOption<TableGenerics>;\n\nexport type MRT_FilterFn = FilterFn<TableGenerics> | MRT_FILTER_OPTION;\n\nexport type MaterialReactTableProps<D extends Record<string, any> = {}> =\n MRT_TableOptions<D> & {\n editingMode?: 'table' | 'row' | 'cell';\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableDensityToggle?: boolean;\n enableEditing?: boolean;\n enableExpandAll?: boolean;\n enableFullScreenToggle?: boolean;\n enableGlobalFilterChangeMode?: boolean;\n enableGlobalFilterRankedResults?: boolean;\n enablePagination?: boolean;\n enableRowActions?: boolean;\n enableRowNumbers?: boolean;\n enableRowVirtualization?: boolean;\n enableSelectAll?: boolean;\n enableStickyHeader?: boolean;\n enableTableFooter?: boolean;\n enableTableHead?: boolean;\n enableToolbarBottom?: boolean;\n enableToolbarInternalActions?: boolean;\n enableToolbarTop?: boolean;\n enabledColumnFilterOptions?: (MRT_FILTER_OPTION | string)[] | null;\n enabledGlobalFilterOptions?: (MRT_FILTER_OPTION | string)[] | null;\n icons?: Partial<MRT_Icons>;\n localization?: Partial<MRT_Localization>;\n muiExpandAllButtonProps?:\n | IconButtonProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => IconButtonProps);\n muiExpandButtonProps?:\n | IconButtonProps\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => IconButtonProps);\n muiLinearProgressProps?:\n | LinearProgressProps\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => LinearProgressProps);\n muiSearchTextFieldProps?:\n | TextFieldProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => TextFieldProps);\n muiSelectAllCheckboxProps?:\n | CheckboxProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => CheckboxProps);\n muiSelectCheckboxProps?:\n | CheckboxProps\n | (({\n instance,\n row,\n }: {\n instance: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => CheckboxProps);\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TableCellProps);\n muiTableBodyCellSkeletonProps?:\n | SkeletonProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => SkeletonProps);\n muiTableBodyProps?:\n | TableBodyProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => TableBodyProps);\n muiTableBodyRowProps?:\n | TableRowProps\n | (({\n instance,\n row,\n }: {\n instance: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => TableRowProps);\n muiTableContainerProps?:\n | TableContainerProps\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => TableContainerProps);\n muiTableDetailPanelProps?:\n | TableCellProps\n | (({\n instance,\n row,\n }: {\n instance: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableFooterProps?:\n | TableFooterProps\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => TableFooterProps);\n muiTableFooterRowProps?:\n | TableRowProps\n | (({\n instance,\n footerGroup,\n }: {\n instance: MRT_TableInstance<D>;\n footerGroup: MRT_HeaderGroup<D>;\n }) => TableRowProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableHeadProps?:\n | TableHeadProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => TableHeadProps);\n muiTableHeadRowProps?:\n | TableRowProps\n | (({\n instance,\n headerGroup,\n }: {\n instance: MRT_TableInstance<D>;\n headerGroup: MRT_HeaderGroup<D>;\n }) => TableRowProps);\n muiTablePaginationProps?:\n | Partial<TablePaginationProps>\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => Partial<TablePaginationProps>);\n muiTablePaperProps?:\n | PaperProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => PaperProps);\n muiTableProps?:\n | TableProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => TableProps);\n muiTableToolbarAlertBannerProps?:\n | AlertProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => AlertProps);\n muiTableToolbarBottomProps?:\n | ToolbarProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => ToolbarProps);\n muiTableToolbarTopProps?:\n | ToolbarProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => ToolbarProps);\n onCellClick?: ({\n cell,\n event,\n instance,\n }: {\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n event: MouseEvent<HTMLTableCellElement>;\n }) => void;\n onCellEditBlur?: ({\n cell,\n event,\n instance,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onCellEditChanged?: ({\n cell,\n event,\n instance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onColumnFilterValueChanged?: ({\n column,\n event,\n filterValue,\n instance,\n }: {\n column: MRT_Column<D>;\n event: ChangeEvent<HTMLInputElement>;\n filterValue: any;\n instance: MRT_TableInstance<D>;\n }) => void;\n onColumnFilterValueChangedDebounced?: ({\n column,\n event,\n filterValue,\n instance,\n }: {\n column: MRT_Column<D>;\n event: ChangeEvent<HTMLInputElement>;\n filterValue: any;\n instance: MRT_TableInstance<D>;\n }) => void;\n onColumnOrderChanged?: ({\n columnOrder,\n instance,\n }: {\n columnOrder: ColumnOrderState;\n instance: MRT_TableInstance<D>;\n }) => void;\n onColumnPinningChanged?: ({\n columnPinning,\n instance,\n }: {\n columnPinning: ColumnPinningState;\n instance: MRT_TableInstance<D>;\n }) => void;\n onColumnVisibilityChanged?: ({\n column,\n columnVisibility,\n instance,\n }: {\n column: MRT_Column<D>;\n columnVisibility: VisibilityState;\n instance: MRT_TableInstance<D>;\n }) => void;\n onCurrentEditingCellChange?: OnChangeFn<MRT_Cell>;\n onCurrentEditingRowChange?: OnChangeFn<MRT_Row>;\n onCurrentFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterFn }>;\n onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterFn>;\n onDetailPanelClick?: ({\n event,\n row,\n instance,\n }: {\n event: MouseEvent<HTMLTableCellElement>;\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onEditRowSubmit?: ({\n row,\n instance,\n }: {\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => Promise<void> | void;\n onExpandChanged?: ({\n event,\n row,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onGlobalFilterValueChanged?: ({\n event,\n instance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onGlobalFilterValueChangedDebounced?: ({\n event,\n instance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onDensityChange?: OnChangeFn<boolean>;\n onDensityChanged?: ({\n event,\n density,\n instance,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n density: 'comfortable' | 'compact' | 'spacious';\n instance: MRT_TableInstance<D>;\n }) => void;\n onIsFullScreenChange?: OnChangeFn<boolean>;\n onIsFullScreenChanged?: ({\n event,\n isFullScreen,\n instance,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n isFullScreen: boolean;\n instance: MRT_TableInstance<D>;\n }) => void;\n onRowClick?: ({\n event,\n row,\n instance,\n }: {\n event: MouseEvent<HTMLTableRowElement>;\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onRowSelectAllChanged?: ({\n event,\n selectedRows,\n instance,\n }: {\n event: ChangeEvent;\n selectedRows: MRT_Row<D>[];\n instance: MRT_TableInstance<D>;\n }) => void;\n onRowSelectionChanged?: ({\n event,\n row,\n selectedRows,\n instance,\n }: {\n event: ChangeEvent;\n row: MRT_Row<D>;\n selectedRows: MRT_Row<D>[];\n instance: MRT_TableInstance<D>;\n }) => void;\n onShowFiltersChange?: OnChangeFn<boolean>;\n onShowFiltersChanged?: ({\n event,\n instance,\n showFilters,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n instance: MRT_TableInstance<D>;\n showFilters: boolean;\n }) => void;\n onShowGlobalFilterChange?: OnChangeFn<boolean>;\n onShowGlobalFilterChanged?: ({\n event,\n instance,\n showGlobalFilter,\n }: {\n event: MouseEvent<HTMLButtonElement>;\n instance: MRT_TableInstance<D>;\n showGlobalFilter: boolean;\n }) => void;\n positionActionsColumn?: 'first' | 'last';\n positionGlobalFilter?: 'left' | 'right';\n positionPagination?: 'bottom' | 'top' | 'both';\n positionToolbarAlertBanner?: 'bottom' | 'top';\n renderDetailPanel?: ({\n row,\n instance,\n }: {\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderRowActionMenuItems?: ({\n closeMenu,\n row,\n instance,\n }: {\n closeMenu: () => void;\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode[];\n renderRowActions?: ({\n row,\n instance,\n }: {\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarBottomCustomActions?: ({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarTopCustomActions?: ({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarInternalActions?: ({\n instance,\n MRT_ToggleGlobalFilterButton,\n MRT_ToggleFiltersButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_FullScreenToggleButton,\n }: {\n instance: MRT_TableInstance<D>;\n MRT_ToggleGlobalFilterButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n MRT_ToggleFiltersButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n MRT_ShowHideColumnsButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n MRT_ToggleDensePaddingButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n MRT_FullScreenToggleButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n }) => ReactNode;\n rowCount?: number;\n rowNumberMode?: 'original' | 'static';\n selectAllMode?: 'all' | 'page';\n tableId?: string;\n virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;\n };\n\nexport default <D extends Record<string, any> = {}>({\n autoResetExpanded = false,\n columnResizeMode = 'onEnd',\n defaultColumn = { minSize: 40, maxSize: 1000, size: 180 },\n editingMode = 'row',\n enableColumnActions = true,\n enableColumnFilterChangeMode = true,\n enableColumnFilters = true,\n enableColumnOrdering = false,\n enableColumnResizing = false,\n enableDensityToggle = true,\n enableExpandAll = true,\n enableFilters = true,\n enableFullScreenToggle = true,\n enableGlobalFilter = true,\n enableGlobalFilterChangeMode = true,\n enableGlobalFilterRankedResults = true,\n enableGrouping = false,\n enableHiding = true,\n enableMultiRowSelection = true,\n enableMultiSort = true,\n enablePagination = true,\n enablePinning = false,\n enableRowSelection = false,\n enableSelectAll = true,\n enableSorting = true,\n enableStickyHeader = false,\n enableTableFooter = true,\n enableTableHead = true,\n enableToolbarBottom = true,\n enableToolbarInternalActions = true,\n enableToolbarTop = true,\n icons,\n localization,\n positionActionsColumn = 'first',\n positionGlobalFilter = 'right',\n positionPagination = 'bottom',\n positionToolbarAlertBanner = 'top',\n rowNumberMode = 'original',\n selectAllMode = 'all',\n ...rest\n}: MaterialReactTableProps<D>) => (\n <MRT_TableRoot\n autoResetExpanded={autoResetExpanded}\n columnResizeMode={columnResizeMode}\n defaultColumn={defaultColumn}\n editingMode={editingMode}\n enableColumnActions={enableColumnActions}\n enableColumnFilterChangeMode={enableColumnFilterChangeMode}\n enableColumnFilters={enableColumnFilters}\n enableColumnOrdering={enableColumnOrdering}\n enableColumnResizing={enableColumnResizing}\n enableDensityToggle={enableDensityToggle}\n enableExpandAll={enableExpandAll}\n enableFilters={enableFilters}\n enableFullScreenToggle={enableFullScreenToggle}\n enableGlobalFilter={enableGlobalFilter}\n enableGlobalFilterChangeMode={enableGlobalFilterChangeMode}\n enableGlobalFilterRankedResults={enableGlobalFilterRankedResults}\n enableGrouping={enableGrouping}\n enableHiding={enableHiding}\n enableMultiRowSelection={enableMultiRowSelection}\n enableMultiSort={enableMultiSort}\n enablePagination={enablePagination}\n enablePinning={enablePinning}\n enableRowSelection={enableRowSelection}\n enableSelectAll={enableSelectAll}\n enableSorting={enableSorting}\n enableStickyHeader={enableStickyHeader}\n enableTableFooter={enableTableFooter}\n enableTableHead={enableTableHead}\n enableToolbarBottom={enableToolbarBottom}\n enableToolbarInternalActions={enableToolbarInternalActions}\n enableToolbarTop={enableToolbarTop}\n icons={{ ...MRT_Default_Icons, ...icons }}\n localization={{ ...MRT_DefaultLocalization_EN, ...localization }}\n positionActionsColumn={positionActionsColumn}\n positionGlobalFilter={positionGlobalFilter}\n positionPagination={positionPagination}\n positionToolbarAlertBanner={positionToolbarAlertBanner}\n rowNumberMode={rowNumberMode}\n selectAllMode={selectAllMode}\n {...rest}\n />\n);\n"],"names":["MRT_DefaultLocalization_EN","actions","and","cancel","changeFilterMode","changeSearchMode","clearFilter","clearSearch","clearSort","clickToCopy","columnActions","copiedToClipboard","edit","expand","expandAll","filterBetween","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterFuzzy","filterGreaterThan","filterLessThan","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","grab","groupByColumn","groupedBy","hideAll","hideColumn","max","min","pinToLeft","pinToRight","resetColumnSize","resetOrder","rowActions","rowNumber","rowNumbers","save","search","selectedCountOfRowCountRowsSelected","select","showAll","showAllColumns","showHideColumns","showHideFilters","showHideSearch","sortByColumnAsc","sortByColumnDesc","sortedByColumnAsc","sortedByColumnDesc","thenBy","toggleDensity","toggleFullScreen","toggleSelectAll","toggleSelectRow","toggleVisibility","ungroupByColumn","unpin","unpinAll","unsorted","MRT_Default_Icons","ArrowRightIcon","ArrowRight","CancelIcon","Cancel","CheckBoxIcon","CheckBox","ClearAllIcon","ClearAll","CloseIcon","Close","DensityLargeIcon","DensityLarge","DensityMediumIcon","DensityMedium","DensitySmallIcon","DensitySmall","DragHandleIcon","DragHandle","DynamicFeedIcon","DynamicFeed","EditIcon","Edit","ExpandLessIcon","ExpandLess","ExpandMoreIcon","ExpandMore","FilterAltIcon","FilterAlt","FilterAltOffIcon","FilterAltOff","FilterListIcon","FilterList","FilterListOffIcon","FilterListOff","FullscreenExitIcon","FullscreenExit","FullscreenIcon","Fullscreen","KeyboardDoubleArrowDownIcon","KeyboardDoubleArrowDown","MoreHorizIcon","MoreHoriz","MoreVertIcon","MoreVert","PushPinIcon","PushPin","RestartAltIcon","RestartAlt","SaveIcon","Save","SearchIcon","Search","SearchOffIcon","SearchOff","SortIcon","Sort","ViewColumnIcon","ViewColumn","VisibilityOffIcon","VisibilityOff","MRT_ExpandAllButton","instance","getIsAllRowsExpanded","getIsSomeRowsExpanded","getCanSomeRowsExpand","getState","options","icons","localization","muiExpandAllButtonProps","renderDetailPanel","toggleAllRowsExpanded","density","iconButtonProps","Function","React","Tooltip","arrow","enterDelay","enterNextDelay","title","IconButton","disabled","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","muiExpandButtonProps","onExpandChanged","handleToggleExpand","event","toggleExpanded","getCanExpand","getIsExpanded","fuzzy","columnId","filterValue","addMeta","itemRank","rankItem","getValue","threshold","rankings","MATCHES","passed","autoRemove","val","contains","id","toString","toLowerCase","trim","includes","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","lessThan","between","filterValues","undefined","empty","_filterValue","notEmpty","MRT_FilterFns","commonMenuItemStyles","py","my","alignItems","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","enabledColumnFilterOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","column","columnDef","allowedColumnFilterOptions","filterOptions","useMemo","option","label","divider","fn","filter","filterType","handleSelectFilterType","value","prev","setFilterValue","filterOption","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","map","index","MenuItem","key","selected","DndContext","createContext","dragDropManager","invariant","condition","format","args","isProduction","Error","error","argIndex","replace","name","framesToPop","process","env","get","obj","path","defaultValue","split","reduce","a","c","without","items","item","i","isObject","input","xor","itemsA","itemsB","Map","insertItem","set","has","forEach","result","count","push","intersection","t","indexOf","INIT_COORDS","BEGIN_DRAG","PUBLISH_DRAG_SOURCE","HOVER","DROP","END_DRAG","setClientOffset","clientOffset","sourceClientOffset","type","payload","ResetCoordinatesAction","createBeginDrag","manager","beginDrag","sourceIds","publishSource","getSourceClientOffset","monitor","getMonitor","registry","getRegistry","dispatch","verifyInvariants","sourceId","getDraggableSource","verifyGetSourceClientOffsetIsFunction","source","getSource","verifyItemIsObject","pinSource","itemType","getSourceType","isSourcePublic","isDragging","length","canDragSource","createDrop","drop","targetIds","getDroppableTargets","targetId","dropResult","determineDropResult","action","didDrop","target","getTarget","verifyDropResultType","getDropResult","getTargetIds","canDropOnTarget","reverse","createEndDrag","endDrag","verifyIsDragging","getSourceId","unpinSource","matchesType","targetType","draggedItemType","Array","isArray","some","createHover","hover","targetIdsArg","verifyTargetIdsIsArray","slice","getItemType","removeNonMatchingTargetIds","checkInvariants","hoverAllTargets","lastIndexOf","getTargetType","splice","createPublishDragSource","publishDragSource","createDragDropActions","DragDropManagerImpl","backend","getBackend","getActions","store","bindActionCreator","actionCreator","apply","Object","keys","boundActions","isSetUp","handleRefCountChange","shouldSetUp","refCount","setup","teardown","subscribe","add","b","x","y","subtract","state","initialClientOffset","initialSourceClientOffset","getDifferenceFromInitialOffset","NONE","ALL","__IS_NONE__","__IS_ALL__","areDirty","dirtyIds","handlerIds","commonIds","DragDropMonitorImpl","subscribeToStateChange","listener","prevStateId","stateId","handleChange","currentStateId","canSkipListener","dirtyHandlerIds","previousState","dragOffset","nextState","canDrag","canDrop","Boolean","sourceType","isOverTarget","shallow","dragOperation","getItem","getInitialClientOffset","getInitialSourceClientOffset","getClientOffset","scope","global","self","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","makeRequestCallFromTimer","callback","requestCall","timeoutHandle","setTimeout","handleTimer","intervalHandle","setInterval","clearTimeout","clearInterval","makeRequestCallFromMutationObserver","toggle","observer","node","document","createTextNode","observe","characterData","data","makeRequestCall","AsapQueue","task","queue","q","requestFlush","flushing","pendingErrors","capacity","flush","currentIndex","call","scan","newLength","registerPendingError","err","requestErrorThrow","shift","RawTask","onError","release","TaskFactory","tasks","freeTasks","pop","asapQueue","taskFactory","asap","enqueueTask","create","ADD_SOURCE","ADD_TARGET","REMOVE_SOURCE","REMOVE_TARGET","addSource","addTarget","removeSource","removeTarget","validateSourceContract","validateTargetContract","validateType","allowArray","HandlerRole","SOURCE","TARGET","nextUniqueId","getNextUniqueId","getNextHandlerId","role","parseRoleFromHandlerId","handlerId","mapContainsValue","searchValue","entries","isDone","done","next","HandlerRegistryImpl","addHandler","handler","dragSources","dropTargets","includePinned","isSourceId","isPinned","pinnedSourceId","pinnedSource","isTargetId","types","delete","strictEquality","areCoordsEqual","offsetA","offsetB","areArraysEqual","isEqual","_state","prevTargetIds","didChange","prevInnermostTargetId","innermostTargetId","initialState","_objectSpread","createDragDropManager","backendFactory","globalContext","backendOptions","debugMode","makeStoreInstance","receiveBackend","reduxDevTools","window","__REDUX_DEVTOOLS_EXTENSION__","createStore","instanceId","INSTANCE_SYM","Symbol","for","DndProvider","memo","children","props","isGlobalInstance","getDndContextValue","useEffect","context","getGlobalContext","_jsx","Provider","createSingletonDndContext","ctx","useIsomorphicLayoutEffect","useLayoutEffect","useCollector","collect","onUpdate","collected","setCollected","useState","updateCollected","useCallback","nextValue","equal","useMonitorOutput","onCollect","subscribeToMonitorStateChange","getHandlerId","useCollectedProps","collector","connector","reconnect","useOptionalFactory","arg","deps","memoDeps","useConnectDragSource","hooks","dragSource","useConnectDragPreview","dragPreview","isCallingCanDrag","isCallingIsDragging","DragSourceMonitorImpl","internalMonitor","isDraggingSource","subscribeToOffsetChange","isCallingCanDrop","DropTargetMonitorImpl","registerTarget","registerSource","shallowEqual","objA","objB","compare","compareContext","compareResult","keysA","keysB","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","valueA","valueB","isRef","throwIfCompositeComponentElement","element","displayName","wrapHookToRecognizeElement","hook","elementOrNode","isValidElement","ref","cloneWithRef","wrapConnectorHooks","wrappedHooks","wrappedHook","setRef","current","newRef","previousRef","cloneElement","SourceConnector","newHandlerId","connectTarget","dragSourceOptions","dragSourceOptionsInternal","dragPreviewOptions","dragPreviewOptionsInternal","reconnectDragSource","reconnectDragPreview","didHandlerIdChange","didConnectedDragSourceChange","didDragSourceOptionsChange","disconnectDragSource","lastConnectedDragSource","lastConnectedHandlerId","lastConnectedDragSourceOptions","dragSourceUnsubscribe","connectDragSource","forceDidChange","didConnectedDragPreviewChange","didDragPreviewOptionsChange","disconnectDragPreview","lastConnectedDragPreview","lastConnectedDragPreviewOptions","dragPreviewUnsubscribe","connectDragPreview","dragPreviewNode","dragPreviewRef","dragSourceNode","dragSourceRef","clearDragSource","clearDragPreview","TargetConnector","dropTarget","didDropTargetChange","didOptionsChange","disconnectDropTarget","lastConnectedDropTarget","lastConnectedDropTargetOptions","dropTargetOptions","unsubscribeDropTarget","connectDropTarget","dropTargetOptionsInternal","dropTargetNode","dropTargetRef","clearDropTarget","useDragDropManager","useContext","useDragSourceConnector","useDragSourceMonitor","DragSourceImpl","spec","globalMonitor","end","useDragSource","useDragType","useRegisteredDragSource","registerDragSource","unregister","receiveHandlerId","useDrag","specArg","begin","previewOptions","useConnectDropTarget","useDropTargetConnector","useDropTargetMonitor","useAccept","accept","DropTargetImpl","useDropTarget","useRegisteredDropTarget","registerDropTarget","join","useDrop","MRT_ColumnPinningButtons","handlePinColumn","pinDirection","pin","Box","minWidth","textAlign","getIsPinned","size","MRT_GrabHandleButton","forwardRef","placement","disableRipple","cursor","m","opacity","p","backgroundColor","getAllLeafColumnDefs","columns","lowestLevelColumns","currentCols","col","nextCols","flat","every","createGroup","table","createDataColumn","filterFn","createDisplayColumn","reorderColumn","movingColumn","receivingColumn","columnOrder","getCanPin","getLeadingDisplayColumnIds","positionActionsColumn","enableRowActions","enableEditing","editingMode","enableExpanding","enableGrouping","enableRowSelection","enableRowNumbers","getTrailingDisplayColumnIds","getDefaultColumnOrderIds","MRT_ShowHideColumnsMenuItems","allColumns","isSubMenu","enableColumnOrdering","enableHiding","enablePinning","setColumnOrder","columnDefType","newColumnOrder","dropRef","dragRef","previewRef","switchChecked","getIsVisible","getLeafColumns","handleToggleColumnHidden","childColumn","justifyContent","pl","depth","display","flexWrap","gap","FormControlLabel","componentsProps","typography","mb","checked","control","Switch","getCanHide","getIsGrouped","onChange","Typography","alignSelf","MRT_ShowHideColumnsMenu","getAllColumns","getAllLeafColumns","getCenterLeafColumns","getIsAllColumnsVisible","getIsSomeColumnsPinned","getIsSomeColumnsVisible","getLeftLeafColumns","getRightLeafColumns","toggleAllColumnsVisible","columnPinning","hideAllColumns","from","Set","colId","find","pt","Button","resetColumnPinning","Divider","commonListItemStyles","MRT_ColumnActionMenu","enableColumnFilterChangeMode","enableColumnFilters","enableColumnResizing","enableSorting","tableId","setShowFilters","columnSizing","columnVisibility","filterMenuAnchorEl","setFilterMenuAnchorEl","showHideColumnsMenuAnchorEl","setShowHideColumnsMenuAnchorEl","handleClearSort","clearSorting","handleSortAsc","toggleSorting","handleSortDesc","handleResetColumnSize","resetSize","handleHideColumn","handleGroupByColumn","toggleGrouping","old","handleClearFilter","handleFilterByColumn","getElementById","muiTableHeadCellFilterTextFieldProps","focus","handleShowAllColumns","handleOpenFilterModeMenu","stopPropagation","currentTarget","handleOpenShowHideColumnsMenu","isSelectFilter","filterSelectOptions","showFilterModeSubMenu","getCanSort","getIsSorted","ListItemIcon","String","getCanFilter","getFilterValue","onMouseEnter","getCanGroup","getCanResize","values","visible","MRT_RowActionMenu","handleEdit","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditRowSubmit","setCurrentEditingRow","currentEditingRow","handleCancel","_valuesCache","original","handleSave","color","commonIconButtonStyles","ml","MRT_ToggleRowActionMenuButton","renderRowActions","handleOpenRowActionMenu","preventDefault","handleStartEditMode","MRT_SelectCheckbox","selectAll","getRowModel","getPaginationRowModel","getSelectedRowModel","muiSelectCheckboxProps","muiSelectAllCheckboxProps","onRowSelectionChanged","onRowSelectAllChanged","selectAllMode","handleSelectChange","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","selectedRows","flatRows","getToggleSelectedHandler","selectedRow","checkboxProps","Checkbox","getIsAllRowsSelected","getIsSelected","indeterminate","getIsSomeRowsSelected","getIsSomeSelected","inputProps","memoize","memoized","union","EnterLeaveCounter","enteringNode","previousLength","entered","isNodeEntered","isNodeInDocument","leavingNode","reset","NativeDragSource","initializeExposedProperties","config","exposeProperties","property","defineProperty","configurable","enumerable","console","warn","dataTransfer","newProperties","propertyFn","matchesTypes","defineProperties","handle","FILE","URL","TEXT","HTML","getDataFromDataTransfer","typesToTry","resultSoFar","typeToTry","getData","nativeTypesConfig","NativeTypes","files","html","urls","text","createNativeDragSource","loadDataTransfer","matchNativeItemType","dataTransferTypes","nativeItemType","typeConfig","isFirefox","test","navigator","userAgent","isSafari","safari","MonotonicInterpolant","xs","ys","c1s","c2s","c3s","low","high","mid","Math","floor","xHere","diff","diffSq","dxs","ms","dx","dy","m2","mNext","dxNext","common","c1","invDx","ELEMENT_NODE","getNodeClientOffset","el","nodeType","parentElement","top","left","getBoundingClientRect","getEventClientOffset","e","clientX","clientY","isImageNode","nodeName","documentElement","getDragPreviewSize","isImage","sourceWidth","sourceHeight","dragPreviewWidth","dragPreviewHeight","devicePixelRatio","getDragPreviewOffset","sourceNode","anchorPoint","offsetPoint","dragPreviewNodeOffsetFromClient","offsetFromDragPreview","offsetWidth","offsetHeight","anchorX","anchorY","calculateYOffset","interpolantY","interpolate","calculateXOffset","interpolantX","offsetX","offsetY","isManualOffsetX","isManualOffsetY","OptionsReader","rootElement","optionsArgs","ownerDocument","HTML5BackendImpl","profile","sourcePreviewNodes","sourcePreviewNodeOptions","sourceNodeOptions","sourceNodes","dragStartSourceIds","dropTargetIds","dragEnterTargetIds","dragOverTargetIds","root","__isReactDndBackendSetUp","addEventListeners","removeEventListeners","clearCurrentDragSourceNode","asyncEndDragFrameId","cancelAnimationFrame","handleDragStart","handleSelectStart","setAttribute","addEventListener","removeEventListener","handleDragEnter","handleDragOver","handleDrop","handleTopDragStart","handleTopDragStartCapture","handleTopDragEndCapture","handleTopDragEnter","handleTopDragEnterCapture","handleTopDragLeaveCapture","handleTopDragOver","handleTopDragOverCapture","handleTopDrop","handleTopDropCapture","getCurrentSourceNodeOptions","dropEffect","altKeyPressed","getCurrentDropEffect","isDraggingNativeItem","getCurrentSourcePreviewNodeOptions","captureDraggingState","beginDragNativeItem","currentNativeSource","currentNativeHandle","currentDragSourceNode","MOUSE_MOVE_TIMEOUT","mouseMoveTimeoutTimer","endDragIfSourceWasRemovedFromDOM","defaultPrevented","unshift","_e","lastClientOffset","hoverRafId","endDragNativeItem","body","cancelHover","scheduleHover","requestAnimationFrame","nativeType","setDragImage","dragPreviewOffset","setData","setCurrentDragSourceNode","hasAttribute","isFirstEnter","enterLeaveCounter","enter","altKey","isLastLeave","leave","dragDrop","tagName","isContentEditable","HTML5Backend","createBackend","MRT_FullScreenToggleButton","rest","onIsFullScreenChanged","setIsFullScreen","isFullScreen","handleToggleFullScreen","MRT_ShowHideColumnsButton","handleClick","MRT_ToggleDensePaddingButton","onDensityChanged","setDensity","handleToggleDensePadding","nextDensity","MRT_ToggleFiltersButton","onShowFiltersChanged","showFilters","handleToggleShowFilters","MRT_ToggleGlobalFilterButton","muiSearchTextFieldProps","onShowGlobalFilterChanged","setShowGlobalFilter","showGlobalFilter","textFieldProps","handleToggleSearch","MRT_GlobalFilterTextField","setGlobalFilter","enableGlobalFilterChangeMode","onGlobalFilterValueChanged","onGlobalFilterValueChangedDebounced","globalFilter","setSearchValue","handleChangeDebounced","debounce","handleGlobalFilterMenuOpen","handleClear","Collapse","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","MRT_ToolbarInternalButtons","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","positionGlobalFilter","renderToolbarInternalActions","zIndex","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","enableToolbarInternalActions","rowCount","pagination","pageSize","pageIndex","tablePaginationProps","handleChangeRowsPerPage","totalRowCount","rows","showFirstLastPageButtons","TablePagination","SelectProps","MenuProps","disablePadding","component","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","mt","MRT_ToolbarAlertBanner","stackAlertBanner","muiTableToolbarAlertBannerProps","grouping","alertProps","selectMessage","groupedByMessage","Fragment","Chip","getColumn","onDelete","timeout","Alert","icon","borderRadius","fontSize","right","MRT_LinearProgressBar","alignTo","muiLinearProgressProps","isLoading","showProgressBars","linearProgressProps","mountOnEnter","unmountOnExit","bottom","LinearProgress","commonToolbarStyles","theme","lighten","palette","background","backgroundImage","minHeight","overflow","MRT_ToolbarTop","enablePagination","muiTableToolbarTopProps","positionPagination","positionToolbarAlertBanner","renderToolbarTopCustomActions","isMobile","useMediaQuery","toolbarProps","Toolbar","boxSizing","MRT_ToolbarBottom","muiTableToolbarBottomProps","renderToolbarBottomCustomActions","boxShadow","alpha","black","MRT_FilterTextField","inputIndex","onColumnFilterValueChanged","onColumnFilterValueChangedDebounced","mTableHeadCellFilterTextFieldProps","mcTableHeadCellFilterTextFieldProps","newFilterValues","handleFilterMenuOpen","handleClearFilterChip","Filter","filterId","filterChipLabel","charAt","toUpperCase","filterPlaceholder","showChangeModeButton","fullWidth","textOverflow","helperText","htmlFor","FormHelperTextProps","lineHeight","whiteSpace","margin","disableHoverListener","mr","MRT_FilterRangeFields","gridTemplateColumns","MRT_TableHeadCellFilterContainer","MRT_TableHeadCellFilterLabel","filterTooltip","Grow","MRT_TableHeadCellResizeHandle","flexItem","onDoubleClick","borderRightWidth","touchAction","getIsResizing","userSelect","info","main","onMouseDown","getResizeHandler","onTouchStart","columnSizingInfo","deltaOffset","MRT_TableHeadCellSortLabel","sortTooltip","TableSortLabel","active","direction","MRT_TableHeadCellColumnActionsButton","muiTableHeadCellColumnActionsButtonProps","mTableHeadCellColumnActionsButtonProps","mcTableHeadCellColumnActionsButtonProps","MRT_TableHeadCell","enableColumnActions","enableMultiSort","muiTableHeadCellProps","mTableHeadCellProps","mcTableHeadCellProps","tableCellProps","headerElement","Header","renderHeader","getIsLastLeftPinnedColumn","getLeftLeafHeaders","getPinnedIndex","getIsFirstRightPinnedColumn","getTotalRight","getRightLeafHeaders","TableCell","align","colSpan","fontWeight","getStart","pb","verticalAlign","maxWidth","getSize","minSize","isPlaceholder","getToggleSortingHandler","MRT_DraggableTableHeadCell","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","tableRowProps","TableRow","headers","MRT_TableHead","getHeaderGroups","muiTableHeadProps","tableHeadProps","TableHead","rectChanged","observedNodes","run","changedStates","newRect","rafId","observeRect","cb","wasEmpty","rect","hasRectChanged","callbacks","unobserve","useRect","nodeRef","initialRect","setElement","useReducer","rectReducer","initialRectSet","useRef","defaultEstimateSize","defaultKeyExtractor","defaultMeasureSize","defaultRangeExtractor","range","start","overscan","arr","useVirtual","estimateSize","paddingStart","paddingEnd","parentRef","scrollToFn","useObserver","onScrollElement","scrollOffsetFn","keyExtractor","measureSize","rangeExtractor","sizeKey","scrollKey","latestRef","scrollOffset","measurements","setScrollOffset","useMeasureParent","outerSize","defaultScrollToFn","offset","resolvedScrollToFn","measuredCache","setMeasuredCache","measure","pendingMeasuredCacheIndexesRef","measuredSize","totalSize","scrollOffsetFnRef","onScroll","capture","passive","calculateRange","indexes","measureSizeRef","virtualItems","k","len","measurement","measureRef","mountedRef","scrollToOffset","toOffset","tryScrollToIndex","scrollToIndex","findNearestBinarySearch","getCurrentValue","middle","currentValue","getOffset","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChanged","setCurrentEditingCell","setValue","handleBlur","mTableBodyCellEditTextFieldProps","mcTableBodyCellEditTextFieldProps","onBlur","MRT_CopyButton","muiTableBodyCellCopyButtonProps","copied","setCopied","handleCopy","clipboard","writeText","mTableBodyCellCopyButtonProps","mcTableBodyCellCopyButtonProps","buttonProps","border","fontFamily","letterSpacing","textTransform","MRT_TableBodyCell","enableHover","rowIndex","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","onCellClick","onRowClick","rowNumberMode","currentEditingCell","showSkeletons","mTableCellBodyProps","mcTableCellBodyProps","skeletonWidth","random","isEditable","isEditing","handleDoubleClick","_event","textField","mode","darken","Skeleton","animation","Cell","getIsPlaceholder","groupingColumnId","getIsAggregated","AggregatedCell","renderAggregatedCell","renderCell","subRows","MRT_TableDetailPanel","getVisibleLeafColumns","muiTableBodyRowProps","muiTableDetailPanelProps","onDetailPanelClick","borderBottom","getTotalSize","MRT_TableBodyRow","getVisibleCells","rowA","rowB","dir","columnFiltersMeta","compareItems","sortingFns","alphanumeric","MRT_SortingFns","rankGlobalFuzzy","v","rank","MRT_TableBody","tableContainerRef","enableGlobalFilterRankedResults","enableRowVirtualization","muiTableBodyProps","virtualizerProps","sorting","tableBodyProps","getIsSomeColumnsSorted","rankedRows","sort","rowVirtualizer","virtualRows","paddingTop","paddingBottom","TableBody","rowOrVirtualRow","MRT_TableFooterCell","footer","muiTableFooterCellProps","mTableFooterCellProps","mcTableFooterCellProps","white","Footer","renderFooter","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","MRT_TableFooter","getFooterGroups","muiTableFooterProps","tableFooterProps","TableFooter","MRT_Table","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","tableProps","Table","stickyHeader","tableLayout","MRT_TableContainer","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","topToolbarHeight","bottomToolbarHeight","TableContainer","maxHeight","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","tablePaperProps","Paper","elevation","padding","MRT_TableRoot","setIdPrefix","substring","initState","assign","globalFilterFn","createTable","setOptions","filterFns","getCoreRowModel","getExpandedRowModel","getFacetedRowModel","getFilteredRowModel","getGroupedRowModel","getSortedRowModel","displayColumns","enableExpandAll","enableSelectAll","fill","useTableInstance","onColumnOrderChange","getSubRows","onCurrentEditingCellChange","onCurrentEditingRowChange","onCurrentFilterFnsChange","onCurrentGlobalFilterFnChange","onDensityChange","onIsFullScreenChange","onShowFiltersChange","onShowGlobalFilterChange","onColumnOrderChanged","onColumnPinningChanged","onColumnVisibilityChanged","Dialog","PaperComponent","TransitionComponent","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","columnResizeMode","defaultColumn","maxSize","enableMultiRowSelection"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEO,IAAMA,0BAA0B,GAAqB;EAC1DC,OAAO,EAAE,SADiD;EAE1DC,GAAG,EAAE,KAFqD;EAG1DC,MAAM,EAAE,QAHkD;EAI1DC,gBAAgB,EAAE,oBAJwC;EAK1DC,gBAAgB,EAAE,oBALwC;EAM1DC,WAAW,EAAE,cAN6C;EAO1DC,WAAW,EAAE,cAP6C;EAQ1DC,SAAS,EAAE,YAR+C;EAS1DC,WAAW,EAAE,eAT6C;EAU1DC,aAAa,EAAE,gBAV2C;EAW1DC,iBAAiB,EAAE,qBAXuC;EAY1DC,IAAI,EAAE,MAZoD;EAa1DC,MAAM,EAAE,QAbkD;EAc1DC,SAAS,EAAE,YAd+C;EAe1DC,aAAa,EAAE,SAf2C;EAgB1DC,cAAc,EAAE,oBAhB0C;EAiB1DC,cAAc,EAAE,UAjB0C;EAkB1DC,WAAW,EAAE,OAlB6C;EAmB1DC,cAAc,EAAE,WAnB0C;EAoB1DC,YAAY,EAAE,QApB4C;EAqB1DC,WAAW,EAAE,OArB6C;EAsB1DC,iBAAiB,EAAE,cAtBuC;EAuB1DC,cAAc,EAAE,WAvB0C;EAwB1DC,UAAU,EAAE,2BAxB8C;EAyB1DC,cAAc,EAAE,WAzB0C;EA0B1DC,eAAe,EAAE,YA1ByC;EA2B1DC,gBAAgB,EAAE,aA3BwC;EA4B1DC,iBAAiB,EAAE,oDA5BuC;EA6B1DC,IAAI,EAAE,MA7BoD;EA8B1DC,aAAa,EAAE,mBA9B2C;EA+B1DC,SAAS,EAAE,aA/B+C;EAgC1DC,OAAO,EAAE,UAhCiD;EAiC1DC,UAAU,EAAE,sBAjC8C;EAkC1DC,GAAG,EAAE,KAlCqD;EAmC1DC,GAAG,EAAE,KAnCqD;EAoC1DC,SAAS,EAAE,aApC+C;EAqC1DC,UAAU,EAAE,cArC8C;EAsC1DC,eAAe,EAAE,mBAtCyC;EAuC1DC,UAAU,EAAE,aAvC8C;EAwC1DC,UAAU,EAAE,aAxC8C;EAyC1DC,SAAS,EAAE,GAzC+C;EA0C1DC,UAAU,EAAE,aA1C8C;EA2C1DC,IAAI,EAAE,MA3CoD;EA4C1DC,MAAM,EAAE,QA5CkD;EA6C1DC,mCAAmC,EACjC,+CA9CwD;EA+C1DC,MAAM,EAAE,QA/CkD;EAgD1DC,OAAO,EAAE,UAhDiD;EAiD1DC,cAAc,EAAE,kBAjD0C;EAkD1DC,eAAe,EAAE,mBAlDyC;EAmD1DC,eAAe,EAAE,mBAnDyC;EAoD1DC,cAAc,EAAE,kBApD0C;EAqD1DC,eAAe,EAAE,4BArDyC;EAsD1DC,gBAAgB,EAAE,6BAtDwC;EAuD1DC,iBAAiB,EAAE,8BAvDuC;EAwD1DC,kBAAkB,EAAE,+BAxDsC;EAyD1DC,MAAM,EAAE,YAzDkD;EA0D1DC,aAAa,EAAE,gBA1D2C;EA2D1DC,gBAAgB,EAAE,oBA3DwC;EA4D1DC,eAAe,EAAE,mBA5DyC;EA6D1DC,eAAe,EAAE,mBA7DyC;EA8D1DC,gBAAgB,EAAE,mBA9DwC;EA+D1DC,eAAe,EAAE,qBA/DyC;EAgE1DC,KAAK,EAAE,OAhEmD;EAiE1DC,QAAQ,EAAE,WAjEgD;EAkE1DC,QAAQ,EAAE;AAlEgD,CAArD;;ACFA,IAAMC,iBAAiB,GAAc;EAC1CC,cAAc,EAAEC,wBAD0B;EAE1CC,UAAU,EAAEC,oBAF8B;EAG1CC,YAAY,EAAEC,sBAH4B;EAI1CC,YAAY,EAAEC,sBAJ4B;EAK1CC,SAAS,EAAEC,mBAL+B;EAM1CC,gBAAgB,EAAEC,0BANwB;EAO1CC,iBAAiB,EAAEC,2BAPuB;EAQ1CC,gBAAgB,EAAEC,0BARwB;EAS1CC,cAAc,EAAEC,wBAT0B;EAU1CC,eAAe,EAAEC,yBAVyB;EAW1CC,QAAQ,EAAEC,kBAXgC;EAY1CC,cAAc,EAAEC,wBAZ0B;EAa1CC,cAAc,EAAEC,wBAb0B;EAc1CC,aAAa,EAAEC,uBAd2B;EAe1CC,gBAAgB,EAAEC,0BAfwB;EAgB1CC,cAAc,EAAEC,wBAhB0B;EAiB1CC,iBAAiB,EAAEC,2BAjBuB;EAkB1CC,kBAAkB,EAAEC,4BAlBsB;EAmB1CC,cAAc,EAAEC,wBAnB0B;EAoB1CC,2BAA2B,EAAEC,qCApBa;EAqB1CC,aAAa,EAAEC,uBArB2B;EAsB1CC,YAAY,EAAEC,sBAtB4B;EAuB1CC,WAAW,EAAEC,qBAvB6B;EAwB1CC,cAAc,EAAEC,wBAxB0B;EAyB1CC,QAAQ,EAAEC,kBAzBgC;EA0B1CC,UAAU,EAAEC,oBA1B8B;EA2B1CC,aAAa,EAAEC,uBA3B2B;EA4B1CC,QAAQ,EAAEC,kBA5BgC;EA6B1CC,cAAc,EAAEC,wBA7B0B;EA8B1CC,iBAAiB,EAAEC;AA9BuB,CAArC;;AC1DA,IAAMC,mBAAmB,GAAc,SAAjCA,mBAAiC;MAAGC,gBAAAA;EAC/C,IACEC,oBADF,GAYID,QAZJ,CACEC,oBADF;MAEEC,qBAFF,GAYIF,QAZJ,CAEEE,qBAFF;MAGEC,oBAHF,GAYIH,QAZJ,CAGEG,oBAHF;MAIEC,QAJF,GAYIJ,QAZJ,CAIEI,QAJF;0BAYIJ,QAZJ,CAKEK,OALF;MAMa5B,2BANb,qBAMI6B,KANJ,CAMa7B,2BANb;MAOI8B,YAPJ,qBAOIA,YAPJ;MAQIC,uBARJ,qBAQIA,uBARJ;MASIC,iBATJ,qBASIA,iBATJ;MAWEC,qBAXF,GAYIV,QAZJ,CAWEU,qBAXF;;EAcA,gBAAoBN,QAAQ,EAA5B;MAAQO,OAAR,aAAQA,OAAR;;EAEA,IAAMC,eAAe,GACnBJ,uBAAuB,YAAYK,QAAnC,GACIL,uBAAuB,CAAC;IAAER,QAAQ,EAARA;GAAH,CAD3B,GAEIQ,uBAHN;EAKA,OACEM,4BAAA,CAACC,gBAAD;IACEC,KAAK;IACLC,UAAU,EAAE;IACZC,cAAc,EAAE;IAChBC,KAAK,EAAEZ,YAAY,CAACzH;GAJtB,EAMEgI,4BAAA,OAAA,MAAA,EACEA,4BAAA,CAACM,mBAAD;kBACcb,YAAY,CAACzH;IACzBuI,QAAQ,EAAE,CAAClB,oBAAoB,EAArB,IAA2B,CAACM;IACtCa,OAAO,EAAE;MAAA,OAAMZ,qBAAqB,CAAC,CAACT,oBAAoB,EAAtB,CAA3B;;KACLW;IACJW,EAAE;MACAC,MAAM,EAAEb,OAAO,KAAK,SAAZ,GAAwB,SAAxB,GAAoC,SAD5C;MAEAc,KAAK,EAAEd,OAAO,KAAK,SAAZ,GAAwB,SAAxB,GAAoC;OACxCC,eAHH,oBAGGA,eAAe,CAAEW,EAHpB;IALJ,EAWET,4BAAA,CAACrC,2BAAD;IACEiD,KAAK,EAAE;MACLC,SAAS,eACP1B,oBAAoB,KAChB,CAAC,GADe,GAEhBC,qBAAqB,KACrB,CAAC,EADoB,GAErB,CALG,UADJ;MAQL0B,UAAU,EAAE;;GAThB,CAXF,CADF,CANF,CADF;AAmCD,CAzDM;;ACCA,IAAMC,gBAAgB,GAAc,SAA9BA,gBAA8B;MAAGC,WAAAA;MAAK9B,gBAAAA;EACjD,IACEI,QADF,GASIJ,QATJ,CACEI,QADF;0BASIJ,QATJ,CAEEK,OAFF;MAGa1C,cAHb,qBAGI2C,KAHJ,CAGa3C,cAHb;MAII4C,YAJJ,qBAIIA,YAJJ;MAKIwB,oBALJ,qBAKIA,oBALJ;MAMIC,eANJ,qBAMIA,eANJ;MAOIvB,iBAPJ,qBAOIA,iBAPJ;;EAWA,gBAAoBL,QAAQ,EAA5B;MAAQO,OAAR,aAAQA,OAAR;;EAEA,IAAMC,eAAe,GACnBmB,oBAAoB,YAAYlB,QAAhC,GACIkB,oBAAoB,CAAC;IAAE/B,QAAQ,EAARA,QAAF;IAAY8B,GAAG,EAAHA;GAAb,CADxB,GAEIC,oBAHN;;EAKA,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,KAAD;IACzBJ,GAAG,CAACK,cAAJ;IACAH,eAAe,QAAf,YAAAA,eAAe,CAAG;MAAEE,KAAK,EAALA,KAAF;MAASJ,GAAG,EAAHA,GAAT;MAAc9B,QAAQ,EAARA;KAAjB,CAAf;GAFF;;EAKA,OACEc,4BAAA,CAACC,gBAAD;IACEC,KAAK;IACLC,UAAU,EAAE;IACZC,cAAc,EAAE;IAChBC,KAAK,EAAEZ,YAAY,CAAC1H;GAJtB,EAMEiI,4BAAA,OAAA,MAAA,EACEA,4BAAA,CAACM,mBAAD;kBACcb,YAAY,CAAC1H;IACzBwI,QAAQ,EAAE,CAACS,GAAG,CAACM,YAAJ,EAAD,IAAuB,CAAC3B;IAClCa,OAAO,EAAEW;KACLrB;IACJW,EAAE;MACAC,MAAM,EAAEb,OAAO,KAAK,SAAZ,GAAwB,SAAxB,GAAoC,SAD5C;MAEAc,KAAK,EAAEd,OAAO,KAAK,SAAZ,GAAwB,SAAxB,GAAoC;OACxCC,eAHH,oBAGGA,eAAe,CAAEW,EAHpB;IALJ,EAWET,4BAAA,CAACnD,cAAD;IACE+D,KAAK,EAAE;MACLC,SAAS,eACP,CAACG,GAAG,CAACM,YAAJ,EAAD,IAAuB,CAAC3B,iBAAxB,GACI,CAAC,EADL,GAEIqB,GAAG,CAACO,aAAJ,KACA,CAAC,GADD,GAEA,CALG,UADJ;MAQLT,UAAU,EAAE;;GAThB,CAXF,CADF,CANF,CADF;AAmCD,CA3DM;;ACNA,IAAMU,KAAK,GAAG,SAARA,KAAQ,CACnBR,GADmB,EAEnBS,QAFmB,EAGnBC,WAHmB,EAInBC,OAJmB;EAMnB,IAAMC,QAAQ,GAAGC,yBAAQ,CAACb,GAAG,CAACc,QAAJ,CAAaL,QAAb,CAAD,EAAyBC,WAAzB,EAAsC;IAC7DK,SAAS,EAAEC,yBAAQ,CAACC;GADG,CAAzB;EAGAN,OAAO,CAACC,QAAD,CAAP;EACA,OAAOA,QAAQ,CAACM,MAAhB;AACD,CAXM;;AAaPV,KAAK,CAACW,UAAN,GAAmB,UAACC,GAAD;EAAA,OAAc,CAACA,GAAf;AAAA,CAAnB;;AAEA,AAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CACtBrB,GADsB,EAEtBsB,EAFsB,EAGtBZ,WAHsB;EAAA,OAKtBV,GAAG,CACAc,QADH,CACYQ,EADZ,EAEGC,QAFH,GAGGC,WAHH,GAIGC,IAJH,GAKGC,QALH,CAKYhB,WAAW,CAACa,QAAZ,GAAuBC,WAAvB,GAAqCC,IAArC,EALZ,CALsB;AAAA,CAAjB;;AAYPJ,QAAQ,CAACF,UAAT,GAAsB,UAACC,GAAD;EAAA,OAAc,CAACA,GAAf;AAAA,CAAtB;;AAEA,AAAO,IAAMO,UAAU,GAAG,SAAbA,UAAa,CACxB3B,GADwB,EAExBsB,EAFwB,EAGxBZ,WAHwB;EAAA,OAKxBV,GAAG,CACAc,QADH,CACYQ,EADZ,EAEGC,QAFH,GAGGC,WAHH,GAIGC,IAJH,GAKGE,UALH,CAKcjB,WAAW,CAACa,QAAZ,GAAuBC,WAAvB,GAAqCC,IAArC,EALd,CALwB;AAAA,CAAnB;;AAYPE,UAAU,CAACR,UAAX,GAAwB,UAACC,GAAD;EAAA,OAAc,CAACA,GAAf;AAAA,CAAxB;;AAEA,AAAO,IAAMQ,QAAQ,GAAG,SAAXA,QAAW,CACtB5B,GADsB,EAEtBsB,EAFsB,EAGtBZ,WAHsB;EAAA,OAKtBV,GAAG,CACAc,QADH,CACYQ,EADZ,EAEGC,QAFH,GAGGC,WAHH,GAIGC,IAJH,GAKGG,QALH,CAKYlB,WAAW,CAACa,QAAZ,GAAuBC,WAAvB,GAAqCC,IAArC,EALZ,CALsB;AAAA,CAAjB;;AAYPG,QAAQ,CAACT,UAAT,GAAsB,UAACC,GAAD;EAAA,OAAc,CAACA,GAAf;AAAA,CAAtB;;AAEA,AAAO,IAAMS,MAAM,GAAG,SAATA,MAAS,CACpB7B,GADoB,EAEpBsB,EAFoB,EAGpBZ,WAHoB;EAAA,OAKpBV,GAAG,CAACc,QAAJ,CAAaQ,EAAb,EAAiBC,QAAjB,GAA4BC,WAA5B,GAA0CC,IAA1C,OACAf,WAAW,CAACa,QAAZ,GAAuBC,WAAvB,GAAqCC,IAArC,EANoB;AAAA,CAAf;;AAQPI,MAAM,CAACV,UAAP,GAAoB,UAACC,GAAD;EAAA,OAAc,CAACA,GAAf;AAAA,CAApB;;AAEA,AAAO,IAAMU,SAAS,GAAG,SAAZA,SAAY,CACvB9B,GADuB,EAEvBsB,EAFuB,EAGvBZ,WAHuB;EAAA,OAKvBV,GAAG,CAACc,QAAJ,CAAaQ,EAAb,EAAiBC,QAAjB,GAA4BC,WAA5B,GAA0CC,IAA1C,OACAf,WAAW,CAACa,QAAZ,GAAuBC,WAAvB,GAAqCC,IAArC,EANuB;AAAA,CAAlB;;AAQPK,SAAS,CAACX,UAAV,GAAuB,UAACC,GAAD;EAAA,OAAc,CAACA,GAAf;AAAA,CAAvB;;AAEA,AAAO,IAAMW,WAAW,GAAG,SAAdA,WAAc,CACzB/B,GADyB,EAEzBsB,EAFyB,EAGzBZ,WAHyB;EAAA,OAKzB,CAACsB,KAAK,CAAC,CAACtB,WAAF,CAAN,IAAwB,CAACsB,KAAK,CAAC,CAAChC,GAAG,CAACc,QAAJ,CAAaQ,EAAb,CAAF,CAA9B,GACI,CAACtB,GAAG,CAACc,QAAJ,CAAaQ,EAAb,CAAD,IAAqB,CAACZ,WAD1B,GAEIV,GAAG,CAACc,QAAJ,CAAaQ,EAAb,EAAiBC,QAAjB,GAA4BC,WAA5B,GAA0CC,IAA1C,KACAf,WAAW,CAACa,QAAZ,GAAuBC,WAAvB,GAAqCC,IAArC,EARqB;AAAA,CAApB;;AAUPM,WAAW,CAACZ,UAAZ,GAAyB,UAACC,GAAD;EAAA,OAAc,CAACA,GAAf;AAAA,CAAzB;;AAEA,AAAO,IAAMa,QAAQ,GAAG,SAAXA,QAAW,CACtBjC,GADsB,EAEtBsB,EAFsB,EAGtBZ,WAHsB;EAAA,OAKtB,CAACsB,KAAK,CAAC,CAACtB,WAAF,CAAN,IAAwB,CAACsB,KAAK,CAAC,CAAChC,GAAG,CAACc,QAAJ,CAAaQ,EAAb,CAAF,CAA9B,GACI,CAACtB,GAAG,CAACc,QAAJ,CAAaQ,EAAb,CAAD,IAAqB,CAACZ,WAD1B,GAEIV,GAAG,CAACc,QAAJ,CAAaQ,EAAb,EAAiBC,QAAjB,GAA4BC,WAA5B,GAA0CC,IAA1C,KACAf,WAAW,CAACa,QAAZ,GAAuBC,WAAvB,GAAqCC,IAArC,EARkB;AAAA,CAAjB;;AAUPQ,QAAQ,CAACd,UAAT,GAAsB,UAACC,GAAD;EAAA,OAAc,CAACA,GAAf;AAAA,CAAtB;;AAEA,AAAO,IAAMc,OAAO,GAAG,SAAVA,OAAU,CACrBlC,GADqB,EAErBsB,EAFqB,EAGrBa,YAHqB;EAAA,OAKrB,CAAE,CAAC,EAAD,EAAKC,SAAL,EAA0BV,QAA1B,CAAmCS,YAAY,CAAC,CAAD,CAA/C,KACAJ,WAAW,CAAC/B,GAAD,EAAMsB,EAAN,EAAUa,YAAY,CAAC,CAAD,CAAtB,CADb,MAEE,CAACH,KAAK,CAAC,CAACG,YAAY,CAAC,CAAD,CAAd,CAAN,IACA,CAACH,KAAK,CAAC,CAACG,YAAY,CAAC,CAAD,CAAd,CADN,IAEA,CAACA,YAAY,CAAC,CAAD,CAAb,GAAmB,CAACA,YAAY,CAAC,CAAD,CAFjC,IAGE,CAAC,EAAD,EAAKC,SAAL,EAA0BV,QAA1B,CAAmCS,YAAY,CAAC,CAAD,CAA/C,CAHF,IAICF,QAAQ,CAACjC,GAAD,EAAMsB,EAAN,EAAUa,YAAY,CAAC,CAAD,CAAtB,CANV,CALqB;AAAA,CAAhB;;AAaPD,OAAO,CAACf,UAAR,GAAqB,UAACC,GAAD;EAAA,OAAc,CAACA,GAAf;AAAA,CAArB;;AAEA,AAAO,IAAMiB,KAAK,GAAG,SAARA,KAAQ,CACnBrC,GADmB,EAEnBsB,EAFmB,EAGnBgB,YAHmB;EAAA,OAIhB,CAACtC,GAAG,CAACc,QAAJ,CAAaQ,EAAb,EAAiBC,QAAjB,GAA4BE,IAA5B,EAJe;AAAA,CAAd;;AAMPY,KAAK,CAAClB,UAAN,GAAmB,UAACC,GAAD;EAAA,OAAc,CAACA,GAAf;AAAA,CAAnB;;AAEA,AAAO,IAAMmB,QAAQ,GAAG,SAAXA,QAAW,CACtBvC,GADsB,EAEtBsB,EAFsB,EAGtBgB,YAHsB;EAAA,OAInB,CAAC,CAACtC,GAAG,CAACc,QAAJ,CAAaQ,EAAb,EAAiBC,QAAjB,GAA4BE,IAA5B,EAJiB;AAAA,CAAjB;;AAMPc,QAAQ,CAACpB,UAAT,GAAsB,UAACC,GAAD;EAAA,OAAc,CAACA,GAAf;AAAA,CAAtB;;AAEA,AAAO,IAAMoB,aAAa,GAAG;EAC3BN,OAAO,EAAPA,OAD2B;EAE3Bb,QAAQ,EAARA,QAF2B;EAG3BgB,KAAK,EAALA,KAH2B;EAI3BT,QAAQ,EAARA,QAJ2B;EAK3BC,MAAM,EAANA,MAL2B;EAM3BrB,KAAK,EAALA,KAN2B;EAO3BuB,WAAW,EAAXA,WAP2B;EAQ3BE,QAAQ,EAARA,QAR2B;EAS3BM,QAAQ,EAARA,QAT2B;EAU3BT,SAAS,EAATA,SAV2B;EAW3BH,UAAU,EAAVA;AAX2B,CAAtB;;ACjHP,IAAMc,oBAAoB,GAAG;EAC3BC,EAAE,EAAE,KADuB;EAE3BC,EAAE,EAAE,CAFuB;EAG3BC,UAAU,EAAE;AAHe,CAA7B;AAcA,AAAO,IAAMC,oBAAoB,GAAc,SAAlCA,oBAAkC;;;MAC7CC,gBAAAA;MACAC,cAAAA;MACAC,gBAAAA;MACAC,mBAAAA;MACA/E,gBAAAA;EAEA,IACEI,QADF,GASIJ,QATJ,CACEI,QADF;0BASIJ,QATJ,CAEEK,OAFF;MAGI2E,0BAHJ,qBAGIA,0BAHJ;MAIIC,0BAJJ,qBAIIA,0BAJJ;MAKI1E,YALJ,qBAKIA,YALJ;MAOE2E,mBAPF,GASIlF,QATJ,CAOEkF,mBAPF;MAQEC,wBARF,GASInF,QATJ,CAQEmF,wBARF;;EAWA,gBAA6D/E,QAAQ,EAArE;MAAQO,OAAR,aAAQA,OAAR;MAAiByE,gBAAjB,aAAiBA,gBAAjB;MAAmCC,qBAAnC,aAAmCA,qBAAnC;;EAEA,YAAmBR,MAAnB,WAAmBA,MAAnB,GAA6B,EAA7B;MAAQS,MAAR,SAAQA,MAAR;;EAEA,YAAsBA,MAAtB,WAAsBA,MAAtB,GAAgC,EAAhC;MAAQC,SAAR,SAAQA,SAAR;;EAEA,IAAMC,0BAA0B,4BAC9BD,SAD8B,oBAC9BA,SAAS,CAAEN,0BADmB,oCACWA,0BAD3C;EAGA,IAAMQ,aAAa,GAAGC,aAAO,CAC3B;IAAA,OACE,CACE;MACEC,MAAM,EAAE,OADV;MAEEC,KAAK,EAAErF,YAAY,CAAClH,WAFtB;MAGEwM,OAAO,EAAE,KAHX;MAIEC,EAAE,EAAExD;KALR,EAOE;MACEqD,MAAM,EAAE,UADV;MAEEC,KAAK,EAAErF,YAAY,CAACtH,cAFtB;MAGE4M,OAAO,EAAE,KAHX;MAIEC,EAAE,EAAE3C;KAXR,EAaE;MACEwC,MAAM,EAAE,YADV;MAEEC,KAAK,EAAErF,YAAY,CAAC5G,gBAFtB;MAGEkM,OAAO,EAAE,KAHX;MAIEC,EAAE,EAAErC;KAjBR,EAmBE;MACEkC,MAAM,EAAE,UADV;MAEEC,KAAK,EAAErF,YAAY,CAACpH,cAFtB;MAGE0M,OAAO,EAAE,IAHX;MAIEC,EAAE,EAAEpC;KAvBR,EAyBE;MACEiC,MAAM,EAAE,QADV;MAEEC,KAAK,EAAErF,YAAY,CAACnH,YAFtB;MAGEyM,OAAO,EAAE,KAHX;MAIEC,EAAE,EAAEnC;KA7BR,EA+BE;MACEgC,MAAM,EAAE,WADV;MAEEC,KAAK,EAAErF,YAAY,CAAC7G,eAFtB;MAGEmM,OAAO,EAAE,IAHX;MAIEC,EAAE,EAAElC;KAnCR,EAqCE;MACE+B,MAAM,EAAE,SADV;MAEEC,KAAK,EAAErF,YAAY,CAACxH,aAFtB;MAGE8M,OAAO,EAAE,KAHX;MAIEC,EAAE,EAAE9B;KAzCR,EA2CE;MACE2B,MAAM,EAAE,aADV;MAEEC,KAAK,EAAErF,YAAY,CAACjH,iBAFtB;MAGEuM,OAAO,EAAE,KAHX;MAIEC,EAAE,EAAEjC;KA/CR,EAiDE;MACE8B,MAAM,EAAE,UADV;MAEEC,KAAK,EAAErF,YAAY,CAAChH,cAFtB;MAGEsM,OAAO,EAAE,IAHX;MAIEC,EAAE,EAAE/B;KArDR,EAuDE;MACE4B,MAAM,EAAE,OADV;MAEEC,KAAK,EAAErF,YAAY,CAACrH,WAFtB;MAGE2M,OAAO,EAAE,KAHX;MAIEC,EAAE,EAAE3B;KA3DR,EA6DE;MACEwB,MAAM,EAAE,UADV;MAEEC,KAAK,EAAErF,YAAY,CAAC9G,cAFtB;MAGEoM,OAAO,EAAE,KAHX;MAIEC,EAAE,EAAEzB;KAjER,EAmEE0B,MAnEF,CAmES,UAACC,UAAD;MAAA,OACPT,SAAS,GACLC,0BAA0B,KAAKtB,SAA/B,KACAsB,0BADA,oBACAA,0BAA0B,CAAEhC,QAA5B,CAAqCwC,UAAU,CAACL,MAAhD,CADA,CADK,GAGL,CAAC,CAACX,0BAAD,IACCA,0BAA0B,CAACxB,QAA3B,CAAoCwC,UAAU,CAACL,MAA/C,CADF,KAEA,CAAC,OAAD,EAAU,UAAV,EAAsBnC,QAAtB,CAA+BwC,UAAU,CAACL,MAA1C,CANG;KAnET,CADF;GAD2B,EAkF3B,EAlF2B,CAA7B;;EAqFA,IAAMM,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,KAAD;IAC7B,IAAIrB,MAAM,IAAIS,MAAd,EAAsB;MACpBJ,mBAAmB,CAAC,UAACiB,IAAD;QAAA;;QAAA,oBACfA,IADe,6BAEjBtB,MAAM,CAACzB,EAFU,IAEL8C,KAFK;OAAD,CAAnB;;MAIA,IAAI,CAAC,OAAD,EAAU,UAAV,EAAsB1C,QAAtB,CAA+B0C,KAA/B,CAAJ,EAA2C;QACzCZ,MAAM,CAACc,cAAP,CAAsB,GAAtB;OADF,MAEO,IAAIF,KAAK,KAAK,SAAd,EAAyB;QAC9BZ,MAAM,CAACc,cAAP,CAAsB,CAAC,EAAD,EAAK,EAAL,CAAtB;OADK,MAEA;QACLd,MAAM,CAACc,cAAP,CAAsB,EAAtB;;KAVJ,MAYO;MACLjB,wBAAwB,CAACe,KAAD,CAAxB;;;IAEFnB,WAAW,CAAC,IAAD,CAAX;IACAD,QAAQ,QAAR,YAAAA,QAAQ;GAjBV;;EAoBA,IAAMuB,YAAY,GAAG,CAAC,CAACxB,MAAF,GACjBO,gBAAgB,CAACP,MAAM,CAACzB,EAAR,CADC,GAEjBiC,qBAFJ;EAIA,OACEvE,4BAAA,CAACwF,aAAD;IACE1B,QAAQ,EAAEA;IACV2B,YAAY,EAAE;MAAEC,QAAQ,EAAE,QAAZ;MAAsBC,UAAU,EAAE;;IAChDC,OAAO,EAAE;MAAA,OAAM3B,WAAW,CAAC,IAAD,CAAjB;;IACT4B,IAAI,EAAE,CAAC,CAAC/B;IACRgC,aAAa,EAAE;MACbC,KAAK,EAAElG,OAAO,KAAK;;GANvB,EASG8E,aAAa,CAACqB,GAAd,CAAkB,iBAAiCC,KAAjC;IAAA,IAAGpB,MAAH,SAAGA,MAAH;QAAWC,KAAX,SAAWA,KAAX;QAAkBC,OAAlB,SAAkBA,OAAlB;QAA2BC,EAA3B,SAA2BA,EAA3B;IAAA,OACjBhF,4BAAA,CAACkG,iBAAD;MACEnB,OAAO,EAAEA;MACToB,GAAG,EAAEF;MACLzF,OAAO,EAAE;QAAA,OAAM2E,sBAAsB,CAACN,MAAD,CAA5B;;MACTuB,QAAQ,EAAEvB,MAAM,KAAKU,YAAX,IAA2BP,EAAE,KAAKO;MAC5C9E,EAAE,EAAEgD;MACJ2B,KAAK,EAAEP;KANT,EAQGC,KARH,CADiB;GAAlB,CATH,CADF;AAwBD,CAhKM;;AC1BP;;IAGA,AAAO,MAAMuB,UAAU,GAAGC,mBAAa,CAAiB;IACvDC,eAAe,EAAEnD,SAAS;CAC1B,CAAC,CAAA;;ACFF;AACA,IAAI,YAAY,GAAG,CAAC,YAAY;AAChC,EAAE,OAAO,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,cAAc,CAAC;AAC7E,CAAC,GAAG,CAAC;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,SAAS,YAAY,GAAG;AAC3C,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC,CAAC;AACF;AACA,IAAI,WAAW,GAAG;AAClB,EAAE,IAAI,EAAE,cAAc,GAAG,YAAY,EAAE;AACvC,EAAE,OAAO,EAAE,iBAAiB,GAAG,YAAY,EAAE;AAC7C,EAAE,oBAAoB,EAAE,SAAS,oBAAoB,GAAG;AACxD,IAAI,OAAO,8BAA8B,GAAG,YAAY,EAAE,CAAC;AAC3D,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,OAAO,KAAK,CAAC;AAC5D,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB;AACA,EAAE,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;AAChD,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACzC,GAAG;AACH;AACA,EAAE,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;AAC9C,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,GAAG,EAAE;AACzB,EAAE,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE,OAAO,WAAW,CAAC;AACzC,EAAE,IAAI,GAAG,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;AAClC,EAAE,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC;AACxB;AACA,EAAE,QAAQ,IAAI;AACd,IAAI,KAAK,SAAS,CAAC;AACnB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,UAAU;AACnB,MAAM;AACN,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC;AACzC,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,MAAM,CAAC;AACjC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC;AACnC,EAAE,IAAI,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtC;AACA,EAAE,QAAQ,eAAe;AACzB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,SAAS,CAAC;AACnB,IAAI,KAAK,SAAS,CAAC;AACnB,IAAI,KAAK,SAAS,CAAC;AACnB,IAAI,KAAK,KAAK,CAAC;AACf,IAAI,KAAK,KAAK;AACd,MAAM,OAAO,eAAe,CAAC;AAC7B,GAAG;AACH;AACA;AACA,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,GAAG,EAAE;AACvB,EAAE,OAAO,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AAC7E,CAAC;AACD;AACA,SAAS,OAAO,CAAC,GAAG,EAAE;AACtB,EAAE,OAAO,GAAG,YAAY,KAAK,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,IAAI,OAAO,GAAG,CAAC,WAAW,CAAC,eAAe,KAAK,QAAQ,CAAC;AAC3I,CAAC;AACD;AACA,SAAS,MAAM,CAAC,GAAG,EAAE;AACrB,EAAE,IAAI,GAAG,YAAY,IAAI,EAAE,OAAO,IAAI,CAAC;AACvC,EAAE,OAAO,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,CAAC;AAC1H,CAAC;AACD;AACA,SAAS,MAAM,CAAC,GAAG,EAAE;AACrB,EAAE,IAAI,SAAS,GAAG,OAAO,GAAG,CAAC;AAC7B;AACA,EAAE,AAA2C;AAC7C,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AAChC,GAAG;AACH;AACA,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE;AACxD,EAAE,IAAI,KAAK,CAAC;AACZ;AACA,EAAE,IAAI,OAAO,cAAc,KAAK,UAAU,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;AACtJ,IAAI,MAAM,IAAI,KAAK,CAAC,AAAmE,CAAC,2DAA2D,GAAG,8DAA8D,GAAG,6IAA6I,CAAC,CAAC;AACtW,GAAG;AACH;AACA,EAAE,IAAI,OAAO,cAAc,KAAK,UAAU,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AAC/E,IAAI,QAAQ,GAAG,cAAc,CAAC;AAC9B,IAAI,cAAc,GAAG,SAAS,CAAC;AAC/B,GAAG;AACH;AACA,EAAE,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACvC,IAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC,MAAM,MAAM,IAAI,KAAK,CAAC,AAAmE,CAAC,8DAA8D,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;AACnL,KAAK;AACL;AACA,IAAI,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAC1D,GAAG;AACH;AACA,EAAE,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACrC,IAAI,MAAM,IAAI,KAAK,CAAC,AAAmE,CAAC,kEAAkE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AACpL,GAAG;AACH;AACA,EAAE,IAAI,cAAc,GAAG,OAAO,CAAC;AAC/B,EAAE,IAAI,YAAY,GAAG,cAAc,CAAC;AACpC,EAAE,IAAI,gBAAgB,GAAG,EAAE,CAAC;AAC5B,EAAE,IAAI,aAAa,GAAG,gBAAgB,CAAC;AACvC,EAAE,IAAI,aAAa,GAAG,KAAK,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,4BAA4B,GAAG;AAC1C,IAAI,IAAI,aAAa,KAAK,gBAAgB,EAAE;AAC5C,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC/C,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,QAAQ,GAAG;AACtB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,MAAM,IAAI,KAAK,CAAC,AAAmE,CAAC,oEAAoE,GAAG,6DAA6D,GAAG,yEAAyE,CAAC,CAAC;AAC5S,KAAK;AACL;AACA,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,SAAS,CAAC,QAAQ,EAAE;AAC/B,IAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC,MAAM,MAAM,IAAI,KAAK,CAAC,AAAmE,CAAC,8DAA8D,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;AACnL,KAAK;AACL;AACA,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,MAAM,IAAI,KAAK,CAAC,AAAmE,CAAC,qEAAqE,GAAG,sFAAsF,GAAG,oFAAoF,GAAG,wEAAwE,CAAC,CAAC;AAC5Z,KAAK;AACL;AACA,IAAI,IAAI,YAAY,GAAG,IAAI,CAAC;AAC5B,IAAI,4BAA4B,EAAE,CAAC;AACnC,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,IAAI,OAAO,SAAS,WAAW,GAAG;AAClC,MAAM,IAAI,CAAC,YAAY,EAAE;AACzB,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,MAAM,IAAI,KAAK,CAAC,AAAmE,CAAC,gFAAgF,GAAG,wEAAwE,CAAC,CAAC;AACzP,OAAO;AACP;AACA,MAAM,YAAY,GAAG,KAAK,CAAC;AAC3B,MAAM,4BAA4B,EAAE,CAAC;AACrC,MAAM,IAAI,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClD,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACrC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,KAAK,CAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,QAAQ,CAAC,MAAM,EAAE;AAC5B,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;AAChC,MAAM,MAAM,IAAI,KAAK,CAAC,AAAmE,CAAC,gEAAgE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,4UAA4U,CAAC,CAAC;AAC5f,KAAK;AACL;AACA,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;AAC5C,MAAM,MAAM,IAAI,KAAK,CAAC,AAAmE,CAAC,4GAA4G,CAAC,CAAC;AACxM,KAAK;AACL;AACA,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,MAAM,IAAI,KAAK,CAAC,AAAmE,CAAC,oCAAoC,CAAC,CAAC;AAChI,KAAK;AACL;AACA,IAAI,IAAI;AACR,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAC1D,KAAK,SAAS;AACd,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,KAAK;AACL;AACA,IAAI,IAAI,SAAS,GAAG,gBAAgB,GAAG,aAAa,CAAC;AACrD;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAClC,MAAM,QAAQ,EAAE,CAAC;AACjB,KAAK;AACL;AACA,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,cAAc,CAAC,WAAW,EAAE;AACvC,IAAI,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC3C,MAAM,MAAM,IAAI,KAAK,CAAC,AAAoE,CAAC,iEAAiE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACpL,KAAK;AACL;AACA,IAAI,cAAc,GAAG,WAAW,CAAC;AACjC;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC;AACb,MAAM,IAAI,EAAE,WAAW,CAAC,OAAO;AAC/B,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,UAAU,GAAG;AACxB,IAAI,IAAI,IAAI,CAAC;AACb;AACA,IAAI,IAAI,cAAc,GAAG,SAAS,CAAC;AACnC,IAAI,OAAO,IAAI,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,SAAS,EAAE,SAAS,SAAS,CAAC,QAAQ,EAAE;AAC9C,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC/D,UAAU,MAAM,IAAI,KAAK,CAAC,AAAoE,CAAC,6DAA6D,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;AACvL,SAAS;AACT;AACA,QAAQ,SAAS,YAAY,GAAG;AAChC,UAAU,IAAI,QAAQ,CAAC,IAAI,EAAE;AAC7B,YAAY,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtC,WAAW;AACX,SAAS;AACT;AACA,QAAQ,YAAY,EAAE,CAAC;AACvB,QAAQ,IAAI,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;AACvD,QAAQ,OAAO;AACf,UAAU,WAAW,EAAE,WAAW;AAClC,SAAS,CAAC;AACV,OAAO;AACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,YAAY;AACxC,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,EAAE,IAAI,CAAC;AACZ,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,QAAQ,CAAC;AACX,IAAI,IAAI,EAAE,WAAW,CAAC,IAAI;AAC1B,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,KAAK,GAAG;AACjB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,cAAc,EAAE,cAAc;AAClC,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC;AAC7C,CAAC;AACD,AAgCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,OAAO,EAAE;AAC1B;AACA,EAAE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;AAC7E,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,GAAG;AACH;AACA;AACA;AACA,EAAE,IAAI;AACN;AACA;AACA;AACA,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;AAChB;AACA,CAAC;AACD,AAyQA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,GAAG,EAAE;AACvB;AACA,IAAI,AAAwC,CAAC,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE;AACnH,EAAE,OAAO,CAAC,8EAA8E,GAAG,uEAAuE,GAAG,oFAAoF,GAAG,mFAAmF,GAAG,gEAAgE,CAAC,CAAC;AACpZ,CAAC;;ACzsBD;;;;;;;;;IAWA,AAAO,SAASoD,SAAS,CAACC,SAAc,EAAEC,MAAc,EAAE,GAAGC,IAAW,EAAE;IACzE,IAAIC,YAAY,EAAE,EAAE;QACnB,IAAIF,MAAM,KAAKtD,SAAS,EAAE;YACzB,MAAM,IAAIyD,KAAK,CAAC,8CAA8C,CAAC,CAAA;SAC/D;KACD;IAED,IAAI,CAACJ,SAAS,EAAE;QACf,IAAIK,KAAK;QACT,IAAIJ,MAAM,KAAKtD,SAAS,EAAE;YACzB0D,KAAK,GAAG,IAAID,KAAK,CAChB,oEAAoE,GACnE,6DAA6D,CAC9D;SACD,MAAM;YACN,IAAIE,QAAQ,GAAG,CAAC;YAChBD,KAAK,GAAG,IAAID,KAAK,CAChBH,MAAM,CAACM,OAAO,QAAQ,WAAY;gBACjC,OAAOL,IAAI,CAACI,QAAQ,EAAE,CAAC,CAAA;aACvB,CAAC,CACF;YACDD,KAAK,CAACG,IAAI,GAAG,qBAAqB;SAClC;QAECH,KAAK,CAASI,WAAW,GAAG,CAAC;;QAC/B,MAAMJ,KAAK,CAAA;KACX;CACD;AAED,SAASF,YAAY,GAAG;IACvB,OACC,OAAOO,OAAO,KAAK,WAAW,IAAIA,OAAO,CAACC,GAAG,CAAC,UAAU,CAAC,KAAK,YAAY,CAC1E;CACD;;AC5CD;AAEA;;;;;IAMA,AAAO,SAASC,GAAG,CAAIC,GAAQ,EAAEC,IAAY,EAAEC,YAAe,EAAK;IAClE,OAAOD,IAAI,CACTE,KAAK,CAAC,GAAG,CAAC,CACVC,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,GAAMD,CAAC,IAAIA,CAAC,CAACC,CAAC,CAAC,GAAGD,CAAC,CAACC,CAAC,CAAC,GAAGJ,YAAY,IAAI,IAAI;MAAGF,GAAG,CAAC,CAAK;CACvE;AAED;;IAGA,AAAO,SAASO,OAAO,CAAIC,KAAU,EAAEC,IAAO,EAAO;IACpD,OAAOD,KAAK,CAAC7C,MAAM,CAAC,CAAC+C,CAAC,GAAKA,CAAC,KAAKD,IAAI;KAAC,CAAA;CACtC;AAED,AAQA;;;IAIA,AAAO,SAASE,QAAQ,CAACC,KAAU,EAAW;IAC7C,OAAO,OAAOA,KAAK,KAAK,QAAQ,CAAA;CAChC;AAED;;;;IAKA,AAAO,SAASC,GAAG,CAA4BC,MAAW,EAAEC,MAAW,EAAO;IAC7E,MAAMrC,GAAG,GAAG,IAAIsC,GAAG,EAAa;IAChC,MAAMC,UAAU,GAAG,CAACR,IAAO,GAAK;QAC/B/B,GAAG,CAACwC,GAAG,CAACT,IAAI,EAAE/B,GAAG,CAACyC,GAAG,CAACV,IAAI,CAAC,GAAG,GAAI,CAACV,GAAG,CAACU,IAAI,CAAC,GAAc,CAAC,GAAG,CAAC,CAAC;KAChE;IACDK,MAAM,CAACM,OAAO,CAACH,UAAU,CAAC;IAC1BF,MAAM,CAACK,OAAO,CAACH,UAAU,CAAC;IAE1B,MAAMI,MAAM,GAAQ,EAAE;IACtB3C,GAAG,CAAC0C,OAAO,CAAC,CAACE,KAAK,EAAEzC,GAAG,GAAK;QAC3B,IAAIyC,KAAK,KAAK,CAAC,EAAE;YAChBD,MAAM,CAACE,IAAI,CAAC1C,GAAG,CAAC;SAChB;KACD,CAAC;IACF,OAAOwC,MAAM,CAAA;CACb;AAED;;;;IAKA,AAAO,SAASG,YAAY,CAAIV,MAAW,EAAEC,MAAW,EAAO;IAC9D,OAAOD,MAAM,CAACnD,MAAM,CAAC,CAAC8D,CAAC,GAAKV,MAAM,CAACW,OAAO,CAACD,CAAC,CAAC,GAAG,CAAC,CAAC;KAAC,CAAA;CACnD;;AClEM,MAAME,WAAW,GAAG,sBAAsB,CAAA;AACjD,AAAO,MAAMC,UAAU,GAAG,qBAAqB,CAAA;AAC/C,AAAO,MAAMC,mBAAmB,GAAG,8BAA8B,CAAA;AACjE,AAAO,MAAMC,KAAK,GAAG,gBAAgB,CAAA;AACrC,AAAO,MAAMC,IAAI,GAAG,eAAe,CAAA;AACnC,AAAO,MAAMC,QAAQ,GAAG,mBAAmB,CAAA;;ACApC,SAASC,eAAe,CAC9BC,YAAwC,EACxCC,kBAA+C,EACnC;IACZ,OAAO;QACNC,IAAI,EAAET,WAAW;QACjBU,OAAO,EAAE;YACRF,kBAAkB,EAAEA,kBAAkB,IAAI,IAAI;YAC9CD,YAAY,EAAEA,YAAY,IAAI,IAAI;SAClC;KACD,CAAA;CACD;;ACAD,MAAMI,sBAAsB,GAAG;IAC9BF,IAAI,EAAET,WAAW;IACjBU,OAAO,EAAE;QACRH,YAAY,EAAE,IAAI;QAClBC,kBAAkB,EAAE,IAAI;KACxB;CACD;AAED,AAAO,SAASI,eAAe,CAACC,OAAwB,EAAE;IACzD,OAAO,SAASC,SAAS,CACxBC,SAAuB,GAAG,EAAE,EAC5BzK,OAAyB,GAAG;QAC3B0K,aAAa,EAAE,IAAI;KACnB,EACsC;QACvC,MAAM,EACLA,aAAa,EAAG,IAAI,GACpBT,YAAY,GACZU,qBAAqB,KACrB,GAAqB3K,OAAO;QAC7B,MAAM4K,OAAO,GAAGL,OAAO,CAACM,UAAU,EAAE;QACpC,MAAMC,QAAQ,GAAGP,OAAO,CAACQ,WAAW,EAAE;;QAGtCR,OAAO,CAACS,QAAQ,CAAChB,eAAe,CAACC,YAAY,CAAC,CAAC;QAE/CgB,gBAAgB,CAACR,SAAS,EAAEG,OAAO,EAAEE,QAAQ,CAAC;;QAG9C,MAAMI,QAAQ,GAAGC,kBAAkB,CAACV,SAAS,EAAEG,OAAO,CAAC;QACvD,IAAIM,QAAQ,IAAI,IAAI,EAAE;YACrBX,OAAO,CAACS,QAAQ,CAACX,sBAAsB,CAAC;YACxC,OAAM;SACN;;QAGD,IAAIH,kBAAkB,GAAmB,IAAI;QAC7C,IAAID,YAAY,EAAE;YACjB,IAAI,CAACU,qBAAqB,EAAE;gBAC3B,MAAM,IAAIrD,KAAK,CAAC,uCAAuC,CAAC,CAAA;aACxD;YACD8D,qCAAqC,CAACT,qBAAqB,CAAC;YAC5DT,kBAAkB,GAAGS,qBAAqB,CAACO,QAAQ,CAAC;SACpD;;QAGDX,OAAO,CAACS,QAAQ,CAAChB,eAAe,CAACC,YAAY,EAAEC,kBAAkB,CAAC,CAAC;QAEnE,MAAMmB,MAAM,GAAGP,QAAQ,CAACQ,SAAS,CAACJ,QAAQ,CAAC;QAC3C,MAAM1C,IAAI,GAAG6C,MAAM,CAACb,SAAS,CAACI,OAAO,EAAEM,QAAQ,CAAC;;QAEhD,IAAI1C,IAAI,IAAI,IAAI,EAAE;YACjB,OAAO3E,SAAS,CAAA;SAChB;QACD0H,kBAAkB,CAAC/C,IAAI,CAAC;QACxBsC,QAAQ,CAACU,SAAS,CAACN,QAAQ,CAAC;QAE5B,MAAMO,QAAQ,GAAGX,QAAQ,CAACY,aAAa,CAACR,QAAQ,CAAC;QACjD,OAAO;YACNf,IAAI,EAAER,UAAU;YAChBS,OAAO,EAAE;gBACRqB,QAAQ;gBACRjD,IAAI;gBACJ0C,QAAQ;gBACRjB,YAAY,EAAEA,YAAY,IAAI,IAAI;gBAClCC,kBAAkB,EAAEA,kBAAkB,IAAI,IAAI;gBAC9CyB,cAAc,EAAE,CAAC,CAACjB,aAAa;aAC/B;SACD,CAAA;KACD,CAAA;CACD;AAED,SAASO,gBAAgB,CACxBR,SAAuB,EACvBG,OAAwB,EACxBE,QAAyB,EACxB;IACD7D,SAAS,CAAC,CAAC2D,OAAO,CAACgB,UAAU,EAAE,EAAE,uCAAuC,CAAC;IACzEnB,SAAS,CAACtB,OAAO,CAAC,SAAU+B,QAAQ,EAAE;QACrCjE,SAAS,CACR6D,QAAQ,CAACQ,SAAS,CAACJ,QAAQ,CAAC,EAC5B,sCAAsC,CACtC;KACD,CAAC;CACF;AAED,SAASE,qCAAqC,CAACT,qBAA0B,EAAE;IAC1E1D,SAAS,CACR,OAAO0D,qBAAqB,KAAK,UAAU,EAC3C,0EAA0E,CAC1E;CACD;AAED,SAASY,kBAAkB,CAAC/C,IAAS,EAAE;IACtCvB,SAAS,CAACyB,QAAQ,CAACF,IAAI,CAAC,EAAE,yBAAyB,CAAC;CACpD;AAED,SAAS2C,kBAAkB,CAACV,SAAuB,EAAEG,OAAwB,EAAE;IAC9E,IAAIM,QAAQ,GAAG,IAAI;IACnB,IAAK,IAAIzC,CAAC,GAAGgC,SAAS,CAACoB,MAAM,GAAG,CAAC,EAAEpD,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,CAAE;QAC/C,IAAImC,OAAO,CAACkB,aAAa,CAACrB,SAAS,CAAChC,CAAC,CAAC,CAAC,EAAE;YACxCyC,QAAQ,GAAGT,SAAS,CAAChC,CAAC,CAAC;YACvB,MAAK;SACL;KACD;IACD,OAAOyC,QAAQ,CAAA;CACf;;AC1HD;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAaO,SAASa,UAAU,CAACxB,OAAwB,EAAE;IACpD,OAAO,SAASyB,IAAI,CAAChM,OAAO,GAAG,EAAE,EAAQ;QACxC,MAAM4K,OAAO,GAAGL,OAAO,CAACM,UAAU,EAAE;QACpC,MAAMC,QAAQ,GAAGP,OAAO,CAACQ,WAAW,EAAE;QACtCE,kBAAgB,CAACL,OAAO,CAAC;QACzB,MAAMqB,SAAS,GAAGC,mBAAmB,CAACtB,OAAO,CAAC;;QAG9CqB,SAAS,CAAC9C,OAAO,CAAC,CAACgD,QAAQ,EAAEzF,KAAK,GAAK;YACtC,MAAM0F,UAAU,GAAGC,mBAAmB,CAACF,QAAQ,EAAEzF,KAAK,EAAEoE,QAAQ,EAAEF,OAAO,CAAC;YAC1E,MAAM0B,MAAM,GAAwB;gBACnCnC,IAAI,EAAEL,IAAI;gBACVM,OAAO,EAAE;oBACRgC,UAAU,EAAE,kBACRpM,OAAO,EACPoM,UAAU,CACb;iBACD;aACD;YACD7B,OAAO,CAACS,QAAQ,CAACsB,MAAM,CAAC;SACxB,CAAC;KACF,CAAA;CACD;AAED,SAASrB,kBAAgB,CAACL,OAAwB,EAAE;IACnD3D,SAAS,CAAC2D,OAAO,CAACgB,UAAU,EAAE,EAAE,sCAAsC,CAAC;IACvE3E,SAAS,CACR,CAAC2D,OAAO,CAAC2B,OAAO,EAAE,EAClB,mDAAmD,CACnD;CACD;AAED,SAASF,mBAAmB,CAC3BF,QAAoB,EACpBzF,KAAa,EACboE,QAAyB,EACzBF,OAAwB,EACvB;IACD,MAAM4B,MAAM,GAAG1B,QAAQ,CAAC2B,SAAS,CAACN,QAAQ,CAAC;IAC3C,IAAIC,UAAU,GAAGI,MAAM,GAAGA,MAAM,CAACR,IAAI,CAACpB,OAAO,EAAEuB,QAAQ,CAAC,GAAGtI,SAAS;IACpE6I,oBAAoB,CAACN,UAAU,CAAC;IAChC,IAAI,OAAOA,UAAU,KAAK,WAAW,EAAE;QACtCA,UAAU,GAAG1F,KAAK,KAAK,CAAC,GAAG,EAAE,GAAGkE,OAAO,CAAC+B,aAAa,EAAE;KACvD;IACD,OAAOP,UAAU,CAAA;CACjB;AAED,SAASM,oBAAoB,CAACN,UAAe,EAAE;IAC9CnF,SAAS,CACR,OAAOmF,UAAU,KAAK,WAAW,IAAI1D,QAAQ,CAAC0D,UAAU,CAAC,EACzD,oDAAoD,CACpD;CACD;AAED,SAASF,mBAAmB,CAACtB,OAAwB,EAAE;IACtD,MAAMqB,SAAS,GAAGrB,OAAO,CACvBgC,YAAY,EAAE,CACdlH,MAAM,CAACkF,OAAO,CAACiC,eAAe,EAAEjC,OAAO,CAAC;IAC1CqB,SAAS,CAACa,OAAO,EAAE;IACnB,OAAOb,SAAS,CAAA;CAChB;;AChEM,SAASc,aAAa,CAACxC,OAAwB,EAAE;IACvD,OAAO,SAASyC,OAAO,GAAmB;QACzC,MAAMpC,OAAO,GAAGL,OAAO,CAACM,UAAU,EAAE;QACpC,MAAMC,QAAQ,GAAGP,OAAO,CAACQ,WAAW,EAAE;QACtCkC,gBAAgB,CAACrC,OAAO,CAAC;QAEzB,MAAMM,QAAQ,GAAGN,OAAO,CAACsC,WAAW,EAAE;QACtC,IAAIhC,QAAQ,IAAI,IAAI,EAAE;YACrB,MAAMG,MAAM,GAAGP,QAAQ,CAACQ,SAAS,CAACJ,QAAQ,EAAE,IAAI,CAAC;YACjDG,MAAM,CAAC2B,OAAO,CAACpC,OAAO,EAAEM,QAAQ,CAAC;YACjCJ,QAAQ,CAACqC,WAAW,EAAE;SACtB;QACD,OAAO;YAAEhD,IAAI,EAAEJ,QAAQ;SAAE,CAAA;KACzB,CAAA;CACD;AAED,SAASkD,gBAAgB,CAACrC,OAAwB,EAAE;IACnD3D,SAAS,CAAC2D,OAAO,CAACgB,UAAU,EAAE,EAAE,yCAAyC,CAAC;CAC1E;;ACzBM,SAASwB,WAAW,CAC1BC,UAA4C,EAC5CC,eAAkC,EACxB;IACV,IAAIA,eAAe,KAAK,IAAI,EAAE;QAC7B,OAAOD,UAAU,KAAK,IAAI,CAAA;KAC1B;IACD,OAAOE,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,GAC5BA,UAAU,CAAkBI,IAAI,CAAC,CAACjE,CAAC,GAAKA,CAAC,KAAK8D,eAAe;KAAC,GAC/DD,UAAU,KAAKC,eAAe,CAAA;CACjC;;ACEM,SAASI,WAAW,CAACnD,OAAwB,EAAE;IACrD,OAAO,SAASoD,KAAK,CACpBC,YAAsB,EACtB,EAAE3D,YAAY,GAAgB,GAAG,EAAE,EACZ;QACvB4D,sBAAsB,CAACD,YAAY,CAAC;QACpC,MAAM3B,SAAS,GAAG2B,YAAY,CAACE,KAAK,CAAC,CAAC,CAAC;QACvC,MAAMlD,OAAO,GAAGL,OAAO,CAACM,UAAU,EAAE;QACpC,MAAMC,QAAQ,GAAGP,OAAO,CAACQ,WAAW,EAAE;QACtC,MAAMuC,eAAe,GAAG1C,OAAO,CAACmD,WAAW,EAAE;QAC7CC,0BAA0B,CAAC/B,SAAS,EAAEnB,QAAQ,EAAEwC,eAAe,CAAC;QAChEW,eAAe,CAAChC,SAAS,EAAErB,OAAO,EAAEE,QAAQ,CAAC;QAC7CoD,eAAe,CAACjC,SAAS,EAAErB,OAAO,EAAEE,QAAQ,CAAC;QAE7C,OAAO;YACNX,IAAI,EAAEN,KAAK;YACXO,OAAO,EAAE;gBACR6B,SAAS;gBACThC,YAAY,EAAEA,YAAY,IAAI,IAAI;aAClC;SACD,CAAA;KACD,CAAA;CACD;AAED,SAAS4D,sBAAsB,CAACD,YAAsB,EAAE;IACvD3G,SAAS,CAACsG,KAAK,CAACC,OAAO,CAACI,YAAY,CAAC,EAAE,oCAAoC,CAAC;CAC5E;AAED,SAASK,eAAe,CACvBhC,SAAmB,EACnBrB,OAAwB,EACxBE,QAAyB,EACxB;IACD7D,SAAS,CAAC2D,OAAO,CAACgB,UAAU,EAAE,EAAE,uCAAuC,CAAC;IACxE3E,SAAS,CAAC,CAAC2D,OAAO,CAAC2B,OAAO,EAAE,EAAE,+BAA+B,CAAC;IAC9D,IAAK,IAAI9D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwD,SAAS,CAACJ,MAAM,EAAEpD,CAAC,EAAE,CAAE;QAC1C,MAAM0D,QAAQ,GAAGF,SAAS,CAACxD,CAAC,CAAC;QAC7BxB,SAAS,CACRgF,SAAS,CAACkC,WAAW,CAAChC,QAAQ,CAAC,KAAK1D,CAAC,EACrC,sDAAsD,CACtD;QAED,MAAM+D,MAAM,GAAG1B,QAAQ,CAAC2B,SAAS,CAACN,QAAQ,CAAC;QAC3ClF,SAAS,CAACuF,MAAM,EAAE,sCAAsC,CAAC;KACzD;CACD;AAED,SAASwB,0BAA0B,CAClC/B,SAAmB,EACnBnB,QAAyB,EACzBwC,eAAkC,EACjC;;;;IAID,IAAK,IAAI7E,CAAC,GAAGwD,SAAS,CAACJ,MAAM,GAAG,CAAC,EAAEpD,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,CAAE;QAC/C,MAAM0D,QAAQ,GAAGF,SAAS,CAACxD,CAAC,CAAC;QAC7B,MAAM4E,UAAU,GAAGvC,QAAQ,CAACsD,aAAa,CAACjC,QAAQ,CAAC;QACnD,IAAI,CAACiB,WAAW,CAACC,UAAU,EAAEC,eAAe,CAAC,EAAE;YAC9CrB,SAAS,CAACoC,MAAM,CAAC5F,CAAC,EAAE,CAAC,CAAC;SACtB;KACD;CACD;AAED,SAASyF,eAAe,CACvBjC,SAAmB,EACnBrB,OAAwB,EACxBE,QAAyB,EACxB;;IAEDmB,SAAS,CAAC9C,OAAO,CAAC,SAAUgD,QAAQ,EAAE;QACrC,MAAMK,MAAM,GAAG1B,QAAQ,CAAC2B,SAAS,CAACN,QAAQ,CAAC;QAC3CK,MAAM,CAACmB,KAAK,CAAC/C,OAAO,EAAEuB,QAAQ,CAAC;KAC/B,CAAC;CACF;;ACrFM,SAASmC,uBAAuB,CAAC/D,OAAwB,EAAE;IACjE,OAAO,SAASgE,iBAAiB,GAA+B;QAC/D,MAAM3D,OAAO,GAAGL,OAAO,CAACM,UAAU,EAAE;QACpC,IAAID,OAAO,CAACgB,UAAU,EAAE,EAAE;YACzB,OAAO;gBAAEzB,IAAI,EAAEP,mBAAmB;aAAE,CAAA;SACpC;QACD,OAAM;KACN,CAAA;CACD;;ACFM,SAAS4E,qBAAqB,CACpCjE,OAAwB,EACN;IAClB,OAAO;QACNC,SAAS,EAAEF,eAAe,CAACC,OAAO,CAAC;QACnCgE,iBAAiB,EAAED,uBAAuB,CAAC/D,OAAO,CAAC;QACnDoD,KAAK,EAAED,WAAW,CAACnD,OAAO,CAAC;QAC3ByB,IAAI,EAAED,UAAU,CAACxB,OAAO,CAAC;QACzByC,OAAO,EAAED,aAAa,CAACxC,OAAO,CAAC;KAC/B,CAAA;CACD;;ACLM,MAAMkE,mBAAmB;IAY/B,cAAqB,CAACC,OAAgB,EAAQ;QAC7C,IAAI,CAACA,OAAO,GAAGA,OAAO;KACtB;IAEM7D,UAAU,GAAoB;QACpC,OAAO,IAAI,CAACD,OAAO,CAAA;KACnB;IAEM+D,UAAU,GAAY;QAC5B,OAAO,IAAI,CAACD,OAAO,CAAW;KAC9B;IAEM3D,WAAW,GAAoB;QACrC,OAAO,IAAK,CAACH,OAAO,CAAyBE,QAAQ,CAAA;KACrD;IAEM8D,UAAU,GAAoB;wEAEpC,MAAMrE,OAAO,GAAG,IAAI;QACpB,MAAM,EAAES,QAAQ,GAAE,GAAG,IAAI,CAAC6D,KAAK;QAE/B,SAASC,iBAAiB,CAACC,aAAiC,EAAE;YAC7D,OAAO,CAAC,GAAG3H,IAAW,GAAK;gBAC1B,MAAMkF,MAAM,GAAGyC,aAAa,CAACC,KAAK,CAACzE,OAAO,EAAEnD,IAAI,CAAQ;gBACxD,IAAI,OAAOkF,MAAM,KAAK,WAAW,EAAE;oBAClCtB,QAAQ,CAACsB,MAAM,CAAC;iBAChB;aACD,CAAA;SACD;QAED,MAAM1U,OAAO,GAAG4W,qBAAqB,CAAC,IAAI,CAAC;QAE3C,OAAOS,MAAM,CAACC,IAAI,CAACtX,OAAO,CAAC,CAACuQ,MAAM,CACjC,CAACgH,YAA6B,EAAEvI,GAAW,GAAK;YAC/C,MAAM0F,MAAM,GAAuB,OAAQ,CAC1C1F,GAAG,CACmB;YACtB,YAAa,CAASA,GAAG,CAAC,GAAGkI,iBAAiB,CAACxC,MAAM,CAAC;YACvD,OAAO6C,YAAY,CAAA;SACnB,EACD,EAAE,CACF,CAAA;KACD;IAED,QAAe,CAAC7C,MAAmB,EAAQ;QAC1C,IAAI,CAACuC,KAAK,CAAC7D,QAAQ,CAACsB,MAAM,CAAC;KAC3B;IApDD,YAAmBuC,KAAmB,EAAEjE,OAAwB,CAAE;QAFlE,KAAQwE,OAAO,GAAG,KAlBnB,CAkBwB;QAwDvB,KAAQC,oBAAoB,GAAG,IAAY;YAC1C,MAAMC,WAAW,GAAG,IAAI,CAACT,KAAK,CAAC9O,QAAQ,EAAE,CAACwP,QAAQ,GAAG,CAAC;YACtD,IAAI,IAAI,CAACb,OAAO,EAAE;gBACjB,IAAIY,WAAW,IAAI,CAAC,IAAI,CAACF,OAAO,EAAE;oBACjC,IAAI,CAACV,OAAO,CAACc,KAAK,EAAE;oBACpB,IAAI,CAACJ,OAAO,GAAG,IAAI;iBACnB,MAAM,IAAI,CAACE,WAAW,IAAI,IAAI,CAACF,OAAO,EAAE;oBACxC,IAAI,CAACV,OAAO,CAACe,QAAQ,EAAE;oBACvB,IAAI,CAACL,OAAO,GAAG,KAAK;iBACpB;aACD;SApFH,CAqFE;QAhEA,IAAI,CAACP,KAAK,GAAGA,KAAK;QAClB,IAAI,CAACjE,OAAO,GAAGA,OAAO;QACtBiE,KAAK,CAACa,SAAS,CAAC,IAAI,CAACL,oBAAoB,CAAC;KAC1C;CA8DD;;ACnFD;;;;IAKA,AAAO,SAASM,GAAG,CAACvH,CAAU,EAAEwH,CAAU,EAAW;IACpD,OAAO;QACNC,CAAC,EAAEzH,CAAC,CAACyH,CAAC,GAAGD,CAAC,CAACC,CAAC;QACZC,CAAC,EAAE1H,CAAC,CAAC0H,CAAC,GAAGF,CAAC,CAACE,CAAC;KACZ,CAAA;CACD;AAED;;;;IAKA,AAAO,SAASC,QAAQ,CAAC3H,CAAU,EAAEwH,CAAU,EAAW;IACzD,OAAO;QACNC,CAAC,EAAEzH,CAAC,CAACyH,CAAC,GAAGD,CAAC,CAACC,CAAC;QACZC,CAAC,EAAE1H,CAAC,CAAC0H,CAAC,GAAGF,CAAC,CAACE,CAAC;KACZ,CAAA;CACD;AAED;;;;;;;IAQA,AAAO,SAASnF,qBAAqB,CAACqF,KAAY,EAAkB;IACnE,MAAM,EAAE/F,YAAY,GAAEgG,mBAAmB,GAAEC,yBAAyB,GAAE,GAAGF,KAAK;IAC9E,IAAI,CAAC/F,YAAY,IAAI,CAACgG,mBAAmB,IAAI,CAACC,yBAAyB,EAAE;QACxE,OAAO,IAAI,CAAA;KACX;IACD,OAAOH,QAAQ,CACdJ,GAAG,CAAC1F,YAAY,EAAEiG,yBAAyB,CAAC,EAC5CD,mBAAmB,CACnB,CAAA;CACD;AAED;;;;IAKA,AAAO,SAASE,8BAA8B,CAACH,KAAY,EAAkB;IAC5E,MAAM,EAAE/F,YAAY,GAAEgG,mBAAmB,GAAE,GAAGD,KAAK;IACnD,IAAI,CAAC/F,YAAY,IAAI,CAACgG,mBAAmB,EAAE;QAC1C,OAAO,IAAI,CAAA;KACX;IACD,OAAOF,QAAQ,CAAC9F,YAAY,EAAEgG,mBAAmB,CAAC,CAAA;CAClD;;ACvDM,MAAMG,IAAI,GAAa,EAAE,CAAA;AAChC,AAAO,MAAMC,GAAG,GAAa,EAAE,CAE9B;AAACD,IAAI,CAASE,WAAW,GAAG,IAAI,CAChC;AAACD,GAAG,CAASE,UAAU,GAAG,IAAI;AAE/B;;;;;IAMA,AAAO,SAASC,QAAQ,CACvBC,QAAkB,EAClBC,UAAgC,EACtB;IACV,IAAID,QAAQ,KAAKL,IAAI,EAAE;QACtB,OAAO,KAAK,CAAA;KACZ;IAED,IAAIK,QAAQ,KAAKJ,GAAG,IAAI,OAAOK,UAAU,KAAK,WAAW,EAAE;QAC1D,OAAO,IAAI,CAAA;KACX;IAED,MAAMC,SAAS,GAAGpH,YAAY,CAACmH,UAAU,EAAED,QAAQ,CAAC;IACpD,OAAOE,SAAS,CAAC9E,MAAM,GAAG,CAAC,CAAA;CAC3B;;ACTM,MAAM+E,mBAAmB;IASxBC,sBAAsB,CAC5BC,QAAkB,EAClB9Q,OAAkC,GAAG,EAAE,EACzB;QACd,MAAM,EAAE0Q,UAAU,GAAE,GAAG1Q,OAAO;QAC9BiH,SAAS,CAAC,OAAO6J,QAAQ,KAAK,UAAU,EAAE,8BAA8B,CAAC;QACzE7J,SAAS,CACR,OAAOyJ,UAAU,KAAK,WAAW,IAAInD,KAAK,CAACC,OAAO,CAACkD,UAAU,CAAC,EAC9D,0DAA0D,CAC1D;QAED,IAAIK,WAAW,GAAG,IAAI,CAAClC,KAAK,CAAC9O,QAAQ,EAAE,CAACiR,OAAO;QAC/C,MAAMC,YAAY,GAAG,IAAM;YAC1B,MAAMjB,KAAK,GAAG,IAAI,CAACnB,KAAK,CAAC9O,QAAQ,EAAE;YACnC,MAAMmR,cAAc,GAAGlB,KAAK,CAACgB,OAAO;YACpC,IAAI;gBACH,MAAMG,eAAe,GACpBD,cAAc,KAAKH,WAAW,IAC7BG,cAAc,KAAKH,WAAW,GAAG,CAAC,IAClC,CAACP,QAAQ,CAACR,KAAK,CAACoB,eAAe,EAAEV,UAAU,CAAC;gBAE9C,IAAI,CAACS,eAAe,EAAE;oBACrBL,QAAQ,EAAE;iBACV;aACD,QAAS;gBACTC,WAAW,GAAGG,cAAc;aAC5B;SACD;QAED,OAAO,IAAI,CAACrC,KAAK,CAACa,SAAS,CAACuB,YAAY,CAAC,CAAA;KACzC;IAED,uBAA8B,CAACH,QAAkB,EAAe;QAC/D7J,SAAS,CAAC,OAAO6J,QAAQ,KAAK,UAAU,EAAE,8BAA8B,CAAC;QAEzE,IAAIO,aAAa,GAAG,IAAI,CAACxC,KAAK,CAAC9O,QAAQ,EAAE,CAACuR,UAAU;QACpD,MAAML,YAAY,GAAG,IAAM;YAC1B,MAAMM,SAAS,GAAG,IAAI,CAAC1C,KAAK,CAAC9O,QAAQ,EAAE,CAACuR,UAAU;YAClD,IAAIC,SAAS,KAAKF,aAAa,EAAE;gBAChC,OAAM;aACN;YAEDA,aAAa,GAAGE,SAAS;YACzBT,QAAQ,EAAE;SACV;QAED,OAAO,IAAI,CAACjC,KAAK,CAACa,SAAS,CAACuB,YAAY,CAAC,CAAA;KACzC;IAED,aAAoB,CAAC/F,QAA4B,EAAW;QAC3D,IAAI,CAACA,QAAQ,EAAE;YACd,OAAO,KAAK,CAAA;SACZ;QACD,MAAMG,MAAM,GAAG,IAAI,CAACP,QAAQ,CAACQ,SAAS,CAACJ,QAAQ,CAAC;QAChDjE,SAAS,CAACoE,MAAM,EAAE,CAAC,0CAA0C,EAAEH,QAAQ,CAAC,CAAC,CAAC;QAE1E,IAAI,IAAI,CAACU,UAAU,EAAE,EAAE;YACtB,OAAO,KAAK,CAAA;SACZ;QAED,OAAOP,MAAM,CAACmG,OAAO,CAAC,IAAI,EAAEtG,QAAQ,CAAC,CAAA;KACrC;IAED,eAAsB,CAACiB,QAA4B,EAAW;;QAE7D,IAAI,CAACA,QAAQ,EAAE;YACd,OAAO,KAAK,CAAA;SACZ;QACD,MAAMK,MAAM,GAAG,IAAI,CAAC1B,QAAQ,CAAC2B,SAAS,CAACN,QAAQ,CAAC;QAChDlF,SAAS,CAACuF,MAAM,EAAE,CAAC,0CAA0C,EAAEL,QAAQ,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,IAAI,CAACP,UAAU,EAAE,IAAI,IAAI,CAACW,OAAO,EAAE,EAAE;YACzC,OAAO,KAAK,CAAA;SACZ;QAED,MAAMc,UAAU,GAAG,IAAI,CAACvC,QAAQ,CAACsD,aAAa,CAACjC,QAAQ,CAAC;QACxD,MAAMmB,eAAe,GAAG,IAAI,CAACS,WAAW,EAAE;QAC1C,OACCX,WAAW,CAACC,UAAU,EAAEC,eAAe,CAAC,IAAId,MAAM,CAACiF,OAAO,CAAC,IAAI,EAAEtF,QAAQ,CAAC,CAC1E;KACD;IAEMP,UAAU,GAAY;QAC5B,OAAO8F,OAAO,CAAC,IAAI,CAAC3D,WAAW,EAAE,CAAC,CAAA;KAClC;IAED,gBAAuB,CAAC7C,QAA4B,EAAW;;QAE9D,IAAI,CAACA,QAAQ,EAAE;YACd,OAAO,KAAK,CAAA;SACZ;QACD,MAAMG,MAAM,GAAG,IAAI,CAACP,QAAQ,CAACQ,SAAS,CAACJ,QAAQ,EAAE,IAAI,CAAC;QACtDjE,SAAS,CAACoE,MAAM,EAAE,CAAC,0CAA0C,EAAEH,QAAQ,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,IAAI,CAACU,UAAU,EAAE,IAAI,CAAC,IAAI,CAACD,cAAc,EAAE,EAAE;YACjD,OAAO,KAAK,CAAA;SACZ;QAED,MAAMgG,UAAU,GAAG,IAAI,CAAC7G,QAAQ,CAACY,aAAa,CAACR,QAAQ,CAAC;QACxD,MAAMoC,eAAe,GAAG,IAAI,CAACS,WAAW,EAAE;QAC1C,IAAI4D,UAAU,KAAKrE,eAAe,EAAE;YACnC,OAAO,KAAK,CAAA;SACZ;QAED,OAAOjC,MAAM,CAACO,UAAU,CAAC,IAAI,EAAEV,QAAQ,CAAC,CAAA;KACxC;IAEM0G,YAAY,CAClBzF,QAA4B,EAC5BnM,OAAO,GAAG;QAAE6R,OAAO,EAAE,KAAK;KAAE,EAClB;;QAEV,IAAI,CAAC1F,QAAQ,EAAE;YACd,OAAO,KAAK,CAAA;SACZ;QAED,MAAM,EAAE0F,OAAO,GAAE,GAAG7R,OAAO;QAC3B,IAAI,CAAC,IAAI,CAAC4L,UAAU,EAAE,EAAE;YACvB,OAAO,KAAK,CAAA;SACZ;QAED,MAAMyB,UAAU,GAAG,IAAI,CAACvC,QAAQ,CAACsD,aAAa,CAACjC,QAAQ,CAAC;QACxD,MAAMmB,eAAe,GAAG,IAAI,CAACS,WAAW,EAAE;QAC1C,IAAIT,eAAe,IAAI,CAACF,WAAW,CAACC,UAAU,EAAEC,eAAe,CAAC,EAAE;YACjE,OAAO,KAAK,CAAA;SACZ;QAED,MAAMrB,SAAS,GAAG,IAAI,CAACW,YAAY,EAAE;QACrC,IAAI,CAACX,SAAS,CAACJ,MAAM,EAAE;YACtB,OAAO,KAAK,CAAA;SACZ;QAED,MAAMnF,KAAK,GAAGuF,SAAS,CAACxC,OAAO,CAAC0C,QAAQ,CAAC;QACzC,IAAI0F,OAAO,EAAE;YACZ,OAAOnL,KAAK,KAAKuF,SAAS,CAACJ,MAAM,GAAG,CAAC,CAAA;SACrC,MAAM;YACN,OAAOnF,KAAK,GAAG,CAAC,CAAC,CAAA;SACjB;KACD;IAEMqH,WAAW,GAAe;QAChC,OAAO,IAAI,CAACc,KAAK,CAAC9O,QAAQ,EAAE,CAAC+R,aAAa,CAACrG,QAAQ,CAAc;KACjE;IAEMsG,OAAO,GAAQ;QACrB,OAAO,IAAI,CAAClD,KAAK,CAAC9O,QAAQ,EAAE,CAAC+R,aAAa,CAACtJ,IAAI,CAAA;KAC/C;IAEM0E,WAAW,GAAkB;QACnC,OAAO,IAAI,CAAC2B,KAAK,CAAC9O,QAAQ,EAAE,CAAC+R,aAAa,CAAC5G,QAAQ,CAAA;KACnD;IAEM0B,YAAY,GAAa;QAC/B,OAAO,IAAI,CAACiC,KAAK,CAAC9O,QAAQ,EAAE,CAAC+R,aAAa,CAAC7F,SAAS,CAAA;KACpD;IAEMU,aAAa,GAAQ;QAC3B,OAAO,IAAI,CAACkC,KAAK,CAAC9O,QAAQ,EAAE,CAAC+R,aAAa,CAAC1F,UAAU,CAAA;KACrD;IAEMG,OAAO,GAAY;QACzB,OAAO,IAAI,CAACsC,KAAK,CAAC9O,QAAQ,EAAE,CAAC+R,aAAa,CAACvF,OAAO,CAAA;KAClD;IAEMZ,cAAc,GAAY;QAChC,OAAO+F,OAAO,CAAC,IAAI,CAAC7C,KAAK,CAAC9O,QAAQ,EAAE,CAAC+R,aAAa,CAACnG,cAAc,CAAC,CAAA;KAClE;IAEMqG,sBAAsB,GAAmB;QAC/C,OAAO,IAAI,CAACnD,KAAK,CAAC9O,QAAQ,EAAE,CAACuR,UAAU,CAACrB,mBAAmB,CAAA;KAC3D;IAEMgC,4BAA4B,GAAmB;QACrD,OAAO,IAAI,CAACpD,KAAK,CAAC9O,QAAQ,EAAE,CAACuR,UAAU,CAACpB,yBAAyB,CAAA;KACjE;IAEMgC,eAAe,GAAmB;QACxC,OAAO,IAAI,CAACrD,KAAK,CAAC9O,QAAQ,EAAE,CAACuR,UAAU,CAACrH,YAAY,CAAA;KACpD;IAEMU,qBAAqB,GAAmB;QAC9C,OAAOA,qBAAqB,CAAC,IAAI,CAACkE,KAAK,CAAC9O,QAAQ,EAAE,CAACuR,UAAU,CAAC,CAAA;KAC9D;IAEMnB,8BAA8B,GAAmB;QACvD,OAAOA,8BAA8B,CAAC,IAAI,CAACtB,KAAK,CAAC9O,QAAQ,EAAE,CAACuR,UAAU,CAAC,CAAA;KACvE;IA/LD,YAAmBzC,KAAmB,EAAE/D,QAAyB,CAAE;QAClE,IAAI,CAAC+D,KAAK,GAAGA,KAAK;QAClB,IAAI,CAAC/D,QAAQ,GAAGA,QAAQ;KACxB;CA6LD;;ACvND;AACA;AACA;AACA;AAEA,mBACA,MAAMqH,KAAK,GAAG,OAAOC,MAAM,KAAK,WAAW,GAAGA,MAAM,GAAGC,IAAI;AAC3D,MAAMC,uBAAuB,GAC3BH,KAAK,CAASI,gBAAgB,IAAKJ,KAAK,CAASK,sBAAsB;AAEzE,AAAO,SAASC,wBAAwB,CAACC,QAAoB,EAAE;IAC9D,OAAO,SAASC,WAAW,GAAG;;;;;QAK7B,MAAMC,aAAa,GAAGC,UAAU,CAACC,WAAW,EAAE,CAAC,CAAC;;;;QAIhD,MAAMC,cAAc,GAAGC,WAAW,CAACF,WAAW,EAAE,EAAE,CAAC;QAEnD,SAASA,WAAW,GAAG;;;YAGtBG,YAAY,CAACL,aAAa,CAAC;YAC3BM,aAAa,CAACH,cAAc,CAAC;YAC7BL,QAAQ,EAAE;SACV;KACD,CAAA;CACD;AAED;AACA;AACA,AAAO,SAASS,mCAAmC,CAACT,QAAoB,EAAE;IACzE,IAAIU,MAAM,GAAG,CAAC;IACd,MAAMC,QAAQ,GAAG,IAAIf,uBAAuB,CAACI,QAAQ,CAAC;IACtD,MAAMY,IAAI,GAAGC,QAAQ,CAACC,cAAc,CAAC,EAAE,CAAC;IACxCH,QAAQ,CAACI,OAAO,CAACH,IAAI,EAAE;QAAEI,aAAa,EAAE,IAAI;KAAE,CAAC;IAC/C,OAAO,SAASf,WAAW,GAAG;QAC7BS,MAAM,GAAG,CAACA,MAAM,CACf;QAACE,IAAI,CAASK,IAAI,GAAGP,MAAM;KAC5B,CAAA;CACD;AAED,AAAO,MAAMQ,eAAe,GAC3B,OAAOtB,uBAAuB,KAAK,UAAU;AAG1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAa,mCAAmC;AAGnC;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAV,wBAAwB,CAAA;;AClFrB,MAAMoB,SAAS;;;;;;;;;;;IAqDrB,WAAkB,CAACC,IAAU,EAAQ;QACpC,MAAM,EAAEC,KAAK,EAAEC,CAAC,GAAEC,YAAY,GAAE,GAAG,IAAI;QACvC,IAAI,CAACD,CAAC,CAACnI,MAAM,EAAE;YACdoI,YAAY,EAAE;YACd,IAAI,CAACC,QAAQ,GAAG,IAAI;SACpB;;QAEDF,CAAC,CAACA,CAAC,CAACnI,MAAM,CAAC,GAAGiI,IAAI;KAClB;IArCD,aAAqB;QAvBrB,KAAQC,KAAK,GAAW,EALzB,CAK2B;;;QAG1B,KAAQI,aAAa,GAAU,EARhC,CAQkC;;;;QAIjC,KAAQD,QAAQ,GAAG,KAZpB,CAYyB;;;;QAUxB,KAAQxN,KAAK,GAAG,CAtBjB,CAsBkB;;;;QAIjB,KAAQ0N,QAAQ,GAAG,IA1BpB,CA0BwB;;;;;;;QA+CvB,KAAQC,KAAK,GAAG,IAAM;YACrB,MAAM,EAAEN,KAAK,EAAEC,CAAC,GAAE,GAAG,IAAI;YACzB,MAAO,IAAI,CAACtN,KAAK,GAAGsN,CAAC,CAACnI,MAAM,CAAE;gBAC7B,MAAMyI,YAAY,GAAG,IAAI,CAAC5N,KAAK;;;gBAG/B,IAAI,CAACA,KAAK,EAAE;gBACZsN,CAAC,CAACM,YAAY,CAAC,CAAEC,IAAI,EAAE;;;;;;gBAMvB,IAAI,IAAI,CAAC7N,KAAK,GAAG,IAAI,CAAC0N,QAAQ,EAAE;;;oBAG/B,IACC,IAAII,IAAI,GAAG,CAAC,EAAEC,SAAS,GAAGT,CAAC,CAACnI,MAAM,GAAG,IAAI,CAACnF,KAAK,EAC/C8N,IAAI,GAAGC,SAAS,EAChBD,IAAI,EAAE,CACL;wBACDR,CAAC,CAACQ,IAAI,CAAC,GAAGR,CAAC,CAACQ,IAAI,GAAG,IAAI,CAAC9N,KAAK,CAAC;qBAC9B;oBACDsN,CAAC,CAACnI,MAAM,IAAI,IAAI,CAACnF,KAAK;oBACtB,IAAI,CAACA,KAAK,GAAG,CAAC;iBACd;aACD;YACDsN,CAAC,CAACnI,MAAM,GAAG,CAAC;YACZ,IAAI,CAACnF,KAAK,GAAG,CAAC;YACd,IAAI,CAACwN,QAAQ,GAAG,KAAK;SAtGvB,CAuGE;;;;QAKD,KAAOQ,oBAAoB,GAAG,CAACC,GAAQ,GAAK;YAC3C,IAAI,CAACR,aAAa,CAAC7K,IAAI,CAACqL,GAAG,CAAC;YAC5B,IAAI,CAACC,iBAAiB,EAAE;SA9G1B,CA+GE;;;;;;;;;QAzEA,IAAI,CAACX,YAAY,GAAGL,eAAe,CAAC,IAAI,CAACS,KAAK,CAAC;QAC/C,IAAI,CAACO,iBAAiB,GAAGnC,wBAAwB,CAAC,IAAM;;YAEvD,IAAI,IAAI,CAAC0B,aAAa,CAACtI,MAAM,EAAE;gBAC9B,MAAM,IAAI,CAACsI,aAAa,CAACU,KAAK,EAAE,CAAA;aAChC;SACD,CAAC;KACF;CAmED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qGAoDmG;;AChKpG;AACA,AAAO,MAAMC,OAAO;IAQZP,IAAI,GAAG;QACb,IAAI;YACH,IAAI,CAACT,IAAI,IAAI,IAAI,CAACA,IAAI,EAAE;SACxB,CAAC,OAAOvM,KAAK,EAAE;YACf,IAAI,CAACwN,OAAO,CAACxN,KAAK,CAAC;SACnB,QAAS;YACT,IAAI,CAACuM,IAAI,GAAG,IAAI;YAChB,IAAI,CAACkB,OAAO,CAAC,IAAI,CAAC;SAClB;KACD;IAdD,YACSD,OAA2B,EAC3BC,OAA6B,CACpC;aAFOD,OAA2B,GAA3BA,OAA2B;aAC3BC,OAA6B,GAA7BA,OAA6B;aAJ/BlB,IAAI,GAAkB,IAAI;KAK7B;CAYJ;;ACpBM,MAAMmB,WAAW;IAKvB,MAAa,CAACnB,IAAgB,EAAQ;QACrC,MAAMoB,KAAK,GAAG,IAAI,CAACC,SAAS;QAC5B,MAAM3L,EAAC,GAAG0L,KAAK,CAACrJ,MAAM,GAClBqJ,KAAK,CAACE,GAAG,EAAE,GACZ,IAAIN,OAAO,CAAC,IAAI,CAACC,OAAO,EAAE,CAACvL,CAAC,GAAM0L,KAAK,CAACA,KAAK,CAACrJ,MAAM,CAAC,GAAGrC,CAAC;SAAE;QAC9DA,EAAC,CAACsK,IAAI,GAAGA,IAAI;QACb,OAAOtK,EAAC,CAAA;KACR;IATD,YAA2BuL,OAA2B,CAAE;aAA7BA,OAA2B,GAA3BA,OAA2B;aAF9CI,SAAS,GAAc,EAAE;KAEyB;CAU1D;;ACZD,MAAME,SAAS,GAAG,IAAIxB,SAAS,EAAE;AACjC,MAAMyB,WAAW,GAAG,IAAIL,WAAW,CAACI,SAAS,CAACX,oBAAoB,CAAC;AAEnE;;;;;;;IAQA,AAAO,SAASa,IAAI,CAACzB,IAAY,EAAE;IAClCuB,SAAS,CAACG,WAAW,CAACF,WAAW,CAACG,MAAM,CAAC3B,IAAI,CAAC,CAAC;CAC/C;;ACfM,MAAM4B,UAAU,GAAG,qBAAqB,CAAA;AAC/C,AAAO,MAAMC,UAAU,GAAG,qBAAqB,CAAA;AAC/C,AAAO,MAAMC,aAAa,GAAG,wBAAwB,CAAA;AACrD,AAAO,MAAMC,aAAa,GAAG,wBAAwB,CAAA;AAErD,AAAO,SAASC,SAAS,CAAC5K,QAAgB,EAA2B;IACpE,OAAO;QACNf,IAAI,EAAEuL,UAAU;QAChBtL,OAAO,EAAE;YACRc,QAAQ;SACR;KACD,CAAA;CACD;AAED,AAAO,SAAS6K,SAAS,CAAC5J,QAAgB,EAA2B;IACpE,OAAO;QACNhC,IAAI,EAAEwL,UAAU;QAChBvL,OAAO,EAAE;YACR+B,QAAQ;SACR;KACD,CAAA;CACD;AAED,AAAO,SAAS6J,YAAY,CAAC9K,QAAgB,EAA2B;IACvE,OAAO;QACNf,IAAI,EAAEyL,aAAa;QACnBxL,OAAO,EAAE;YACRc,QAAQ;SACR;KACD,CAAA;CACD;AAED,AAAO,SAAS+K,YAAY,CAAC9J,QAAgB,EAA2B;IACvE,OAAO;QACNhC,IAAI,EAAE0L,aAAa;QACnBzL,OAAO,EAAE;YACR+B,QAAQ;SACR;KACD,CAAA;CACD;;ACrCM,SAAS+J,sBAAsB,CAAC7K,MAAkB,EAAQ;IAChEpE,SAAS,CACR,OAAOoE,MAAM,CAACmG,OAAO,KAAK,UAAU,EACpC,oCAAoC,CACpC;IACDvK,SAAS,CACR,OAAOoE,MAAM,CAACb,SAAS,KAAK,UAAU,EACtC,sCAAsC,CACtC;IACDvD,SAAS,CACR,OAAOoE,MAAM,CAAC2B,OAAO,KAAK,UAAU,EACpC,oCAAoC,CACpC;CACD;AAED,AAAO,SAASmJ,sBAAsB,CAAC3J,MAAkB,EAAQ;IAChEvF,SAAS,CACR,OAAOuF,MAAM,CAACiF,OAAO,KAAK,UAAU,EACpC,oCAAoC,CACpC;IACDxK,SAAS,CACR,OAAOuF,MAAM,CAACmB,KAAK,KAAK,UAAU,EAClC,kCAAkC,CAClC;IACD1G,SAAS,CACR,OAAOuF,MAAM,CAACR,IAAI,KAAK,UAAU,EACjC,sCAAsC,CACtC;CACD;AAED,AAAO,SAASoK,YAAY,CAC3BjM,IAA+B,EAC/BkM,UAAoB,EACb;IACP,IAAIA,UAAU,IAAI9I,KAAK,CAACC,OAAO,CAACrD,IAAI,CAAC,EAAE;QACtCA,IAAI,CAAChB,OAAO,CAAC,CAACK,CAAC,GAAK4M,YAAY,CAAC5M,CAAC,EAAE,KAAK,CAAC;SAAC;QAC3C,OAAM;KACN;IAEDvC,SAAS,CACR,OAAOkD,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,QAAQ,EACpDkM,UAAU,GACP,6DAA6D,GAC7D,wCAAwC,CAC3C;CACD;;ICtCM,WAGN;UAHWC,WAAW;IAAXA,WAAW,CACtBC,QAAM,IAANA,QAAM;IADKD,WAAW,CAEtBE,QAAM,IAANA,QAAM;GAFKF,WAAW,KAAXA,WAAW;;ACXvB,IAAIG,YAAY,GAAG,CAAC;AAEpB,AAAO,SAASC,eAAe,GAAW;IACzC,OAAOD,YAAY,EAAE,CAAA;CACrB;;ACuBD,SAASE,gBAAgB,CAACC,IAAiB,EAAU;IACpD,MAAM7T,EAAE,GAAG2T,eAAe,EAAE,CAAC1T,QAAQ,EAAE;IACvC,OAAQ4T,IAAI;QACX,KAAKN,WAAW,CAACC,MAAM;YACtB,OAAO,CAAC,CAAC,EAAExT,EAAE,CAAC,CAAC,CAAA;QAChB,KAAKuT,WAAW,CAACE,MAAM;YACtB,OAAO,CAAC,CAAC,EAAEzT,EAAE,CAAC,CAAC,CAAA;QAChB;YACC,MAAM,IAAIuE,KAAK,CAAC,CAAC,sBAAsB,EAAEsP,IAAI,CAAC,CAAC,CAAC,CAAA;KACjD;CACD;AAED,SAASC,sBAAsB,CAACC,SAAiB,EAAE;IAClD,OAAQA,SAAS,CAAC,CAAC,CAAC;QACnB,KAAK,GAAG;YACP,OAAOR,WAAW,CAACC,MAAM,CAAA;QAC1B,KAAK,GAAG;YACP,OAAOD,WAAW,CAACE,MAAM,CAAA;QAC1B;YACC,MAAM,IAAIlP,KAAK,CAAC,CAAC,yBAAyB,EAAEwP,SAAS,CAAC,CAAC,CAAC,CAAA;KACzD;CACD;AAED,SAASC,gBAAgB,CAAItQ,GAAmB,EAAEuQ,WAAc,EAAE;IACjE,MAAMC,OAAO,GAAGxQ,GAAG,CAACwQ,OAAO,EAAE;IAC7B,IAAIC,MAAM,GAAG,KAAK;IAClB,GAAG;QACF,MAAM,EACLC,IAAI,GACJtR,KAAK,EAAE,GAAGA,KAAK,CAAC,KAChB,GAAGoR,OAAO,CAACG,IAAI,EAAE;QAClB,IAAIvR,KAAK,KAAKmR,WAAW,EAAE;YAC1B,OAAO,IAAI,CAAA;SACX;QACDE,MAAM,GAAG,CAAC,CAACC,IAAI;KACf,OAAQ,CAACD,MAAM,CAAC;IACjB,OAAO,KAAK,CAAA;CACZ;AAED,AAAO,MAAMG,mBAAmB;IAYxBvB,SAAS,CAAC3L,IAAgB,EAAEkB,MAAkB,EAAU;QAC9D+K,YAAY,CAACjM,IAAI,CAAC;QAClB+L,sBAAsB,CAAC7K,MAAM,CAAC;QAE9B,MAAMH,QAAQ,GAAG,IAAI,CAACoM,UAAU,CAAChB,WAAW,CAACC,MAAM,EAAEpM,IAAI,EAAEkB,MAAM,CAAC;QAClE,IAAI,CAACwD,KAAK,CAAC7D,QAAQ,CAAC8K,SAAS,CAAC5K,QAAQ,CAAC,CAAC;QACxC,OAAOA,QAAQ,CAAA;KACf;IAEM6K,SAAS,CAAC5L,IAAgB,EAAEqC,MAAkB,EAAU;QAC9D4J,YAAY,CAACjM,IAAI,EAAE,IAAI,CAAC;QACxBgM,sBAAsB,CAAC3J,MAAM,CAAC;QAE9B,MAAML,QAAQ,GAAG,IAAI,CAACmL,UAAU,CAAChB,WAAW,CAACE,MAAM,EAAErM,IAAI,EAAEqC,MAAM,CAAC;QAClE,IAAI,CAACqC,KAAK,CAAC7D,QAAQ,CAAC+K,SAAS,CAAC5J,QAAQ,CAAC,CAAC;QACxC,OAAOA,QAAQ,CAAA;KACf;IAED,eAAsB,CAACoL,OAAgC,EAAW;QACjE,OACCR,gBAAgB,CAAC,IAAI,CAACS,WAAW,EAAED,OAAO,CAAC,IAC3CR,gBAAgB,CAAC,IAAI,CAACU,WAAW,EAAEF,OAAO,CAAC,CAC3C;KACD;IAEMjM,SAAS,CAACJ,QAAgB,EAAEwM,aAAa,GAAG,KAAK,EAAc;QACrEzQ,SAAS,CAAC,IAAI,CAAC0Q,UAAU,CAACzM,QAAQ,CAAC,EAAE,6BAA6B,CAAC;QACnE,MAAM0M,QAAQ,GAAGF,aAAa,IAAIxM,QAAQ,KAAK,IAAI,CAAC2M,cAAc;QAClE,MAAMxM,MAAM,GAAGuM,QAAQ,GAAG,IAAI,CAACE,YAAY,GAAG,IAAI,CAACN,WAAW,CAAC1P,GAAG,CAACoD,QAAQ,CAAC;QAC5E,OAAOG,MAAM,CAAA;KACb;IAED,SAAgB,CAACc,QAAgB,EAAc;QAC9ClF,SAAS,CAAC,IAAI,CAAC8Q,UAAU,CAAC5L,QAAQ,CAAC,EAAE,6BAA6B,CAAC;QACnE,OAAO,IAAI,CAACsL,WAAW,CAAC3P,GAAG,CAACqE,QAAQ,CAAC,CAAc;KACnD;IAED,aAAoB,CAACjB,QAAgB,EAAc;QAClDjE,SAAS,CAAC,IAAI,CAAC0Q,UAAU,CAACzM,QAAQ,CAAC,EAAE,6BAA6B,CAAC;QACnE,OAAO,IAAI,CAAC8M,KAAK,CAAClQ,GAAG,CAACoD,QAAQ,CAAC,CAAc;KAC7C;IAED,aAAoB,CAACiB,QAAgB,EAA6B;QACjElF,SAAS,CAAC,IAAI,CAAC8Q,UAAU,CAAC5L,QAAQ,CAAC,EAAE,6BAA6B,CAAC;QACnE,OAAO,IAAI,CAAC6L,KAAK,CAAClQ,GAAG,CAACqE,QAAQ,CAAC,CAA6B;KAC5D;IAED,UAAiB,CAAC2K,SAAiB,EAAW;QAC7C,MAAMF,IAAI,GAAGC,sBAAsB,CAACC,SAAS,CAAC;QAC9C,OAAOF,IAAI,KAAKN,WAAW,CAACC,MAAM,CAAA;KAClC;IAED,UAAiB,CAACO,SAAiB,EAAW;QAC7C,MAAMF,IAAI,GAAGC,sBAAsB,CAACC,SAAS,CAAC;QAC9C,OAAOF,IAAI,KAAKN,WAAW,CAACE,MAAM,CAAA;KAClC;IAED,YAAmB,CAACtL,QAAgB,EAAQ;QAC3CjE,SAAS,CAAC,IAAI,CAACqE,SAAS,CAACJ,QAAQ,CAAC,EAAE,8BAA8B,CAAC;QACnE,IAAI,CAAC2D,KAAK,CAAC7D,QAAQ,CAACgL,YAAY,CAAC9K,QAAQ,CAAC,CAAC;QAC3CqK,IAAI,CAAC,IAAM;YACV,IAAI,CAACiC,WAAW,CAACS,MAAM,CAAC/M,QAAQ,CAAC;YACjC,IAAI,CAAC8M,KAAK,CAACC,MAAM,CAAC/M,QAAQ,CAAC;SAC3B,CAAC;KACF;IAED,YAAmB,CAACiB,QAAgB,EAAQ;QAC3ClF,SAAS,CAAC,IAAI,CAACwF,SAAS,CAACN,QAAQ,CAAC,EAAE,8BAA8B,CAAC;QACnE,IAAI,CAAC0C,KAAK,CAAC7D,QAAQ,CAACiL,YAAY,CAAC9J,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAACsL,WAAW,CAACQ,MAAM,CAAC9L,QAAQ,CAAC;QACjC,IAAI,CAAC6L,KAAK,CAACC,MAAM,CAAC9L,QAAQ,CAAC;KAC3B;IAED,SAAgB,CAACjB,QAAgB,EAAQ;QACxC,MAAMG,MAAM,GAAG,IAAI,CAACC,SAAS,CAACJ,QAAQ,CAAC;QACvCjE,SAAS,CAACoE,MAAM,EAAE,8BAA8B,CAAC;QAEjD,IAAI,CAACwM,cAAc,GAAG3M,QAAQ;QAC9B,IAAI,CAAC4M,YAAY,GAAGzM,MAAM;KAC1B;IAEM8B,WAAW,GAAS;QAC1BlG,SAAS,CAAC,IAAI,CAAC6Q,YAAY,EAAE,kCAAkC,CAAC;QAEhE,IAAI,CAACD,cAAc,GAAG,IAAI;QAC1B,IAAI,CAACC,YAAY,GAAG,IAAI;KACxB;IAEOR,UAAU,CACjBV,IAAiB,EACjBzM,IAA6B,EAC7BoN,OAAgC,EACvB;QACT,MAAMxU,EAAE,GAAG4T,gBAAgB,CAACC,IAAI,CAAC;QACjC,IAAI,CAACoB,KAAK,CAAC/O,GAAG,CAAClG,EAAE,EAAEoH,IAAI,CAAC;QACxB,IAAIyM,IAAI,KAAKN,WAAW,CAACC,MAAM,EAAE;YAChC,IAAI,CAACiB,WAAW,CAACvO,GAAG,CAAClG,EAAE,EAAEwU,OAAO,CAAe;SAC/C,MAAM,IAAIX,IAAI,KAAKN,WAAW,CAACE,MAAM,EAAE;YACvC,IAAI,CAACiB,WAAW,CAACxO,GAAG,CAAClG,EAAE,EAAEwU,OAAO,CAAe;SAC/C;QACD,OAAOxU,EAAE,CAAA;KACT;IAzGD,YAAmB8L,KAAmB,CAAE;QAPxC,KAAQmJ,KAAK,GAAyC,IAAIjP,GAAG,EAAE,CAAA;QAC/D,KAAQyO,WAAW,GAA4B,IAAIzO,GAAG,EAAE,CAAA;QACxD,KAAQ0O,WAAW,GAA4B,IAAI1O,GAAG,EAAE,CAAA;QACxD,KAAQ8O,cAAc,GAAkB,IAtEzC,CAsE6C;QAC5C,KAAQC,YAAY,GAAQ,IAvE7B,CAuEiC;QAI/B,IAAI,CAACjJ,KAAK,GAAGA,KAAK;KAClB;CAwGD;;ACjLM,MAAMqJ,cAAc,GAAG,CAAI9P,CAAI,EAAEwH,CAAI,GAAcxH,CAAC,KAAKwH,CAAC;AAAA,CAAA;AAEjE;;;;IAKA,AAAO,SAASuI,cAAc,CAC7BC,OAAmC,EACnCC,OAAmC,EACzB;IACV,IAAI,CAACD,OAAO,IAAI,CAACC,OAAO,EAAE;QACzB,OAAO,IAAI,CAAA;KACX,MAAM,IAAI,CAACD,OAAO,IAAI,CAACC,OAAO,EAAE;QAChC,OAAO,KAAK,CAAA;KACZ,MAAM;QACN,OAAOD,OAAO,CAACvI,CAAC,KAAKwI,OAAO,CAACxI,CAAC,IAAIuI,OAAO,CAACtI,CAAC,KAAKuI,OAAO,CAACvI,CAAC,CAAA;KACzD;CACD;AAED;;;;IAKA,AAAO,SAASwI,cAAc,CAC7BlQ,CAAM,EACNwH,CAAM,EACN2I,OAAyB,GAAGL,cAAc,EAChC;IACV,IAAI9P,CAAC,CAACyD,MAAM,KAAK+D,CAAC,CAAC/D,MAAM,EAAE;QAC1B,OAAO,KAAK,CAAA;KACZ;IACD,IAAK,IAAIpD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,CAAC,CAACyD,MAAM,EAAE,EAAEpD,CAAC,CAAE;QAClC,IAAI,CAAC8P,OAAO,CAACnQ,CAAC,CAACK,CAAC,CAAC,EAAOmH,CAAC,CAACnH,CAAC,CAAC,CAAM,EAAE;YACnC,OAAO,KAAK,CAAA;SACZ;KACD;IACD,OAAO,IAAI,CAAA;CACX;;ACjBM,SAASN,MAAM;AAErBqQ,MAAa,GAAGpI,IAAI,EACpB9D,MAAqC,EAC7B;IACR,OAAQA,MAAM,CAACnC,IAAI;QAClB,KAAKN,KAAK;YACT,MAAK;QACN,KAAK6L,UAAU,CAAC;QAChB,KAAKC,UAAU,CAAC;QAChB,KAAKE,aAAa,CAAC;QACnB,KAAKD,aAAa;YACjB,OAAOxF,IAAI,CAAA;QACZ,KAAKzG,UAAU,CAAC;QAChB,KAAKC,mBAAmB,CAAC;QACzB,KAAKG,QAAQ,CAAC;QACd,KAAKD,IAAI,CAAC;QACV;YACC,OAAOuG,GAAG,CAAA;KACX;IAED,MAAM,EAAEpE,SAAS,EAAG,EAAE,GAAEwM,aAAa,EAAG,EAAE,GAAE,GAAGnM,MAAM,CAAClC,OAAO;IAC7D,MAAMhB,MAAM,GAAGR,GAAG,CAACqD,SAAS,EAAEwM,aAAa,CAAC;IAC5C,MAAMC,SAAS,GACdtP,MAAM,CAACyC,MAAM,GAAG,CAAC,IAAI,CAACyM,cAAc,CAACrM,SAAS,EAAEwM,aAAa,CAAC;IAE/D,IAAI,CAACC,SAAS,EAAE;QACf,OAAOtI,IAAI,CAAA;KACX;;;IAID,MAAMuI,qBAAqB,GAAGF,aAAa,CAACA,aAAa,CAAC5M,MAAM,GAAG,CAAC,CAAC;IACrE,MAAM+M,iBAAiB,GAAG3M,SAAS,CAACA,SAAS,CAACJ,MAAM,GAAG,CAAC,CAAC;IACzD,IAAI8M,qBAAqB,KAAKC,iBAAiB,EAAE;QAChD,IAAID,qBAAqB,EAAE;YAC1BvP,MAAM,CAACE,IAAI,CAACqP,qBAAqB,CAAC;SAClC;QACD,IAAIC,iBAAiB,EAAE;YACtBxP,MAAM,CAACE,IAAI,CAACsP,iBAAiB,CAAC;SAC9B;KACD;IAED,OAAOxP,MAAM,CAAA;CACb;;ACrED;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAgBA,MAAMyP,YAAY,GAAU;IAC3B3I,yBAAyB,EAAE,IAAI;IAC/BD,mBAAmB,EAAE,IAAI;IACzBhG,YAAY,EAAE,IAAI;CAClB;AAED,AAAO,SAAS9B,QAAM,CACrB6H,KAAY,GAAG6I,YAAY,EAC3BvM,MAGE,EACM;IACR,MAAM,EAAElC,OAAO,GAAE,GAAGkC,MAAM;IAC1B,OAAQA,MAAM,CAACnC,IAAI;QAClB,KAAKT,WAAW,CAAC;QACjB,KAAKC,UAAU;YACd,OAAO;gBACNuG,yBAAyB,EAAE9F,OAAO,CAACF,kBAAkB;gBACrD+F,mBAAmB,EAAE7F,OAAO,CAACH,YAAY;gBACzCA,YAAY,EAAEG,OAAO,CAACH,YAAY;aAClC,CAAA;QACF,KAAKJ,KAAK;YACT,IAAIsO,cAAc,CAACnI,KAAK,CAAC/F,YAAY,EAAEG,OAAO,CAACH,YAAY,CAAC,EAAE;gBAC7D,OAAO+F,KAAK,CAAA;aACZ;YACD,OAAO8I,oBACH9I,KAAK;gBACR/F,YAAY,EAAEG,OAAO,CAACH,YAAY;cAClC,CAAA;QACF,KAAKF,QAAQ,CAAC;QACd,KAAKD,IAAI;YACR,OAAO+O,YAAY,CAAA;QACpB;YACC,OAAO7I,KAAK,CAAA;KACb;CACD;;ACpDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AAqBA,MAAM6I,cAAY,GAAU;IAC3BpN,QAAQ,EAAE,IAAI;IACdjD,IAAI,EAAE,IAAI;IACV0C,QAAQ,EAAE,IAAI;IACde,SAAS,EAAE,EAAE;IACbG,UAAU,EAAE,IAAI;IAChBG,OAAO,EAAE,KAAK;IACdZ,cAAc,EAAE,IAAI;CACpB;AAED,AAAO,SAASxD,QAAM,CACrB6H,KAAY,GAAG6I,cAAY,EAC3BvM,MAQE,EACM;IACR,MAAM,EAAElC,OAAO,GAAE,GAAGkC,MAAM;IAC1B,OAAQA,MAAM,CAACnC,IAAI;QAClB,KAAKR,UAAU;YACd,OAAOmP,oBACH9I,KAAK;gBACRvE,QAAQ,EAAErB,OAAO,CAACqB,QAAQ;gBAC1BjD,IAAI,EAAE4B,OAAO,CAAC5B,IAAI;gBAClB0C,QAAQ,EAAEd,OAAO,CAACc,QAAQ;gBAC1BS,cAAc,EAAEvB,OAAO,CAACuB,cAAc;gBACtCS,UAAU,EAAE,IAAI;gBAChBG,OAAO,EAAE,KAAK;cACd,CAAA;QACF,KAAK3C,mBAAmB;YACvB,OAAOkP,oBACH9I,KAAK;gBACRrE,cAAc,EAAE,IAAI;cACpB,CAAA;QACF,KAAK9B,KAAK;YACT,OAAOiP,oBACH9I,KAAK;gBACR/D,SAAS,EAAE7B,OAAO,CAAC6B,SAAS;cAC5B,CAAA;QACF,KAAK4J,aAAa;YACjB,IAAI7F,KAAK,CAAC/D,SAAS,CAACxC,OAAO,CAACW,OAAO,CAAC+B,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACrD,OAAO6D,KAAK,CAAA;aACZ;YACD,OAAO8I,oBACH9I,KAAK;gBACR/D,SAAS,EAAE3D,OAAO,CAAC0H,KAAK,CAAC/D,SAAS,EAAE7B,OAAO,CAAC+B,QAAQ,CAAC;cACrD,CAAA;QACF,KAAKrC,IAAI;YACR,OAAOgP,oBACH9I,KAAK;gBACR5D,UAAU,EAAEhC,OAAO,CAACgC,UAAU;gBAC9BG,OAAO,EAAE,IAAI;gBACbN,SAAS,EAAE,EAAE;cACb,CAAA;QACF,KAAKlC,QAAQ;YACZ,OAAO+O,oBACH9I,KAAK;gBACRvE,QAAQ,EAAE,IAAI;gBACdjD,IAAI,EAAE,IAAI;gBACV0C,QAAQ,EAAE,IAAI;gBACdkB,UAAU,EAAE,IAAI;gBAChBG,OAAO,EAAE,KAAK;gBACdZ,cAAc,EAAE,IAAI;gBACpBM,SAAS,EAAE,EAAE;cACb,CAAA;QACF;YACC,OAAO+D,KAAK,CAAA;KACb;CACD;;ACpFM,SAAS7H,QAAM,CAAC6H,KAAY,GAAG,CAAC,EAAE1D,MAAmB,EAAS;IACpE,OAAQA,MAAM,CAACnC,IAAI;QAClB,KAAKuL,UAAU,CAAC;QAChB,KAAKC,UAAU;YACd,OAAO3F,KAAK,GAAG,CAAC,CAAA;QACjB,KAAK4F,aAAa,CAAC;QACnB,KAAKC,aAAa;YACjB,OAAO7F,KAAK,GAAG,CAAC,CAAA;QACjB;YACC,OAAOA,KAAK,CAAA;KACb;CACD;;ACnBM,SAAS7H,QAAM,CAAC6H,KAAY,GAAG,CAAC,EAAS;IAC/C,OAAOA,KAAK,GAAG,CAAC,CAAA;CAChB;;ACJD;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,AAoBO,SAAS7H,QAAM,CAAC6H,KAAY,GAAG,EAAW,EAAE1D,MAAmB,EAAS;IAC9E,OAAO;QACN8E,eAAe,EAAEA,MAAe,CAACpB,KAAK,CAACoB,eAAe,EAAE;YACvDjH,IAAI,EAAEmC,MAAM,CAACnC,IAAI;YACjBC,OAAO,EAAE0O,oBACLxM,MAAM,CAAClC,OAAO;gBACjBqO,aAAa,EAAE3Q,GAAG,CAAWkI,KAAK,EAAE,yBAAyB,EAAE,EAAE,CAAC;cAClE;SACD,CAAC;QACFsB,UAAU,EAAEA,QAAU,CAACtB,KAAK,CAACsB,UAAU,EAAEhF,MAAM,CAAC;QAChDiD,QAAQ,EAAEA,QAAQ,CAACS,KAAK,CAACT,QAAQ,EAAEjD,MAAM,CAAC;QAC1CwF,aAAa,EAAEA,QAAa,CAAC9B,KAAK,CAAC8B,aAAa,EAAExF,MAAM,CAAC;QACzD0E,OAAO,EAAEA,QAAO,CAAChB,KAAK,CAACgB,OAAO,CAAC;KAC/B,CAAA;CACD;;ACzBM,SAAS+H,qBAAqB,CACpCC,cAA8B,EAC9BC,aAAsB,GAAGpV,SAAS,EAClCqV,cAAuB,GAAG,EAAE,EAC5BC,SAAS,GAAG,KAAK,EACC;IAClB,MAAMtK,KAAK,GAAGuK,iBAAiB,CAACD,SAAS,CAAC;IAC1C,MAAMvO,OAAO,GAAG,IAAIgG,mBAAmB,CAAC/B,KAAK,EAAE,IAAIwI,mBAAmB,CAACxI,KAAK,CAAC,CAAC;IAC9E,MAAMtE,OAAO,GAAG,IAAIkE,mBAAmB,CAACI,KAAK,EAAEjE,OAAO,CAAC;IACvD,MAAM8D,OAAO,GAAGsK,cAAc,CAACzO,OAAO,EAAE0O,aAAa,EAAEC,cAAc,CAAC;IACtE3O,OAAO,CAAC8O,cAAc,CAAC3K,OAAO,CAAC;IAC/B,OAAOnE,OAAO,CAAA;CACd;AAED,SAAS6O,iBAAiB,CAACD,SAAkB,EAAgB;;;IAG5D,MAAMG,aAAa,GAClB,OAAOC,MAAM,KAAK,WAAW,IAC5BA,MAAM,CAASC,4BAA4B;IAC7C,OAAOC,WAAW,CACjBtR,QAAM,EACNgR,SAAS,IACRG,aAAa,IACbA,aAAa,CAAC;QACb5R,IAAI,EAAE,UAAU;QAChBgS,UAAU,EAAE,UAAU;KACtB,CAAC,CACH,CAAA;CACD;;ACvCD;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAInK,QAAQ,GAAG,CAAC;AAChB,MAAMoK,YAAY,GAAGC,MAAM,CAACC,GAAG,CAAC,gCAAgC,CAAC;IAKpDC,WAAW,iBAA2CC,UAAI,CACtE,SAASD,WAAW,CAAC,MAAsB,EAAE;QAAxB,EAAEE,QAAQ,GAAY,GAAtB,MAAsB,EAAPC,KAAK,4BAApB,MAAsB;QAApBD,UAAQ;;IAC9B,MAAM,CAACzP,OAAO,EAAE2P,gBAAgB,CAAC,GAAGC,kBAAkB,CAACF,KAAK,CAAC;;;;;;MAM7DG,eAAS,CAAC,IAAM;QACf,IAAIF,gBAAgB,EAAE;YACrB,MAAMG,OAAO,GAAGC,gBAAgB,EAAE;YAClC,EAAE/K,QAAQ;YAEV,OAAO,IAAM;gBACZ,IAAI,EAAEA,QAAQ,KAAK,CAAC,EAAE;oBACrB8K,OAAO,CAACV,YAAY,CAAC,GAAG,IAAI;iBAC5B;aACD,CAAA;SACD;QACD,OAAM;KACN,EAAE,EAAE,CAAC;IAEN,qBAAOY,eAACzT,UAAU,CAAC0T,QAAQ;QAAC3U,KAAK,EAAE0E,OAAO;kBAAGyP,QAAQ;MAAuB,CAAA;CAC5E,CACD;AA3BD,AA6BA,SAASG,kBAAkB,CAACF,KAAyC,EAAE;IACtE,IAAI,SAAS,IAAIA,KAAK,EAAE;QACvB,MAAM1P,OAAO,GAAG;YAAEvD,eAAe,EAAEiT,KAAK,CAAC1P,OAAO;SAAE;QAClD,OAAO;YAACA,OAAO;YAAE,KAAK;SAAC,CAAA;KACvB;IAED,MAAMA,OAAO,GAAGkQ,yBAAyB,CACxCR,KAAK,CAACvL,OAAO,EACbuL,KAAK,CAACI,OAAO,EACbJ,KAAK,CAACja,OAAO,EACbia,KAAK,CAACd,SAAS,CACf;IACD,MAAMe,gBAAgB,GAAG,CAACD,KAAK,CAACI,OAAO;IAEvC,OAAO;QAAC9P,OAAO;QAAE2P,gBAAgB;KAAC,CAAA;CAClC;AAED,SAASO,yBAAyB,CACjC/L,OAAuB,EACvB2L,OAAuB,GAAGC,gBAAgB,EAAE,EAC5Cta,OAAuB,EACvBmZ,SAAmB,EAClB;IACD,MAAMuB,GAAG,GAAGL,OAAO;IACnB,IAAI,CAACK,GAAG,CAACf,YAAY,CAAC,EAAE;QACvBe,GAAG,CAACf,YAAY,CAAC,GAAG;YACnB3S,eAAe,EAAE+R,qBAAqB,CACrCrK,OAAO,EACP2L,OAAO,EACPra,OAAO,EACPmZ,SAAS,CACT;SACD;KACD;IACD,OAAOuB,GAAG,CAACf,YAAY,CAAC,CAAA;CACxB;AAGD,SAASW,gBAAgB,GAAG;IAC3B,OAAO,OAAOlI,MAAM,KAAK,WAAW,GAAGA,MAAM,GAAImH,MAAc,CAAA;CAC/D;;AC1FD;AACA;AACA;AACA;AACA,iBAAc,GAAG,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AACtC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC;AAC3B;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;AAC9D,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,EAAE,OAAO,KAAK,CAAC;AACtD;AACA,IAAI,IAAI,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC;AACxB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACxB,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;AAC3C,MAAM,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAChC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC7C,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;AACtF,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AACnF,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AACvF;AACA,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACzB,IAAI,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;AACvD;AACA,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC1E;AACA,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG;AACjC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC/C,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;;AC3CD;AACA,AAAO,MAAMoB,yBAAyB,GACrC,OAAOpB,MAAM,KAAK,WAAW,GAAGqB,qBAAe,GAAGR,eAAS,CAAA;;ACC5D;;;;;IAMA,AAAO,SAASS,YAAY,CAC3BjQ,OAAU,EACVkQ,OAA0B,EAC1BC,QAAqB,EACH;IAClB,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGC,cAAQ,CAAC,IAAMJ,OAAO,CAAClQ,OAAO,CAAC;KAAC;IAElE,MAAMuQ,eAAe,GAAGC,iBAAW,CAAC,IAAM;QACzC,MAAMC,SAAS,GAAGP,OAAO,CAAClQ,OAAO,CAAC;;;QAGlC,IAAI,CAAC0Q,aAAK,CAACN,SAAS,EAAEK,SAAS,CAAC,EAAE;YACjCJ,YAAY,CAACI,SAAS,CAAC;YACvB,IAAIN,QAAQ,EAAE;gBACbA,QAAQ,EAAE;aACV;SACD;KACD,EAAE;QAACC,SAAS;QAAEpQ,OAAO;QAAEmQ,QAAQ;KAAC,CAAC;;;;IAKlCJ,yBAAyB,CAACQ,eAAe,CAAC;IAE1C,OAAO;QAACH,SAAS;QAAEG,eAAe;KAAC,CAAA;CACnC;;AChCM,SAASI,gBAAgB,CAC/B3Q,OAAsC,EACtCkQ,OAAwC,EACxCU,SAAsB,EACV;IACZ,MAAM,CAACR,SAAS,EAAEG,eAAe,CAAC,GAAGN,YAAY,CAACjQ,OAAO,EAAEkQ,OAAO,EAAEU,SAAS,CAAC;IAE9Eb,yBAAyB,CACxB,SAASc,6BAA6B,GAAG;QACxC,MAAM3E,SAAS,GAAGlM,OAAO,CAAC8Q,YAAY,EAAE;QACxC,IAAI5E,SAAS,IAAI,IAAI,EAAE;YACtB,OAAM;SACN;QACD,OAAOlM,OAAO,CAACiG,sBAAsB,CAACsK,eAAe,EAAE;YACtDzK,UAAU,EAAE;gBAACoG,SAAS;aAAC;SACvB,CAAC,CAAA;KACF,EACD;QAAClM,OAAO;QAAEuQ,eAAe;KAAC,CAC1B;IAED,OAAOH,SAAS,CAAA;CAChB;;ACrBM,SAASW,iBAAiB,CAChCC,SAAwD,EACxDhR,OAAsC,EACtCiR,SAAoB,EACnB;IACD,OAAON,gBAAgB,CAAC3Q,OAAO,EAAEgR,SAAS,KAAK,KAAO,EAAE,CAAc;KAAC,EAAE,IACxEC,SAAS,CAACC,SAAS,EAAE;KACrB,CAAA;CACD;;ACRM,SAASC,kBAAkB,CACjCC,GAAyB,EACzBC,IAAgB,EACZ;IACJ,MAAMC,QAAQ,GAAG;WAAKD,IAAI,IAAI,EAAE;KAAE;IAClC,IAAIA,IAAI,IAAI,IAAI,IAAI,OAAOD,GAAG,KAAK,UAAU,EAAE;QAC9CE,QAAQ,CAAC5S,IAAI,CAAC0S,GAAG,CAAC;KAClB;IACD,OAAO3W,aAAO,CAAI,IAAM;QACvB,OAAO,OAAO2W,GAAG,KAAK,UAAU,GAAG,GAAI,EAAc,GAAIA,GAAS,CAAA;KAClE,EAAEE,QAAQ,CAAC,CAAA;CACZ;;ACXM,SAASC,oBAAoB,CAACN,SAA0B,EAAE;IAChE,OAAOxW,aAAO,CAAC,IAAMwW,SAAS,CAACO,KAAK,CAACC,UAAU,EAAE;MAAE;QAACR,SAAS;KAAC,CAAC,CAAA;CAC/D;AAED,AAAO,SAASS,qBAAqB,CAACT,SAA0B,EAAE;IACjE,OAAOxW,aAAO,CAAC,IAAMwW,SAAS,CAACO,KAAK,CAACG,WAAW,EAAE;MAAE;QAACV,SAAS;KAAC,CAAC,CAAA;CAChE;;ACED,IAAIW,gBAAgB,GAAG,KAAK;AAC5B,IAAIC,mBAAmB,GAAG,KAAK;AAE/B,AAAO,MAAMC,qBAAqB;IAQjC,gBAAuB,CAACxR,QAA2B,EAAQ;QAC1D,IAAI,CAACA,QAAQ,GAAGA,QAAQ;KACxB;IAEMwQ,YAAY,GAAsB;QACxC,OAAO,IAAI,CAACxQ,QAAQ,CAAA;KACpB;IAEMsG,OAAO,GAAY;QACzBvK,SAAS,CACR,CAACuV,gBAAgB,EACjB,2EAA2E,GAC1E,8EAA8E,CAC/E;QAED,IAAI;YACHA,gBAAgB,GAAG,IAAI;YACvB,OAAO,IAAI,CAACG,eAAe,CAAC7Q,aAAa,CAAC,IAAI,CAACZ,QAAQ,CAAe,CAAA;SACtE,QAAS;YACTsR,gBAAgB,GAAG,KAAK;SACxB;KACD;IAEM5Q,UAAU,GAAY;QAC5B,IAAI,CAAC,IAAI,CAACV,QAAQ,EAAE;YACnB,OAAO,KAAK,CAAA;SACZ;QACDjE,SAAS,CACR,CAACwV,mBAAmB,EACpB,iFAAiF,GAChF,8EAA8E,CAC/E;QAED,IAAI;YACHA,mBAAmB,GAAG,IAAI;YAC1B,OAAO,IAAI,CAACE,eAAe,CAACC,gBAAgB,CAAC,IAAI,CAAC1R,QAAQ,CAAC,CAAA;SAC3D,QAAS;YACTuR,mBAAmB,GAAG,KAAK;SAC3B;KACD;IAEM5L,sBAAsB,CAC5BC,QAAkB,EAClB9Q,OAAuC,EACzB;QACd,OAAO,IAAI,CAAC2c,eAAe,CAAC9L,sBAAsB,CAACC,QAAQ,EAAE9Q,OAAO,CAAC,CAAA;KACrE;IAED,gBAAuB,CAACkL,QAAoB,EAAW;QACtD,OAAO,IAAI,CAACyR,eAAe,CAACC,gBAAgB,CAAC1R,QAAQ,CAAC,CAAA;KACtD;IAEM0G,YAAY,CAClBzF,QAAoB,EACpBnM,OAA8B,EACpB;QACV,OAAO,IAAI,CAAC2c,eAAe,CAAC/K,YAAY,CAACzF,QAAQ,EAAEnM,OAAO,CAAC,CAAA;KAC3D;IAEM4M,YAAY,GAAiB;QACnC,OAAO,IAAI,CAAC+P,eAAe,CAAC/P,YAAY,EAAE,CAAA;KAC1C;IAEMjB,cAAc,GAAmB;QACvC,OAAO,IAAI,CAACgR,eAAe,CAAChR,cAAc,EAAE,CAAA;KAC5C;IAEMuB,WAAW,GAAsB;QACvC,OAAO,IAAI,CAACyP,eAAe,CAACzP,WAAW,EAAE,CAAA;KACzC;IAED,uBAA8B,CAAC4D,QAAkB,EAAe;QAC/D,OAAO,IAAI,CAAC6L,eAAe,CAACE,uBAAuB,CAAC/L,QAAQ,CAAC,CAAA;KAC7D;IAED,aAAoB,CAAC5F,QAAoB,EAAW;QACnD,OAAO,IAAI,CAACyR,eAAe,CAAC7Q,aAAa,CAACZ,QAAQ,CAAC,CAAA;KACnD;IAED,eAAsB,CAACiB,QAAoB,EAAW;QACrD,OAAO,IAAI,CAACwQ,eAAe,CAAC9P,eAAe,CAACV,QAAQ,CAAC,CAAA;KACrD;IAEM4B,WAAW,GAAsB;QACvC,OAAO,IAAI,CAAC4O,eAAe,CAAC5O,WAAW,EAAE,CAAA;KACzC;IAEMgE,OAAO,GAAQ;QACrB,OAAO,IAAI,CAAC4K,eAAe,CAAC5K,OAAO,EAAE,CAAA;KACrC;IAEMpF,aAAa,GAAQ;QAC3B,OAAO,IAAI,CAACgQ,eAAe,CAAChQ,aAAa,EAAE,CAAA;KAC3C;IAEMJ,OAAO,GAAY;QACzB,OAAO,IAAI,CAACoQ,eAAe,CAACpQ,OAAO,EAAE,CAAA;KACrC;IAEMyF,sBAAsB,GAAmB;QAC/C,OAAO,IAAI,CAAC2K,eAAe,CAAC3K,sBAAsB,EAAE,CAAA;KACpD;IAEMC,4BAA4B,GAAmB;QACrD,OAAO,IAAI,CAAC0K,eAAe,CAAC1K,4BAA4B,EAAE,CAAA;KAC1D;IAEMtH,qBAAqB,GAAmB;QAC9C,OAAO,IAAI,CAACgS,eAAe,CAAChS,qBAAqB,EAAE,CAAA;KACnD;IAEMuH,eAAe,GAAmB;QACxC,OAAO,IAAI,CAACyK,eAAe,CAACzK,eAAe,EAAE,CAAA;KAC7C;IAEM/B,8BAA8B,GAAmB;QACvD,OAAO,IAAI,CAACwM,eAAe,CAACxM,8BAA8B,EAAE,CAAA;KAC5D;IAzHD,YAAmB5F,OAAwB,CAAE;QAF7C,KAAQW,QAAQ,GAAsB,IAjBvC,CAiB2C;QAGzC,IAAI,CAACyR,eAAe,GAAGpS,OAAO,CAACM,UAAU,EAAE;KAC3C;CAwHD;;ACjID,IAAIiS,gBAAgB,GAAG,KAAK;AAE5B,AAAO,MAAMC,qBAAqB;IAQjC,gBAAuB,CAAC5Q,QAA2B,EAAQ;QAC1D,IAAI,CAACA,QAAQ,GAAGA,QAAQ;KACxB;IAEMuP,YAAY,GAAsB;QACxC,OAAO,IAAI,CAACvP,QAAQ,CAAA;KACpB;IAEM0E,sBAAsB,CAC5BC,QAAkB,EAClB9Q,OAAuC,EACzB;QACd,OAAO,IAAI,CAAC2c,eAAe,CAAC9L,sBAAsB,CAACC,QAAQ,EAAE9Q,OAAO,CAAC,CAAA;KACrE;IAEMyR,OAAO,GAAY;;;;QAIzB,IAAI,CAAC,IAAI,CAACtF,QAAQ,EAAE;YACnB,OAAO,KAAK,CAAA;SACZ;QACDlF,SAAS,CACR,CAAC6V,gBAAgB,EACjB,2EAA2E,GAC1E,8EAA8E,CAC/E;QAED,IAAI;YACHA,gBAAgB,GAAG,IAAI;YACvB,OAAO,IAAI,CAACH,eAAe,CAAC9P,eAAe,CAAC,IAAI,CAACV,QAAQ,CAAC,CAAA;SAC1D,QAAS;YACT2Q,gBAAgB,GAAG,KAAK;SACxB;KACD;IAED,MAAa,CAAC9c,OAA+B,EAAW;QACvD,IAAI,CAAC,IAAI,CAACmM,QAAQ,EAAE;YACnB,OAAO,KAAK,CAAA;SACZ;QACD,OAAO,IAAI,CAACwQ,eAAe,CAAC/K,YAAY,CAAC,IAAI,CAACzF,QAAQ,EAAEnM,OAAO,CAAC,CAAA;KAChE;IAEM+N,WAAW,GAAsB;QACvC,OAAO,IAAI,CAAC4O,eAAe,CAAC5O,WAAW,EAAE,CAAA;KACzC;IAEMgE,OAAO,GAAQ;QACrB,OAAO,IAAI,CAAC4K,eAAe,CAAC5K,OAAO,EAAE,CAAA;KACrC;IAEMpF,aAAa,GAAQ;QAC3B,OAAO,IAAI,CAACgQ,eAAe,CAAChQ,aAAa,EAAE,CAAA;KAC3C;IAEMJ,OAAO,GAAY;QACzB,OAAO,IAAI,CAACoQ,eAAe,CAACpQ,OAAO,EAAE,CAAA;KACrC;IAEMyF,sBAAsB,GAAmB;QAC/C,OAAO,IAAI,CAAC2K,eAAe,CAAC3K,sBAAsB,EAAE,CAAA;KACpD;IAEMC,4BAA4B,GAAmB;QACrD,OAAO,IAAI,CAAC0K,eAAe,CAAC1K,4BAA4B,EAAE,CAAA;KAC1D;IAEMtH,qBAAqB,GAAmB;QAC9C,OAAO,IAAI,CAACgS,eAAe,CAAChS,qBAAqB,EAAE,CAAA;KACnD;IAEMuH,eAAe,GAAmB;QACxC,OAAO,IAAI,CAACyK,eAAe,CAACzK,eAAe,EAAE,CAAA;KAC7C;IAEM/B,8BAA8B,GAAmB;QACvD,OAAO,IAAI,CAACwM,eAAe,CAACxM,8BAA8B,EAAE,CAAA;KAC5D;IAjFD,YAAmB5F,OAAwB,CAAE;QAF7C,KAAQ4B,QAAQ,GAAsB,IAhBvC,CAgB2C;QAGzC,IAAI,CAACwQ,eAAe,GAAGpS,OAAO,CAACM,UAAU,EAAE;KAC3C;CAgFD;;AC1FM,SAASmS,cAAc,CAC7B7S,IAAgB,EAChBqC,MAAkB,EAClBjC,OAAwB,EACI;IAC5B,MAAMO,QAAQ,GAAGP,OAAO,CAACQ,WAAW,EAAE;IACtC,MAAMoB,QAAQ,GAAGrB,QAAQ,CAACiL,SAAS,CAAC5L,IAAI,EAAEqC,MAAM,CAAC;IAEjD,OAAO;QAACL,QAAQ;QAAE,IAAMrB,QAAQ,CAACmL,YAAY,CAAC9J,QAAQ,CAAC;KAAC,CAAA;CACxD;AAED,AAAO,SAAS8Q,cAAc,CAC7B9S,IAAgB,EAChBkB,MAAkB,EAClBd,OAAwB,EACI;IAC5B,MAAMO,QAAQ,GAAGP,OAAO,CAACQ,WAAW,EAAE;IACtC,MAAMG,QAAQ,GAAGJ,QAAQ,CAACgL,SAAS,CAAC3L,IAAI,EAAEkB,MAAM,CAAC;IAEjD,OAAO;QAACH,QAAQ;QAAE,IAAMJ,QAAQ,CAACkL,YAAY,CAAC9K,QAAQ,CAAC;KAAC,CAAA;CACxD;;AC9BM,SAASgS,YAAY,CAC3BC,IAAO,EACPC,IAAO,EACPC,OAAsD,EACtDC,cAAoB,EACnB;IACD,IAAIC,aAAa,GAAGF,OAAO,GACxBA,OAAO,CAAC9I,IAAI,CAAC+I,cAAc,EAAEH,IAAI,EAAEC,IAAI,CAAC,GACxC,KAAK,CAAC;IACT,IAAIG,aAAa,KAAK,KAAK,CAAC,EAAE;QAC7B,OAAO,CAAC,CAACA,aAAa,CAAA;KACtB;IAED,IAAIJ,IAAI,KAAKC,IAAI,EAAE;QAClB,OAAO,IAAI,CAAA;KACX;IAED,IAAI,OAAOD,IAAI,KAAK,QAAQ,IAAI,CAACA,IAAI,IAAI,OAAOC,IAAI,KAAK,QAAQ,IAAI,CAACA,IAAI,EAAE;QAC3E,OAAO,KAAK,CAAA;KACZ;IAED,MAAMI,KAAK,GAAGvO,MAAM,CAACC,IAAI,CAACiO,IAAI,CAAC;IAC/B,MAAMM,KAAK,GAAGxO,MAAM,CAACC,IAAI,CAACkO,IAAI,CAAC;IAE/B,IAAII,KAAK,CAAC3R,MAAM,KAAK4R,KAAK,CAAC5R,MAAM,EAAE;QAClC,OAAO,KAAK,CAAA;KACZ;IAED,MAAM6R,eAAe,GAAGzO,MAAM,CAAC0O,SAAS,CAACC,cAAc,CAACC,IAAI,CAACT,IAAI,CAAC;;IAGlE,IAAK,IAAIU,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAGN,KAAK,CAAC3R,MAAM,EAAEiS,GAAG,EAAE,CAAE;QAC5C,MAAMlX,GAAG,GAAG4W,KAAK,CAACM,GAAG,CAAC;QAEtB,IAAI,CAACJ,eAAe,CAAC9W,GAAG,CAAC,EAAE;YAC1B,OAAO,KAAK,CAAA;SACZ;QAED,MAAMmX,MAAM,GAAIZ,IAAI,CAASvW,GAAG,CAAC;QACjC,MAAMoX,MAAM,GAAIZ,IAAI,CAASxW,GAAG,CAAC;QAEjC2W,aAAa,GAAGF,OAAO,GACpBA,OAAO,CAAC9I,IAAI,CAAC+I,cAAc,EAAES,MAAM,EAAEC,MAAM,EAAEpX,GAAG,CAAC,GACjD,KAAK,CAAC;QAET,IACC2W,aAAa,KAAK,KAAK,IACtBA,aAAa,KAAK,KAAK,CAAC,IAAIQ,MAAM,KAAKC,MAAM,EAC7C;YACD,OAAO,KAAK,CAAA;SACZ;KACD;IAED,OAAO,IAAI,CAAA;CACX;;AClDM,SAASC,KAAK,CAAClW,GAAY,EAAW;IAC5C;IAECA,GAAG,KAAK,IAAI,IACZ,OAAOA,GAAG,KAAK,QAAQ,IACvBkH,MAAM,CAAC0O,SAAS,CAACC,cAAc,CAACrJ,IAAI,CAACxM,GAAG,EAAE,SAAS,CAAC,EACpD;CACD;;ACPD,SAASmW,gCAAgC,CAACC,OAA0B,EAAE;;;IAGrE,IAAI,OAAOA,OAAO,CAAChU,IAAI,KAAK,QAAQ,EAAE;QACrC,OAAM;KACN;IAED,MAAMiU,WAAW,GAChB,OAAQ,CAACjU,IAAI,CAASiU,WAAW,IAAID,OAAO,CAAChU,IAAI,CAACzC,IAAI,IAAI,eAAe;IAE1E,MAAM,IAAIJ,KAAK,CACd,sEAAsE,GACrE,CAAC,oBAAoB,EAAE8W,WAAW,CAAC,iCAAiC,CAAC,GACrE,sCAAsC,CACvC,CAAA;CACD;AAED,SAASC,0BAA0B,CAACC,IAAuC,EAAE;IAC5E,OAAO,CAACC,aAAa,GAAG,IAAI,EAAEve,OAAO,GAAG,IAAI,GAAK;;QAEhD,IAAI,CAACwe,oBAAc,CAACD,aAAa,CAAC,EAAE;YACnC,MAAMjL,IAAI,GAAGiL,aAAa;YAC1BD,IAAI,CAAChL,IAAI,EAAEtT,OAAO,CAAC;;;YAGnB,OAAOsT,IAAI,CAAA;SACX;;;;QAKD,MAAM6K,OAAO,GAAwBI,aAAa;QAClDL,gCAAgC,CAACC,OAAO,CAAQ;;QAGhD,MAAMM,GAAG,GAAGze,OAAO,GAAG,CAACsT,IAAa,GAAKgL,IAAI,CAAChL,IAAI,EAAEtT,OAAO,CAAC;WAAGse,IAAI;QACnE,OAAOI,YAAY,CAACP,OAAO,EAAEM,GAAG,CAAC,CAAA;KACjC,CAAA;CACD;AAED,AAAO,SAASE,kBAAkB,CAACvC,KAAU,EAAE;IAC9C,MAAMwC,YAAY,GAAQ,EAAE;IAE5B3P,MAAM,CAACC,IAAI,CAACkN,KAAK,CAAC,CAACjT,OAAO,CAAC,CAACvC,GAAG,GAAK;QACnC,MAAM0X,IAAI,GAAGlC,KAAK,CAACxV,GAAG,CAAC;;QAGvB,IAAIA,GAAG,CAACvD,QAAQ,CAAC,KAAK,CAAC,EAAE;YACxBub,YAAY,CAAChY,GAAG,CAAC,GAAGwV,KAAK,CAACxV,GAAG,CAAC;SAC9B,MAAM;YACN,MAAMiY,WAAW,GAAGR,0BAA0B,CAACC,IAAI,CAAC;YACpDM,YAAY,CAAChY,GAAG,CAAC,GAAG,IAAMiY,WAAW;;SACrC;KACD,CAAC;IAEF,OAAOD,YAAY,CAAA;CACnB;AAED,SAASE,MAAM,CAACL,GAAQ,EAAEnL,IAAS,EAAE;IACpC,IAAI,OAAOmL,GAAG,KAAK,UAAU,EAAE;QAC9BA,GAAG,CAACnL,IAAI,CAAC;KACT,MAAM;QACNmL,GAAG,CAACM,OAAO,GAAGzL,IAAI;KAClB;CACD;AAED,SAASoL,YAAY,CAACP,OAAY,EAAEa,MAAW,EAAqB;IACnE,MAAMC,WAAW,GAAGd,OAAO,CAACM,GAAG;IAC/BxX,SAAS,CACR,OAAOgY,WAAW,KAAK,QAAQ,EAC/B,sEAAsE,GACrE,sFAAsF,GACtF,yEAAyE,CAC1E;IAED,IAAI,CAACA,WAAW,EAAE;;QAEjB,OAAOC,kBAAY,CAACf,OAAO,EAAE;YAC5BM,GAAG,EAAEO,MAAM;SACX,CAAC,CAAA;KACF,MAAM;QACN,OAAOE,kBAAY,CAACf,OAAO,EAAE;YAC5BM,GAAG,EAAE,CAACnL,IAAS,GAAK;gBACnBwL,MAAM,CAACG,WAAW,EAAE3L,IAAI,CAAC;gBACzBwL,MAAM,CAACE,MAAM,EAAE1L,IAAI,CAAC;aACpB;SACD,CAAC,CAAA;KACF;CACD;;AC7EM,MAAM6L,eAAe;IAoD3B,gBAAuB,CAACC,YAA+B,EAAQ;QAC9D,IAAI,IAAI,CAACtI,SAAS,KAAKsI,YAAY,EAAE;YACpC,OAAM;SACN;QAED,IAAI,CAACtI,SAAS,GAAGsI,YAAY;QAC7B,IAAI,CAACtD,SAAS,EAAE;KAChB;IAED,IAAWuD,aAAa,GAAQ;QAC/B,OAAO,IAAI,CAAChD,UAAU,CAAA;KACtB;IAED,IAAWiD,iBAAiB,GAA6B;QACxD,OAAO,IAAI,CAACC,yBAAyB,CAAA;KACrC;IACD,IAAWD,iBAAiB,CAACtf,OAAiC,EAAE;QAC/D,IAAI,CAACuf,yBAAyB,GAAGvf,OAAO;KACxC;IAED,IAAWwf,kBAAkB,GAA8B;QAC1D,OAAO,IAAI,CAACC,0BAA0B,CAAA;KACtC;IAED,IAAWD,kBAAkB,CAACxf,OAAkC,EAAE;QACjE,IAAI,CAACyf,0BAA0B,GAAGzf,OAAO;KACzC;IAEM8b,SAAS,GAAS;QACxB,MAAMpD,SAAS,GAAG,IAAI,CAACgH,mBAAmB,EAAE;QAC5C,IAAI,CAACC,oBAAoB,CAACjH,SAAS,CAAC;KACpC;IAEOgH,mBAAmB,GAAY;QACtC,MAAMrD,UAAU,GAAG,IAAI,CAACA,UAAU;;QAElC,MAAM3D,SAAS,GACd,IAAI,CAACkH,kBAAkB,EAAE,IACzB,IAAI,CAACC,4BAA4B,EAAE,IACnC,IAAI,CAACC,0BAA0B,EAAE;QAElC,IAAIpH,SAAS,EAAE;YACd,IAAI,CAACqH,oBAAoB,EAAE;SAC3B;QAED,IAAI,CAAC,IAAI,CAACjJ,SAAS,EAAE;YACpB,OAAO4B,SAAS,CAAA;SAChB;QACD,IAAI,CAAC2D,UAAU,EAAE;YAChB,IAAI,CAAC2D,uBAAuB,GAAG3D,UAAU;YACzC,OAAO3D,SAAS,CAAA;SAChB;QAED,IAAIA,SAAS,EAAE;YACd,IAAI,CAACuH,sBAAsB,GAAG,IAAI,CAACnJ,SAAS;YAC5C,IAAI,CAACkJ,uBAAuB,GAAG3D,UAAU;YACzC,IAAI,CAAC6D,8BAA8B,GAAG,IAAI,CAACZ,iBAAiB;YAC5D,IAAI,CAACa,qBAAqB,GAAG,IAAI,CAACzR,OAAO,CAAC0R,iBAAiB,CAC1D,IAAI,CAACtJ,SAAS,EACduF,UAAU,EACV,IAAI,CAACiD,iBAAiB,CACtB;SACD;QACD,OAAO5G,SAAS,CAAA;KAChB;IAEOiH,oBAAoB,CAACU,cAAc,GAAG,KAAK,EAAQ;QAC1D,MAAM9D,WAAW,GAAG,IAAI,CAACA,WAAW;;QAEpC,MAAM7D,SAAS,GACd2H,cAAc,IACd,IAAI,CAACT,kBAAkB,EAAE,IACzB,IAAI,CAACU,6BAA6B,EAAE,IACpC,IAAI,CAACC,2BAA2B,EAAE;QAEnC,IAAI7H,SAAS,EAAE;YACd,IAAI,CAAC8H,qBAAqB,EAAE;SAC5B;QAED,IAAI,CAAC,IAAI,CAAC1J,SAAS,EAAE;YACpB,OAAM;SACN;QACD,IAAI,CAACyF,WAAW,EAAE;YACjB,IAAI,CAACkE,wBAAwB,GAAGlE,WAAW;YAC3C,OAAM;SACN;QAED,IAAI7D,SAAS,EAAE;YACd,IAAI,CAACuH,sBAAsB,GAAG,IAAI,CAACnJ,SAAS;YAC5C,IAAI,CAAC2J,wBAAwB,GAAGlE,WAAW;YAC3C,IAAI,CAACmE,+BAA+B,GAAG,IAAI,CAAClB,kBAAkB;YAC9D,IAAI,CAACmB,sBAAsB,GAAG,IAAI,CAACjS,OAAO,CAACkS,kBAAkB,CAC5D,IAAI,CAAC9J,SAAS,EACdyF,WAAW,EACX,IAAI,CAACiD,kBAAkB,CACvB;SACD;KACD;IAEOI,kBAAkB,GAAY;QACrC,OAAO,IAAI,CAACK,sBAAsB,KAAK,IAAI,CAACnJ,SAAS,CAAA;KACrD;IAEO+I,4BAA4B,GAAY;QAC/C,OAAO,IAAI,CAACG,uBAAuB,KAAK,IAAI,CAAC3D,UAAU,CAAA;KACvD;IAEOiE,6BAA6B,GAAY;QAChD,OAAO,IAAI,CAACG,wBAAwB,KAAK,IAAI,CAAClE,WAAW,CAAA;KACzD;IAEOuD,0BAA0B,GAAY;QAC7C,OAAO,CAAC5C,YAAY,CACnB,IAAI,CAACgD,8BAA8B,EACnC,IAAI,CAACZ,iBAAiB,CACtB,CAAA;KACD;IAEOiB,2BAA2B,GAAY;QAC9C,OAAO,CAACrD,YAAY,CACnB,IAAI,CAACwD,+BAA+B,EACpC,IAAI,CAAClB,kBAAkB,CACvB,CAAA;KACD;IAEMO,oBAAoB,GAAG;QAC7B,IAAI,IAAI,CAACI,qBAAqB,EAAE;YAC/B,IAAI,CAACA,qBAAqB,EAAE;YAC5B,IAAI,CAACA,qBAAqB,GAAGtc,SAAS;SACtC;KACD;IAEM2c,qBAAqB,GAAG;QAC9B,IAAI,IAAI,CAACG,sBAAsB,EAAE;YAChC,IAAI,CAACA,sBAAsB,EAAE;YAC7B,IAAI,CAACA,sBAAsB,GAAG9c,SAAS;YACvC,IAAI,CAACgd,eAAe,GAAG,IAAI;YAC3B,IAAI,CAACC,cAAc,GAAG,IAAI;SAC1B;KACD;IAED,IAAYzE,UAAU,GAAG;QACxB,OACC,IAAI,CAAC0E,cAAc,IAAK,IAAI,CAACC,aAAa,IAAI,IAAI,CAACA,aAAa,CAACjC,OAAO,CACxE;KACD;IAED,IAAYxC,WAAW,GAAG;QACzB,OACC,IAAI,CAACsE,eAAe,IACnB,IAAI,CAACC,cAAc,IAAI,IAAI,CAACA,cAAc,CAAC/B,OAAO,CACnD;KACD;IAEOkC,eAAe,GAAG;QACzB,IAAI,CAACF,cAAc,GAAG,IAAI;QAC1B,IAAI,CAACC,aAAa,GAAG,IAAI;KACzB;IAEOE,gBAAgB,GAAG;QAC1B,IAAI,CAACL,eAAe,GAAG,IAAI;QAC3B,IAAI,CAACC,cAAc,GAAG,IAAI;KAC1B;IAtKD,YAAmBpS,OAAgB,CAAE;QA/CrC,KAAO0N,KAAK,GAAGuC,kBAAkB,CAAC;YACjCtC,UAAU,EAAE,CACX/I,IAAuC,EACvCtT,OAA2B,GACvB;gBACJ,IAAI,CAACihB,eAAe,EAAE;gBACtB,IAAI,CAAC3B,iBAAiB,GAAGtf,OAAO,IAAI,IAAI;gBACxC,IAAIie,KAAK,CAAC3K,IAAI,CAAC,EAAE;oBAChB,IAAI,CAAC0N,aAAa,GAAG1N,IAAI;iBACzB,MAAM;oBACN,IAAI,CAACyN,cAAc,GAAGzN,IAAI;iBAC1B;gBACD,IAAI,CAACoM,mBAAmB,EAAE;aAC1B;YACDnD,WAAW,EAAE,CAACjJ,IAAS,EAAEtT,OAA4B,GAAK;gBACzD,IAAI,CAACkhB,gBAAgB,EAAE;gBACvB,IAAI,CAAC1B,kBAAkB,GAAGxf,OAAO,IAAI,IAAI;gBACzC,IAAIie,KAAK,CAAC3K,IAAI,CAAC,EAAE;oBAChB,IAAI,CAACwN,cAAc,GAAGxN,IAAI;iBAC1B,MAAM;oBACN,IAAI,CAACuN,eAAe,GAAGvN,IAAI;iBAC3B;gBACD,IAAI,CAACqM,oBAAoB,EAAE;aAC3B;SACD,CAAC,CAAA;QACF,KAAQ7I,SAAS,GAAsB,IAzCxC,CAyC4C;;QAG3C,KAAQkK,aAAa,GAA0B,IA5ChD,CA4CoD;QAEnD,KAAQzB,yBAAyB,GAA6B,IA9C/D,CA8CmE;;QAIlE,KAAQuB,cAAc,GAA0B,IAlDjD,CAkDqD;QAEpD,KAAQrB,0BAA0B,GAA8B,IApDjE,CAoDqE;QAGpE,KAAQQ,sBAAsB,GAAsB,IAvDrD,CAuDyD;QACxD,KAAQD,uBAAuB,GAAQ,IAxDxC,CAwD4C;QAC3C,KAAQE,8BAA8B,GAAQ,IAzD/C,CAyDmD;QAClD,KAAQO,wBAAwB,GAAQ,IA1DzC,CA0D6C;QAC5C,KAAQC,+BAA+B,GAAQ,IA3DhD,CA2DoD;QAKlD,IAAI,CAAChS,OAAO,GAAGA,OAAO;KACtB;CAqKD;;AC7NM,MAAMyS,eAAe;IA8B3B,IAAW9B,aAAa,GAAQ;QAC/B,OAAO,IAAI,CAAC+B,UAAU,CAAA;KACtB;IAEMtF,SAAS,GAAS;;QAExB,MAAMpD,SAAS,GACd,IAAI,CAACkH,kBAAkB,EAAE,IACzB,IAAI,CAACyB,mBAAmB,EAAE,IAC1B,IAAI,CAACC,gBAAgB,EAAE;QAExB,IAAI5I,SAAS,EAAE;YACd,IAAI,CAAC6I,oBAAoB,EAAE;SAC3B;QAED,MAAMH,UAAU,GAAG,IAAI,CAACA,UAAU;QAClC,IAAI,CAAC,IAAI,CAACtK,SAAS,EAAE;YACpB,OAAM;SACN;QACD,IAAI,CAACsK,UAAU,EAAE;YAChB,IAAI,CAACI,uBAAuB,GAAGJ,UAAU;YACzC,OAAM;SACN;QAED,IAAI1I,SAAS,EAAE;YACd,IAAI,CAACuH,sBAAsB,GAAG,IAAI,CAACnJ,SAAS;YAC5C,IAAI,CAAC0K,uBAAuB,GAAGJ,UAAU;YACzC,IAAI,CAACK,8BAA8B,GAAG,IAAI,CAACC,iBAAiB;YAE5D,IAAI,CAACC,qBAAqB,GAAG,IAAI,CAACjT,OAAO,CAACkT,iBAAiB,CAC1D,IAAI,CAAC9K,SAAS,EACdsK,UAAU,EACV,IAAI,CAACM,iBAAiB,CACtB;SACD;KACD;IAED,gBAAuB,CAACtC,YAA+B,EAAQ;QAC9D,IAAIA,YAAY,KAAK,IAAI,CAACtI,SAAS,EAAE;YACpC,OAAM;SACN;QAED,IAAI,CAACA,SAAS,GAAGsI,YAAY;QAC7B,IAAI,CAACtD,SAAS,EAAE;KAChB;IAED,IAAW4F,iBAAiB,GAAsB;QACjD,OAAO,IAAI,CAACG,yBAAyB,CAAA;KACrC;IACD,IAAWH,iBAAiB,CAAC1hB,OAA0B,EAAE;QACxD,IAAI,CAAC6hB,yBAAyB,GAAG7hB,OAAO;KACxC;IAEO4f,kBAAkB,GAAY;QACrC,OAAO,IAAI,CAACK,sBAAsB,KAAK,IAAI,CAACnJ,SAAS,CAAA;KACrD;IAEOuK,mBAAmB,GAAY;QACtC,OAAO,IAAI,CAACG,uBAAuB,KAAK,IAAI,CAACJ,UAAU,CAAA;KACvD;IAEOE,gBAAgB,GAAY;QACnC,OAAO,CAACpE,YAAY,CACnB,IAAI,CAACuE,8BAA8B,EACnC,IAAI,CAACC,iBAAiB,CACtB,CAAA;KACD;IAEMH,oBAAoB,GAAG;QAC7B,IAAI,IAAI,CAACI,qBAAqB,EAAE;YAC/B,IAAI,CAACA,qBAAqB,EAAE;YAC5B,IAAI,CAACA,qBAAqB,GAAG9d,SAAS;SACtC;KACD;IAED,IAAYud,UAAU,GAAG;QACxB,OACC,IAAI,CAACU,cAAc,IAAK,IAAI,CAACC,aAAa,IAAI,IAAI,CAACA,aAAa,CAAChD,OAAO,CACxE;KACD;IAEOiD,eAAe,GAAG;QACzB,IAAI,CAACD,aAAa,GAAG,IAAI;QACzB,IAAI,CAACD,cAAc,GAAG,IAAI;KAC1B;IAxFD,YAAmBpT,OAAgB,CAAE;QAzBrC,KAAO0N,KAAK,GAAGuC,kBAAkB,CAAC;YACjCyC,UAAU,EAAE,CAAC9N,IAAS,EAAEtT,OAA0B,GAAK;gBACtD,IAAI,CAACgiB,eAAe,EAAE;gBACtB,IAAI,CAACN,iBAAiB,GAAG1hB,OAAO;gBAChC,IAAIie,KAAK,CAAC3K,IAAI,CAAC,EAAE;oBAChB,IAAI,CAACyO,aAAa,GAAGzO,IAAI;iBACzB,MAAM;oBACN,IAAI,CAACwO,cAAc,GAAGxO,IAAI;iBAC1B;gBACD,IAAI,CAACwI,SAAS,EAAE;aAChB;SACD,CAAC,CAAA;QAEF,KAAQhF,SAAS,GAAsB,IAvBxC,CAuB4C;;QAE3C,KAAQiL,aAAa,GAA0B,IAzBhD,CAyBoD;QAEnD,KAAQF,yBAAyB,GAA6B,IA3B/D,CA2BmE;QAGlE,KAAQ5B,sBAAsB,GAAsB,IA9BrD,CA8ByD;QACxD,KAAQuB,uBAAuB,GAAQ,IA/BxC,CA+B4C;QAC3C,KAAQC,8BAA8B,GAA6B,IAhCpE,CAgCwE;QAItE,IAAI,CAAC/S,OAAO,GAAGA,OAAO;KACtB;CAuFD;;ACtHD;;IAGA,AAAO,SAASuT,kBAAkB,GAAoB;IACrD,MAAM,EAAEjb,eAAe,GAAE,GAAGkb,gBAAU,CAACpb,UAAU,CAAC;IAClDG,SAAS,CAACD,eAAe,IAAI,IAAI,EAAE,4BAA4B,CAAC;IAChE,OAAOA,eAAe,CAAmB;CACzC;;ACHM,SAASmb,sBAAsB,CACrC7C,iBAAgD,EAChDE,kBAAkD,EAChC;IAClB,MAAMjV,OAAO,GAAG0X,kBAAkB,EAAE;IACpC,MAAMpG,SAAS,GAAGxW,aAAO,CACxB,IAAM,IAAI8Z,eAAe,CAAC5U,OAAO,CAACoE,UAAU,EAAE,CAAC;MAC/C;QAACpE,OAAO;KAAC,CACT;IACDoQ,yBAAyB,CAAC,IAAM;QAC/BkB,SAAS,CAACyD,iBAAiB,GAAGA,iBAAiB,IAAI,IAAI;QACvDzD,SAAS,CAACC,SAAS,EAAE;QACrB,OAAO,IAAMD,SAAS,CAACkE,oBAAoB,EAAE;SAAA;KAC7C,EAAE;QAAClE,SAAS;QAAEyD,iBAAiB;KAAC,CAAC;IAClC3E,yBAAyB,CAAC,IAAM;QAC/BkB,SAAS,CAAC2D,kBAAkB,GAAGA,kBAAkB,IAAI,IAAI;QACzD3D,SAAS,CAACC,SAAS,EAAE;QACrB,OAAO,IAAMD,SAAS,CAAC2E,qBAAqB,EAAE;SAAA;KAC9C,EAAE;QAAC3E,SAAS;QAAE2D,kBAAkB;KAAC,CAAC;IACnC,OAAO3D,SAAS,CAAA;CAChB;;ACxBM,SAASuG,oBAAoB,GAAkC;IACrE,MAAM7X,OAAO,GAAG0X,kBAAkB,EAAE;IACpC,OAAO5c,aAAO,CACb,IAAM,IAAIqX,qBAAqB,CAACnS,OAAO,CAAC;MACxC;QAACA,OAAO;KAAC,CACT,CAAA;CACD;;ACNM,MAAM8X,cAAc;IAOnB7X,SAAS,GAAG;QAClB,MAAM8X,IAAI,GAAG,IAAI,CAACA,IAAI;QACtB,MAAM1X,OAAO,GAAG,IAAI,CAACA,OAAO;QAE5B,IAAIxB,MAAM,GAAa,IAAI;QAC3B,IAAI,OAAOkZ,IAAI,CAAC9Z,IAAI,KAAK,QAAQ,EAAE;YAClCY,MAAM,GAAGkZ,IAAI,CAAC9Z,IAAI;SAClB,MAAM,IAAI,OAAO8Z,IAAI,CAAC9Z,IAAI,KAAK,UAAU,EAAE;YAC3CY,MAAM,GAAG,IAAK,CAACZ,IAAI,CAA0BoC,OAAO,CAAC;SACrD,MAAM;YACNxB,MAAM,GAAG,EAAE;SACX;QACD,OAAOA,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,IAAI,CAAA;KACrB;IAEMoI,OAAO,GAAG;QAChB,MAAM8Q,IAAI,GAAG,IAAI,CAACA,IAAI;QACtB,MAAM1X,OAAO,GAAG,IAAI,CAACA,OAAO;QAC5B,IAAI,OAAO0X,IAAI,CAAC9Q,OAAO,KAAK,SAAS,EAAE;YACtC,OAAO8Q,IAAI,CAAC9Q,OAAO,CAAA;SACnB,MAAM,IAAI,OAAO8Q,IAAI,CAAC9Q,OAAO,KAAK,UAAU,EAAE;YAC9C,OAAO8Q,IAAI,CAAC9Q,OAAO,CAAC5G,OAAO,CAAC,CAAA;SAC5B,MAAM;YACN,OAAO,IAAI,CAAA;SACX;KACD;IAEMgB,UAAU,CAAC2W,aAA8B,EAAE/V,MAAkB,EAAE;QACrE,MAAM8V,IAAI,GAAG,IAAI,CAACA,IAAI;QACtB,MAAM1X,OAAO,GAAG,IAAI,CAACA,OAAO;QAC5B,MAAM,EAAEgB,UAAU,GAAE,GAAG0W,IAAI;QAC3B,OAAO1W,UAAU,GACdA,UAAU,CAAChB,OAAO,CAAC,GACnB4B,MAAM,KAAK+V,aAAa,CAACrV,WAAW,EAAE,CAAA;KACzC;IAEMF,OAAO,GAAG;QAChB,MAAMsV,IAAI,GAAG,IAAI,CAACA,IAAI;QACtB,MAAM1X,OAAO,GAAG,IAAI,CAACA,OAAO;QAC5B,MAAMiR,SAAS,GAAG,IAAI,CAACA,SAAS;QAChC,MAAM,EAAE2G,GAAG,GAAE,GAAGF,IAAI;QACpB,IAAIE,GAAG,EAAE;YACRA,GAAG,CAAC5X,OAAO,CAACmH,OAAO,EAAE,EAAEnH,OAAO,CAAC;SAC/B;QACDiR,SAAS,CAACC,SAAS,EAAE;KACrB;IAnDD,YACQwG,IAAiC,EAChC1X,OAAgC,EAChCiR,SAAoB,CAC3B;aAHMyG,IAAiC,GAAjCA,IAAiC;aAChC1X,OAAgC,GAAhCA,OAAgC;aAChCiR,SAAoB,GAApBA,SAAoB;KACzB;CAgDJ;;ACpDM,SAAS4G,aAAa,CAC5BH,IAAiC,EACjC1X,OAAgC,EAChCiR,SAAoB,EACnB;IACD,MAAMtE,OAAO,GAAGlS,aAAO,CACtB,IAAM,IAAIgd,cAAc,CAACC,IAAI,EAAE1X,OAAO,EAAEiR,SAAS,CAAC;MAClD;QAACjR,OAAO;QAAEiR,SAAS;KAAC,CACpB;IACDzB,eAAS,CAAC,IAAM;QACf7C,OAAO,CAAC+K,IAAI,GAAGA,IAAI;KACnB,EAAE;QAACA,IAAI;KAAC,CAAC;IACV,OAAO/K,OAAO,CAAA;CACd;;ACdM,SAASmL,WAAW,CAC1BJ,IAAuC,EAC1B;IACb,OAAOjd,aAAO,CAAC,IAAM;QACpB,MAAM+D,MAAM,GAAekZ,IAAI,CAACnY,IAAI;QACpClD,SAAS,CAACmC,MAAM,IAAI,IAAI,EAAE,2BAA2B,CAAC;QACtD,OAAOA,MAAM,CAAA;KACb,EAAE;QAACkZ,IAAI;KAAC,CAAC,CAAA;CACV;;ACLM,SAASK,uBAAuB,CACtCL,IAAiC,EACjC1X,OAAgC,EAChCiR,SAA0B,EACnB;IACP,MAAMtR,OAAO,GAAG0X,kBAAkB,EAAE;IACpC,MAAM1K,OAAO,GAAGkL,aAAa,CAACH,IAAI,EAAE1X,OAAO,EAAEiR,SAAS,CAAC;IACvD,MAAMpQ,QAAQ,GAAGiX,WAAW,CAACJ,IAAI,CAAC;IAElC3H,yBAAyB,CACxB,SAASiI,kBAAkB,GAAG;QAC7B,IAAInX,QAAQ,IAAI,IAAI,EAAE;YACrB,MAAM,CAACqL,SAAS,EAAE+L,UAAU,CAAC,GAAG5F,cAAc,CAC7CxR,QAAQ,EACR8L,OAAO,EACPhN,OAAO,CACP;YACDK,OAAO,CAACkY,gBAAgB,CAAChM,SAAS,CAAC;YACnC+E,SAAS,CAACiH,gBAAgB,CAAChM,SAAS,CAAC;YACrC,OAAO+L,UAAU,CAAA;SACjB;QACD,OAAM;KACN,EACD;QAACtY,OAAO;QAAEK,OAAO;QAAEiR,SAAS;QAAEtE,OAAO;QAAE9L,QAAQ;KAAC,CAChD;CACD;;ACpBD;;;;IAKA,AAAO,SAASsX,OAAO,CAKtBC,OAEC,EACD/G,IAAgB,EAC0C;IAC1D,MAAMqG,IAAI,GAAGvG,kBAAkB,CAACiH,OAAO,EAAE/G,IAAI,CAAC;IAC9ChV,SAAS,CACR,CAAEqb,IAAI,CAASW,KAAK,EACpB,CAAC,2JAA2J,CAAC,CAC7J;IAED,MAAMrY,OAAO,GAAGwX,oBAAoB,EAA0B;IAC9D,MAAMvG,SAAS,GAAGsG,sBAAsB,CAACG,IAAI,CAACtiB,OAAO,EAAEsiB,IAAI,CAACY,cAAc,CAAC;IAC3EP,uBAAuB,CAACL,IAAI,EAAE1X,OAAO,EAAEiR,SAAS,CAAC;IAEjD,OAAO;QACNF,iBAAiB,CAAC2G,IAAI,CAACxH,OAAO,EAAElQ,OAAO,EAAEiR,SAAS,CAAC;QACnDM,oBAAoB,CAACN,SAAS,CAAC;QAC/BS,qBAAqB,CAACT,SAAS,CAAC;KAChC,CAAA;CACD;;ACxCM,SAASsH,oBAAoB,CAACtH,SAA0B,EAAE;IAChE,OAAOxW,aAAO,CAAC,IAAMwW,SAAS,CAACO,KAAK,CAACgF,UAAU,EAAE;MAAE;QAACvF,SAAS;KAAC,CAAC,CAAA;CAC/D;;ACCM,SAASuH,sBAAsB,CACrCpjB,OAA0B,EACR;IAClB,MAAMuK,OAAO,GAAG0X,kBAAkB,EAAE;IACpC,MAAMpG,SAAS,GAAGxW,aAAO,CACxB,IAAM,IAAI8b,eAAe,CAAC5W,OAAO,CAACoE,UAAU,EAAE,CAAC;MAC/C;QAACpE,OAAO;KAAC,CACT;IACDoQ,yBAAyB,CAAC,IAAM;QAC/BkB,SAAS,CAAC6F,iBAAiB,GAAG1hB,OAAO,IAAI,IAAI;QAC7C6b,SAAS,CAACC,SAAS,EAAE;QACrB,OAAO,IAAMD,SAAS,CAAC0F,oBAAoB,EAAE;SAAA;KAC7C,EAAE;QAACvhB,OAAO;KAAC,CAAC;IACb,OAAO6b,SAAS,CAAA;CAChB;;ACfM,SAASwH,oBAAoB,GAAkC;IACrE,MAAM9Y,OAAO,GAAG0X,kBAAkB,EAAE;IACpC,OAAO5c,aAAO,CAAC,IAAM,IAAI0X,qBAAqB,CAACxS,OAAO,CAAC;MAAE;QAACA,OAAO;KAAC,CAAC,CAAA;CACnE;;ACHD;;;;IAKA,AAAO,SAAS+Y,SAAS,CACxBhB,IAAiC,EAClB;IACf,MAAM,EAAEiB,MAAM,GAAE,GAAGjB,IAAI;IACvB,OAAOjd,aAAO,CAAC,IAAM;QACpB4B,SAAS,CAACqb,IAAI,CAACiB,MAAM,IAAI,IAAI,EAAE,wBAAwB,CAAC;QACxD,OAAOhW,KAAK,CAACC,OAAO,CAAC+V,MAAM,CAAC,GAAGA,MAAM,GAAG;YAACA,MAAM;SAAC,CAAA;KAChD,EAAE;QAACA,MAAM;KAAC,CAAC,CAAA;CACZ;;ACdM,MAAMC,cAAc;IAMnB/R,OAAO,GAAG;QAChB,MAAM6Q,IAAI,GAAG,IAAI,CAACA,IAAI;QACtB,MAAM1X,OAAO,GAAG,IAAI,CAACA,OAAO;QAC5B,OAAO0X,IAAI,CAAC7Q,OAAO,GAAG6Q,IAAI,CAAC7Q,OAAO,CAAC7G,OAAO,CAACmH,OAAO,EAAE,EAAEnH,OAAO,CAAC,GAAG,IAAI,CAAA;KACrE;IAEM+C,KAAK,GAAG;QACd,MAAM2U,IAAI,GAAG,IAAI,CAACA,IAAI;QACtB,MAAM1X,OAAO,GAAG,IAAI,CAACA,OAAO;QAC5B,IAAI0X,IAAI,CAAC3U,KAAK,EAAE;YACf2U,IAAI,CAAC3U,KAAK,CAAC/C,OAAO,CAACmH,OAAO,EAAE,EAAEnH,OAAO,CAAC;SACtC;KACD;IAEMoB,IAAI,GAAG;QACb,MAAMsW,IAAI,GAAG,IAAI,CAACA,IAAI;QACtB,MAAM1X,OAAO,GAAG,IAAI,CAACA,OAAO;QAC5B,IAAI0X,IAAI,CAACtW,IAAI,EAAE;YACd,OAAOsW,IAAI,CAACtW,IAAI,CAACpB,OAAO,CAACmH,OAAO,EAAE,EAAEnH,OAAO,CAAC,CAAA;SAC5C;QACD,OAAM;KACN;IA1BD,YACQ0X,IAAiC,EAChC1X,OAAgC,CACvC;aAFM0X,IAAiC,GAAjCA,IAAiC;aAChC1X,OAAgC,GAAhCA,OAAgC;KACrC;CAwBJ;;AC3BM,SAAS6Y,aAAa,CAC5BnB,IAAiC,EACjC1X,OAAgC,EAC/B;IACD,MAAMwW,UAAU,GAAG/b,aAAO,CAAC,IAAM,IAAIme,cAAc,CAAClB,IAAI,EAAE1X,OAAO,CAAC;MAAE;QAACA,OAAO;KAAC,CAAC;IAC9EwP,eAAS,CAAC,IAAM;QACfgH,UAAU,CAACkB,IAAI,GAAGA,IAAI;KACtB,EAAE;QAACA,IAAI;KAAC,CAAC;IACV,OAAOlB,UAAU,CAAA;CACjB;;ACNM,SAASsC,uBAAuB,CACtCpB,IAAiC,EACjC1X,OAAgC,EAChCiR,SAA0B,EACnB;IACP,MAAMtR,OAAO,GAAG0X,kBAAkB,EAAE;IACpC,MAAMb,UAAU,GAAGqC,aAAa,CAACnB,IAAI,EAAE1X,OAAO,CAAC;IAC/C,MAAM2Y,MAAM,GAAGD,SAAS,CAAChB,IAAI,CAAC;IAE9B3H,yBAAyB,CACxB,SAASgJ,kBAAkB,GAAG;QAC7B,MAAM,CAAC7M,SAAS,EAAE+L,UAAU,CAAC,GAAG7F,cAAc,CAC7CuG,MAAM,EACNnC,UAAU,EACV7W,OAAO,CACP;QACDK,OAAO,CAACkY,gBAAgB,CAAChM,SAAS,CAAC;QACnC+E,SAAS,CAACiH,gBAAgB,CAAChM,SAAS,CAAC;QACrC,OAAO+L,UAAU,CAAA;KACjB,EACD;QACCtY,OAAO;QACPK,OAAO;QACPwW,UAAU;QACVvF,SAAS;QACT0H,MAAM,CAAC9c,GAAG,CAAC,CAAC2B,CAAC,GAAKA,CAAC,CAACpF,QAAQ,EAAE;SAAC,CAAC4gB,IAAI,CAAC,GAAG,CAAC;KACzC,CACD;CACD;;AC5BD;;;;IAKA,AAAO,SAASC,OAAO,CAKtBb,OAEC,EACD/G,IAAgB,EACsB;IACtC,MAAMqG,IAAI,GAAGvG,kBAAkB,CAACiH,OAAO,EAAE/G,IAAI,CAAC;IAC9C,MAAMrR,OAAO,GAAGyY,oBAAoB,EAA0B;IAC9D,MAAMxH,SAAS,GAAGuH,sBAAsB,CAACd,IAAI,CAACtiB,OAAO,CAAC;IACtD0jB,uBAAuB,CAACpB,IAAI,EAAE1X,OAAO,EAAEiR,SAAS,CAAC;IAEjD,OAAO;QACNF,iBAAiB,CAAC2G,IAAI,CAACxH,OAAO,EAAElQ,OAAO,EAAEiR,SAAS,CAAC;QACnDsH,oBAAoB,CAACtH,SAAS,CAAC;KAC/B,CAAA;CACD;;ACxBM,IAAMiI,wBAAwB,GAAc,SAAtCA,wBAAsC;MAAG7e,cAAAA;MAAQtF,gBAAAA;EAC5D,wBAKIA,QALJ,CACEK,OADF;MAEatB,WAFb,qBAEIuB,KAFJ,CAEavB,WAFb;MAGIwB,YAHJ,qBAGIA,YAHJ;;EAOA,IAAM6jB,eAAe,GAAG,SAAlBA,eAAkB,CAACC,YAAD;IACtB/e,MAAM,CAACgf,GAAP,CAAWD,YAAX;GADF;;EAIA,OACEvjB,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAE;MAAEijB,QAAQ,EAAE,MAAZ;MAAoBC,SAAS,EAAE;;GAAxC,EACGnf,MAAM,CAACof,WAAP,KACC5jB,4BAAA,CAACC,gBAAD;IAASC,KAAK;IAACG,KAAK,EAAEZ,YAAY,CAACxE;GAAnC,EACE+E,4BAAA,CAACM,mBAAD;IAAYE,OAAO,EAAE;MAAA,OAAM8iB,eAAe,CAAC,KAAD,CAArB;;IAA8BO,IAAI,EAAC;GAAxD,EACE7jB,4BAAA,CAAC/B,WAAD,MAAA,CADF,CADF,CADD,GAOC+B,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAACC,gBAAD;IAASC,KAAK;IAACG,KAAK,EAAEZ,YAAY,CAACnG;GAAnC,EACE0G,4BAAA,CAACM,mBAAD;IAAYE,OAAO,EAAE;MAAA,OAAM8iB,eAAe,CAAC,MAAD,CAArB;;IAA+BO,IAAI,EAAC;GAAzD,EACE7jB,4BAAA,CAAC/B,WAAD;IACE2C,KAAK,EAAE;MACLC,SAAS,EAAE;;GAFf,CADF,CADF,CADF,EAUEb,4BAAA,CAACC,gBAAD;IAASC,KAAK;IAACG,KAAK,EAAEZ,YAAY,CAAClG;GAAnC,EACEyG,4BAAA,CAACM,mBAAD;IAAYE,OAAO,EAAE;MAAA,OAAM8iB,eAAe,CAAC,OAAD,CAArB;;IAAgCO,IAAI,EAAC;GAA1D,EACE7jB,4BAAA,CAAC/B,WAAD;IACE2C,KAAK,EAAE;MACLC,SAAS,EAAE;;GAFf,CADF,CADF,CAVF,CARJ,CADF;AAgCD,CA5CM;;ACAA,IAAMijB,oBAAoB,gBAAcC,gBAAU,CACvD,gBAAe/F,GAAf;MAAG9e,gBAAAA;EACD,wBAKIA,QALJ,CACEK,OADF;MAEalD,cAFb,qBAEImD,KAFJ,CAEanD,cAFb;MAGIoD,YAHJ,qBAGIA,YAHJ;EAOA,OACEO,4BAAA,CAACC,gBAAD;IACEC,KAAK;IACLC,UAAU,EAAE;IACZC,cAAc,EAAE;IAChB4jB,SAAS,EAAC;IACV3jB,KAAK,EAAEZ,YAAY,CAAC1G;GALtB,EAOEiH,4BAAA,CAACM,mBAAD;IACE2jB,aAAa;IACbjG,GAAG,EAAEA;IACL6F,IAAI,EAAC;IACLpjB,EAAE,EAAE;MACFyjB,MAAM,EAAE,MADN;MAEFC,CAAC,EAAE,CAFD;MAGFC,OAAO,EAAE,GAHP;MAIFC,CAAC,EAAE,KAJD;MAKFvjB,UAAU,EAAE,sBALV;MAMF,WAAW;QACTwjB,eAAe,EAAE,aADR;QAETF,OAAO,EAAE;OART;MAUF,YAAY;QACVF,MAAM,EAAE;;;GAfd,EAmBElkB,4BAAA,CAAC3D,cAAD,MAAA,CAnBF,CAPF,CADF;AA+BD,CAxCsD,CAAlD;;ACAA,IAAMkoB,oBAAoB,GAAG,SAAvBA,oBAAuB,CAClCC,OADkC;EAGlC,IAAIC,kBAAkB,GAAoBD,OAA1C;EACA,IAAIE,WAAW,GAAgCF,OAA/C;;EACA,OAAO,CAAC,kBAACE,WAAD,aAAC,aAAatZ,MAAd,CAAD,IAAyBsZ,WAAW,CAAC1X,IAAZ,CAAiB,UAAC2X,GAAD;IAAA,OAASA,GAAG,CAACH,OAAb;GAAjB,CAAhC,EAAwE;IAAA;;IACtE,IAAMI,QAAQ,GAAoBF,WAAW,CAC1Czf,MAD+B,CACxB,UAAC0f,GAAD;MAAA,OAAS,CAAC,CAACA,GAAG,CAACH,OAAf;KADwB,EAE/Bxe,GAF+B,CAE3B,UAAC2e,GAAD;MAAA,OAASA,GAAG,CAACH,OAAb;KAF2B,EAG/BK,IAH+B,EAAlC;;IAIA,IAAID,QAAQ,CAACE,KAAT,CAAe,UAACH,GAAD;MAAA,OAAS,EAACA,GAAD,YAACA,GAAG,CAAEH,OAAN,CAAT;KAAf,CAAJ,EAA4C;MAC1CC,kBAAkB,aAAOA,kBAAP,EAA8BG,QAA9B,CAAlB;;;IAEFF,WAAW,GAAGE,QAAd;;;EAEF,OAAOH,kBAAkB,CAACxf,MAAnB,CAA0B,UAAC0f,GAAD;IAAA,OAAS,CAACA,GAAG,CAACH,OAAd;GAA1B,CAAP;AACD,CAhBM;AAkBP,AAAO,IAAMO,WAAW,GAAG,SAAdA,WAAc,CACzBC,KADyB,EAEzBxgB,MAFyB,EAGzBF,gBAHyB;EAAA;;EAAA,OAKzB0gB,KAAK,CAACD,WAAN,cACKvgB,MADL;IAEEggB,OAAO,EAAEhgB,MAAF,uCAAEA,MAAM,CAAEggB,OAAV,qBAAE,gBAAiBxe,GAAnB,oBAAE,gBAAiBA,GAAjB,CAAuB,UAAC2e,GAAD;MAAA,OAC9BA,GAAG,CAACH,OAAJ,GACIO,WAAW,CAAIC,KAAJ,EAAWL,GAAX,EAAgBrgB,gBAAhB,CADf,GAEI2gB,gBAAgB,CAACD,KAAD,EAAQL,GAAR,EAAargB,gBAAb,CAHU;KAAvB;KAPc;AAAA,CAApB;AAcP,AAAO,IAAM2gB,gBAAgB,GAAG,SAAnBA,gBAAmB,CAC9BD,KAD8B,EAE9BxgB,MAF8B,EAG9BF,gBAH8B;EAAA;IAK9B0gB,KAAK,CAACC,gBAAN,CAAuBzgB,MAAM,CAAClC,EAA9B;MACE4iB,QAAQ,EACN5gB,gBAAgB,CAACE,MAAM,CAAClC,EAAR,CAAhB,YAAuCvC,QAAvC,GACIuE,gBAAgB,CAACE,MAAM,CAAClC,EAAR,CADpB;MAGIkB,aAAa,CAACc,gBAAgB,CAACE,MAAM,CAAClC,EAAR,CAAjB;OAChBkC,MANL;;AAL8B,CAAzB;AAcP,AAAO,IAAM2gB,mBAAmB,GAAG,SAAtBA,mBAAsB,CACjCH,KADiC,EAEjCxgB,MAFiC;EAAA,OAGhBwgB,KAAK,CAACG,mBAAN,CAA0B3gB,MAA1B,CAHgB;AAAA,CAA5B;AAKP,AAAO,IAAM4gB,aAAa,GAAG,SAAhBA,aAAgB,CAC3BC,YAD2B,EAE3BC,eAF2B,EAG3BC,WAH2B;EAK3B,IAAIF,YAAY,CAACG,SAAb,EAAJ,EAA8B;IAC5BH,YAAY,CAAC7B,GAAb,CAAiB8B,eAAe,CAAC1B,WAAhB,EAAjB;;;EAEF2B,WAAW,CAAC3X,MAAZ,CACE2X,WAAW,CAACvc,OAAZ,CAAoBsc,eAAe,CAAChjB,EAApC,CADF,EAEE,CAFF,EAGEijB,WAAW,CAAC3X,MAAZ,CAAmB2X,WAAW,CAACvc,OAAZ,CAAoBqc,YAAY,CAAC/iB,EAAjC,CAAnB,EAAyD,CAAzD,EAA4D,CAA5D,CAHF;EAKA,iBAAWijB,WAAX;AACD,CAdM;AAgBP,AAAO,IAAME,0BAA0B,GAAG,SAA7BA,0BAA6B,CACxCjM,KADwC;EAAA,OAGxC,CACE,CAAEA,KAAK,CAACkM,qBAAN,KAAgC,OAAhC,IAA2ClM,KAAK,CAACmM,gBAAlD,IACEnM,KAAK,CAACoM,aAAN,IAAuBpM,KAAK,CAACqM,WAAN,KAAsB,KADhD,KAEE,iBAHJ,EAIE,CAACrM,KAAK,CAACsM,eAAN,IAAyBtM,KAAK,CAACuM,cAAhC,KAAmD,YAJrD,EAKEvM,KAAK,CAACwM,kBAAN,IAA4B,YAL9B,EAMExM,KAAK,CAACyM,gBAAN,IAA0B,iBAN5B,EAOEhhB,MAPF,CAOSgM,OAPT,CAHwC;AAAA,CAAnC;AAYP,AAAO,IAAMiV,2BAA2B,GAAG,SAA9BA,2BAA8B,CACzC1M,KADyC;EAAA,OAEtC,CACH,CAAEA,KAAK,CAACkM,qBAAN,KAAgC,MAAhC,IAA0ClM,KAAK,CAACmM,gBAAjD,IACEnM,KAAK,CAACoM,aAAN,IAAuBpM,KAAK,CAACqM,WAAN,KAAsB,KADhD,KAEE,iBAHC,CAFsC;AAAA,CAApC;AAQP,AAAO,IAAMM,wBAAwB,GAAG,SAA3BA,wBAA2B,CAAC3M,KAAD;EAAA,OACtC,UACKiM,0BAA0B,CAACjM,KAAD,CAD/B,EAEK+K,oBAAoB,CAAC/K,KAAK,CAACgL,OAAP,CAApB,CAAuDxe,GAAvD,CAA2D,UAAC4B,CAAD;IAAA,OAAOA,CAAC,CAACtF,EAAT;GAA3D,CAFL,EAGK4jB,2BAA2B,CAAC1M,KAAD,CAHhC,EAIEvU,MAJF,CAISgM,OAJT,CADsC;AAAA,CAAjC;;AC1EA,IAAMmV,4BAA4B,GAAc,SAA1CA,4BAA0C;;;MACrDC,kBAAAA;MACA7hB,cAAAA;MACA8hB,iBAAAA;MACApnB,gBAAAA;EAEA,IACEI,QADF,GASIJ,QATJ,CACEI,QADF;0BASIJ,QATJ,CAEEK,OAFF;MAGIgnB,oBAHJ,qBAGIA,oBAHJ;MAIIC,YAJJ,qBAIIA,YAJJ;MAKIC,aALJ,qBAKIA,aALJ;MAMIhnB,YANJ,qBAMIA,YANJ;MAQEinB,cARF,GASIxnB,QATJ,CAQEwnB,cARF;;EAWA,gBAAwBpnB,QAAQ,EAAhC;MAAQimB,WAAR,aAAQA,WAAR;;EAEA,IAAQ9gB,SAAR,GAAqCD,MAArC,CAAQC,SAAR;MAAmBkiB,aAAnB,GAAqCniB,MAArC,CAAmBmiB,aAAnB;;EAEA,eAAoBvD,OAAO,CAAC;IAC1BN,MAAM,EAAE,QADkB;IAE1BvX,IAAI,EAAE,cAAC8Z,YAAD;MACJ,IAAMuB,cAAc,GAAGxB,aAAa,CAACC,YAAD,EAAe7gB,MAAf,EAAuB+gB,WAAvB,CAApC;MACAmB,cAAc,CAACE,cAAD,CAAd;;GAJuB,CAA3B;MAASC,OAAT;;EAQA,eAAgCvE,OAAO,CAAC;IACtCjI,OAAO,EAAE,iBAAClQ,OAAD;MAAA,OAAc;QACrBgB,UAAU,EAAEhB,OAAO,CAACgB,UAAR;OADL;KAD6B;IAItCpD,IAAI,EAAE;MAAA,OAAMvD,MAAN;KAJgC;IAKtCkF,IAAI,EAAE;GAL+B,CAAvC;MAASod,OAAT;MAAkBC,UAAlB;;EAQA,IAAMC,aAAa,GAChBL,aAAa,KAAK,OAAlB,IAA6BniB,MAAM,CAACyiB,YAAP,EAA9B,IACCN,aAAa,KAAK,OAAlB,IACCniB,MAAM,CAAC0iB,cAAP,GAAwBla,IAAxB,CAA6B,UAAC2X,GAAD;IAAA,OAASA,GAAG,CAACsC,YAAJ,EAAT;GAA7B,CAHJ;;EAKA,IAAME,wBAAwB,GAAG,SAA3BA,wBAA2B,CAAC3iB,MAAD;IAC/B,IAAImiB,aAAa,KAAK,OAAtB,EAA+B;MAAA;;MAC7BniB,MAAM,QAAN,+BAAAA,MAAM,CAAEggB,OAAR,qCAAiB9b,OAAjB,oCAAiBA,OAAjB,CAA2B,UAAC0e,WAAD;QACzBA,WAAW,CAACrsB,gBAAZ,CAA6B,CAACisB,aAA9B;OADF;KADF,MAIO;MACLxiB,MAAM,CAACzJ,gBAAP;;GANJ;;EAUA,OACEiF,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAACkG,iBAAD;IACE8X,GAAG,EAAE2I,aAAa,KAAK,MAAlB,GAA2BE,OAA3B,GAAqCzjB;IAC1C3C,EAAE,EAAE;MACFmD,UAAU,EAAE,QADV;MAEFyjB,cAAc,EAAE,YAFd;MAGF1jB,EAAE,EAAE,CAHF;MAIF2jB,EAAE,EAAK,CAAC9iB,MAAM,CAAC+iB,KAAP,GAAe,GAAhB,IAAuB,CAA5B,QAJA;MAKF7jB,EAAE,EAAE;;GAPR,EAUE1D,4BAAA,CAACyjB,YAAD;IACEzF,GAAG,EAAE+I;IACLtmB,EAAE,EAAE;MACF+mB,OAAO,EAAE,MADP;MAEFC,QAAQ,EAAE,QAFR;MAGFC,GAAG,EAAE;;GALT,EAQGf,aAAa,KAAK,OAAlB,IACCJ,oBADD,IAEC,CAACF,UAAU,CAACrZ,IAAX,CAAgB,UAAC2X,GAAD;IAAA,OAASA,GAAG,CAACgC,aAAJ,KAAsB,OAA/B;GAAhB,CAFF,KAGEliB,SAAS,CAAC8hB,oBAAV,KAAmC,KAAnC,GACCvmB,4BAAA,CAAC8jB,oBAAD;IACE9F,GAAG,EAAE8I;IACL5nB,QAAQ,EAAEA;GAFZ,CADD,GAMCc,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAE;MAAEE,KAAK,EAAE;;GAAlB,CATH,CARH,EAmBG8lB,aAAa,IACZ,CAACH,SADF,KAEE9hB,MAAM,CAACghB,SAAP,KACCxlB,4BAAA,CAACqjB,wBAAD;IAA0B7e,MAAM,EAAEA;IAAQtF,QAAQ,EAAEA;GAApD,CADD,GAGCc,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAE;MAAEE,KAAK,EAAE;;GAAlB,CALH,CAnBH,EA0BG6lB,YAAY,GACXxmB,4BAAA,CAAC2nB,yBAAD;IACEC,eAAe,EAAE;MACfC,UAAU,EAAE;QACVpnB,EAAE,EAAE;UACFqnB,EAAE,EAAE,CADF;UAEF1D,OAAO,EAAEuC,aAAa,KAAK,SAAlB,GAA8B,CAA9B,GAAkC;;;;IAIjDoB,OAAO,EAAEf;IACTgB,OAAO,EACLhoB,4BAAA,CAACC,gBAAD;MACEC,KAAK;MACLC,UAAU,EAAE;MACZC,cAAc,EAAE;MAChBC,KAAK,EAAEZ,YAAY,CAAC1E;KAJtB,EAMEiF,4BAAA,CAACioB,eAAD,MAAA,CANF;IASF1nB,QAAQ,EACL+lB,SAAS,IAAIU,aAAd,IACA,CAACxiB,MAAM,CAAC0jB,UAAP,EADD,IAEA1jB,MAAM,CAAC2jB,YAAP;IAEFrjB,KAAK,EAAEL,SAAS,CAACV;IACjBqkB,QAAQ,EAAE;MAAA,OAAMjB,wBAAwB,CAAC3iB,MAAD,CAA9B;;GA1BZ,CADW,GA8BXxE,4BAAA,CAACqoB,mBAAD;IAAY5nB,EAAE,EAAE;MAAE6nB,SAAS,EAAE;;GAA7B,EACG7jB,SAAS,CAACV,MADb,CAxDJ,CAVF,CADF,sBAyEGS,MAAM,CAACggB,OAzEV,qBAyEG,iBAAgBxe,GAAhB,CAAoB,UAAC4B,CAAD,EAAgBI,CAAhB;IAAA,OACnBhI,4BAAA,CAAComB,4BAAD;MACEC,UAAU,EAAEA;MACZlgB,GAAG,EAAK6B,CAAL,SAAUJ,CAAC,CAACtF;MACfkC,MAAM,EAAEoD;MACR0e,SAAS,EAAEA;MACXpnB,QAAQ,EAAEA;KALZ,CADmB;GAApB,CAzEH,CADF;AAqFD,CAzIM;;ACTA,IAAMqpB,uBAAuB,GAAc,SAArCA,uBAAqC;MAChDzkB,gBAAAA;MACAwiB,iBAAAA;MACAriB,mBAAAA;MACA/E,gBAAAA;EAEA,IACEspB,aADF,GAYItpB,QAZJ,CACEspB,aADF;MAEEC,iBAFF,GAYIvpB,QAZJ,CAEEupB,iBAFF;MAGEC,oBAHF,GAYIxpB,QAZJ,CAGEwpB,oBAHF;MAIEC,sBAJF,GAYIzpB,QAZJ,CAIEypB,sBAJF;MAKEC,sBALF,GAYI1pB,QAZJ,CAKE0pB,sBALF;MAMEC,uBANF,GAYI3pB,QAZJ,CAME2pB,uBANF;MAOEC,kBAPF,GAYI5pB,QAZJ,CAOE4pB,kBAPF;MAQEC,mBARF,GAYI7pB,QAZJ,CAQE6pB,mBARF;MASEzpB,QATF,GAYIJ,QAZJ,CASEI,QATF;MAUE0pB,uBAVF,GAYI9pB,QAZJ,CAUE8pB,uBAVF;0BAYI9pB,QAZJ,CAWEK,OAXF;MAWaE,YAXb,qBAWaA,YAXb;MAW2BgnB,aAX3B,qBAW2BA,aAX3B;MAW0CF,oBAX1C,qBAW0CA,oBAX1C;;EAcA,gBAAgDjnB,QAAQ,EAAxD;MAAQO,OAAR,aAAQA,OAAR;MAAiB0lB,WAAjB,aAAiBA,WAAjB;MAA8B0D,aAA9B,aAA8BA,aAA9B;;EAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB;IACrBT,iBAAiB,GACdxjB,MADH,CACU,UAAC0f,GAAD;MAAA,OAASA,GAAG,CAAClgB,SAAJ,CAAc+hB,YAAd,KAA+B,KAAxC;KADV,EAEG9d,OAFH,CAEW,UAACic,GAAD;MAAA,OAASA,GAAG,CAAC5pB,gBAAJ,CAAqB,KAArB,CAAT;KAFX;GADF;;EAMA,IAAMsrB,UAAU,GAAGzhB,aAAO,CAAC;IACzB,IAAM4f,OAAO,GAAGgE,aAAa,EAA7B;;IACA,IACEjD,WAAW,CAACna,MAAZ,GAAqB,CAArB,IACA,CAACoZ,OAAO,CAACxX,IAAR,CAAa,UAAC2X,GAAD;MAAA,OAASA,GAAG,CAACgC,aAAJ,KAAsB,OAA/B;KAAb,CAFH,EAGE;MACA,OAAO,UACFmC,kBAAkB,EADhB,EAEFhc,KAAK,CAACqc,IAAN,CAAW,IAAIC,GAAJ,CAAQ7D,WAAR,CAAX,EAAiCvf,GAAjC,CAAqC,UAACqjB,KAAD;QAAA,OACtCX,oBAAoB,GAAGY,IAAvB,CAA4B,UAAC3E,GAAD;UAAA,OAAS,CAAAA,GAAG,QAAH,YAAAA,GAAG,CAAEriB,EAAL,MAAY+mB,KAArB;SAA5B,CADsC;OAArC,CAFE,EAKFN,mBAAmB,EALjB,EAML9jB,MANK,CAMEgM,OANF,CAAP;;;IAQF,OAAOuT,OAAP;GAdwB,EAevB,CACDe,WADC,EAED0D,aAFC,EAGDT,aAAa,EAHZ,EAIDE,oBAAoB,EAJnB,EAKDI,kBAAkB,EALjB,EAMDC,mBAAmB,EANlB,CAfuB,CAA1B;EAwBA,OACE/oB,4BAAA,CAACwF,aAAD;IACE1B,QAAQ,EAAEA;IACV+B,IAAI,EAAE,CAAC,CAAC/B;IACR8B,OAAO,EAAE;MAAA,OAAM3B,WAAW,CAAC,IAAD,CAAjB;;IACT6B,aAAa,EAAE;MACbC,KAAK,EAAElG,OAAO,KAAK;;GALvB,EAQEG,4BAAA,CAACyjB,YAAD;IACEhjB,EAAE,EAAE;MACF+mB,OAAO,EAAE,MADP;MAEFH,cAAc,EAAEf,SAAS,GAAG,QAAH,GAAc,eAFrC;MAGFjC,CAAC,EAAE,QAHD;MAIFkF,EAAE,EAAE;;GALR,EAQG,CAACjD,SAAD,IACCtmB,4BAAA,CAACwpB,eAAD;IACEjpB,QAAQ,EAAE,CAACsoB,uBAAuB;IAClCroB,OAAO,EAAE0oB;GAFX,EAIGzpB,YAAY,CAACvG,OAJhB,CATJ,EAgBG,CAACotB,SAAD,IAAcC,oBAAd,IACCvmB,4BAAA,CAACwpB,eAAD;IACEhpB,OAAO,EAAE;MAAA,OACPtB,QAAQ,CAACwnB,cAAT,CACEP,wBAAwB,CAACjnB,QAAQ,CAACK,OAAV,CAD1B,CADO;;GADX,EAOGE,YAAY,CAAChG,UAPhB,CAjBJ,EA2BG,CAAC6sB,SAAD,IAAcG,aAAd,IACCzmB,4BAAA,CAACwpB,eAAD;IACEjpB,QAAQ,EAAE,CAACqoB,sBAAsB;IACjCpoB,OAAO,EAAE;MAAA,OAAMtB,QAAQ,CAACuqB,kBAAT,CAA4B,IAA5B,CAAN;;GAFX,EAIGhqB,YAAY,CAACvE,QAJhB,CA5BJ,EAmCE8E,4BAAA,CAACwpB,eAAD;IACEjpB,QAAQ,EAAEooB,sBAAsB;IAChCnoB,OAAO,EAAE;MAAA,OAAMwoB,uBAAuB,CAAC,IAAD,CAA7B;;GAFX,EAIGvpB,YAAY,CAACxF,OAJhB,CAnCF,CARF,EAkDE+F,4BAAA,CAAC0pB,gBAAD,MAAA,CAlDF,EAmDGrD,UAAU,CAACrgB,GAAX,CAAe,UAACxB,MAAD,EAASyB,KAAT;IAAA,OACdjG,4BAAA,CAAComB,4BAAD;MACEC,UAAU,EAAEA;MACZ7hB,MAAM,EAAEA;MACR8hB,SAAS,EAAEA;MACXngB,GAAG,EAAKF,KAAL,SAAczB,MAAM,CAAClC;MACxBpD,QAAQ,EAAEA;KALZ,CADc;GAAf,CAnDH,CADF;AA+DD,CAnHM;;ACPA,IAAMuE,sBAAoB,GAAG;EAClCC,EAAE,EAAE,KAD8B;EAElCC,EAAE,EAAE,CAF8B;EAGlC0jB,cAAc,EAAE,eAHkB;EAIlCzjB,UAAU,EAAE;AAJsB,CAA7B;AAOP,AAAO,IAAM+lB,oBAAoB,GAAG;EAClCnC,OAAO,EAAE,MADyB;EAElC5jB,UAAU,EAAE;AAFsB,CAA7B;AAYP,AAAO,IAAMgmB,oBAAoB,GAAc,SAAlCA,oBAAkC;;;MAC7C9lB,gBAAAA;MACAC,cAAAA;MACAE,mBAAAA;MACA/E,gBAAAA;EAEA,IACEI,QADF,GA6BIJ,QA7BJ,CACEI,QADF;MAEE0pB,uBAFF,GA6BI9pB,QA7BJ,CAEE8pB,uBAFF;MAGEtC,cAHF,GA6BIxnB,QA7BJ,CAGEwnB,cAHF;0BA6BIxnB,QA7BJ,CAIEK,OAJF;MAKIsqB,4BALJ,qBAKIA,4BALJ;MAMIC,mBANJ,qBAMIA,mBANJ;MAOIC,oBAPJ,qBAOIA,oBAPJ;MAQIhE,cARJ,qBAQIA,cARJ;MASIS,YATJ,qBASIA,YATJ;MAUIC,aAVJ,qBAUIA,aAVJ;MAWIuD,aAXJ,qBAWIA,aAXJ;MAYI7lB,0BAZJ,qBAYIA,0BAZJ;gDAaI3E,KAbJ;MAcMnE,cAdN,yBAcMA,cAdN;MAeMM,YAfN,yBAeMA,YAfN;MAgBMkD,cAhBN,yBAgBMA,cAhBN;MAiBMtC,eAjBN,yBAiBMA,eAjBN;MAkBMY,cAlBN,yBAkBMA,cAlBN;MAmBME,iBAnBN,yBAmBMA,iBAnBN;MAoBMY,WApBN,yBAoBMA,WApBN;MAqBMU,QArBN,yBAqBMA,QArBN;MAsBMR,cAtBN,yBAsBMA,cAtBN;MAuBMY,iBAvBN,yBAuBMA,iBAvBN;MAyBIkrB,OAzBJ,qBAyBIA,OAzBJ;MA0BIxqB,YA1BJ,qBA0BIA,YA1BJ;MA4BEyqB,cA5BF,GA6BIhrB,QA7BJ,CA4BEgrB,cA5BF;EA+BA,IAAQ1lB,MAAR,GAAmBT,MAAnB,CAAQS,MAAR;EAEA,IAAQC,SAAR,GAAsBD,MAAtB,CAAQC,SAAR;;EAEA,gBAAoDnF,QAAQ,EAA5D;MAAQ6qB,YAAR,aAAQA,YAAR;MAAsBC,gBAAtB,aAAsBA,gBAAtB;MAAwCvqB,OAAxC,aAAwCA,OAAxC;;EAEA,gBACE4a,cAAQ,CAAqB,IAArB,CADV;MAAO4P,kBAAP;MAA2BC,qBAA3B;;EAGA,iBACE7P,cAAQ,CAAqB,IAArB,CADV;MAAO8P,2BAAP;MAAoCC,8BAApC;;EAGA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB;IACtBjmB,MAAM,CAACkmB,YAAP;IACAzmB,WAAW,CAAC,IAAD,CAAX;GAFF;;EAKA,IAAM0mB,aAAa,GAAG,SAAhBA,aAAgB;IACpBnmB,MAAM,CAAComB,aAAP,CAAqB,KAArB;IACA3mB,WAAW,CAAC,IAAD,CAAX;GAFF;;EAKA,IAAM4mB,cAAc,GAAG,SAAjBA,cAAiB;IACrBrmB,MAAM,CAAComB,aAAP,CAAqB,IAArB;IACA3mB,WAAW,CAAC,IAAD,CAAX;GAFF;;EAKA,IAAM6mB,qBAAqB,GAAG,SAAxBA,qBAAwB;IAC5BtmB,MAAM,CAACumB,SAAP;IACA9mB,WAAW,CAAC,IAAD,CAAX;GAFF;;EAKA,IAAM+mB,gBAAgB,GAAG,SAAnBA,gBAAmB;IACvBxmB,MAAM,CAACzJ,gBAAP,CAAwB,KAAxB;IACAkJ,WAAW,CAAC,IAAD,CAAX;GAFF;;EAKA,IAAMqf,eAAe,GAAG,SAAlBA,eAAkB,CAACC,YAAD;IACtB/e,MAAM,CAACgf,GAAP,CAAWD,YAAX;IACAtf,WAAW,CAAC,IAAD,CAAX;GAFF;;EAKA,IAAMgnB,mBAAmB,GAAG,SAAtBA,mBAAsB;IAC1BzmB,MAAM,CAAC0mB,cAAP;IACAxE,cAAc,CAAC,UAACyE,GAAD;MAAA,QAAU,YAAV,SAA2BA,GAA3B;KAAD,CAAd;IACAlnB,WAAW,CAAC,IAAD,CAAX;GAHF;;EAMA,IAAMmnB,iBAAiB,GAAG,SAApBA,iBAAoB;IACxB5mB,MAAM,CAACc,cAAP,CAAsB,EAAtB;IACArB,WAAW,CAAC,IAAD,CAAX;GAFF;;EAKA,IAAMonB,oBAAoB,GAAG,SAAvBA,oBAAuB;IAC3BnB,cAAc,CAAC,IAAD,CAAd;IACA9X,UAAU,CACR;MAAA;;MAAA,gCACEU,QAAQ,CACLwY,cADH;MAAA,mDAGIvnB,MAAM,CAACwnB,oCAHX,qBAGI,uBAA6CjpB,EAHjD,6CAIa2nB,OAJb,SAIwBlmB,MAAM,CAACzB,EAJ/B,wBADF,qBACE,sBAMIkpB,KANJ,EADF;KADQ,EASR,GATQ,CAAV;IAWAvnB,WAAW,CAAC,IAAD,CAAX;GAbF;;EAgBA,IAAMwnB,oBAAoB,GAAG,SAAvBA,oBAAuB;IAC3BzC,uBAAuB,CAAC,IAAD,CAAvB;IACA/kB,WAAW,CAAC,IAAD,CAAX;GAFF;;EAKA,IAAMynB,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACtqB,KAAD;IAC/BA,KAAK,CAACuqB,eAAN;IACArB,qBAAqB,CAAClpB,KAAK,CAACwqB,aAAP,CAArB;GAFF;;EAKA,IAAMC,6BAA6B,GAAG,SAAhCA,6BAAgC,CACpCzqB,KADoC;IAGpCA,KAAK,CAACuqB,eAAN;IACAnB,8BAA8B,CAACppB,KAAK,CAACwqB,aAAP,CAA9B;GAJF;;EAOA,IAAME,cAAc,GAAG,CAAC,CAACrnB,SAAS,CAACsnB,mBAAnC;EAEA,IAAMrnB,0BAA0B,4BAC9BD,SAD8B,oBAC9BA,SAAS,CAAEN,0BADmB,oCACWA,0BAD3C;EAGA,IAAM6nB,qBAAqB,GACzBnC,4BAA4B,IAC5BplB,SAAS,CAAColB,4BAAV,KAA2C,KAD3C,IAEA,CAACiC,cAFD,KAGCpnB,0BAA0B,KAAKtB,SAA/B,IACC,CAAC,EAACsB,0BAAD,YAACA,0BAA0B,CAAE0G,MAA7B,CAJH,CADF;EAOA,OACEpL,4BAAA,CAACwF,aAAD;IACE1B,QAAQ,EAAEA;IACV+B,IAAI,EAAE,CAAC,CAAC/B;IACR8B,OAAO,EAAE;MAAA,OAAM3B,WAAW,CAAC,IAAD,CAAjB;;IACT6B,aAAa,EAAE;MACbC,KAAK,EAAElG,OAAO,KAAK;;GALvB,EAQGmqB,aAAa,IACZxlB,MAAM,CAACynB,UAAP,EADD,IACwB,CACrBjsB,4BAAA,CAACkG,iBAAD;IACE3F,QAAQ,EAAE,CAACiE,MAAM,CAAC0nB,WAAP;IACX/lB,GAAG,EAAE;IACL3F,OAAO,EAAEiqB;IACThqB,EAAE,EAAEgD;GAJN,EAMEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAACrE,YAAD,MAAA,CADF,CADF,EAIG8D,YAAY,CAAC/H,SAJhB,CANF,CADqB,EAcrBsI,4BAAA,CAACkG,iBAAD;IACE3F,QAAQ,EAAEiE,MAAM,CAAC0nB,WAAP,OAAyB;IACnC/lB,GAAG,EAAE;IACL3F,OAAO,EAAEmqB;IACTlqB,EAAE,EAAEgD;GAJN,EAMEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAACrB,QAAD,MAAA,CADF,CADF,2BAIGc,YAAY,CAACnF,eAJhB,qBAIG,sBAA8B0M,OAA9B,CACC,UADD,EAEColB,MAAM,CAAC3nB,SAAS,CAACV,MAAX,CAFP,CAJH,CANF,CAdqB,EA8BrB/D,4BAAA,CAACkG,iBAAD;IACEnB,OAAO,EAAE+kB,mBAAmB,IAAI/D,cAAvB,IAAyCS;IAClDrgB,GAAG,EAAE;IACL5F,QAAQ,EAAEiE,MAAM,CAAC0nB,WAAP,OAAyB;IACnC1rB,OAAO,EAAEqqB;IACTpqB,EAAE,EAAEgD;GALN,EAOEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAACrB,QAAD;IAAUiC,KAAK,EAAE;MAAEC,SAAS,EAAE;;GAA9B,CADF,CADF,4BAIGpB,YAAY,CAAClF,gBAJhB,qBAIG,uBAA+ByM,OAA/B,CACC,UADD,EAEColB,MAAM,CAAC3nB,SAAS,CAACV,MAAX,CAFP,CAJH,CAPF,CA9BqB,CAT3B,EAyDG+lB,mBAAmB,IAClBtlB,MAAM,CAAC6nB,YAAP,EADD,IAEC,CACErsB,4BAAA,CAACkG,iBAAD;IACE3F,QAAQ,EAAE,CAACiE,MAAM,CAAC8nB,cAAP;IACXnmB,GAAG,EAAE;IACL3F,OAAO,EAAE4qB;IACT3qB,EAAE,EAAEgD;GAJN,EAMEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAAC3C,iBAAD,MAAA,CADF,CADF,EAIGoC,YAAY,CAACjI,WAJhB,CANF,CADF,EAcEwI,4BAAA,CAACkG,iBAAD;IACEnB,OAAO,EAAEghB,cAAc,IAAIS;IAC3BrgB,GAAG,EAAE;IACL3F,OAAO,EAAE6qB;IACT5qB,EAAE,EAAEgD;GAJN,EAMEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAAC7C,cAAD,MAAA,CADF,CADF,2BAIGsC,YAAY,CAACvH,cAJhB,qBAIG,sBAA6B8O,OAA7B,CACC,UADD,EAEColB,MAAM,CAAC3nB,SAAS,CAACV,MAAX,CAFP,CAJH,CANF,EAeGioB,qBAAqB,IACpBhsB,4BAAA,CAACM,mBAAD;IACEE,OAAO,EAAEkrB;IACTa,YAAY,EAAEb;IACd7H,IAAI,EAAC;IACLpjB,EAAE,EAAE;MAAE4jB,CAAC,EAAE;;GAJX,EAMErkB,4BAAA,CAAC3E,cAAD,MAAA,CANF,CAhBJ,CAdF,EAwCE2wB,qBAAqB,IACnBhsB,4BAAA,CAAC6D,oBAAD;IACEC,QAAQ,EAAEumB;IACVtmB,MAAM,EAAEA;IACRoC,GAAG,EAAE;IACLnC,QAAQ,EAAEqnB;IACVpnB,WAAW,EAAEqmB;IACbprB,QAAQ,EAAEA;GANZ,CAzCJ,EAkDE+F,MAlDF,CAkDSgM,OAlDT,CA3DJ,EA8GG8U,cAAc,IACbvhB,MAAM,CAACgoB,WAAP,EADD,IACyB,CACtBxsB,4BAAA,CAACkG,iBAAD;IACEnB,OAAO,EAAE0hB;IACTtgB,GAAG,EAAE;IACL3F,OAAO,EAAEyqB;IACTxqB,EAAE,EAAEgD;GAJN,EAMEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAACzD,eAAD,MAAA,CADF,CADF,mBAIGkD,YAAY,CACX+E,MAAM,CAAC2jB,YAAP,KAAwB,iBAAxB,GAA4C,eADjC,CAJf,qBAIG,cAEEnhB,OAFF,CAEU,UAFV,EAEsBolB,MAAM,CAAC3nB,SAAS,CAACV,MAAX,CAF5B,CAJH,CANF,CADsB,CA/G5B,EAgIG0iB,aAAa,IACZjiB,MAAM,CAACghB,SAAP,EADD,IACuB,CACpBxlB,4BAAA,CAACkG,iBAAD;IACE3F,QAAQ,EAAEiE,MAAM,CAACof,WAAP,OAAyB,MAAzB,IAAmC,CAACpf,MAAM,CAACghB,SAAP;IAC9Crf,GAAG,EAAE;IACL3F,OAAO,EAAE;MAAA,OAAM8iB,eAAe,CAAC,MAAD,CAArB;;IACT7iB,EAAE,EAAEgD;GAJN,EAMEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAAC/B,WAAD;IAAa2C,KAAK,EAAE;MAAEC,SAAS,EAAE;;GAAjC,CADF,CADF,EAIGpB,YAAY,CAACnG,SAJhB,CANF,CADoB,EAcpB0G,4BAAA,CAACkG,iBAAD;IACE3F,QAAQ,EAAEiE,MAAM,CAACof,WAAP,OAAyB,OAAzB,IAAoC,CAACpf,MAAM,CAACghB,SAAP;IAC/Crf,GAAG,EAAE;IACL3F,OAAO,EAAE;MAAA,OAAM8iB,eAAe,CAAC,OAAD,CAArB;;IACT7iB,EAAE,EAAEgD;GAJN,EAMEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAAC/B,WAAD;IAAa2C,KAAK,EAAE;MAAEC,SAAS,EAAE;;GAAjC,CADF,CADF,EAIGpB,YAAY,CAAClG,UAJhB,CANF,CAdoB,EA2BpByG,4BAAA,CAACkG,iBAAD;IACE3F,QAAQ,EAAE,CAACiE,MAAM,CAACof,WAAP;IACX7e,OAAO,EAAEyhB;IACTrgB,GAAG,EAAE;IACL3F,OAAO,EAAE;MAAA,OAAM8iB,eAAe,CAAC,KAAD,CAArB;;IACT7iB,EAAE,EAAEgD;GALN,EAOEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAAC/B,WAAD,MAAA,CADF,CADF,EAIGwB,YAAY,CAACxE,KAJhB,CAPF,CA3BoB,CAjI1B,EA2KG8uB,oBAAoB,IAAI,CACvB/pB,4BAAA,CAACkG,iBAAD;IACE3F,QAAQ,EAAE,CAACiE,MAAM,CAACioB,YAAP,EAAD,IAA0B,CAACtC,YAAY,CAAC3lB,MAAM,CAAClC,EAAR;IACjD6D,GAAG,EAAE;IACL3F,OAAO,EAAEsqB;IACTrqB,EAAE,EAAEgD;GAJN,EAMEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAAC7B,cAAD,MAAA,CADF,CADF,EAIGsB,YAAY,CAACjG,eAJhB,CANF,CADuB,CA3K3B,EA0LGgtB,YAAY,IAAI,CACfxmB,4BAAA,CAACkG,iBAAD;IACE3F,QAAQ,EAAEkE,SAAS,CAAC+hB,YAAV,KAA2B;IACrCrgB,GAAG,EAAE;IACL3F,OAAO,EAAEwqB;IACTvqB,EAAE,EAAEgD;GAJN,EAMEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAACjB,iBAAD,MAAA,CADF,CADF,2BAIGU,YAAY,CAACtG,UAJhB,qBAIG,sBAAyB6N,OAAzB,CACC,UADD,EAEColB,MAAM,CAAC3nB,SAAS,CAACV,MAAX,CAFP,CAJH,CANF,CADe,EAiBf/D,4BAAA,CAACkG,iBAAD;IACE3F,QAAQ,EACN,CAACiO,MAAM,CAACke,MAAP,CAActC,gBAAd,EAAgCnlB,MAAhC,CAAuC,UAAC0nB,OAAD;MAAA,OAAa,CAACA,OAAd;KAAvC,EACEvhB;IAELjF,GAAG,EAAE;IACL3F,OAAO,EAAEirB;IACThrB,EAAE,EAAEgD;GAPN,EASEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAACnB,cAAD,MAAA,CADF,CADF,2BAIGY,YAAY,CAACvF,cAJhB,qBAIG,sBAA6B8M,OAA7B,CACC,UADD,EAEColB,MAAM,CAAC3nB,SAAS,CAACV,MAAX,CAFP,CAJH,CATF,EAkBE/D,4BAAA,CAACM,mBAAD;IACEE,OAAO,EAAEqrB;IACTU,YAAY,EAAEV;IACdhI,IAAI,EAAC;IACLpjB,EAAE,EAAE;MAAE4jB,CAAC,EAAE;;GAJX,EAMErkB,4BAAA,CAAC3E,cAAD,MAAA,CANF,CAlBF,CAjBe,EA4Cf2E,4BAAA,CAACuoB,uBAAD;IACEzkB,QAAQ,EAAEymB;IACVjE,SAAS;IACTngB,GAAG,EAAE;IACLlC,WAAW,EAAEumB;IACbtrB,QAAQ,EAAEA;GALZ,CA5Ce,CA1LnB,CADF;AAiPD,CAxXM;;ACTA,IAAM0tB,iBAAiB,GAAc,SAA/BA,iBAA+B;MAC1C9oB,gBAAAA;MACA+oB,kBAAAA;MACA7rB,WAAAA;MACAiD,mBAAAA;MACA/E,gBAAAA;EAEA,IACEI,QADF,GAQIJ,QARJ,CACEI,QADF;0BAQIJ,QARJ,CAEEK,OAFF;MAGa9C,QAHb,qBAGI+C,KAHJ,CAGa/C,QAHb;MAIImpB,aAJJ,qBAIIA,aAJJ;MAKInmB,YALJ,qBAKIA,YALJ;MAMIqtB,wBANJ,qBAMIA,wBANJ;;EAUA,gBAAoBxtB,QAAQ,EAA5B;MAAQO,OAAR,aAAQA,OAAR;;EAEA,OACEG,4BAAA,CAACwF,aAAD;IACE1B,QAAQ,EAAEA;IACV+B,IAAI,EAAE,CAAC,CAAC/B;IACR8B,OAAO,EAAE;MAAA,OAAM3B,WAAW,CAAC,IAAD,CAAjB;;IACT6B,aAAa,EAAE;MACbC,KAAK,EAAElG,OAAO,KAAK;;GALvB,EAQG+lB,aAAa,IACZ5lB,4BAAA,CAACkG,iBAAD;IAAU1F,OAAO,EAAEqsB;IAAYpsB,EAAE,EAAEgD;GAAnC,EACEzD,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAEkpB;GAAT,EACE3pB,4BAAA,CAACmsB,qBAAD,MAAA,EACEnsB,4BAAA,CAACvD,QAAD,MAAA,CADF,CADF,EAIGgD,YAAY,CAAC3H,IAJhB,CADF,CATJ,EAkBGg1B,wBAlBH,oBAkBGA,wBAAwB,CAAG;IAC1B9rB,GAAG,EAAHA,GAD0B;IAE1B9B,QAAQ,EAARA,QAF0B;IAG1B6tB,SAAS,EAAE;MAAA,OAAM9oB,WAAW,CAAC,IAAD,CAAjB;;GAHY,CAlB3B,CADF;AA0BD,CA7CM;;ACPA,IAAM+oB,qBAAqB,GAAc,SAAnCA,qBAAmC;MAAGhsB,WAAAA;MAAK9B,gBAAAA;EACtD,IACEI,QADF,GAQIJ,QARJ,CACEI,QADF;0BAQIJ,QARJ,CAEEK,OAFF;gDAGIC,KAHJ;MAGajE,UAHb,yBAGaA,UAHb;MAGyB8C,QAHzB,yBAGyBA,QAHzB;MAIIoB,YAJJ,qBAIIA,YAJJ;MAKIwtB,eALJ,qBAKIA,eALJ;MAOEC,oBAPF,GAQIhuB,QARJ,CAOEguB,oBAPF;;EAUA,gBAA8B5tB,QAAQ,EAAtC;MAAQ6tB,iBAAR,aAAQA,iBAAR;;EAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe;;;IACnBpsB,GAAG,CAACqsB,YAAJ,oBAAmBrsB,GAAG,CAACssB,QAAvB,4BAAmC,EAAnC;IACAJ,oBAAoB,CAAC,IAAD,CAApB;GAFF;;EAKA,IAAMK,UAAU,GAAG,SAAbA,UAAa;IACjBN,eAAe,QAAf,YAAAA,eAAe,CAAG;MAAEjsB,GAAG,EAAEmsB,iBAAF,WAAEA,iBAAF,GAAuBnsB,GAA5B;MAAiC9B,QAAQ,EAARA;KAApC,CAAf;IACAguB,oBAAoB,CAAC,IAAD,CAApB;GAFF;;EAKA,OACEltB,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAE;MAAE+mB,OAAO,EAAE,MAAX;MAAmBE,GAAG,EAAE;;GAAjC,EACE1nB,4BAAA,CAACC,gBAAD;IAASC,KAAK;IAACG,KAAK,EAAEZ,YAAY,CAACpI;GAAnC,EACE2I,4BAAA,CAACM,mBAAD;kBAAwBb,YAAY,CAACpI;IAAQmJ,OAAO,EAAE4sB;GAAtD,EACEptB,4BAAA,CAACzE,UAAD,MAAA,CADF,CADF,CADF,EAMEyE,4BAAA,CAACC,gBAAD;IAASC,KAAK;IAACG,KAAK,EAAEZ,YAAY,CAAC5F;GAAnC,EACEmG,4BAAA,CAACM,mBAAD;kBACcb,YAAY,CAAC5F;IACzB2zB,KAAK,EAAC;IACNhtB,OAAO,EAAE+sB;GAHX,EAKEvtB,4BAAA,CAAC3B,QAAD,MAAA,CALF,CADF,CANF,CADF;AAkBD,CAzCM;;ACHP,IAAMovB,sBAAsB,GAAG;EAC7B/sB,MAAM,EAAE,MADqB;EAE7BgtB,EAAE,EAAE,MAFyB;EAG7BtJ,OAAO,EAAE,GAHoB;EAI7BtjB,UAAU,EAAE,cAJiB;EAK7BH,KAAK,EAAE,MALsB;EAM7B,WAAW;IACTyjB,OAAO,EAAE;;AAPkB,CAA/B;AAgBA,AAAO,IAAMuJ,6BAA6B,GAAc,SAA3CA,6BAA2C;MAAG3sB,WAAAA;MAAK9B,gBAAAA;EAC9D,IACEI,QADF,GAUIJ,QAVJ,CACEI,QADF;0BAUIJ,QAVJ,CAEEK,OAFF;MAGIqmB,aAHJ,qBAGIA,aAHJ;gDAIIpmB,KAJJ;MAIa/C,QAJb,yBAIaA,QAJb;MAIuBoB,aAJvB,yBAIuBA,aAJvB;MAKI4B,YALJ,qBAKIA,YALJ;MAMIqtB,wBANJ,qBAMIA,wBANJ;MAOIc,gBAPJ,qBAOIA,gBAPJ;MASEV,oBATF,GAUIhuB,QAVJ,CASEguB,oBATF;;EAYA,gBAA8B5tB,QAAQ,EAAtC;MAAQ6tB,iBAAR,aAAQA,iBAAR;;EAEA,gBAAgC1S,cAAQ,CAAqB,IAArB,CAAxC;MAAO3W,QAAP;MAAiBG,WAAjB;;EAEA,IAAM4pB,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACzsB,KAAD;IAC9BA,KAAK,CAACuqB,eAAN;IACAvqB,KAAK,CAAC0sB,cAAN;IACA7pB,WAAW,CAAC7C,KAAK,CAACwqB,aAAP,CAAX;GAHF;;EAMA,IAAMmC,mBAAmB,GAAG,SAAtBA,mBAAsB;IAC1Bb,oBAAoB,cAAMlsB,GAAN,EAApB;IACAiD,WAAW,CAAC,IAAD,CAAX;GAFF;;EAKA,OACEjE,4BAAA,wBAAA,MAAA,EACG4tB,gBAAgB,GACf5tB,4BAAA,wBAAA,MAAA,EAAG4tB,gBAAgB,CAAC;IAAE5sB,GAAG,EAAHA,GAAF;IAAO9B,QAAQ,EAARA;GAAR,CAAnB,CADe,GAEb8B,GAAG,CAACsB,EAAJ,MAAW6qB,iBAAX,oBAAWA,iBAAiB,CAAE7qB,EAA9B,IACFtC,4BAAA,CAACgtB,qBAAD;IAAuBhsB,GAAG,EAAEA;IAAK9B,QAAQ,EAAEA;GAA3C,CADE,GAEA,CAAC4tB,wBAAD,IAA6BlH,aAA7B,GACF5lB,4BAAA,CAACC,gBAAD;IAAS+jB,SAAS,EAAC;IAAQ9jB,KAAK;IAACG,KAAK,EAAEZ,YAAY,CAAC3H;GAArD,EACEkI,4BAAA,CAACM,mBAAD;IAAYG,EAAE,EAAEgtB;IAAwBjtB,OAAO,EAAEutB;GAAjD,EACE/tB,4BAAA,CAACvD,QAAD,MAAA,CADF,CADF,CADE,GAMAqwB,wBAAwB,GAC1B9sB,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAACC,gBAAD;IACEC,KAAK;IACLC,UAAU,EAAE;IACZC,cAAc,EAAE;IAChBC,KAAK,EAAEZ,YAAY,CAAC/F;GAJtB,EAMEsG,4BAAA,CAACM,mBAAD;kBACcb,YAAY,CAAC/F;IACzB8G,OAAO,EAAEqtB;IACThK,IAAI,EAAC;IACLpjB,EAAE,EAAEgtB;GAJN,EAMEztB,4BAAA,CAACnC,aAAD,MAAA,CANF,CANF,CADF,EAgBEmC,4BAAA,CAAC4sB,iBAAD;IACE9oB,QAAQ,EAAEA;IACV+oB,UAAU,EAAEkB;IACZ/sB,GAAG,EAAEA;IACLiD,WAAW,EAAEA;IACb/E,QAAQ,EAAEA;GALZ,CAhBF,CAD0B,GAyBxB,IApCN,CADF;AAwCD,CApEM;;ACZA,IAAM8uB,kBAAkB,GAAc,SAAhCA,kBAAgC;MAAGhtB,WAAAA;MAAKitB,iBAAAA;MAAW/uB,gBAAAA;EAC9D,IACEgvB,WADF,GAaIhvB,QAbJ,CACEgvB,WADF;MAEEC,qBAFF,GAaIjvB,QAbJ,CAEEivB,qBAFF;MAGEC,mBAHF,GAaIlvB,QAbJ,CAGEkvB,mBAHF;MAIE9uB,QAJF,GAaIJ,QAbJ,CAIEI,QAJF;0BAaIJ,QAbJ,CAKEK,OALF;MAMIE,YANJ,qBAMIA,YANJ;MAOI4uB,sBAPJ,qBAOIA,sBAPJ;MAQIC,yBARJ,qBAQIA,yBARJ;MASIC,qBATJ,qBASIA,qBATJ;MAUIC,qBAVJ,qBAUIA,qBAVJ;MAWIC,aAXJ,qBAWIA,aAXJ;;EAeA,gBAAoBnvB,QAAQ,EAA5B;MAAQO,OAAR,aAAQA,OAAR;;EAEA,IAAM6uB,kBAAkB,GAAG,SAArBA,kBAAqB,CAACttB,KAAD;IACzB,IAAI6sB,SAAJ,EAAe;MACb,IAAIQ,aAAa,KAAK,KAAtB,EAA6B;QAC3BvvB,QAAQ,CAACyvB,+BAAT,GAA2CvtB,KAA3C;OADF,MAEO,IAAIqtB,aAAa,KAAK,MAAtB,EAA8B;QACnCvvB,QAAQ,CAAC0vB,mCAAT,GAA+CxtB,KAA/C;;;MAEFotB,qBAAqB,QAArB,YAAAA,qBAAqB,CAAG;QACtBptB,KAAK,EAALA,KADsB;QAEtBytB,YAAY,EAAEztB,KAAK,CAAC2K,MAAN,CAAagc,OAAb,GACV0G,aAAa,KAAK,KAAlB,GACEP,WAAW,GAAGY,QADhB,GAEEX,qBAAqB,GAAGW,QAHhB,GAIV,EANkB;QAOtB5vB,QAAQ,EAARA;OAPmB,CAArB;KANF,MAeO,IAAI8B,GAAJ,EAAS;MACdA,GAAG,QAAH,YAAAA,GAAG,CAAE+tB,wBAAL,GAAgC3tB,KAAhC;MACAmtB,qBAAqB,QAArB,YAAAA,qBAAqB,CAAG;QACtBntB,KAAK,EAALA,KADsB;QAEtBJ,GAAG,EAAHA,GAFsB;QAGtB6tB,YAAY,EAAEztB,KAAK,CAAC2K,MAAN,CAAagc,OAAb,aACNqG,mBAAmB,GAAGU,QADhB,GAC0B9tB,GAD1B,KAEVotB,mBAAmB,GAAGU,QAAtB,CAA+B7pB,MAA/B,CACE,UAAC+pB,WAAD;UAAA,OAAiBA,WAAW,CAAC1sB,EAAZ,KAAmBtB,GAAG,CAACsB,EAAxC;SADF,CALkB;QAQtBpD,QAAQ,EAARA;OARmB,CAArB;;GAlBJ;;EA+BA,IAAM+vB,aAAa,GAAGhB,SAAS,GAC3BK,yBAAyB,YAAYvuB,QAArC,GACEuuB,yBAAyB,CAAC;IAAEpvB,QAAQ,EAARA;GAAH,CAD3B,GAEEovB,yBAHyB,GAI3BD,sBAAsB,YAAYtuB,QAAlC,GACAsuB,sBAAsB,CAAC;IAAErtB,GAAG,EAAEA,GAAP;IAAuB9B,QAAQ,EAARA;GAAxB,CADtB,GAEAmvB,sBANJ;EAQA,OACEruB,4BAAA,CAACC,gBAAD;IACEC,KAAK;IACLC,UAAU,EAAE;IACZC,cAAc,EAAE;IAChBC,KAAK,EACH4tB,SAAS,GAAGxuB,YAAY,CAAC5E,eAAhB,GAAkC4E,YAAY,CAAC3E;GAL5D,EAQEkF,4BAAA,CAACkvB,iBAAD;IACEnH,OAAO,EACLkG,SAAS,GAAG/uB,QAAQ,CAACiwB,oBAAT,EAAH,GAAqCnuB,GAArC,oBAAqCA,GAAG,CAAEouB,aAAL;IAEhDC,aAAa,EACXpB,SAAS,GACL/uB,QAAQ,CAACowB,qBAAT,EADK,GAELtuB,GAFK,oBAELA,GAAG,CAAEuuB,iBAAL;IAENC,UAAU,EAAE;MACV,cAAcvB,SAAS,GACnBxuB,YAAY,CAAC5E,eADM,GAEnB4E,YAAY,CAAC3E;;IAEnBstB,QAAQ,EAAEsG;IACV7K,IAAI,EAAEhkB,OAAO,KAAK,SAAZ,GAAwB,OAAxB,GAAkC;KACpCovB;IACJxuB,EAAE;MACAC,MAAM,EAAEb,OAAO,KAAK,SAAZ,GAAwB,SAAxB,GAAoC,SAD5C;MAEAc,KAAK,EAAEd,OAAO,KAAK,SAAZ,GAAwB,SAAxB,GAAoC;OACxCovB,aAHH,oBAGGA,aAAa,CAAExuB,EAHlB;IAjBJ,CARF,CADF;AAkCD,CA3FM;;ACVP;AAEA,AAAO,SAASgvB,OAAO,CAAIzqB,EAAW,EAAW;IAChD,IAAI2D,MAAM,GAAa,IAAI;IAC3B,MAAM+mB,QAAQ,GAAG,IAAM;QACtB,IAAI/mB,MAAM,IAAI,IAAI,EAAE;YACnBA,MAAM,GAAG3D,EAAE,EAAE;SACb;QACD,OAAO2D,MAAM,CAAA;KACb;IACD,OAAO+mB,QAAQ,CAAA;CACf;AAED;;IAGA,AAAO,SAAS7nB,SAAO,CAAIC,KAAU,EAAEC,IAAO,EAAE;IAC/C,OAAOD,KAAK,CAAC7C,MAAM,CAAC,CAAC+C,CAAC,GAAKA,CAAC,KAAKD,IAAI;KAAC,CAAA;CACtC;AAED,AAAO,SAAS4nB,KAAK,CAA4BvnB,MAAW,EAAEC,MAAW,EAAE;IAC1E,MAAMG,GAAG,GAAG,IAAI4gB,GAAG,EAAK;IACxB,MAAM7gB,UAAU,GAAG,CAACR,IAAO,GAAKS,GAAG,CAAC0G,GAAG,CAACnH,IAAI,CAAC;;IAC7CK,MAAM,CAACM,OAAO,CAACH,UAAU,CAAC;IAC1BF,MAAM,CAACK,OAAO,CAACH,UAAU,CAAC;IAE1B,MAAMI,MAAM,GAAQ,EAAE;IACtBH,GAAG,CAACE,OAAO,CAAC,CAACvC,GAAG,GAAKwC,MAAM,CAACE,IAAI,CAAC1C,GAAG,CAAC;KAAC;IACtC,OAAOwC,MAAM,CAAA;CACb;;ACzBM,MAAMinB,iBAAiB;IAQ7B,KAAY,CAACC,YAAgC,EAAW;QACvD,MAAMC,cAAc,GAAG,IAAI,CAACC,OAAO,CAAC3kB,MAAM;QAE1C,MAAM4kB,aAAa,GAAG,CAACnd,IAAU,GAChC,IAAI,CAACod,gBAAgB,CAACpd,IAAI,CAAC,KAC1B,CAACA,IAAI,CAACxQ,QAAQ,IAAIwQ,IAAI,CAACxQ,QAAQ,CAACwtB,YAAY,CAAS,CAAC;;QAExD,IAAI,CAACE,OAAO,GAAGJ,KAAK,CAAC,IAAI,CAACI,OAAO,CAAC9qB,MAAM,CAAC+qB,aAAa,CAAC,EAAE;YAACH,YAAY;SAAC,CAAC;QAExE,OAAOC,cAAc,KAAK,CAAC,IAAI,IAAI,CAACC,OAAO,CAAC3kB,MAAM,GAAG,CAAC,CAAA;KACtD;IAED,KAAY,CAAC8kB,WAA+B,EAAW;QACtD,MAAMJ,cAAc,GAAG,IAAI,CAACC,OAAO,CAAC3kB,MAAM;QAE1C,IAAI,CAAC2kB,OAAO,GAAGloB,SAAO,CACrB,IAAI,CAACkoB,OAAO,CAAC9qB,MAAM,CAAC,IAAI,CAACgrB,gBAAgB,CAAC,EAC1CC,WAAW,CACX;QAED,OAAOJ,cAAc,GAAG,CAAC,IAAI,IAAI,CAACC,OAAO,CAAC3kB,MAAM,KAAK,CAAC,CAAA;KACtD;IAEM+kB,KAAK,GAAS;QACpB,IAAI,CAACJ,OAAO,GAAG,EAAE;KACjB;IA7BD,YAAmBE,gBAA+B,CAAE;QAHpD,KAAQF,OAAO,GAAU,EAL1B,CAK4B;QAI1B,IAAI,CAACE,gBAAgB,GAAGA,gBAAgB;KACxC;CA4BD;;AClCM,MAAMG,gBAAgB;IAUpBC,2BAA2B,GAAG;QACrC7hB,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC6hB,MAAM,CAACC,gBAAgB,CAAC,CAAC7nB,OAAO,CAAC,CAAC8nB,QAAQ,GAAK;YAC/DhiB,MAAM,CAACiiB,cAAc,CAAC,IAAI,CAAC1oB,IAAI,EAAEyoB,QAAQ,EAAE;gBAC1CE,YAAY,EAAE,IAAI;gBAClBC,UAAU,EAAE,IAAI;gBAChBtpB,GAAG,IAAG;;oBAELupB,OAAO,CAACC,IAAI,CACX,CAAC,+BAA+B,EAAEL,QAAQ,CAAC,uBAAuB,CAAC,CACnE;oBACD,OAAO,IAAI,CAAA;iBACX;aACD,CAAC;SACF,CAAC;KACF;IAED,gBAAuB,CAACM,YAA6C,EAAQ;QAC5E,IAAIA,YAAY,EAAE;YACjB,MAAMC,aAAa,GAA0B,EAAE;YAC/CviB,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC6hB,MAAM,CAACC,gBAAgB,CAAC,CAAC7nB,OAAO,CAAC,CAAC8nB,QAAQ,GAAK;gBAC/D,MAAMQ,UAAU,GAAG,IAAI,CAACV,MAAM,CAACC,gBAAgB,CAACC,QAAQ,CAAC;gBACzD,IAAIQ,UAAU,IAAI,IAAI,EAAE;oBACvBD,aAAa,CAACP,QAAQ,CAAC,GAAG;wBACzBprB,KAAK,EAAE4rB,UAAU,CAACF,YAAY,EAAE,IAAI,CAACR,MAAM,CAACW,YAAY,CAAC;wBACzDP,YAAY,EAAE,IAAI;wBAClBC,UAAU,EAAE,IAAI;qBAChB;iBACD;aACD,CAAC;YACFniB,MAAM,CAAC0iB,gBAAgB,CAAC,IAAI,CAACnpB,IAAI,EAAEgpB,aAAa,CAAC;SACjD;KACD;IAEMhgB,OAAO,GAAY;QACzB,OAAO,IAAI,CAAA;KACX;IAEMhH,SAAS,GAAQ;QACvB,OAAO,IAAI,CAAChC,IAAI,CAAA;KAChB;IAEMoD,UAAU,CAAChB,OAAwB,EAAEgnB,MAAc,EAAW;QACpE,OAAOA,MAAM,KAAKhnB,OAAO,CAACsC,WAAW,EAAE,CAAA;KACvC;IAEMF,OAAO,GAAS;;KAEtB;IArDD,YAAmB+jB,MAAwB,CAAE;QAC5C,IAAI,CAACA,MAAM,GAAGA,MAAM;QACpB,IAAI,CAACvoB,IAAI,GAAG,EAAE;QACd,IAAI,CAACsoB,2BAA2B,EAAE;KAClC;CAkDD;;AC9DM,MAAMe,IAAI,GAAG,iBAAiB,CAAA;AACrC,AAAO,MAAMC,GAAG,GAAG,gBAAgB,CAAA;AACnC,AAAO,MAAMC,IAAI,GAAG,iBAAiB,CAAA;AACrC,AAAO,MAAMC,IAAI,GAAG,iBAAiB,CAAA;;;;;;;;;;ACH9B,SAASC,uBAAuB,CACtCV,YAA0B,EAC1BW,UAAoB,EACpBjqB,YAAoB,EACX;IACT,MAAMmB,MAAM,GAAG8oB,UAAU,CAAC/pB,MAAM,CAC/B,CAACgqB,WAAW,EAAEC,SAAS,GAAKD,WAAW,IAAIZ,YAAY,CAACc,OAAO,CAACD,SAAS,CAAC;MAC1E,EAAE,CACF;IAED,OAAOhpB,MAAM,IAAI,IAAI,GAAGA,MAAM,GAAGnB,YAAY,CAAA;CAC7C;;ACIM,MAAMqqB,iBAAiB,GAE1B;IACH,CAACC,IAAgB,GAAG;QACnBvB,gBAAgB,EAAE;YACjBwB,KAAK,EAAE,CAACjB,YAA0B,GACjChkB,KAAK,CAACoQ,SAAS,CAAC7P,KAAK,CAACyG,IAAI,CAACgd,YAAY,CAACiB,KAAK,CAAC;;YAC/CjqB,KAAK,EAAE,CAACgpB,YAA0B,GACjCA,YAAY,CAAChpB,KAAK;;YACnBgpB,YAAY,EAAE,CAACA,YAA0B,GAAmBA,YAAY;SACxE;QACDG,YAAY,EAAE;YAAC,OAAO;SAAC;KACvB;IACD,CAACa,IAAgB,GAAG;QACnBvB,gBAAgB,EAAE;YACjByB,IAAI,EAAE,CAAClB,YAA0B,EAAEG,YAAsB,GACxDO,uBAAuB,CAACV,YAAY,EAAEG,YAAY,EAAE,EAAE,CAAC;;YACxDH,YAAY,EAAE,CAACA,YAA0B,GAAmBA,YAAY;SACxE;QACDG,YAAY,EAAE;YAAC,MAAM;YAAE,WAAW;SAAC;KACnC;IACD,CAACa,GAAe,GAAG;QAClBvB,gBAAgB,EAAE;YACjB0B,IAAI,EAAE,CAACnB,YAA0B,EAAEG,YAAsB,GACxDO,uBAAuB,CAACV,YAAY,EAAEG,YAAY,EAAE,EAAE,CAAC,CAACxpB,KAAK,CAAC,IAAI,CAAC;;YACpEqpB,YAAY,EAAE,CAACA,YAA0B,GAAmBA,YAAY;SACxE;QACDG,YAAY,EAAE;YAAC,KAAK;YAAE,eAAe;SAAC;KACtC;IACD,CAACa,IAAgB,GAAG;QACnBvB,gBAAgB,EAAE;YACjB2B,IAAI,EAAE,CAACpB,YAA0B,EAAEG,YAAsB,GACxDO,uBAAuB,CAACV,YAAY,EAAEG,YAAY,EAAE,EAAE,CAAC;;YACxDH,YAAY,EAAE,CAACA,YAA0B,GAAmBA,YAAY;SACxE;QACDG,YAAY,EAAE;YAAC,MAAM;YAAE,YAAY;SAAC;KACpC;CACD,CAAA;;ACjDM,SAASkB,sBAAsB,CACrCzoB,IAAY,EACZonB,YAA2B,EACR;IACnB,MAAMR,MAAM,GAAGuB,iBAAiB,CAACnoB,IAAI,CAAC;IACtC,IAAI,CAAC4mB,MAAM,EAAE;QACZ,MAAM,IAAIzpB,KAAK,CAAC,CAAC,YAAY,EAAE6C,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAA;KAC3D;IACD,MAAMf,MAAM,GAAG,IAAIynB,gBAAgB,CAACE,MAAM,CAAC;IAC3C3nB,MAAM,CAACypB,gBAAgB,CAACtB,YAAY,CAAC;IACrC,OAAOnoB,MAAM,CAAA;CACb;AAED,AAAO,SAAS0pB,mBAAmB,CAClCvB,YAAiC,EACjB;IAChB,IAAI,CAACA,YAAY,EAAE;QAClB,OAAO,IAAI,CAAA;KACX;IAED,MAAMwB,iBAAiB,GAAGxlB,KAAK,CAACoQ,SAAS,CAAC7P,KAAK,CAACyG,IAAI,CAACgd,YAAY,CAACvZ,KAAK,IAAI,EAAE,CAAC;IAC9E,OACC/I,MAAM,CAACC,IAAI,CAACojB,iBAAiB,CAAC,CAAC5sB,MAAM,CAAC,CAACstB,cAAc,GAAK;QACzD,MAAMC,UAAU,GAAGX,iBAAiB,CAACU,cAAc,CAAC;QACpD,IAAI,EAACC,UAAU,aAAVA,UAAU,WAAc,GAAxBA,KAAAA,CAAwB,GAAxBA,UAAU,CAAEvB,YAAY,CAAA,EAAE;YAC9B,OAAO,KAAK,CAAA;SACZ;QACD,OAAOuB,UAAU,CAACvB,YAAY,CAACjkB,IAAI,CAClC,CAACjE,CAAC,GAAKupB,iBAAiB,CAACtpB,OAAO,CAACD,CAAC,CAAC,GAAG,CAAC,CAAC;SACxC,CAAA;KACD,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CACb;CACD;;AC1BM,MAAM0pB,SAAS,GAAchD,OAAO,CAAC,IAC3C,WAAWiD,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC;AAAA,CACpC,CAAA;AACD,AAAO,MAAMC,QAAQ,GAAcpD,OAAO,CAAC,IAAMxe,OAAO,CAAC6H,MAAM,CAACga,MAAM,CAAC;AAAA,CAAC,CAAA;;ACZjE,MAAMC,oBAAoB;IAqEhC,WAAkB,CAAC3jB,CAAS,EAAU;QACrC,MAAM,EAAE4jB,EAAE,GAAEC,EAAE,GAAEC,GAAG,GAAEC,GAAG,GAAEC,GAAG,GAAE,GAAG,IAAI;;QAGtC,IAAIprB,CAAC,GAAGgrB,EAAE,CAAC5nB,MAAM,GAAG,CAAC;QACrB,IAAIgE,CAAC,KAAK4jB,EAAE,CAAChrB,CAAC,CAAC,EAAE;YAChB,OAAOirB,EAAE,CAACjrB,CAAC,CAAC,CAAA;SACZ;;QAGD,IAAIqrB,GAAG,GAAG,CAAC;QACX,IAAIC,IAAI,GAAGF,GAAG,CAAChoB,MAAM,GAAG,CAAC;QACzB,IAAImoB,GAAG;QACP,MAAOF,GAAG,IAAIC,IAAI,CAAE;YACnBC,GAAG,GAAGC,IAAI,CAACC,KAAK,CAAC,GAAG,IAAIJ,GAAG,GAAGC,IAAI,CAAC,CAAC;YACpC,MAAMI,KAAK,GAAGV,EAAE,CAACO,GAAG,CAAC;YACrB,IAAIG,KAAK,GAAGtkB,CAAC,EAAE;gBACdikB,GAAG,GAAGE,GAAG,GAAG,CAAC;aACb,MAAM,IAAIG,KAAK,GAAGtkB,CAAC,EAAE;gBACrBkkB,IAAI,GAAGC,GAAG,GAAG,CAAC;aACd,MAAM;gBACN,OAAON,EAAE,CAACM,GAAG,CAAC,CAAA;aACd;SACD;QACDvrB,CAAC,GAAGwrB,IAAI,CAACp6B,GAAG,CAAC,CAAC,EAAEk6B,IAAI,CAAC;;QAGrB,MAAMK,IAAI,GAAGvkB,CAAC,GAAG4jB,EAAE,CAAChrB,CAAC,CAAC;QACtB,MAAM4rB,MAAM,GAAGD,IAAI,GAAGA,IAAI;QAC1B,OAAOV,EAAE,CAACjrB,CAAC,CAAC,GAAGkrB,GAAG,CAAClrB,CAAC,CAAC,GAAG2rB,IAAI,GAAGR,GAAG,CAACnrB,CAAC,CAAC,GAAG4rB,MAAM,GAAGR,GAAG,CAACprB,CAAC,CAAC,GAAG2rB,IAAI,GAAGC,MAAM,CAAA;KACvE;IA5FD,YAAmBZ,EAAY,EAAEC,EAAY,CAAE;QAC9C,MAAM,EAAE7nB,MAAM,GAAE,GAAG4nB,EAAE;QAWrB,MAAMa,GAAG,GAAG,EAAE;QACd,MAAMC,EAAE,GAAG,EAAE;QACb,IAAIC,EAAE;QACN,IAAIC,EAAE;QACN,IAAK,IAAIhsB,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAGoD,MAAM,GAAG,CAAC,EAAEpD,EAAC,EAAE,CAAE;YACpC+rB,EAAE,GAAIf,EAAE,CAAChrB,EAAC,GAAG,CAAC,CAAC,GAAegrB,EAAE,CAAChrB,EAAC,CAAC;YACnCgsB,EAAE,GAAIf,EAAE,CAACjrB,EAAC,GAAG,CAAC,CAAC,GAAeirB,EAAE,CAACjrB,EAAC,CAAC;YACnC6rB,GAAG,CAAChrB,IAAI,CAACkrB,EAAE,CAAC;YAEZD,EAAE,CAACjrB,IAAI,CAACmrB,EAAE,GAAGD,EAAE,CAAC;SAChB;;QAGD,MAAMb,GAAG,GAAG;YAACY,EAAE,CAAC,CAAC,CAAC;SAAC;QACnB,IAAK,IAAI9rB,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAG6rB,GAAG,CAACzoB,MAAM,GAAG,CAAC,EAAEpD,EAAC,EAAE,CAAE;YACxC,MAAMisB,EAAE,GAAGH,EAAE,CAAC9rB,EAAC,CAAC;YAChB,MAAMksB,KAAK,GAAGJ,EAAE,CAAC9rB,EAAC,GAAG,CAAC,CAAC;YACvB,IAAIisB,EAAE,GAAGC,KAAK,IAAI,CAAC,EAAE;gBACpBhB,GAAG,CAACrqB,IAAI,CAAC,CAAC,CAAC;aACX,MAAM;gBACNkrB,EAAE,GAAGF,GAAG,CAAC7rB,EAAC,CAAC;gBACX,MAAMmsB,MAAM,GAAGN,GAAG,CAAC7rB,EAAC,GAAG,CAAC,CAAC;gBACzB,MAAMosB,MAAM,GAAGL,EAAE,GAAGI,MAAM;gBAC1BjB,GAAG,CAACrqB,IAAI,CACP,CAAE,GAAGurB,MAAM,IAAK,CAACA,MAAM,GAAGD,MAAM,IAAIF,EAAE,GAAG,CAACG,MAAM,GAAGL,EAAE,IAAIG,KAAK,CAAC,CAC/D;aACD;SACD;QACDhB,GAAG,CAACrqB,IAAI,CAACirB,EAAE,CAACA,EAAE,CAAC1oB,MAAM,GAAG,CAAC,CAAC,CAAC;;QAG3B,MAAM+nB,GAAG,GAAG,EAAE;QACd,MAAMC,GAAG,GAAG,EAAE;QACd,IAAIjP,CAAC;QACL,IAAK,IAAInc,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAGkrB,GAAG,CAAC9nB,MAAM,GAAG,CAAC,EAAEpD,EAAC,EAAE,CAAE;YACxCmc,CAAC,GAAG2P,EAAE,CAAC9rB,EAAC,CAAC;YACT,MAAMqsB,EAAE,GAAGnB,GAAG,CAAClrB,EAAC,CAAC;YACjB,MAAMssB,KAAK,GAAG,CAAC,GAAIT,GAAG,CAAC7rB,EAAC,CAAC;YACzB,MAAMosB,MAAM,GAAGC,EAAE,GAAInB,GAAG,CAAClrB,EAAC,GAAG,CAAC,CAAC,GAAcmc,CAAC,GAAGA,CAAC;YAClDgP,GAAG,CAACtqB,IAAI,CAAC,CAACsb,CAAC,GAAGkQ,EAAE,GAAGD,MAAM,IAAIE,KAAK,CAAC;YACnClB,GAAG,CAACvqB,IAAI,CAACurB,MAAM,GAAGE,KAAK,GAAGA,KAAK,CAAC;SAChC;QAED,IAAI,CAACtB,EAAE,GAAGA,EAAE;QACZ,IAAI,CAACC,EAAE,GAAGA,EAAE;QACZ,IAAI,CAACC,GAAG,GAAGA,GAAG;QACd,IAAI,CAACC,GAAG,GAAGA,GAAG;QACd,IAAI,CAACC,GAAG,GAAGA,GAAG;KACd;CAiCD;;AC/FD,MAAMmB,YAAY,GAAG,CAAC;AAEtB,AAAO,SAASC,mBAAmB,CAAC3hB,IAAU,EAAkB;IAC/D,MAAM4hB,EAAE,GAAG5hB,IAAI,CAAC6hB,QAAQ,KAAKH,YAAY,GAAG1hB,IAAI,GAAGA,IAAI,CAAC8hB,aAAa;IAErE,IAAI,CAACF,EAAE,EAAE;QACR,OAAO,IAAI,CAAA;KACX;IAED,MAAM,EAAEG,GAAG,GAAEC,IAAI,GAAE,GAAG,EAAG,CAAiBC,qBAAqB,EAAE;IACjE,OAAO;QAAE1lB,CAAC,EAAEylB,IAAI;QAAExlB,CAAC,EAAEulB,GAAG;KAAE,CAAA;CAC1B;AAED,AAAO,SAASG,oBAAoB,CAACC,CAAa,EAAW;IAC5D,OAAO;QACN5lB,CAAC,EAAE4lB,CAAC,CAACC,OAAO;QACZ5lB,CAAC,EAAE2lB,CAAC,CAACE,OAAO;KACZ,CAAA;CACD;AAED,SAASC,WAAW,CAACtiB,IAAS,EAAE;QAGbC,GAAwB;IAF1C,OACCD,IAAI,CAACuiB,QAAQ,KAAK,KAAK,KACtB3C,SAAS,EAAE,IAAI,EAAC3f,CAAAA,GAAwB,GAAxBA,QAAQ,CAACuiB,eAAe,cAAxBviB,GAAwB,WAAU,GAAlCA,KAAAA,CAAkC,GAAlCA,GAAwB,CAAEzQ,QAAQ,CAACwQ,IAAI,CAAC,CAAA,CAAC,CAC1D;CACD;AAED,SAASyiB,kBAAkB,CAC1BC,OAAgB,EAChBzZ,WAAgB,EAChB0Z,WAAmB,EACnBC,YAAoB,EACnB;IACD,IAAIC,gBAAgB,GAAGH,OAAO,GAAGzZ,WAAW,CAACnb,KAAK,GAAG60B,WAAW;IAChE,IAAIG,iBAAiB,GAAGJ,OAAO,GAAGzZ,WAAW,CAACpb,MAAM,GAAG+0B,YAAY;;IAGnE,IAAI5C,QAAQ,EAAE,IAAI0C,OAAO,EAAE;QAC1BI,iBAAiB,IAAI7c,MAAM,CAAC8c,gBAAgB;QAC5CF,gBAAgB,IAAI5c,MAAM,CAAC8c,gBAAgB;KAC3C;IACD,OAAO;QAAEF,gBAAgB;QAAEC,iBAAiB;KAAE,CAAA;CAC9C;AAED,AAAO,SAASE,oBAAoB,CACnCC,UAAuB,EACvBha,WAAwB,EACxBtS,YAAqB,EACrBusB,WAAiD,EACjDC,WAAiD,EACvC;;;IAGV,MAAMT,OAAO,GAAGJ,WAAW,CAACrZ,WAAW,CAAC;IACxC,MAAMsE,eAAe,GAAGmV,OAAO,GAAGO,UAAU,GAAGha,WAAW;IAC1D,MAAMma,+BAA+B,GAAGzB,mBAAmB,CAC1DpU,eAAe,CACf;IACD,MAAM8V,qBAAqB,GAAG;QAC7B9mB,CAAC,EAAE5F,YAAY,CAAC4F,CAAC,GAAG6mB,+BAA+B,CAAC7mB,CAAC;QACrDC,CAAC,EAAE7F,YAAY,CAAC6F,CAAC,GAAG4mB,+BAA+B,CAAC5mB,CAAC;KACrD;IACD,MAAM,EAAE8mB,WAAW,EAAEX,WAAW,GAAEY,YAAY,EAAEX,YAAY,GAAE,GAAGK,UAAU;IAC3E,MAAM,EAAEO,OAAO,GAAEC,OAAO,GAAE,GAAGP,WAAW;IACxC,MAAM,EAAEL,gBAAgB,GAAEC,iBAAiB,GAAE,GAAGL,kBAAkB,CACjEC,OAAO,EACPzZ,WAAW,EACX0Z,WAAW,EACXC,YAAY,CACZ;IAED,MAAMc,gBAAgB,GAAG,IAAM;QAC9B,MAAMC,YAAY,GAAG,IAAIzD,oBAAoB,CAC5C;AAAC,aAAC;AAAE,eAAG;AAAE,aAAC;SAAC,EACX;;YAECmD,qBAAqB,CAAC7mB,CAAC;;YAEvB,CAAC6mB,qBAAqB,CAAC7mB,CAAC,GAAGomB,YAAY,IAAIE,iBAAiB;;YAE5DO,qBAAqB,CAAC7mB,CAAC,GAAGsmB,iBAAiB,GAAGF,YAAY;SAC1D,CACD;QACD,IAAIpmB,CAAC,GAAGmnB,YAAY,CAACC,WAAW,CAACH,OAAO,CAAC;;QAEzC,IAAIzD,QAAQ,EAAE,IAAI0C,OAAO,EAAE;;YAE1BlmB,CAAC,IAAI,CAACyJ,MAAM,CAAC8c,gBAAgB,GAAG,CAAC,IAAID,iBAAiB;SACtD;QACD,OAAOtmB,CAAC,CAAA;KACR;IAED,MAAMqnB,gBAAgB,GAAG,IAAM;;;QAG9B,MAAMC,YAAY,GAAG,IAAI5D,oBAAoB,CAC5C;AAAC,aAAC;AAAE,eAAG;AAAE,aAAC;SAAC,EACX;;YAECmD,qBAAqB,CAAC9mB,CAAC;;YAEvB,CAAC8mB,qBAAqB,CAAC9mB,CAAC,GAAGomB,WAAW,IAAIE,gBAAgB;;YAE1DQ,qBAAqB,CAAC9mB,CAAC,GAAGsmB,gBAAgB,GAAGF,WAAW;SACxD,CACD;QACD,OAAOmB,YAAY,CAACF,WAAW,CAACJ,OAAO,CAAC,CAAA;KACxC;;IAGD,MAAM,EAAEO,OAAO,GAAEC,OAAO,GAAE,GAAGb,WAAW;IACxC,MAAMc,eAAe,GAAGF,OAAO,KAAK,CAAC,IAAIA,OAAO;IAChD,MAAMG,eAAe,GAAGF,OAAO,KAAK,CAAC,IAAIA,OAAO;IAChD,OAAO;QACNznB,CAAC,EAAE0nB,eAAe,GAAGF,OAAO,GAAGF,gBAAgB,EAAE;QACjDrnB,CAAC,EAAE0nB,eAAe,GAAGF,OAAO,GAAGN,gBAAgB,EAAE;KACjD,CAAA;CACD;;ACxHM,MAAMS,aAAa;IAazB,IAAWle,MAAM,GAAuB;QACvC,IAAI,IAAI,CAACN,aAAa,EAAE;YACvB,OAAO,IAAI,CAACA,aAAa,CAAA;SACzB,MAAM,IAAI,OAAOM,MAAM,KAAK,WAAW,EAAE;YACzC,OAAOA,MAAM,CAAA;SACb;QACD,OAAO1V,SAAS,CAAA;KAChB;IAED,IAAW0P,QAAQ,GAAyB;YACvC,GAAkB;QAAtB,IAAI,CAAA,GAAkB,GAAlB,IAAI,CAAC0F,aAAa,cAAlB,GAAkB,WAAU,GAA5B,KAAA,CAA4B,GAA5B,GAAkB,CAAE1F,QAAQ,EAAE;YACjC,OAAO,IAAI,CAAC0F,aAAa,CAAC1F,QAAQ,CAAA;SAClC,MAAM,IAAI,IAAI,CAACgG,MAAM,EAAE;YACvB,OAAO,IAAI,CAACA,MAAM,CAAChG,QAAQ,CAAA;SAC3B,MAAM;YACN,OAAO1P,SAAS,CAAA;SAChB;KACD;IAED,IAAW6zB,WAAW,GAAqB;YACnC,GAAgB;QAAvB,OAAO,CAAA,CAAA,GAAgB,GAAhB,IAAI,CAACC,WAAW,cAAhB,GAAgB,WAAa,GAA7B,KAAA,CAA6B,GAA7B,GAAgB,CAAED,WAAW,KAAI,IAAI,CAACne,MAAM,CAAA;KACnD;IA7BD,YACCN,aAAkC,EAClCjZ,OAA6B,CAC5B;QAPF,KAAO43B,aAAa,GAAoB,IAHzC,CAG6C;QAQ3C,IAAI,CAAC3e,aAAa,GAAGA,aAAa;QAClC,IAAI,CAAC0e,WAAW,GAAG33B,OAAO;KAC1B;CAwBD;;ACrCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,AAiBO,MAAM63B,gBAAgB;;;KA6CrBC,OAAO,GAA2B;YAMnB,GAAuB,EAGxB,IAAsB;QAR1C,OAAO;YACNC,kBAAkB,EAAE,IAAI,CAACA,kBAAkB,CAACzT,IAAI;YAChD0T,wBAAwB,EAAE,IAAI,CAACA,wBAAwB,CAAC1T,IAAI;YAC5D2T,iBAAiB,EAAE,IAAI,CAACA,iBAAiB,CAAC3T,IAAI;YAC9C4T,WAAW,EAAE,IAAI,CAACA,WAAW,CAAC5T,IAAI;YAClC6T,kBAAkB,EAAE,CAAA,CAAA,GAAuB,GAAvB,IAAI,CAACA,kBAAkB,cAAvB,GAAuB,WAAQ,GAA/B,KAAA,CAA+B,GAA/B,GAAuB,CAAEtsB,MAAM,KAAI,CAAC;YACxDusB,aAAa,EAAE,IAAI,CAACA,aAAa,CAACvsB,MAAM;YACxCwsB,kBAAkB,EAAE,IAAI,CAACA,kBAAkB,CAACxsB,MAAM;YAClDysB,iBAAiB,EAAE,CAAA,CAAA,IAAsB,GAAtB,IAAI,CAACA,iBAAiB,cAAtB,IAAsB,WAAQ,GAA9B,KAAA,CAA8B,GAA9B,IAAsB,CAAEzsB,MAAM,KAAI,CAAC;SACtD,CAAA;KACD;;IAGD,IAAW0N,MAAM,GAAuB;QACvC,OAAO,IAAI,CAACvZ,OAAO,CAACuZ,MAAM,CAAA;KAC1B;IACD,IAAWhG,QAAQ,GAAyB;QAC3C,OAAO,IAAI,CAACvT,OAAO,CAACuT,QAAQ,CAAA;KAC5B;;;KAID,IAAYmkB,WAAW,GAAqB;QAC3C,OAAO,IAAI,CAAC13B,OAAO,CAAC03B,WAAW,CAAQ;KACvC;IAEMloB,KAAK,GAAS;QACpB,MAAM+oB,IAAI,GAAG,IAAI,CAACb,WAAW;QAC7B,IAAIa,IAAI,KAAK10B,SAAS,EAAE;YACvB,OAAM;SACN;QAED,IAAI00B,IAAI,CAACC,wBAAwB,EAAE;YAClC,MAAM,IAAIlxB,KAAK,CAAC,kDAAkD,CAAC,CAAA;SACnE;QACDixB,IAAI,CAACC,wBAAwB,GAAG,IAAI;QACpC,IAAI,CAACC,iBAAiB,CAACF,IAAI,CAAC;KAC5B;IAEM9oB,QAAQ,GAAS;QACvB,MAAM8oB,IAAI,GAAG,IAAI,CAACb,WAAW;QAC7B,IAAIa,IAAI,KAAK10B,SAAS,EAAE;YACvB,OAAM;SACN;QAED00B,IAAI,CAACC,wBAAwB,GAAG,KAAK;QACrC,IAAI,CAACE,oBAAoB,CAAC,IAAI,CAAChB,WAAW,CAAY;QACtD,IAAI,CAACiB,0BAA0B,EAAE;QACjC,IAAI,IAAI,CAACC,mBAAmB,EAAE;gBAC7B,GAAW;YAAX,CAAA,GAAW,GAAX,IAAI,CAACrf,MAAM,cAAX,GAAW,WAAsB,GAAjC,KAAA,CAAiC,GAAjC,GAAW,CAAEsf,oBAAoB,CAAC,IAAI,CAACD,mBAAmB,CA3H7D,CA2H8D;SAC3D;KACD;IAEMhY,kBAAkB,CACxB1V,QAAgB,EAChBoI,IAAa,EACbtT,OAAY,EACE;QACd,IAAI,CAACg4B,wBAAwB,CAAC/uB,GAAG,CAACiC,QAAQ,EAAElL,OAAO,CAAC;QACpD,IAAI,CAAC+3B,kBAAkB,CAAC9uB,GAAG,CAACiC,QAAQ,EAAEoI,IAAI,CAAC;QAE3C,OAAO,IAAY;YAClB,IAAI,CAACykB,kBAAkB,CAAC9f,MAAM,CAAC/M,QAAQ,CAAC;YACxC,IAAI,CAAC8sB,wBAAwB,CAAC/f,MAAM,CAAC/M,QAAQ,CAAC;SAC9C,CAAA;KACD;IAEMkV,iBAAiB,CACvBlV,QAAgB,EAChBoI,IAAa,EACbtT,OAAY,EACE;QACd,IAAI,CAACk4B,WAAW,CAACjvB,GAAG,CAACiC,QAAQ,EAAEoI,IAAI,CAAC;QACpC,IAAI,CAAC2kB,iBAAiB,CAAChvB,GAAG,CAACiC,QAAQ,EAAElL,OAAO,CAAC;QAE7C,MAAM84B,eAAe,GAAG,CAACrD,CAAM,GAAK,IAAI,CAACqD,eAAe,CAACrD,CAAC,EAAEvqB,QAAQ,CAAC;;QACrE,MAAM6tB,iBAAiB,GAAG,CAACtD,CAAM,GAAK,IAAI,CAACsD,iBAAiB,CAACtD,CAAC,CAAC;;QAE/DniB,IAAI,CAAC0lB,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC;QACtC1lB,IAAI,CAAC2lB,gBAAgB,CAAC,WAAW,EAAEH,eAAe,CAAC;QACnDxlB,IAAI,CAAC2lB,gBAAgB,CAAC,aAAa,EAAEF,iBAAiB,CAAC;QAEvD,OAAO,IAAY;YAClB,IAAI,CAACb,WAAW,CAACjgB,MAAM,CAAC/M,QAAQ,CAAC;YACjC,IAAI,CAAC+sB,iBAAiB,CAAChgB,MAAM,CAAC/M,QAAQ,CAAC;YAEvCoI,IAAI,CAAC4lB,mBAAmB,CAAC,WAAW,EAAEJ,eAAe,CAAC;YACtDxlB,IAAI,CAAC4lB,mBAAmB,CAAC,aAAa,EAAEH,iBAAiB,CAAC;YAC1DzlB,IAAI,CAAC0lB,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC;SACvC,CAAA;KACD;IAEMpX,iBAAiB,CAACzV,QAAgB,EAAEmH,IAAiB,EAAe;QAC1E,MAAM6lB,eAAe,GAAG,CAAC1D,CAAY,GAAK,IAAI,CAAC0D,eAAe,CAAC1D,CAAC,EAAEtpB,QAAQ,CAAC;;QAC3E,MAAMitB,cAAc,GAAG,CAAC3D,CAAY,GAAK,IAAI,CAAC2D,cAAc,CAAC3D,CAAC,EAAEtpB,QAAQ,CAAC;;QACzE,MAAMktB,UAAU,GAAG,CAAC5D,CAAY,GAAK,IAAI,CAAC4D,UAAU,CAAC5D,CAAC,EAAEtpB,QAAQ,CAAC;;QAEjEmH,IAAI,CAAC2lB,gBAAgB,CAAC,WAAW,EAAEE,eAAe,CAAC;QACnD7lB,IAAI,CAAC2lB,gBAAgB,CAAC,UAAU,EAAEG,cAAc,CAAC;QACjD9lB,IAAI,CAAC2lB,gBAAgB,CAAC,MAAM,EAAEI,UAAU,CAAC;QAEzC,OAAO,IAAY;YAClB/lB,IAAI,CAAC4lB,mBAAmB,CAAC,WAAW,EAAEC,eAAe,CAAC;YACtD7lB,IAAI,CAAC4lB,mBAAmB,CAAC,UAAU,EAAEE,cAAc,CAAC;YACpD9lB,IAAI,CAAC4lB,mBAAmB,CAAC,MAAM,EAAEG,UAAU,CAAC;SAC5C,CAAA;KACD;IAED,iBAAyB,CAAC7sB,MAAY,EAAE;;QAEvC,IAAI,CAACA,MAAM,CAACysB,gBAAgB,EAAE;YAC7B,OAAM;SACN;QACDzsB,MAAM,CAACysB,gBAAgB,CACtB,WAAW,EACX,IAAI,CAACK,kBAAkB,CACvB;QACD9sB,MAAM,CAACysB,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACM,yBAAyB,EAAE,IAAI,CAAC;QAC1E/sB,MAAM,CAACysB,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAACO,uBAAuB,EAAE,IAAI,CAAC;QACtEhtB,MAAM,CAACysB,gBAAgB,CACtB,WAAW,EACX,IAAI,CAACQ,kBAAkB,CACvB;QACDjtB,MAAM,CAACysB,gBAAgB,CACtB,WAAW,EACX,IAAI,CAACS,yBAAyB,EAC9B,IAAI,CACJ;QACDltB,MAAM,CAACysB,gBAAgB,CACtB,WAAW,EACX,IAAI,CAACU,yBAAyB,EAC9B,IAAI,CACJ;QACDntB,MAAM,CAACysB,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAACW,iBAAiB,CAAkB;QAC5EptB,MAAM,CAACysB,gBAAgB,CACtB,UAAU,EACV,IAAI,CAACY,wBAAwB,EAC7B,IAAI,CACJ;QACDrtB,MAAM,CAACysB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAACa,aAAa,CAAkB;QACpEttB,MAAM,CAACysB,gBAAgB,CACtB,MAAM,EACN,IAAI,CAACc,oBAAoB,EACzB,IAAI,CACJ;KACD;IAED,oBAA4B,CAACvtB,MAAY,EAAE;;QAE1C,IAAI,CAACA,MAAM,CAAC0sB,mBAAmB,EAAE;YAChC,OAAM;SACN;QACD1sB,MAAM,CAAC0sB,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAACI,kBAAkB,CAAQ;QACvE9sB,MAAM,CAAC0sB,mBAAmB,CACzB,WAAW,EACX,IAAI,CAACK,yBAAyB,EAC9B,IAAI,CACJ;QACD/sB,MAAM,CAAC0sB,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAACM,uBAAuB,EAAE,IAAI,CAAC;QACzEhtB,MAAM,CAAC0sB,mBAAmB,CACzB,WAAW,EACX,IAAI,CAACO,kBAAkB,CACvB;QACDjtB,MAAM,CAAC0sB,mBAAmB,CACzB,WAAW,EACX,IAAI,CAACQ,yBAAyB,EAC9B,IAAI,CACJ;QACDltB,MAAM,CAAC0sB,mBAAmB,CACzB,WAAW,EACX,IAAI,CAACS,yBAAyB,EAC9B,IAAI,CACJ;QACDntB,MAAM,CAAC0sB,mBAAmB,CACzB,UAAU,EACV,IAAI,CAACU,iBAAiB,CACtB;QACDptB,MAAM,CAAC0sB,mBAAmB,CACzB,UAAU,EACV,IAAI,CAACW,wBAAwB,EAC7B,IAAI,CACJ;QACDrtB,MAAM,CAAC0sB,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAACY,aAAa,CAAkB;QACvEttB,MAAM,CAAC0sB,mBAAmB,CACzB,MAAM,EACN,IAAI,CAACa,oBAAoB,EACzB,IAAI,CACJ;KACD;IAEOC,2BAA2B,GAAG;QACrC,MAAM9uB,QAAQ,GAAG,IAAI,CAACN,OAAO,CAACsC,WAAW,EAAE;QAC3C,MAAM+qB,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACnwB,GAAG,CAACoD,QAAQ,CAAC;QAE9D,OAAO4N;YACNmhB,UAAU,EAAE,IAAI,CAACC,aAAa,GAAG,MAAM,GAAG,MAAM;WAC5CjC,iBAAiB,IAAI,EAAE,CAC3B,CAAA;KACD;IAEOkC,oBAAoB,GAAG;QAC9B,IAAI,IAAI,CAACC,oBAAoB,EAAE,EAAE;;YAEhC,OAAO,MAAM,CAAA;SACb;QAED,OAAO,IAAI,CAACJ,2BAA2B,EAAE,CAACC,UAAU,CAAA;KACpD;IAEOI,kCAAkC,GAAG;QAC5C,MAAMnvB,QAAQ,GAAG,IAAI,CAACN,OAAO,CAACsC,WAAW,EAAE;QAC3C,MAAM8qB,wBAAwB,GAAG,IAAI,CAACA,wBAAwB,CAAClwB,GAAG,CAACoD,QAAQ,CAAC;QAE5E,OAAO4N;YACNge,OAAO,EAAE,GAAG;YACZC,OAAO,EAAE,GAAG;YACZuD,oBAAoB,EAAE,KAAK;WACvBtC,wBAAwB,IAAI,EAAE,CAClC,CAAA;KACD;IAOOoC,oBAAoB,GAAG;QAC9B,MAAM3uB,QAAQ,GAAG,IAAI,CAACb,OAAO,CAACmD,WAAW,EAAE;QAC3C,OAAOkB,MAAM,CAACC,IAAI,CAACqjB,WAAW,CAAC,CAAC9kB,IAAI,CACnC,CAAC7G,GAAW,GAAK,WAAoB,CAACA,GAAG,CAAC,KAAK6E,QAAQ;SACvD,CAAA;KACD;IAEO8uB,mBAAmB,CAACpwB,IAAY,EAAEonB,YAA2B,EAAE;QACtE,IAAI,CAACoH,0BAA0B,EAAE;QAEjC,IAAI,CAAC6B,mBAAmB,GAAG5H,sBAAsB,CAACzoB,IAAI,EAAEonB,YAAY,CAAC;QACrE,IAAI,CAACkJ,mBAAmB,GAAG,IAAI,CAAC3vB,QAAQ,CAACgL,SAAS,CACjD3L,IAAI,EACJ,IAAI,CAACqwB,mBAAmB,CACxB;QACD,IAAI,CAAC5iC,OAAO,CAAC4S,SAAS,CAAC;YAAC,IAAI,CAACiwB,mBAAmB;SAAC,CAAC;KAClD;IAqCD,wBAAgC,CAACnnB,IAAoB,EAAE;QACtD,IAAI,CAACqlB,0BAA0B,EAAE;QACjC,IAAI,CAAC+B,qBAAqB,GAAGpnB,IAAI;;;;;QAMjC,MAAMqnB,kBAAkB,GAAG,IAAI;;;;;;;;;;;;;QAc/B,IAAI,CAACC,qBAAqB,GAAG/nB,UAAU,CAAC,IAAM;gBACtC,GAAgB;YAAvB,OAAO,CAAA,GAAgB,GAAhB,IAAI,CAAC6kB,WAAW,cAAhB,GAAgB,WAAkB,GAAlC,KAAA,CAAkC,GAAlC,GAAgB,CAAEuB,gBAAgB,CACxC,WAAW,EACX,IAAI,CAAC4B,gCAAgC,EACrC,IAAI,CACJ,CAAA;SACD,EAAEF,kBAAkB,CAAC;KACtB;IAEOhC,0BAA0B,GAAG;QACpC,IAAI,IAAI,CAAC+B,qBAAqB,EAAE;YAC/B,IAAI,CAACA,qBAAqB,GAAG,IAAI;YAEjC,IAAI,IAAI,CAAChD,WAAW,EAAE;oBACrB,GAAW;gBAAX,CAAA,GAAW,GAAX,IAAI,CAACne,MAAM,cAAX,GAAW,WAAc,GAAzB,KAAA,CAAyB,GAAzB,GAAW,CAAEtG,YAAY,CAAC,IAAI,CAAC2nB,qBAAqB,IAAI/2B,SAAS,CArYrE,CAqYsE;gBAClE,IAAI,CAAC6zB,WAAW,CAACwB,mBAAmB,CACnC,WAAW,EACX,IAAI,CAAC2B,gCAAgC,EACrC,IAAI,CACJ;aACD;YAED,IAAI,CAACD,qBAAqB,GAAG,IAAI;YACjC,OAAO,IAAI,CAAA;SACX;QAED,OAAO,KAAK,CAAA;KACZ;IAkCM9B,eAAe,CAACrD,CAAY,EAAEvqB,QAAgB,EAAQ;QAC5D,IAAIuqB,CAAC,CAACqF,gBAAgB,EAAE;YACvB,OAAM;SACN;QAED,IAAI,CAAC,IAAI,CAAC3C,kBAAkB,EAAE;YAC7B,IAAI,CAACA,kBAAkB,GAAG,EAAE;SAC5B;QACD,IAAI,CAACA,kBAAkB,CAAC4C,OAAO,CAAC7vB,QAAQ,CAAC;KACzC;IA6IMiuB,eAAe,CAAC6B,EAAa,EAAE7uB,QAAgB,EAAQ;QAC7D,IAAI,CAACksB,kBAAkB,CAAC0C,OAAO,CAAC5uB,QAAQ,CAAC;KACzC;IA2CMitB,cAAc,CAAC4B,EAAa,EAAE7uB,QAAgB,EAAQ;QAC5D,IAAI,IAAI,CAACmsB,iBAAiB,KAAK,IAAI,EAAE;YACpC,IAAI,CAACA,iBAAiB,GAAG,EAAE;SAC3B;QACD,IAAI,CAACA,iBAAiB,CAACyC,OAAO,CAAC5uB,QAAQ,CAAC;KACxC;IA4EMktB,UAAU,CAAC2B,EAAa,EAAE7uB,QAAgB,EAAQ;QACxD,IAAI,CAACisB,aAAa,CAAC2C,OAAO,CAAC5uB,QAAQ,CAAC;KACpC;IAhpBD,YACC5B,OAAwB,EACxB0O,aAAmC,EACnCjZ,OAA6B,CAC5B;QAvBF,KAAQ+3B,kBAAkB,GAAyB,IAAIhvB,GAAG,EAAE,CAAA;QAC5D,KAAQivB,wBAAwB,GAAqB,IAAIjvB,GAAG,EAAE,CAAA;QAC9D,KAAQmvB,WAAW,GAAyB,IAAInvB,GAAG,EAAE,CAAA;QACrD,KAAQkvB,iBAAiB,GAAqB,IAAIlvB,GAAG,EAAE,CAAA;QAEvD,KAAQovB,kBAAkB,GAAoB,IA5C/C,CA4CmD;QAClD,KAAQC,aAAa,GAAa,EA7CnC,CA6CqC;QACpC,KAAQC,kBAAkB,GAAa,EA9CxC,CA8C0C;QACzC,KAAQmC,mBAAmB,GAA4B,IA/CxD,CA+C4D;QAC3D,KAAQC,mBAAmB,GAAsB,IAhDlD,CAgDsD;QACrD,KAAQC,qBAAqB,GAAmB,IAjDjD,CAiDqD;QACpD,KAAQR,aAAa,GAAG,KAlDzB,CAkD8B;QAC7B,KAAQU,qBAAqB,GAAkB,IAnDhD,CAmDoD;QACnD,KAAQhC,mBAAmB,GAAkB,IApD9C,CAoDkD;QACjD,KAAQN,iBAAiB,GAAoB,IArD9C,CAqDkD;QAEjD,KAAQ2C,gBAAgB,GAAmB,IAvD5C,CAuDgD;QAC/C,KAAQC,UAAU,GAAkB,IAxDrC,CAwDyC;QA+OxC,KAAQvwB,qBAAqB,GAAG,CAACO,QAAgB,GAAqB;YACrE,MAAMG,MAAM,GAAG,IAAI,CAAC6sB,WAAW,CAACpwB,GAAG,CAACoD,QAAQ,CAAC;YAC7C,OAAQG,MAAM,IAAI4pB,mBAAmB,CAAC5pB,MAAM,CAAgB,IAAK,IAAI,CAAA;SAzSvE,CA0SE;QAoBD,KAAQ8vB,iBAAiB,GAAG,IAAY;YACvC,IAAI,CAAC,IAAI,CAACf,oBAAoB,EAAE,EAAE;gBACjC,OAAM;aACN;YAED,IAAI,CAACxiC,OAAO,CAACoV,OAAO,EAAE;YACtB,IAAI,IAAI,CAACytB,mBAAmB,EAAE;gBAC7B,IAAI,CAAC3vB,QAAQ,CAACkL,YAAY,CAAC,IAAI,CAACykB,mBAAmB,CAAC;aACpD;YACD,IAAI,CAACA,mBAAmB,GAAG,IAAI;YAC/B,IAAI,CAACD,mBAAmB,GAAG,IAAI;SAxUjC,CAyUE;QAED,KAAQ9J,gBAAgB,GAAG,CAACpd,IAA6B,GAAc;;YAEtE,OAAO5B,OAAO,CACb4B,IAAI,IACH,IAAI,CAACC,QAAQ,IACb,IAAI,CAACA,QAAQ,CAAC6nB,IAAI,IAClB,IAAI,CAAC7nB,QAAQ,CAAC6nB,IAAI,CAACt4B,QAAQ,CAACwQ,IAAI,CAAC,CAClC,CAAA;SAlVH,CAmVE;QAED,KAAQunB,gCAAgC,GAAG,IAAY;YACtD,MAAMvnB,IAAI,GAAG,IAAI,CAAConB,qBAAqB;YACvC,IAAIpnB,IAAI,IAAI,IAAI,IAAI,IAAI,CAACod,gBAAgB,CAACpd,IAAI,CAAC,EAAE;gBAChD,OAAM;aACN;YAED,IAAI,IAAI,CAACqlB,0BAA0B,EAAE,IAAI,IAAI,CAAC/tB,OAAO,CAACgB,UAAU,EAAE,EAAE;gBACnE,IAAI,CAAChU,OAAO,CAACoV,OAAO,EAAE;aACtB;YACD,IAAI,CAACquB,WAAW,EAAE;SA9VpB,CA+VE;QAqDD,KAAQC,aAAa,GAAG,CAAChD,iBAAkC,GAAK;YAC/D,IACC,IAAI,CAAC4C,UAAU,KAAK,IAAI,IACxB,OAAOK,qBAAqB,KAAK,WAAW,EAC3C;gBACD,IAAI,CAACL,UAAU,GAAGK,qBAAqB,CAAC,IAAM;oBAC7C,IAAI,IAAI,CAAC3wB,OAAO,CAACgB,UAAU,EAAE,EAAE;wBAC9B,IAAI,CAAChU,OAAO,CAAC+V,KAAK,CAAC2qB,iBAAiB,IAAI,EAAE,EAAE;4BAC3CruB,YAAY,EAAE,IAAI,CAACgxB,gBAAgB;yBACnC,CAAC;qBACF;oBAED,IAAI,CAACC,UAAU,GAAG,IAAI;iBACtB,CAAC;aACF;SAlaH,CAmaE;QAED,KAAQG,WAAW,GAAG,IAAM;YAC3B,IACC,IAAI,CAACH,UAAU,KAAK,IAAI,IACxB,OAAOrC,oBAAoB,KAAK,WAAW,EAC1C;gBACDA,oBAAoB,CAAC,IAAI,CAACqC,UAAU,CAAC;gBACrC,IAAI,CAACA,UAAU,GAAG,IAAI;aACtB;SA5aH,CA6aE;QAED,KAAO3B,yBAAyB,GAAG,IAAY;YAC9C,IAAI,CAACZ,0BAA0B,EAAE;YACjC,IAAI,CAACR,kBAAkB,GAAG,EAAE;SAjb9B,CAkbE;QAaD,KAAOmB,kBAAkB,GAAG,CAAC7D,CAAY,GAAW;YACnD,IAAIA,CAAC,CAACqF,gBAAgB,EAAE;gBACvB,OAAM;aACN;YAED,MAAM,EAAE3C,kBAAkB,GAAE,GAAG,IAAI;YACnC,IAAI,CAACA,kBAAkB,GAAG,IAAI;YAE9B,MAAMluB,YAAY,GAAGurB,oBAAoB,CAACC,CAAC,CAAC;;YAG5C,IAAI,IAAI,CAAC7qB,OAAO,CAACgB,UAAU,EAAE,EAAE;gBAC9B,IAAI,CAAChU,OAAO,CAACoV,OAAO,EAAE;gBACtB,IAAI,CAACquB,WAAW,EAAE;aAClB;;YAGD,IAAI,CAACzjC,OAAO,CAAC4S,SAAS,CAAC2tB,kBAAkB,IAAI,EAAE,EAAE;gBAChDztB,aAAa,EAAE,KAAK;gBACpBC,qBAAqB,EAAE,IAAI,CAACA,qBAAqB;gBACjDV,YAAY;aACZ,CAAC;YAEF,MAAM,EAAEsnB,YAAY,GAAE,GAAGkE,CAAC;YAC1B,MAAM+F,UAAU,GAAG1I,mBAAmB,CAACvB,YAAY,CAAC;YAEpD,IAAI,IAAI,CAAC3mB,OAAO,CAACgB,UAAU,EAAE,EAAE;gBAC9B,IAAI2lB,YAAY,IAAI,OAAOA,YAAY,CAACkK,YAAY,KAAK,UAAU,EAAE;;;;oBAIpE,MAAMvwB,QAAQ,GAAW,IAAI,CAACN,OAAO,CAACsC,WAAW,EAAE;oBACnD,MAAMqpB,UAAU,GAAG,IAAI,CAAC2B,WAAW,CAACpwB,GAAG,CAACoD,QAAQ,CAAC;oBACjD,MAAMqR,WAAW,GAAG,IAAI,CAACwb,kBAAkB,CAACjwB,GAAG,CAACoD,QAAQ,CAAC,IAAIqrB,UAAU;oBAEvE,IAAIha,WAAW,EAAE;wBAChB,MAAM,EAAEua,OAAO,GAAEC,OAAO,GAAEM,OAAO,GAAEC,OAAO,GAAE,GAC3C,IAAI,CAAC+C,kCAAkC,EAAE;wBAC1C,MAAM7D,WAAW,GAAG;4BAAEM,OAAO;4BAAEC,OAAO;yBAAE;wBACxC,MAAMN,WAAW,GAAG;4BAAEY,OAAO;4BAAEC,OAAO;yBAAE;wBACxC,MAAMoE,iBAAiB,GAAGpF,oBAAoB,CAC7CC,UAAU,EACVha,WAAW,EACXtS,YAAY,EACZusB,WAAW,EACXC,WAAW,CACX;wBAEDlF,YAAY,CAACkK,YAAY,CACxBlf,WAAW,EACXmf,iBAAiB,CAAC7rB,CAAC,EACnB6rB,iBAAiB,CAAC5rB,CAAC,CACnB;qBACD;iBACD;gBAED,IAAI;;oBAEHyhB,YAAY,aAAZA,YAAY,WAAS,GAArBA,KAAAA,CAAqB,GAArBA,YAAY,CAAEoK,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAQ,CAAA;iBACpD,CAAC,OAAOhnB,GAAG,EAAE;;iBAEb;;;gBAID,IAAI,CAACinB,wBAAwB,CAACnG,CAAC,CAACjpB,MAAM,CAAY;;gBAGlD,MAAM,EAAE8tB,oBAAoB,GAAE,GAAG,IAAI,CAACD,kCAAkC,EAAE;gBAC1E,IAAI,CAACC,oBAAoB,EAAE;;;;;;oBAM1BznB,UAAU,CAAC,IAAM,IAAI,CAACjb,OAAO,CAAC2W,iBAAiB,EAAE;sBAAE,CAAC,CAAC;iBACrD,MAAM;;;;;;;;;;;oBAWN,IAAI,CAAC3W,OAAO,CAAC2W,iBAAiB,EAAE;iBAChC;aACD,MAAM,IAAIitB,UAAU,EAAE;;gBAEtB,IAAI,CAACjB,mBAAmB,CAACiB,UAAU,CAAC;aACpC,MAAM,IACNjK,YAAY,IACZ,CAACA,YAAY,CAACvZ,KAAK,KAClB,CAAE,CAACxL,MAAM,IAAI,CAAEipB,CAAC,CAACjpB,MAAM,CAAaqvB,YAAY,IAChD,CAAC,CAAE,CAACrvB,MAAM,CAAaqvB,YAAY,CAAC,WAAW,CAAC,CAAC,EACjD;;;;gBAID,OAAM;aACN,MAAM;;gBAENpG,CAAC,CAAClH,cAAc,EAAE;aAClB;SAxiBH,CAyiBE;QAED,KAAOiL,uBAAuB,GAAG,IAAY;YAC5C,IAAI,IAAI,CAACb,0BAA0B,EAAE,IAAI,IAAI,CAAC/tB,OAAO,CAACgB,UAAU,EAAE,EAAE;;;;gBAInE,IAAI,CAAChU,OAAO,CAACoV,OAAO,EAAE;aACtB;YACD,IAAI,CAACquB,WAAW,EAAE;SAljBpB,CAmjBE;QAED,KAAO3B,yBAAyB,GAAG,CAACjE,CAAY,GAAW;YAC1D,IAAI,CAAC4C,kBAAkB,GAAG,EAAE;YAE5B,IAAI,IAAI,CAAC+B,oBAAoB,EAAE,EAAE;oBAChC,GAAwB;gBAAxB,CAAA,GAAwB,GAAxB,IAAI,CAACI,mBAAmB,cAAxB,GAAwB,WAAkB,GAA1C,KAAA,CAA0C,GAA1C,GAAwB,CAAE3H,gBAAgB,CAAC4C,CAAC,CAAClE,YAAY,CAzjB5D,CAyjB6D;aAC1D;YAED,MAAMuK,YAAY,GAAG,IAAI,CAACC,iBAAiB,CAACC,KAAK,CAACvG,CAAC,CAACjpB,MAAM,CAAC;YAC3D,IAAI,CAACsvB,YAAY,IAAI,IAAI,CAAClxB,OAAO,CAACgB,UAAU,EAAE,EAAE;gBAC/C,OAAM;aACN;YAED,MAAM,EAAE2lB,YAAY,GAAE,GAAGkE,CAAC;YAC1B,MAAM+F,UAAU,GAAG1I,mBAAmB,CAACvB,YAAY,CAAC;YAEpD,IAAIiK,UAAU,EAAE;;gBAEf,IAAI,CAACjB,mBAAmB,CAACiB,UAAU,EAAEjK,YAAY,CAAiB;aAClE;SAvkBH,CAwkBE;QAMD,KAAOkI,kBAAkB,GAAG,CAAChE,CAAY,GAAW;YACnD,MAAM,EAAE4C,kBAAkB,GAAE,GAAG,IAAI;YACnC,IAAI,CAACA,kBAAkB,GAAG,EAAE;YAE5B,IAAI,CAAC,IAAI,CAACztB,OAAO,CAACgB,UAAU,EAAE,EAAE;;gBAE/B,OAAM;aACN;YAED,IAAI,CAACsuB,aAAa,GAAGzE,CAAC,CAACwG,MAAM;;;;YAK7B,IAAI5D,kBAAkB,CAACxsB,MAAM,GAAG,CAAC,EAAE;gBAClC,IAAI,CAACjU,OAAO,CAAC+V,KAAK,CAAC0qB,kBAAkB,EAAE;oBACtCpuB,YAAY,EAAEurB,oBAAoB,CAACC,CAAC,CAAC;iBACrC,CAAC;aACF;YAED,MAAMhkB,OAAO,GAAG4mB,kBAAkB,CAAC5qB,IAAI,CAAC,CAACtB,QAAQ,GAChD,IAAI,CAACvB,OAAO,CAACiC,eAAe,CAACV,QAAQ,CAAC;aACtC;YAED,IAAIsF,OAAO,EAAE;;gBAEZgkB,CAAC,CAAClH,cAAc,EAAE;gBAClB,IAAIkH,CAAC,CAAClE,YAAY,EAAE;oBACnBkE,CAAC,CAAClE,YAAY,CAAC0I,UAAU,GAAG,IAAI,CAACE,oBAAoB,EAAE;iBACvD;aACD;SA5mBH,CA6mBE;QAED,KAAON,wBAAwB,GAAG,CAACpE,CAAY,GAAW;YACzD,IAAI,CAAC6C,iBAAiB,GAAG,EAAE;YAE3B,IAAI,IAAI,CAAC8B,oBAAoB,EAAE,EAAE;oBAChC,GAAwB;gBAAxB,CAAA,GAAwB,GAAxB,IAAI,CAACI,mBAAmB,cAAxB,GAAwB,WAAkB,GAA1C,KAAA,CAA0C,GAA1C,GAAwB,CAAE3H,gBAAgB,CAAC4C,CAAC,CAAClE,YAAY,CAnnB5D,CAmnB6D;aAC1D;SApnBH,CAqnBE;QASD,KAAOqI,iBAAiB,GAAG,CAACnE,CAAY,GAAW;YAClD,MAAM,EAAE6C,iBAAiB,GAAE,GAAG,IAAI;YAClC,IAAI,CAACA,iBAAiB,GAAG,EAAE;YAE3B,IAAI,CAAC,IAAI,CAAC1tB,OAAO,CAACgB,UAAU,EAAE,EAAE;;;gBAG/B6pB,CAAC,CAAClH,cAAc,EAAE;gBAClB,IAAIkH,CAAC,CAAClE,YAAY,EAAE;oBACnBkE,CAAC,CAAClE,YAAY,CAAC0I,UAAU,GAAG,MAAM;iBAClC;gBACD,OAAM;aACN;YAED,IAAI,CAACC,aAAa,GAAGzE,CAAC,CAACwG,MAAM;YAC7B,IAAI,CAAChB,gBAAgB,GAAGzF,oBAAoB,CAACC,CAAC,CAAC;YAE/C,IAAI,CAAC6F,aAAa,CAAChD,iBAAiB,CAAC;YAErC,MAAM7mB,OAAO,GAAG,CAAC6mB,iBAAiB,IAAI,EAAE,EAAE7qB,IAAI,CAAC,CAACtB,QAAQ,GACvD,IAAI,CAACvB,OAAO,CAACiC,eAAe,CAACV,QAAQ,CAAC;aACtC;YAED,IAAIsF,OAAO,EAAE;;gBAEZgkB,CAAC,CAAClH,cAAc,EAAE;gBAClB,IAAIkH,CAAC,CAAClE,YAAY,EAAE;oBACnBkE,CAAC,CAAClE,YAAY,CAAC0I,UAAU,GAAG,IAAI,CAACE,oBAAoB,EAAE;iBACvD;aACD,MAAM,IAAI,IAAI,CAACC,oBAAoB,EAAE,EAAE;;;gBAGvC3E,CAAC,CAAClH,cAAc,EAAE;aAClB,MAAM;gBACNkH,CAAC,CAAClH,cAAc,EAAE;gBAClB,IAAIkH,CAAC,CAAClE,YAAY,EAAE;oBACnBkE,CAAC,CAAClE,YAAY,CAAC0I,UAAU,GAAG,MAAM;iBAClC;aACD;SApqBH,CAqqBE;QAED,KAAON,yBAAyB,GAAG,CAAClE,CAAY,GAAW;YAC1D,IAAI,IAAI,CAAC2E,oBAAoB,EAAE,EAAE;gBAChC3E,CAAC,CAAClH,cAAc,EAAE;aAClB;YAED,MAAM2N,WAAW,GAAG,IAAI,CAACH,iBAAiB,CAACI,KAAK,CAAC1G,CAAC,CAACjpB,MAAM,CAAC;YAC1D,IAAI,CAAC0vB,WAAW,EAAE;gBACjB,OAAM;aACN;YAED,IAAI,IAAI,CAAC9B,oBAAoB,EAAE,EAAE;gBAChCvnB,UAAU,CAAC,IAAM,IAAI,CAACsoB,iBAAiB,EAAE;kBAAE,CAAC,CAAC;aAC7C;YACD,IAAI,CAACE,WAAW,EAAE;SAprBpB,CAqrBE;QAED,KAAOtB,oBAAoB,GAAG,CAACtE,CAAY,GAAW;YACrD,IAAI,CAAC2C,aAAa,GAAG,EAAE;YAEvB,IAAI,IAAI,CAACgC,oBAAoB,EAAE,EAAE;oBAEhC,GAAwB;gBADxB3E,CAAC,CAAClH,cAAc,EAAE;gBAClB,CAAA,GAAwB,GAAxB,IAAI,CAACiM,mBAAmB,cAAxB,GAAwB,WAAkB,GAA1C,KAAA,CAA0C,GAA1C,GAAwB,CAAE3H,gBAAgB,CAAC4C,CAAC,CAAClE,YAAY,CA5rB5D,CA4rB6D;aAC1D,MAAM,IAAIuB,mBAAmB,CAAC2C,CAAC,CAAClE,YAAY,CAAC,EAAE;;;;gBAK/CkE,CAAC,CAAClH,cAAc,EAAE;aAClB;YAED,IAAI,CAACwN,iBAAiB,CAACnL,KAAK,EAAE;SArsBhC,CAssBE;QAMD,KAAOkJ,aAAa,GAAG,CAACrE,CAAY,GAAW;YAC9C,MAAM,EAAE2C,aAAa,GAAE,GAAG,IAAI;YAC9B,IAAI,CAACA,aAAa,GAAG,EAAE;YAEvB,IAAI,CAACxgC,OAAO,CAAC+V,KAAK,CAACyqB,aAAa,EAAE;gBACjCnuB,YAAY,EAAEurB,oBAAoB,CAACC,CAAC,CAAC;aACrC,CAAC;YACF,IAAI,CAAC79B,OAAO,CAACoU,IAAI,CAAC;gBAAEiuB,UAAU,EAAE,IAAI,CAACE,oBAAoB,EAAE;aAAE,CAAC;YAE9D,IAAI,IAAI,CAACC,oBAAoB,EAAE,EAAE;gBAChC,IAAI,CAACe,iBAAiB,EAAE;aACxB,MAAM,IAAI,IAAI,CAACvwB,OAAO,CAACgB,UAAU,EAAE,EAAE;gBACrC,IAAI,CAAChU,OAAO,CAACoV,OAAO,EAAE;aACtB;YACD,IAAI,CAACquB,WAAW,EAAE;SA1tBpB,CA2tBE;QAED,KAAOtC,iBAAiB,GAAG,CAACtD,CAAY,GAAW;YAClD,MAAMjpB,MAAM,GAAGipB,CAAC,CAACjpB,MAAM;;;YAIvB,IAAI,OAAOA,MAAM,CAAC4vB,QAAQ,KAAK,UAAU,EAAE;gBAC1C,OAAM;aACN;;YAGD,IACC5vB,MAAM,CAAC6vB,OAAO,KAAK,OAAO,IAC1B7vB,MAAM,CAAC6vB,OAAO,KAAK,QAAQ,IAC3B7vB,MAAM,CAAC6vB,OAAO,KAAK,UAAU,IAC7B7vB,MAAM,CAAC8vB,iBAAiB,EACvB;gBACD,OAAM;aACN;;;YAID7G,CAAC,CAAClH,cAAc,EAAE;YAClB/hB,MAAM,CAAC4vB,QAAQ,EAAE;SAnvBnB,CAovBE;QArrBA,IAAI,CAACp8B,OAAO,GAAG,IAAIy3B,aAAa,CAACxe,aAAa,EAAEjZ,OAAO,CAAC;QACxD,IAAI,CAACpI,OAAO,GAAG2S,OAAO,CAACqE,UAAU,EAAE;QACnC,IAAI,CAAChE,OAAO,GAAGL,OAAO,CAACM,UAAU,EAAE;QACnC,IAAI,CAACC,QAAQ,GAAGP,OAAO,CAACQ,WAAW,EAAE;QACrC,IAAI,CAACgxB,iBAAiB,GAAG,IAAI1L,iBAAiB,CAAC,IAAI,CAACK,gBAAgB,CAAC;KACrE;CAirBD;;AC7uBM,MAAM6L,YAAY,GAAmB,SAASC,aAAa,CACjEjyB,OAAwB,EACxB8P,OAA6B,EAC7Bra,OAA6B,EACV;IACnB,OAAO,IAAI63B,gBAAgB,CAACttB,OAAO,EAAE8P,OAAO,EAAEra,OAAO,CAAC,CAAA;CACtD,CAAA;;;ACdD,AAQO,IAAMy8B,0BAA0B,GAAc,SAAxCA,0BAAwC;MACnD98B,gBAAAA;MACG+8B;;EAEH,IACE38B,QADF,GAQIJ,QARJ,CACEI,QADF;0BAQIJ,QARJ,CAEEK,OAFF;gDAGIC,KAHJ;MAGajC,kBAHb,yBAGaA,kBAHb;MAGiCE,cAHjC,yBAGiCA,cAHjC;MAIIgC,YAJJ,qBAIIA,YAJJ;MAKIy8B,qBALJ,qBAKIA,qBALJ;MAOEC,eAPF,GAQIj9B,QARJ,CAOEi9B,eAPF;;EAUA,gBAAyB78B,QAAQ,EAAjC;MAAQ88B,YAAR,aAAQA,YAAR;;EAEA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACj7B,KAAD;IAC7B86B,qBAAqB,QAArB,YAAAA,qBAAqB,CAAG;MACtB96B,KAAK,EAALA,KADsB;MAEtBg7B,YAAY,EAAE,CAACA,YAFO;MAGtBl9B,QAAQ,EAARA;KAHmB,CAArB;IAKAi9B,eAAe,CAAC,CAACC,YAAF,CAAf;GANF;;EASA,OACEp8B,4BAAA,CAACC,gBAAD;IAASC,KAAK;IAACG,KAAK,EAAEZ,YAAY,CAAC7E;GAAnC,EACEoF,4BAAA,CAACM,mBAAD;kBACcb,YAAY,CAACrF;IACzBoG,OAAO,EAAE67B;KACLJ,KAHN,EAKGG,YAAY,GAAGp8B,4BAAA,CAACzC,kBAAD,MAAA,CAAH,GAA4ByC,4BAAA,CAACvC,cAAD,MAAA,CAL3C,CADF,CADF;AAWD,CApCM;;;ACRP,AASO,IAAM6+B,yBAAyB,GAAc,SAAvCA,yBAAuC;MAAGp9B,gBAAAA;MAAa+8B;;EAClE,wBAKI/8B,QALJ,CACEK,OADF;MAEaV,cAFb,qBAEIW,KAFJ,CAEaX,cAFb;MAGIY,YAHJ,qBAGIA,YAHJ;;EAOA,gBAAgCgb,cAAQ,CAAqB,IAArB,CAAxC;MAAO3W,QAAP;MAAiBG,WAAjB;;EAEA,IAAMs4B,WAAW,GAAG,SAAdA,WAAc,CAACn7B,KAAD;IAClB6C,WAAW,CAAC7C,KAAK,CAACwqB,aAAP,CAAX;GADF;;EAIA,OACE5rB,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAACC,gBAAD;IAASC,KAAK;IAACG,KAAK,EAAEZ,YAAY,CAACtF;GAAnC,EACE6F,4BAAA,CAACM,mBAAD;kBACcb,YAAY,CAACtF;IACzBqG,OAAO,EAAE+7B;KACLN,KAHN,EAKEj8B,4BAAA,CAACnB,cAAD,MAAA,CALF,CADF,CADF,EAUEmB,4BAAA,CAACuoB,uBAAD;IACEzkB,QAAQ,EAAEA;IACVG,WAAW,EAAEA;IACb/E,QAAQ,EAAEA;GAHZ,CAVF,CADF;AAkBD,CAhCM;;;ACTP,AAQO,IAAMs9B,4BAA4B,GAAc,SAA1CA,4BAA0C;MACrDt9B,gBAAAA;MACG+8B;;EAEH,IACE38B,QADF,GAQIJ,QARJ,CACEI,QADF;0BAQIJ,QARJ,CAEEK,OAFF;gDAGIC,KAHJ;MAGazD,gBAHb,yBAGaA,gBAHb;MAG+BE,iBAH/B,yBAG+BA,iBAH/B;MAGkDE,gBAHlD,yBAGkDA,gBAHlD;MAIIsD,YAJJ,qBAIIA,YAJJ;MAKIg9B,gBALJ,qBAKIA,gBALJ;MAOEC,UAPF,GAQIx9B,QARJ,CAOEw9B,UAPF;;EAUA,gBAAoBp9B,QAAQ,EAA5B;MAAQO,OAAR,aAAQA,OAAR;;EAEA,IAAM88B,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACv7B,KAAD;IAC/B,IAAMw7B,WAAW,GACf/8B,OAAO,KAAK,aAAZ,GACI,SADJ,GAEIA,OAAO,KAAK,SAAZ,GACA,UADA,GAEA,aALN;IAMA48B,gBAAgB,QAAhB,YAAAA,gBAAgB,CAAG;MACjBr7B,KAAK,EAALA,KADiB;MAEjBvB,OAAO,EAAE+8B,WAFQ;MAGjB19B,QAAQ,EAARA;KAHc,CAAhB;IAKAw9B,UAAU,CAACE,WAAD,CAAV;GAZF;;EAeA,OACE58B,4BAAA,CAACC,gBAAD;IAASC,KAAK;IAACG,KAAK,EAAEZ,YAAY,CAAC9E;GAAnC,EACEqF,4BAAA,CAACM,mBAAD;kBACcb,YAAY,CAAC9E;IACzB6F,OAAO,EAAEm8B;KACLV,KAHN,EAKGp8B,OAAO,KAAK,SAAZ,GACCG,4BAAA,CAAC7D,gBAAD,MAAA,CADD,GAEG0D,OAAO,KAAK,aAAZ,GACFG,4BAAA,CAAC/D,iBAAD,MAAA,CADE,GAGF+D,4BAAA,CAACjE,gBAAD,MAAA,CAVJ,CADF,CADF;AAiBD,CAhDM;;;ACRP,AAQO,IAAM8gC,uBAAuB,GAAc,SAArCA,uBAAqC;MAAG39B,gBAAAA;MAAa+8B;;EAChE,IACE38B,QADF,GAQIJ,QARJ,CACEI,QADF;0BAQIJ,QARJ,CAEEK,OAFF;gDAGIC,KAHJ;MAGarC,cAHb,yBAGaA,cAHb;MAG6BE,iBAH7B,yBAG6BA,iBAH7B;MAIIoC,YAJJ,qBAIIA,YAJJ;MAKIq9B,oBALJ,qBAKIA,oBALJ;MAOE5S,cAPF,GAQIhrB,QARJ,CAOEgrB,cAPF;;EAUA,gBAAwB5qB,QAAQ,EAAhC;MAAQy9B,WAAR,aAAQA,WAAR;;EAEA,IAAMC,uBAAuB,GAAG,SAA1BA,uBAA0B,CAAC57B,KAAD;IAC9B07B,oBAAoB,QAApB,YAAAA,oBAAoB,CAAG;MACrB17B,KAAK,EAALA,KADqB;MAErB27B,WAAW,EAAE,CAACA,WAFO;MAGrB79B,QAAQ,EAARA;KAHkB,CAApB;IAKAgrB,cAAc,CAAC,CAAC6S,WAAF,CAAd;GANF;;EASA,OACE/8B,4BAAA,CAACC,gBAAD;IAASC,KAAK;IAACG,KAAK,EAAEZ,YAAY,CAACrF;GAAnC,EACE4F,4BAAA,CAACM,mBAAD;kBACcb,YAAY,CAACrF;IACzBoG,OAAO,EAAEw8B;KACLf,KAHN,EAKGc,WAAW,GAAG/8B,4BAAA,CAAC3C,iBAAD,MAAA,CAAH,GAA2B2C,4BAAA,CAAC7C,cAAD,MAAA,CALzC,CADF,CADF;AAWD,CAjCM;;;ACRP,AAQO,IAAM8/B,4BAA4B,GAAc,SAA1CA,4BAA0C;MACrD/9B,gBAAAA;MACG+8B;;EAEH,IACE38B,QADF,GAUIJ,QAVJ,CACEI,QADF;0BAUIJ,QAVJ,CAEEK,OAFF;gDAGIC,KAHJ;MAGajB,UAHb,yBAGaA,UAHb;MAGyBE,aAHzB,yBAGyBA,aAHzB;MAIIwrB,OAJJ,qBAIIA,OAJJ;MAKIxqB,YALJ,qBAKIA,YALJ;MAMIy9B,uBANJ,qBAMIA,uBANJ;MAOIC,yBAPJ,qBAOIA,yBAPJ;MASEC,mBATF,GAUIl+B,QAVJ,CASEk+B,mBATF;;EAYA,gBAA6B99B,QAAQ,EAArC;MAAQ+9B,gBAAR,aAAQA,gBAAR;;EAEA,IAAMC,cAAc,GAClBJ,uBAAuB,YAAYn9B,QAAnC,GACIm9B,uBAAuB,CAAC;IAAEh+B,QAAQ,EAARA;GAAH,CAD3B,GAEIg+B,uBAHN;;EAKA,IAAMK,kBAAkB,GAAG,SAArBA,kBAAqB,CAACn8B,KAAD;IACzB+7B,yBAAyB,QAAzB,YAAAA,yBAAyB,CAAG;MAC1B/7B,KAAK,EAALA,KAD0B;MAE1Bi8B,gBAAgB,EAAE,CAACA,gBAFO;MAG1Bn+B,QAAQ,EAARA;KAHuB,CAAzB;IAKAk+B,mBAAmB,CAAC,CAACC,gBAAF,CAAnB;IACAjrB,UAAU,CACR;MAAA;;MAAA,gCACEU,QAAQ,CACLwY,cADH,uBAEIgS,cAFJ,oBAEIA,cAAc,CAAEh7B,EAFpB,0CAEiC2nB,OAFjC,wBADF,qBACE,sBAIIuB,KAJJ,EADF;KADQ,EAOR,GAPQ,CAAV;GAPF;;EAkBA,OACExrB,4BAAA,CAACC,gBAAD;IAASC,KAAK;IAACG,KAAK,EAAEZ,YAAY,CAACpF;GAAnC,EACE2F,4BAAA,CAACM,mBAAD;IAAYE,OAAO,EAAE+8B;KAAwBtB,KAA7C,EACGoB,gBAAgB,GAAGr9B,4BAAA,CAACvB,aAAD,MAAA,CAAH,GAAuBuB,4BAAA,CAACzB,UAAD,MAAA,CAD1C,CADF,CADF;AAOD,CAhDM;;ACcA,IAAMi/B,yBAAyB,GAAc,SAAvCA,yBAAuC;;;MAAGt+B,gBAAAA;EACrD,IACEI,QADF,GAYIJ,QAZJ,CACEI,QADF;MAEEm+B,eAFF,GAYIv+B,QAZJ,CAEEu+B,eAFF;0BAYIv+B,QAZJ,CAGEK,OAHF;MAIIm+B,4BAJJ,qBAIIA,4BAJJ;gDAKIl+B,KALJ;MAKajB,UALb,yBAKaA,UALb;MAKyB1C,SALzB,yBAKyBA,SALzB;MAMI4D,YANJ,qBAMIA,YANJ;MAOIy9B,uBAPJ,qBAOIA,uBAPJ;MAQIS,0BARJ,qBAQIA,0BARJ;MASIC,mCATJ,qBASIA,mCATJ;MAUI3T,OAVJ,qBAUIA,OAVJ;;EAcA,gBAA2C3qB,QAAQ,EAAnD;MAAQu+B,YAAR,aAAQA,YAAR;MAAsBR,gBAAtB,aAAsBA,gBAAtB;;EAEA,gBAAgC5iB,cAAQ,CAAqB,IAArB,CAAxC;MAAO3W,QAAP;MAAiBG,WAAjB;;EACA,iBAAsCwW,cAAQ,CAACojB,YAAD,WAACA,YAAD,GAAiB,EAAjB,CAA9C;MAAOtnB,WAAP;MAAoBunB,cAApB;;EAEA,IAAMC,qBAAqB,GAAGpjB,iBAAW,CACvCqjB,iBAAQ,CAAC,UAAC58B,KAAD;;;IACPq8B,eAAe,wBAACr8B,KAAK,CAAC2K,MAAN,CAAa3G,KAAd,kCAAuBhC,SAAvB,CAAf;IACAw6B,mCAAmC,QAAnC,YAAAA,mCAAmC,CAAG;MAAEx8B,KAAK,EAALA,KAAF;MAASlC,QAAQ,EAARA;KAAZ,CAAnC;GAFM,EAGL,GAHK,CAD+B,EAKvC,EALuC,CAAzC;;EAQA,IAAMsR,YAAY,GAAG,SAAfA,YAAe,CAACpP,KAAD;IACnB08B,cAAc,CAAC18B,KAAK,CAAC2K,MAAN,CAAa3G,KAAd,CAAd;IACA24B,qBAAqB,CAAC38B,KAAD,CAArB;IACAu8B,0BAA0B,QAA1B,YAAAA,0BAA0B,CAAG;MAAEv8B,KAAK,EAALA,KAAF;MAASlC,QAAQ,EAARA;KAAZ,CAA1B;GAHF;;EAMA,IAAM++B,0BAA0B,GAAG,SAA7BA,0BAA6B,CAAC78B,KAAD;IACjC6C,WAAW,CAAC7C,KAAK,CAACwqB,aAAP,CAAX;GADF;;EAIA,IAAMsS,WAAW,GAAG,SAAdA,WAAc;IAClBJ,cAAc,CAAC,EAAD,CAAd;IACAL,eAAe,CAACr6B,SAAD,CAAf;GAFF;;EAKA,IAAMk6B,cAAc,GAClBJ,uBAAuB,YAAYn9B,QAAnC,GACIm9B,uBAAuB,CAAC;IAAEh+B,QAAQ,EAARA;GAAH,CAD3B,GAEIg+B,uBAHN;EAKA,OACEl9B,4BAAA,CAACm+B,iBAAD;IAAU,MAAId;IAAkBe,WAAW,EAAC;GAA5C,EACEp+B,4BAAA,CAACq+B,kBAAD;IACE/7B,EAAE,WAAS2nB,OAAT;IACFqU,WAAW,EAAE7+B,YAAY,CAAC3F;IAC1BsuB,QAAQ,EAAE5X;IACVpL,KAAK,EAAEmR,WAAF,WAAEA,WAAF,GAAiB;IACtBgoB,OAAO,EAAC;IACRC,UAAU,EAAE;MACVC,cAAc,EAAEf,4BAA4B,GAC1C19B,4BAAA,CAAC0+B,uBAAD;QAAgBC,QAAQ,EAAC;OAAzB,EACE3+B,4BAAA,CAACC,gBAAD;QAASC,KAAK;QAACG,KAAK,EAAEZ,YAAY,CAAClI;OAAnC,EACEyI,4BAAA,CAACM,mBAAD;sBACcb,YAAY,CAAClI;QACzBiJ,OAAO,EAAEy9B;QACTpa,IAAI,EAAC;QACLpjB,EAAE,EAAE;UAAEC,MAAM,EAAE,SAAV;UAAqBC,KAAK,EAAE;;OAJlC,EAMEX,4BAAA,CAACzB,UAAD,MAAA,CANF,CADF,CADF,CAD0C,GAc1CyB,4BAAA,CAACzB,UAAD,MAAA,CAfQ;MAiBVqgC,YAAY,EACV5+B,4BAAA,CAAC0+B,uBAAD;QAAgBC,QAAQ,EAAC;OAAzB,EACE3+B,4BAAA,CAACC,gBAAD;QAASC,KAAK;QAACG,KAAK,2BAAEZ,YAAY,CAAChI,WAAf,oCAA8B;OAAlD,EACEuI,4BAAA,OAAA,MAAA,EACEA,4BAAA,CAACM,mBAAD;sBACcb,YAAY,CAAChI;QACzB8I,QAAQ,EAAE,EAACgW,WAAD,YAACA,WAAW,CAAEnL,MAAd;QACV5K,OAAO,EAAE09B;QACTra,IAAI,EAAC;OAJP,EAME7jB,4BAAA,CAACnE,SAAD,MAAA,CANF,CADF,CADF,CADF;;KAgBAyhC,eAxCN,CADF,EA2CEt9B,4BAAA,CAAC6D,oBAAD;IACEC,QAAQ,EAAEA;IACVG,WAAW,EAAEA;IACb/E,QAAQ,EAAEA;GAHZ,CA3CF,CADF;AAmDD,CAnGM;;ACRA,IAAM2/B,0BAA0B,GAAc,SAAxCA,0BAAwC;;;MAAG3/B,gBAAAA;EACtD,wBAaIA,QAbJ,CACEK,OADF;MAEIuqB,mBAFJ,qBAEIA,mBAFJ;MAGIvD,oBAHJ,qBAGIA,oBAHJ;MAIIuY,mBAJJ,qBAIIA,mBAJJ;MAKIC,aALJ,qBAKIA,aALJ;MAMIC,sBANJ,qBAMIA,sBANJ;MAOIC,kBAPJ,qBAOIA,kBAPJ;MAQIzY,YARJ,qBAQIA,YARJ;MASIC,aATJ,qBASIA,aATJ;MAUIyY,oBAVJ,qBAUIA,oBAVJ;MAWIC,4BAXJ,qBAWIA,4BAXJ;EAeA,OACEn/B,4BAAA,CAACyjB,YAAD;IACEhjB,EAAE,EAAE;MACFmD,UAAU,EAAE,QADV;MAEF4jB,OAAO,EAAE,MAFP;MAGF4X,MAAM,EAAE;;GAJZ,2BAOGD,4BAPH,oBAOGA,4BAA4B,CAAG;IAC9BnD,0BAA0B,EAA1BA,0BAD8B;IAE9BM,yBAAyB,EAAzBA,yBAF8B;IAG9BE,4BAA4B,EAA5BA,4BAH8B;IAI9BK,uBAAuB,EAAvBA,uBAJ8B;IAK9BI,4BAA4B,EAA5BA,4BAL8B;IAM9B/9B,QAAQ,EAARA;GAN2B,CAP/B,oCAeIc,4BAAA,wBAAA,MAAA,EACGi/B,kBAAkB,IAAIC,oBAAoB,KAAK,OAA/C,IACCl/B,4BAAA,CAACw9B,yBAAD;IAA2Bt+B,QAAQ,EAAEA;GAArC,CAFJ,EAIG6/B,aAAa,IAAIE,kBAAjB,IACCj/B,4BAAA,CAACi9B,4BAAD;IAA8B/9B,QAAQ,EAAEA;GAAxC,CALJ,EAOG6/B,aAAa,IAAIjV,mBAAjB,IACC9pB,4BAAA,CAAC68B,uBAAD;IAAyB39B,QAAQ,EAAEA;GAAnC,CARJ,EAUG,CAACsnB,YAAY,IAAID,oBAAhB,IAAwCE,aAAzC,KACCzmB,4BAAA,CAACs8B,yBAAD;IAA2Bp9B,QAAQ,EAAEA;GAArC,CAXJ,EAaG4/B,mBAAmB,IAClB9+B,4BAAA,CAACw8B,4BAAD;IAA8Bt9B,QAAQ,EAAEA;GAAxC,CAdJ,EAgBG8/B,sBAAsB,IACrBh/B,4BAAA,CAACg8B,0BAAD;IAA4B98B,QAAQ,EAAEA;GAAtC,CAjBJ,CAfJ,CADF;AAuCD,CAvDM;;ACLA,IAAMmgC,mBAAmB,GAAc,SAAjCA,mBAAiC;MAAGngC,gBAAAA;MAAUy/B,gBAAAA;EACzD,IACEW,wBADF,GAUIpgC,QAVJ,CACEogC,wBADF;MAEEhgC,QAFF,GAUIJ,QAVJ,CAEEI,QAFF;MAGEigC,YAHF,GAUIrgC,QAVJ,CAGEqgC,YAHF;MAIEC,WAJF,GAUItgC,QAVJ,CAIEsgC,WAJF;0BAUItgC,QAVJ,CAKEK,OALF;MAMIkgC,uBANJ,qBAMIA,uBANJ;MAOIC,4BAPJ,qBAOIA,4BAPJ;MAQIC,QARJ,qBAQIA,QARJ;;EAYA,gBAGIrgC,QAAQ,EAHZ;uCACEsgC,UADF;mDACgBC,QADhB;MACgBA,QADhB,sCAC2B,EAD3B;oDAC+BC,SAD/B;MAC+BA,SAD/B,uCAC2C,CAD3C;MAEEzC,gBAFF,aAEEA,gBAFF;;EAKA,IAAM0C,oBAAoB,GACxBN,uBAAuB,YAAY1/B,QAAnC,GACI0/B,uBAAuB,CAAC;IAAEvgC,QAAQ,EAARA;GAAH,CAD3B,GAEIugC,uBAHN;;EAKA,IAAMO,uBAAuB,GAAG,SAA1BA,uBAA0B,CAAC5+B,KAAD;IAC9Bo+B,WAAW,CAAC,CAACp+B,KAAK,CAAC2K,MAAN,CAAa3G,KAAf,CAAX;GADF;;EAIA,IAAM66B,aAAa,GAAGN,QAAH,WAAGA,QAAH,GAAeL,wBAAwB,GAAGY,IAA3B,CAAgC90B,MAAlE;EAEA,IAAM+0B,wBAAwB,GAAGF,aAAa,GAAGJ,QAAhB,GAA2B,CAA5D;EAEA,OACE7/B,4BAAA,CAACogC,wBAAD;IACEC,WAAW,EAAE;MACX5/B,EAAE,EAAE;QAAE0jB,CAAC,EAAE;OADE;MAEXmc,SAAS,EAAE;QAAEx6B,aAAa,EAAE;UAAEy6B,cAAc,EAAE;;;;IAEhDC,SAAS,EAAC;IACV53B,KAAK,EAAEq3B;IACPQ,YAAY,EAAE,sBAACC,CAAD,EAASC,OAAT;MAAA,OAA6BpB,YAAY,CAACoB,OAAD,CAAzC;;IACdC,mBAAmB,EAAEZ;IACrBa,IAAI,EAAEf;IACNgB,WAAW,EAAEjB;IACbkB,kBAAkB,EAAE,CAAC,CAAD,EAAI,EAAJ,EAAQ,EAAR,EAAY,EAAZ,EAAgB,EAAhB,EAAoB,EAApB,EAAwB,EAAxB,EAA4B,GAA5B;IACpBC,eAAe,EAAEb;IACjBc,cAAc,EAAEd;KACZJ;IACJt/B,EAAE;MACA0jB,CAAC,EAAE,UADH;MAEA+c,EAAE,EACAvC,QAAQ,KAAK,KAAb,IACAe,4BADA,IAEA,CAACrC,gBAFD,GAGI,QAHJ,GAIIj6B,SAPN;MAQAu7B,QAAQ,EAAE,UARV;MASAS,MAAM,EAAE;OACLW,oBAVH,oBAUGA,oBAAoB,CAAEt/B,EAVzB;IAfJ,CADF;AA8BD,CA7DM;;ACAA,IAAM0gC,sBAAsB,GAAc,SAApCA,sBAAoC;;;MAC/CC,wBAAAA;MACAliC,gBAAAA;EAEA,IACEogC,wBADF,GAKIpgC,QALJ,CACEogC,wBADF;MAEElR,mBAFF,GAKIlvB,QALJ,CAEEkvB,mBAFF;MAGE9uB,QAHF,GAKIJ,QALJ,CAGEI,QAHF;0BAKIJ,QALJ,CAIEK,OAJF;MAIaE,YAJb,qBAIaA,YAJb;MAI2B4hC,+BAJ3B,qBAI2BA,+BAJ3B;;EAOA,gBAAqB/hC,QAAQ,EAA7B;MAAQgiC,QAAR,aAAQA,QAAR;;EAEA,IAAMC,UAAU,GACdF,+BAA+B,YAAYthC,QAA3C,GACIshC,+BAA+B,CAAC;IAAEniC,QAAQ,EAARA;GAAH,CADnC,GAEImiC,+BAHN;EAKA,IAAMG,aAAa,GACjBpT,mBAAmB,GAAG8R,IAAtB,CAA2B90B,MAA3B,GAAoC,CAApC,4BACI3L,YAAY,CAAC1F,mCADjB,+CACI,sBACIiN,OADJ,CAEI,iBAFJ,EAGIonB,mBAAmB,GAAG8R,IAAtB,CAA2B90B,MAA3B,CAAkC7I,QAAlC,EAHJ,CADJ,qBACI,uBAKIyE,OALJ,CAMI,YANJ,EAOIs4B,wBAAwB,GAAGY,IAA3B,CAAgC90B,MAAhC,CAAuC7I,QAAvC,EAPJ,CADJ,GAUI,IAXN;EAaA,IAAMk/B,gBAAgB,GACpBH,QAAQ,CAACl2B,MAAT,GAAkB,CAAlB,GACEpL,4BAAA,OAAA,MAAA,EACGP,YAAY,CAACxG,SADhB,EAC2B,GAD3B,EAEGqoC,QAAQ,CAACt7B,GAAT,CAAa,UAACvE,QAAD,EAAWwE,KAAX;IAAA,OACZjG,4BAAA,CAAC0hC,cAAD;MAAUv7B,GAAG,EAAKF,KAAL,SAAcxE;KAA3B,EACGwE,KAAK,GAAG,CAAR,GAAYxG,YAAY,CAAC/E,MAAzB,GAAkC,EADrC,EAEEsF,4BAAA,CAAC2hC,aAAD;MACEnU,KAAK,EAAC;MACN1oB,KAAK,EAAE5F,QAAQ,CAAC0iC,SAAT,CAAmBngC,QAAnB,EAA6BgD,SAA7B,CAAuCV;MAC9C89B,QAAQ,EAAE;QAAA,OAAM3iC,QAAQ,CAAC0iC,SAAT,CAAmBngC,QAAnB,EAA6BypB,cAA7B,EAAN;;KAHZ,CAFF,CADY;GAAb,CAFH,CADF,GAcI,IAfN;EAiBA,OACElrB,4BAAA,CAACm+B,iBAAD;IACE,MAAI,CAAC,CAACqD,aAAF,IAAmB,CAAC,CAACC;IACzBK,OAAO,EAAEV,gBAAgB,GAAG,GAAH,GAAS;GAFpC,EAIEphC,4BAAA,CAAC+hC,cAAD;IACEvU,KAAK,EAAC;IACNwU,IAAI,EAAE;IACNvhC,EAAE;MACAwhC,YAAY,EAAE,CADd;MAEAC,QAAQ,EAAE,MAFV;MAGArN,IAAI,EAAE,CAHN;MAIAxQ,CAAC,EAAE,CAJH;MAKAsa,QAAQ,EAAE,UALV;MAMAwD,KAAK,EAAE,CANP;MAOAvN,GAAG,EAAE,CAPL;MAQAj0B,KAAK,EAAE,MARP;MASAy+B,MAAM,EAAE;OACLmC,UAVH,oBAUGA,UAAU,CAAE9gC,EAVf;KAYE8gC,WAfN,EAiBEvhC,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAE;MAAE4jB,CAAC,EAAE;;GAAd,EACGmd,aADH,EAEGA,aAAa,IAAIC,gBAAjB,IAAqCzhC,4BAAA,KAAA,MAAA,CAFxC,EAGGyhC,gBAHH,CAjBF,CAJF,CADF;AA8BD,CA9EM;;ACAA,IAAMW,qBAAqB,GAAc,SAAnCA,qBAAmC;MAAGC,eAAAA;MAASnjC,gBAAAA;EAC1D,IACaojC,sBADb,GAGIpjC,QAHJ,CACEK,OADF,CACa+iC,sBADb;MAEEhjC,QAFF,GAGIJ,QAHJ,CAEEI,QAFF;;EAKA,gBAAwCA,QAAQ,EAAhD;MAAQijC,SAAR,aAAQA,SAAR;MAAmBC,gBAAnB,aAAmBA,gBAAnB;;EAEA,IAAMC,mBAAmB,GACvBH,sBAAsB,YAAYviC,QAAlC,GACIuiC,sBAAsB,CAAC;IAAEpjC,QAAQ,EAARA;GAAH,CAD1B,GAEIojC,sBAHN;EAKA,OACEtiC,4BAAA,CAACm+B,iBAAD;IACE,MAAIoE,SAAS,IAAIC;IACjBE,YAAY;IACZC,aAAa;IACbliC,EAAE,EAAE;MACFmiC,MAAM,EAAEP,OAAO,KAAK,QAAZ,GAAuB,CAAvB,GAA2Bj/B,SADjC;MAEFu7B,QAAQ,EAAE,UAFR;MAGF/J,GAAG,EAAEyN,OAAO,KAAK,KAAZ,GAAoB,CAApB,GAAwBj/B,SAH3B;MAIFzC,KAAK,EAAE;;GARX,EAWEX,4BAAA,CAAC6iC,uBAAD;kBACa;iBACD;IACVpiC,EAAE,EAAE;MAAEk+B,QAAQ,EAAE;;KACZ8D,oBAJN,CAXF,CADF;AAoBD,CAjCM;;ACAA,IAAMK,mBAAmB,GAAG,SAAtBA,mBAAsB;EAAA,IAAGC,KAAH,QAAGA,KAAH;EAAA,OAAkC;IACnEze,eAAe,EAAE0e,gBAAO,CAACD,KAAK,CAACE,OAAN,CAAcC,UAAd,WAAD,EAAmC,IAAnC,CAD2C;IAEnEC,eAAe,EAAE,MAFkD;IAGnE3b,OAAO,EAAE,MAH0D;IAInE4b,SAAS,EAAE,QAJwD;IAKnEC,QAAQ,EAAE,QALyD;IAMnEhf,CAAC,EAAE,cANgE;IAOnEvjB,UAAU,EAAE,sBAPuD;IAQnEs+B,MAAM,EAAE;GARyB;AAAA,CAA5B;AAeP,AAAO,IAAMkE,cAAc,GAAc,SAA5BA,cAA4B;;;MAAGpkC,iBAAAA;EAC1C,IACEI,QADF,GAaIJ,QAbJ,CACEI,QADF;0BAaIJ,QAbJ,CAEEK,OAFF;MAGI0/B,kBAHJ,qBAGIA,kBAHJ;MAIIsE,gBAJJ,qBAIIA,gBAJJ;MAKI7D,4BALJ,qBAKIA,4BALJ;MAMI8D,uBANJ,qBAMIA,uBANJ;MAOItE,oBAPJ,qBAOIA,oBAPJ;MAQIuE,kBARJ,qBAQIA,kBARJ;MASIC,0BATJ,qBASIA,0BATJ;MAUIC,6BAVJ,qBAUIA,6BAVJ;MAWI1Z,OAXJ,qBAWIA,OAXJ;;EAeA,gBAA2C3qB,QAAQ,EAAnD;MAAQ88B,YAAR,aAAQA,YAAR;MAAsBiB,gBAAtB,aAAsBA,gBAAtB;;EAEA,IAAMuG,QAAQ,GAAGC,sBAAa,CAAC,mBAAD,CAA9B;EAEA,IAAMC,YAAY,GAChBN,uBAAuB,YAAYzjC,QAAnC,GACIyjC,uBAAuB,CAAC;IAAEtkC,QAAQ,EAARA;GAAH,CAD3B,GAEIskC,uBAHN;EAKA,IAAMpC,gBAAgB,GACpBwC,QAAQ,IACPF,0BAA0B,KAAK,KAA/B,KACE,CAAC,CAACC,6BAAF,IAAmCtG,gBADrC,CAFH;EAKA,OACEr9B,4BAAA,CAAC+jC,gBAAD;IACEzhC,EAAE,WAAS2nB,OAAT;IACFsU,OAAO,EAAC;KACJuF;IACJrjC,EAAE,EAAE,YAACsiC,KAAD;MAAA;QAEApE,QAAQ,EAAEvC,YAAY,GAAG,QAAH,GAAch5B,SAFpC;QAGAwxB,GAAG,EAAEwH,YAAY,GAAG,GAAH,GAASh5B;SACvB0/B,mBAAmB,CAAC;QAAEC,KAAK,EAALA;OAAH,CAJtB,EAKGe,YALH,oBAKGA,YAAY,CAAErjC,EALjB;;IAJN,EAaGijC,0BAA0B,KAAK,KAA/B,IACC1jC,4BAAA,CAACmhC,sBAAD;IACEC,gBAAgB,EAAEA;IAClBliC,QAAQ,EAAEA;GAFZ,CAdJ,EAmBEc,4BAAA,CAACyjB,YAAD;IACEhjB,EAAE,EAAE;MACFmD,UAAU,EAAE,YADV;MAEFogC,SAAS,EAAE,YAFT;MAGFxc,OAAO,EAAE,MAHP;MAIFH,cAAc,EAAE,eAJd;MAKFhD,CAAC,EAAE,QALD;MAMFsa,QAAQ,EAAEyC,gBAAgB,GAAG,UAAH,GAAgB,UANxC;MAOFe,KAAK,EAAE,CAPL;MAQFvN,GAAG,EAAE,CARH;MASFj0B,KAAK,EAAE;;GAVX,EAaGs+B,kBAAkB,IAAIC,oBAAoB,KAAK,MAA/C,IACCl/B,4BAAA,CAACw9B,yBAAD;IAA2Bt+B,QAAQ,EAAEA;GAArC,CAdJ,2BAiBGykC,6BAjBH,oBAiBGA,6BAA6B,CAAG;IAAEzkC,QAAQ,EAARA;GAAL,CAjBhC,oCAiBoDc,4BAAA,OAAA,MAAA,CAjBpD,EAkBG0/B,4BAA4B,GAC3B1/B,4BAAA,CAAC6+B,0BAAD;IAA4B3/B,QAAQ,EAAEA;GAAtC,CAD2B,GAG3B+/B,kBAAkB,IAClBC,oBAAoB,KAAK,OADzB,IAEEl/B,4BAAA,CAACw9B,yBAAD;IAA2Bt+B,QAAQ,EAAEA;GAArC,CAvBN,CAnBF,EA8CGqkC,gBAAgB,IACf,CAAC,KAAD,EAAQ,MAAR,EAAgB7gC,QAAhB,CAAyB+gC,kBAAzB,WAAyBA,kBAAzB,GAA+C,EAA/C,CADD,IAEGzjC,4BAAA,CAACq/B,mBAAD;IAAqBngC,QAAQ,EAAEA;IAAUy/B,QAAQ,EAAC;GAAlD,CAhDN,EAkDE3+B,4BAAA,CAACoiC,qBAAD;IAAuBC,OAAO,EAAC;IAASnjC,QAAQ,EAAEA;GAAlD,CAlDF,CADF;AAsDD,CApFM;;ACZA,IAAM+kC,iBAAiB,GAAc,SAA/BA,iBAA+B;MAAG/kC,gBAAAA;EAC7C,IACEI,QADF,GAUIJ,QAVJ,CACEI,QADF;0BAUIJ,QAVJ,CAEEK,OAFF;MAGIgkC,gBAHJ,qBAGIA,gBAHJ;MAIIW,0BAJJ,qBAIIA,0BAJJ;MAKIT,kBALJ,qBAKIA,kBALJ;MAMIC,0BANJ,qBAMIA,0BANJ;MAOIS,gCAPJ,qBAOIA,gCAPJ;MAQIla,OARJ,qBAQIA,OARJ;;EAYA,gBAAyB3qB,QAAQ,EAAjC;MAAQ88B,YAAR,aAAQA,YAAR;;EAEA,IAAMwH,QAAQ,GAAGC,sBAAa,CAAC,mBAAD,CAA9B;EAEA,IAAMC,YAAY,GAChBI,0BAA0B,YAAYnkC,QAAtC,GACImkC,0BAA0B,CAAC;IAAEhlC,QAAQ,EAARA;GAAH,CAD9B,GAEIglC,0BAHN;EAKA,IAAM9C,gBAAgB,GACpBwC,QAAQ,IACPF,0BAA0B,KAAK,QAA/B,IACC,CAAC,CAACS,gCAHN;EAKA,OACEnkC,4BAAA,CAAC+jC,gBAAD;IACEzhC,EAAE,WAAS2nB,OAAT;IACFsU,OAAO,EAAC;KACJuF;IACJrjC,EAAE,EAAE,YAACsiC,KAAD;MAAA,oBAEGD,mBAAmB,CAAC;QAAEC,KAAK,EAALA;OAAH,CAFtB;QAGAH,MAAM,EAAExG,YAAY,GAAG,GAAH,GAASh5B,SAH7B;QAIAghC,SAAS,kBAAgBC,cAAK,CAACtB,KAAK,CAACE,OAAN,CAAc7O,MAAd,CAAqBkQ,KAAtB,EAA6B,GAA7B,CAJ9B;QAKAzP,IAAI,EAAE,CALN;QAMA8J,QAAQ,EAAEvC,YAAY,GAAG,OAAH,GAAa,UANnC;QAOA+F,KAAK,EAAE;SACJ2B,YARH,oBAQGA,YAAY,CAAErjC,EARjB;;IAJN,EAgBET,4BAAA,CAACoiC,qBAAD;IAAuBC,OAAO,EAAC;IAAMnjC,QAAQ,EAAEA;GAA/C,CAhBF,EAiBGwkC,0BAA0B,KAAK,QAA/B,IACC1jC,4BAAA,CAACmhC,sBAAD;IAAwBjiC,QAAQ,EAAEA;GAAlC,CAlBJ,EAoBEc,4BAAA,CAACyjB,YAAD;IACEhjB,EAAE,EAAE;MACF+mB,OAAO,EAAE,MADP;MAEFH,cAAc,EAAE,eAFd;MAGF1mB,KAAK,EAAE;;GAJX,EAOGwjC,gCAAgC,GAC/BnkC,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAE;MAAE4jB,CAAC,EAAE;;GAAd,EACG8f,gCAAgC,CAAC;IAAEjlC,QAAQ,EAARA;GAAH,CADnC,CAD+B,GAK/Bc,4BAAA,OAAA,MAAA,CAZJ,EAcEA,4BAAA,CAACyjB,YAAD;IACEhjB,EAAE,EAAE;MACF+mB,OAAO,EAAE,MADP;MAEFH,cAAc,EAAE,UAFd;MAGFsX,QAAQ,EAAEyC,gBAAgB,GAAG,UAAH,GAAgB,UAHxC;MAIFe,KAAK,EAAE,CAJL;MAKFvN,GAAG,EAAE;;GANT,EASG2O,gBAAgB,IACf,CAAC,QAAD,EAAW,MAAX,EAAmB7gC,QAAnB,CAA4B+gC,kBAA5B,WAA4BA,kBAA5B,GAAkD,EAAlD,CADD,IAEGzjC,4BAAA,CAACq/B,mBAAD;IAAqBngC,QAAQ,EAAEA;IAAUy/B,QAAQ,EAAC;GAAlD,CAXN,CAdF,CApBF,CADF;AAoDD,CA/EM;;ACcA,IAAM4F,mBAAmB,GAAc,SAAjCA,mBAAiC;;;MAC5CxgC,cAAAA;MACAygC,kBAAAA;MACAtlC,gBAAAA;EAEA,IACEI,QADF,GAaIJ,QAbJ,CACEI,QADF;0BAaIJ,QAbJ,CAEEK,OAFF;MAGIsqB,4BAHJ,qBAGIA,4BAHJ;MAII1lB,0BAJJ,qBAIIA,0BAJJ;gDAKI3E,KALJ;MAKarC,cALb,yBAKaA,cALb;MAK6BtB,SAL7B,yBAK6BA,SAL7B;MAMI4D,YANJ,qBAMIA,YANJ;MAOI8rB,oCAPJ,qBAOIA,oCAPJ;MAQIkZ,0BARJ,qBAQIA,0BARJ;MASIC,mCATJ,qBASIA,mCATJ;MAUIza,OAVJ,qBAUIA,OAVJ;MAYE7lB,mBAZF,GAaIlF,QAbJ,CAYEkF,mBAZF;EAeA,IAAQI,MAAR,GAAmBT,MAAnB,CAAQS,MAAR;EAEA,IAAQC,SAAR,GAAsBD,MAAtB,CAAQC,SAAR;;EAEA,gBAA6BnF,QAAQ,EAArC;MAAQgF,gBAAR,aAAQA,gBAAR;;EAEA,gBAAgCmW,cAAQ,CAAqB,IAArB,CAAxC;MAAO3W,QAAP;MAAiBG,WAAjB;;EAEA,IAAM0gC,kCAAkC,GACtCpZ,oCAAoC,YAAYxrB,QAAhD,GACIwrB,oCAAoC,CAAC;IAAE/mB,MAAM,EAANA,MAAF;IAAUtF,QAAQ,EAARA;GAAX,CADxC,GAEIqsB,oCAHN;EAKA,IAAMqZ,mCAAmC,GACvCngC,SAAS,CAAC8mB,oCAAV,YAA0DxrB,QAA1D,GACI0E,SAAS,CAAC8mB,oCAAV,CAA+C;IAC7C/mB,MAAM,EAANA,MAD6C;IAE7CtF,QAAQ,EAARA;GAFF,CADJ,GAKIuF,SAAS,CAAC8mB,oCANhB;;EAQA,IAAM+R,cAAc,gBACfqH,kCADe,EAEfC,mCAFe,CAApB;;EAKA,iBAAsCnqB,cAAQ,CAAS;IAAA;;IAAA,OACrD+pB,UAAU,KAAKphC,SAAf,sDACKoB,MAAM,CAAC8nB,cAAP,EADL,qBACK,uBAA+CkY,UAA/C,CADL,oCACmE,EADnE,6BAEKhgC,MAAM,CAAC8nB,cAAP,EAFL,qCAE2C,EAHU;GAAT,CAA9C;MAAO5qB,WAAP;MAAoB4D,cAApB;;EAMA,IAAMy4B,qBAAqB,GAAGpjB,iBAAW,CACvCqjB,iBAAQ,CAAC,UAAC58B,KAAD;IACP,IAAIojC,UAAU,KAAKphC,SAAnB,EAA8B;MAC5BoB,MAAM,CAACc,cAAP,CAAsB,UAAC6lB,GAAD;QACpB,IAAM0Z,eAAe,GAAG1Z,GAAH,WAAGA,GAAH,GAAU,CAAC,EAAD,EAAK,EAAL,CAA/B;QACA0Z,eAAe,CAACL,UAAD,CAAf,GAA8BpjC,KAAK,CAAC2K,MAAN,CAAa3G,KAA3C;QACA,OAAOy/B,eAAP;OAHF;KADF,MAMO;MAAA;;MACLrgC,MAAM,CAACc,cAAP,wBAAsBlE,KAAK,CAAC2K,MAAN,CAAa3G,KAAnC,kCAA4ChC,SAA5C;;;IAEFshC,mCAAmC,QAAnC,YAAAA,mCAAmC,CAAG;MACpClgC,MAAM,EAANA,MADoC;MAEpCpD,KAAK,EAALA,KAFoC;MAGpCM,WAAW,EAAEN,KAAK,CAAC2K,MAAN,CAAa3G,KAHU;MAIpClG,QAAQ,EAARA;KAJiC,CAAnC;IAMAuF,SAAS,CAACigC,mCAAV,oBAAAjgC,SAAS,CAACigC,mCAAV,CAAgD;MAC9ClgC,MAAM,EAANA,MAD8C;MAE9CpD,KAAK,EAALA,KAF8C;MAG9CM,WAAW,EAAEN,KAAK,CAAC2K,MAAN,CAAa3G,KAHoB;MAI9ClG,QAAQ,EAARA;KAJF;GAhBM,EAsBL,GAtBK,CAD+B,EAwBvC,EAxBuC,CAAzC;;EA2BA,IAAMsR,YAAY,GAAG,SAAfA,YAAe,CAACpP,KAAD;IACnBkE,cAAc,CAAClE,KAAK,CAAC2K,MAAN,CAAa3G,KAAd,CAAd;IACA24B,qBAAqB,CAAC38B,KAAD,CAArB;IACAqjC,0BAA0B,QAA1B,YAAAA,0BAA0B,CAAG;MAC3BjgC,MAAM,EAANA,MAD2B;MAE3BpD,KAAK,EAALA,KAF2B;MAG3BM,WAAW,EAAEN,KAAK,CAAC2K,MAAN,CAAa3G,KAHC;MAI3BlG,QAAQ,EAARA;KAJwB,CAA1B;IAMAuF,SAAS,CAACggC,0BAAV,oBAAAhgC,SAAS,CAACggC,0BAAV,CAAuC;MACrCjgC,MAAM,EAANA,MADqC;MAErCpD,KAAK,EAALA,KAFqC;MAGrCM,WAAW,EAAEN,KAAK,CAAC2K,MAAN,CAAa3G,KAHW;MAIrClG,QAAQ,EAARA;KAJF;GATF;;EAiBA,IAAM4lC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAC1jC,KAAD;IAC3B6C,WAAW,CAAC7C,KAAK,CAACwqB,aAAP,CAAX;GADF;;EAIA,IAAMsS,WAAW,GAAG,SAAdA,WAAc;IAClB54B,cAAc,CAAC,EAAD,CAAd;;IACA,IAAIk/B,UAAU,KAAKphC,SAAnB,EAA8B;MAC5BoB,MAAM,CAACc,cAAP,CAAsB,UAAC6lB,GAAD;QACpB,IAAM0Z,eAAe,GAAG1Z,GAAH,WAAGA,GAAH,GAAU,CAAC,EAAD,EAAK,EAAL,CAA/B;QACA0Z,eAAe,CAACL,UAAD,CAAf,GAA8BphC,SAA9B;QACA,OAAOyhC,eAAP;OAHF;KADF,MAMO;MACLrgC,MAAM,CAACc,cAAP,CAAsBlC,SAAtB;;GATJ;;EAaA,IAAM2hC,qBAAqB,GAAG,SAAxBA,qBAAwB;IAC5Bz/B,cAAc,CAAC,EAAD,CAAd;IACAd,MAAM,CAACc,cAAP,CAAsBlC,SAAtB;IACAgB,mBAAmB,CAAC,UAACiB,IAAD;MAAA;;MAAA,oBACfA,IADe,6BAEjBtB,MAAM,CAACzB,EAFU,IAEL,OAFK;KAAD,CAAnB;GAHF;;EASA,IAAImC,SAAS,CAACugC,MAAd,EAAsB;IACpB,OAAOhlC,4BAAA,wBAAA,MAAA,EAAGyE,SAAS,CAACugC,MAAb,oBAAGvgC,SAAS,CAACugC,MAAV,CAAmB;MAAEjhC,MAAM,EAANA,MAAF;MAAU7E,QAAQ,EAARA;KAA7B,CAAH,CAAP;;;EAGF,IAAM+lC,QAAQ,YAAUhb,OAAV,SAAqBlmB,MAAM,CAACzB,EAA5B,2BACZkiC,UADY,WACZA,UADY,GACE,EADF,CAAd;EAGA,IAAMtf,QAAQ,GAAG5gB,gBAAH,oBAAGA,gBAAgB,CAAGP,MAAM,CAACzB,EAAV,CAAjC;EACA,IAAMwpB,cAAc,GAAG,CAAC,CAACrnB,SAAS,CAACsnB,mBAAnC;EACA,IAAMmZ,eAAe,GACnB,EAAEhgB,QAAQ,YAAYnlB,QAAtB,KAAmC,CAAC,OAAD,EAAU,UAAV,EAAsB2C,QAAtB,CAA+BwiB,QAA/B,CAAnC;EAEIzlB,YAAY,aACDylB,QAAQ,CAACigB,MAAT,CAAgB,CAAhB,EAAmBC,WAAnB,KAAmClgB,QAAQ,CAAC7X,KAAT,CAAe,CAAf,CADlC,EAFhB,GAKI,EANN;EAOA,IAAMg4B,iBAAiB,GACrBb,UAAU,KAAKphC,SAAf,4BACI3D,YAAY,CAACvH,cADjB,qBACI,sBAA6B8O,OAA7B,CACE,UADF,EAEEolB,MAAM,CAAC3nB,SAAS,CAACV,MAAX,CAFR,CADJ,GAKIygC,UAAU,KAAK,CAAf,GACA/kC,YAAY,CAACpG,GADb,GAEAmrC,UAAU,KAAK,CAAf,GACA/kC,YAAY,CAACrG,GADb,GAEA,EAVN;EAYA,IAAMsL,0BAA0B,4BAC9BD,SAD8B,oBAC9BA,SAAS,CAAEN,0BADmB,oCACWA,0BAD3C;EAGA,IAAMmhC,oBAAoB,GACxBzb,4BAA4B,IAC5BplB,SAAS,CAAColB,4BAAV,KAA2C,KAD3C,IAEA,CAACiC,cAFD,IAGA,CAAC0Y,UAHD,KAIC9/B,0BAA0B,KAAKtB,SAA/B,IACC,CAAC,EAACsB,0BAAD,YAACA,0BAA0B,CAAE0G,MAA7B,CALH,CADF;EAQA,OACEpL,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAACq+B,kBAAD;IACEkH,SAAS;IACTjjC,EAAE,EAAE2iC;IACJzV,UAAU,EAAE;MACVjvB,QAAQ,EAAE,CAAC,CAAC2kC,eADF;MAEVzkC,EAAE,EAAE;QACF+kC,YAAY,EAAE,UADZ;QAEF7kC,KAAK,EAAEukC,eAAe,GAAG,CAAH,GAAO9hC;OAJrB;MAMV/C,KAAK,EAAEglC;;IAETI,UAAU,EACRH,oBAAoB,GAClBtlC,4BAAA,QAAA;MAAO0lC,OAAO,EAAET;KAAhB,EACG/f,QAAQ,YAAYnlB,QAApB,4BACGN,YAAY,CAAC/G,UAAb,CAAwBsO,OAAxB,CACE,cADF;IAAA,iBAGEvH,YAAY,aAERylB,QAAQ,CAACje,IAAT,CAAck+B,MAAd,CAAqB,CAArB,EAAwBC,WAAxB,KACAlgB,QAAQ,CAACje,IAAT,CAAcoG,KAAd,CAAoB,CAApB,CAHQ,EAHd,4BAQO,EARP,CADH,oCAUQ,EAVR,GAWG5N,YAAY,CAAC/G,UAAb,CAAwBsO,OAAxB,CACE,cADF;IAGEvH,YAAY,aAERylB,QAAQ,CAACigB,MAAT,CAAgB,CAAhB,EAAmBC,WAAnB,KAAmClgB,QAAQ,CAAC7X,KAAT,CAAe,CAAf,CAF3B,EAHd,CAZN,CADkB,GAuBhB;IAENs4B,mBAAmB,EAAE;MACnBllC,EAAE,EAAE;QACFyhC,QAAQ,EAAE,QADR;QAEF0D,UAAU,EAAE,QAFV;QAGFC,UAAU,EAAE;;;IAGhBC,MAAM,EAAC;IACPxH,WAAW,EACT4G,eAAe,IAAIpZ,cAAnB,GAAoC1oB,SAApC,GAAgDiiC;IAElDjd,QAAQ,EAAE5X;IACVhQ,OAAO,EAAE,iBAACw0B,CAAD;MAAA,OAAqCA,CAAC,CAACrJ,eAAF,EAArC;;IACT3xB,MAAM,EAAE8xB;IACR1mB,KAAK,EAAE1D,WAAF,WAAEA,WAAF,GAAiB;IACtB68B,OAAO,EAAC;IACRC,UAAU,EAAE;MACVC,cAAc,EAAE6G,oBAAoB,GAClCtlC,4BAAA,CAAC0+B,uBAAD;QAAgBC,QAAQ,EAAC;OAAzB,EACE3+B,4BAAA,CAACC,gBAAD;QAASC,KAAK;QAACG,KAAK,EAAEZ,YAAY,CAACnI;OAAnC,EACE0I,4BAAA,OAAA,MAAA,EACEA,4BAAA,CAACM,mBAAD;sBACcb,YAAY,CAACnI;QACzBkJ,OAAO,EAAEskC;QACTjhB,IAAI,EAAC;QACLpjB,EAAE,EAAE;UAAEC,MAAM,EAAE,SAAV;UAAqBC,KAAK,EAAE;;OAJlC,EAMEX,4BAAA,CAAC7C,cAAD,MAAA,CANF,CADF,CADF,CADF,EAaG+nC,eAAe,IACdllC,4BAAA,CAAC2hC,aAAD;QACEE,QAAQ,EAAEkD;QACVjgC,KAAK,EAAEogC;OAFT,CAdJ,CADkC,GAsBlCllC,4BAAA,CAAC7C,cAAD,MAAA,CAvBQ;MAyBVyhC,YAAY,EAAE,CAACsG,eAAD,IACZllC,4BAAA,CAAC0+B,uBAAD;QAAgBC,QAAQ,EAAC;OAAzB,EACE3+B,4BAAA,CAACC,gBAAD;QACEC,KAAK;QACL6lC,oBAAoB,EAAEja;QACtB9H,SAAS,EAAC;QACV3jB,KAAK,2BAAEZ,YAAY,CAACjI,WAAf,oCAA8B;OAJrC,EAMEwI,4BAAA,OAAA,MAAA,EACEA,4BAAA,CAACM,mBAAD;sBACcb,YAAY,CAACjI;QACzB+I,QAAQ,EAAE,EAACmB,WAAD,YAACA,WAAW,CAAE0J,MAAd;QACV5K,OAAO,EAAE09B;QACTra,IAAI,EAAC;QACLpjB,EAAE,EAAE;UACFC,MAAM,EAAE,SADN;UAEFC,KAAK,EAAE;;OAPX,EAUEX,4BAAA,CAACnE,SAAD,MAAA,CAVF,CADF,CANF,CADF;;KAyBAyhC;IACJ78B,EAAE;MACA0jB,CAAC,EAAE,UADH;MAEAE,CAAC,EAAE,CAFH;MAGAX,QAAQ,EAAE,CAACwhB,eAAD,GAAmB,MAAnB,GAA4B,MAHtC;MAIAvkC,KAAK,EAAE,qBAJP;MAKA,qBAAqB;QACnBqlC,EAAE,EAAE;;OAEH1I,cARH,oBAQGA,cAAc,CAAE78B,EARnB;IAzGJ,EAoHGqrB,cAAc,IACb9rB,4BAAA,CAACkG,iBAAD;IAAUnB,OAAO;IAACxE,QAAQ,EAAE,CAACmB;IAAa0D,KAAK,EAAC;GAAhD,EACG3F,YAAY,CAACjI,WADhB,CArHJ,EAyHGiN,SAzHH,6CAyHGA,SAAS,CAAEsnB,mBAzHd,qBAyHG,sBAAgC/lB,GAAhC,CAAoC,UAACnB,MAAD;IACnC,IAAIO,KAAJ;IACA,IAAI8sB,IAAJ;;IACA,IAAI,OAAOrtB,MAAP,KAAkB,QAAtB,EAAgC;MAC9BO,KAAK,GAAGP,MAAR;MACAqtB,IAAI,GAAGrtB,MAAP;KAFF,MAGO,IAAI,OAAOA,MAAP,KAAkB,QAAtB,EAAgC;MACrCO,KAAK,GAAGP,MAAM,CAACO,KAAf;MACA8sB,IAAI,GAAGrtB,MAAM,CAACqtB,IAAd;;;IAEF,OACElyB,4BAAA,CAACkG,iBAAD;MAAUC,GAAG,EAAEf;MAAOA,KAAK,EAAEA;KAA7B,EACG8sB,IADH,CADF;GAVD,CAzHH,CADF,EA2IElyB,4BAAA,CAAC6D,oBAAD;IACEC,QAAQ,EAAEA;IACVC,MAAM,EAAEA;IACRE,WAAW,EAAEA;IACb/E,QAAQ,EAAEA;GAJZ,CA3IF,CADF;AAoJD,CArTM;;AChBA,IAAM+mC,qBAAqB,GAAc,SAAnCA,qBAAmC;MAAGliC,cAAAA;MAAQ7E,gBAAAA;EACzD,OACEc,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAE;MAAE+mB,OAAO,EAAE,MAAX;MAAmB0e,mBAAmB,EAAE,SAAxC;MAAmDxe,GAAG,EAAE;;GAAjE,EACE1nB,4BAAA,CAACukC,mBAAD;IAAqBxgC,MAAM,EAAEA;IAAQygC,UAAU,EAAE;IAAGtlC,QAAQ,EAAEA;GAA9D,CADF,EAEEc,4BAAA,CAACukC,mBAAD;IAAqBxgC,MAAM,EAAEA;IAAQygC,UAAU,EAAE;IAAGtlC,QAAQ,EAAEA;GAA9D,CAFF,CADF;AAMD,CAPM;;ACCA,IAAMinC,gCAAgC,GAAc,SAA9CA,gCAA8C;MACzDpiC,cAAAA;MACA7E,gBAAAA;EAEA,IAAQI,QAAR,GAAqBJ,QAArB,CAAQI,QAAR;;EAEA,gBAA0CA,QAAQ,EAAlD;MAAQgF,gBAAR,aAAQA,gBAAR;MAA0By4B,WAA1B,aAA0BA,WAA1B;;EAEA,IAAQv4B,MAAR,GAAmBT,MAAnB,CAAQS,MAAR;EAEA,OACExE,4BAAA,CAACm+B,iBAAD;IAAU,MAAIpB;IAAa2F,YAAY;IAACC,aAAa;GAArD,EACGr+B,gBAAgB,CAACE,MAAM,CAAClC,EAAR,CAAhB,KAAgC,SAAhC,GACCtC,4BAAA,CAACimC,qBAAD;IAAuBliC,MAAM,EAAEA;IAAQ7E,QAAQ,EAAEA;GAAjD,CADD,GAGCc,4BAAA,CAACukC,mBAAD;IAAqBxgC,MAAM,EAAEA;IAAQ7E,QAAQ,EAAEA;GAA/C,CAJJ,CADF;AASD,CAnBM;;ACFA,IAAMknC,4BAA4B,GAAc,SAA1CA,4BAA0C;;;MACrDriC,cAAAA;MACA7E,gBAAAA;EAEA,IACEI,QADF,GAMIJ,QANJ,CACEI,QADF;0BAMIJ,QANJ,CAEEK,OAFF;MAGaxC,aAHb,qBAGIyC,KAHJ,CAGazC,aAHb;MAII0C,YAJJ,qBAIIA,YAJJ;;EAQA,gBAA6BH,QAAQ,EAArC;MAAQgF,gBAAR,aAAQA,gBAAR;;EAEA,IAAQE,MAAR,GAAmBT,MAAnB,CAAQS,MAAR;EAEA,IAAQC,SAAR,GAAsBD,MAAtB,CAAQC,SAAR;EAEA,IAAMygB,QAAQ,GAAG5gB,gBAAH,oBAAGA,gBAAgB,CAAGP,MAAM,CAACzB,EAAV,CAAjC;EAEA,IAAM+jC,aAAa,GAAG5mC,YAAY,CAAC3G,iBAAb,CACnBkO,OADmB,CACX,UADW,EACColB,MAAM,CAAC3nB,SAAS,CAACV,MAAX,CADP,EAEnBiD,OAFmB,CAGlB,cAHkB,EAIlBke,QAAQ,YAAYnlB,QAApB,GACI,EADJ;EAGIN,YAAY,aACDylB,QAAQ,CAACigB,MAAT,CAAgB,CAAhB,EAAmBC,WAAnB,KAAmClgB,QAAQ,CAAC7X,KAAT,CAAe,CAAf,CADlC,EAPE,EAWnBrG,OAXmB,CAYlB,eAZkB,UAchB8F,KAAK,CAACC,OAAN,CAAcvI,MAAM,CAAC8nB,cAAP,EAAd,IACK9nB,MAAM,CAAC8nB,cAAP,GAA6CnJ,IAA7C,SACM1jB,YAAY,CAACrI,GADnB,SADL,GAIKoN,MAAM,CAAC8nB,cAAP,EAlBW,UAqBnBtlB,OArBmB,CAqBX,KArBW,EAqBJ,EArBI,CAAtB;EAuBA,OACEhH,4BAAA,CAACsmC,aAAD;IACE3D,aAAa;IACb,MACG,CAAC,CAACn+B,MAAM,CAAC8nB,cAAP,EAAF,IAA6BpH,QAAQ,KAAK,SAA3C,IACCA,QAAQ,KAAK,SAAb;IACE,CAAC,2BAAC1gB,MAAM,CAAC8nB,cAAP,EAAD,aAAC,sBAA0B,CAA1B,CAAD,CAAD,IAAkC,CAAC,4BAAC9nB,MAAM,CAAC8nB,cAAP,EAAD,aAAC,uBAA0B,CAA1B,CAAD,CADrC;GAJL,EAQEtsB,4BAAA,OAAA,MAAA,EACEA,4BAAA,CAACC,gBAAD;IAASC,KAAK;IAAC8jB,SAAS,EAAC;IAAM3jB,KAAK,EAAEgmC;GAAtC,EACErmC,4BAAA,CAACM,mBAAD;IACE2jB,aAAa;IACbzjB,OAAO,EAAE,iBAACY,KAAD;MACPA,KAAK,CAACuqB,eAAN;;IAEF9H,IAAI,EAAC;IACLpjB,EAAE,EAAE;MACF0jB,CAAC,EAAE,CADD;MAEFC,OAAO,EAAE,GAFP;MAGFC,CAAC,EAAE,KAHD;MAIFxjB,SAAS,EAAE,aAJT;MAKFF,KAAK,EAAE;;GAXX,EAcEX,4BAAA,CAACjD,aAAD,MAAA,CAdF,CADF,CADF,CARF,CADF;AA+BD,CA1EM;;ACAA,IAAMwpC,6BAA6B,GAAc,SAA3CA,6BAA2C;MACtDxiC,cAAAA;MACA7E,gBAAAA;EAEA,IAAQI,QAAR,GAAqBJ,QAArB,CAAQI,QAAR;;EAEA,gBAAwBA,QAAQ,EAAhC;MAAQy9B,WAAR,aAAQA,WAAR;;EAEA,IAAQv4B,MAAR,GAAmBT,MAAnB,CAAQS,MAAR;EAEA,IAAQmiB,aAAR,GAA0BniB,MAA1B,CAAQmiB,aAAR;EAEA,OACE3mB,4BAAA,CAAC0pB,gBAAD;IACE8c,QAAQ;IACRpI,WAAW,EAAC;IACZqI,aAAa,EAAE;MAAA,OAAMjiC,MAAM,CAACumB,SAAP,EAAN;;IACftqB,EAAE,EAAE,YAACsiC,KAAD;MAAA,OAAmB;QACrBd,YAAY,EAAE,KADO;QAErByE,gBAAgB,EAAE,KAFG;QAGrBxiB,MAAM,EAAE,YAHa;QAIrBxjB,MAAM,EAAEq8B,WAAW,IAAIpW,aAAa,KAAK,MAAjC,GAA0C,MAA1C,GAAmD,MAJtC;QAKrBvC,OAAO,EAAE,GALY;QAMrBua,QAAQ,EAAE,UANW;QAOrBqH,EAAE,EAAE,OAPiB;QAQrB7D,KAAK,EAAE,KARc;QASrBwE,WAAW,EAAE,MATQ;QAUrB7lC,UAAU,EAAE0D,MAAM,CAACoiC,aAAP,KAAyBxjC,SAAzB,GAAqC,sBAV5B;QAWrByjC,UAAU,EAAE,MAXS;QAYrB,YAAY;UACVviB,eAAe,EAAEye,KAAK,CAACE,OAAN,CAAc6D,IAAd,CAAmBC,IAD1B;UAEV3iB,OAAO,EAAE;;OAdT;;IAiBJ4iB,WAAW,EAAEjjC,MAAM,CAACkjC,gBAAP;IACbC,YAAY,EAAEnjC,MAAM,CAACkjC,gBAAP;IACdrmC,KAAK,EAAE;MACLC,SAAS,EAAE2D,MAAM,CAACoiC,aAAP,qBACOtnC,QAAQ,GAAG6nC,gBAAX,CAA4BC,WADnC,WAEP;;GA1BR,CADF;AA+BD,CA3CM;;ACAA,IAAMC,0BAA0B,GAAc,SAAxCA,0BAAwC;MAAGtjC,cAAAA;MAAQ7E,gBAAAA;EAC9D,IACaO,YADb,GAEIP,QAFJ,CACEK,OADF,CACaE,YADb;EAIA,IAAQ+E,MAAR,GAAmBT,MAAnB,CAAQS,MAAR;EAEA,IAAQC,SAAR,GAAsBD,MAAtB,CAAQC,SAAR;EAEA,IAAM6iC,WAAW,GAAG,CAAC,CAAC9iC,MAAM,CAAC0nB,WAAP,EAAF,GAChB1nB,MAAM,CAAC0nB,WAAP,OAAyB,MAAzB,GACEzsB,YAAY,CAAChF,kBAAb,CAAgCuM,OAAhC,CAAwC,UAAxC,EAAoDvC,SAAS,CAACV,MAA9D,CADF,GAEEtE,YAAY,CAACjF,iBAAb,CAA+BwM,OAA/B,CAAuC,UAAvC,EAAmDvC,SAAS,CAACV,MAA7D,CAHc,GAIhBtE,YAAY,CAACtE,QAJjB;EAMA,OACE6E,4BAAA,CAACC,gBAAD;IAASC,KAAK;IAAC8jB,SAAS,EAAC;IAAM3jB,KAAK,EAAEinC;GAAtC,EACEtnC,4BAAA,CAACunC,uBAAD;kBACcD;IACZE,MAAM,EAAE,CAAC,CAAChjC,MAAM,CAAC0nB,WAAP;IACVub,SAAS,EACPjjC,MAAM,CAAC0nB,WAAP,KACK1nB,MAAM,CAAC0nB,WAAP,EADL,GAEI9oB;IAEN3C,EAAE,EAAE;MACFE,KAAK,EAAE,KADL;MAEFE,SAAS,EAAE;;GAVf,CADF,CADF;AAiBD,CAhCM;;ACCA,IAAM6mC,oCAAoC,GAAc,SAAlDA,oCAAkD;MAC7D3jC,cAAAA;MACA7E,gBAAAA;EAEA,wBAMIA,QANJ,CACEK,OADF;MAEaxB,YAFb,qBAEIyB,KAFJ,CAEazB,YAFb;MAGI0B,YAHJ,qBAGIA,YAHJ;MAIIkoC,wCAJJ,qBAIIA,wCAJJ;EAQA,IAAQnjC,MAAR,GAAmBT,MAAnB,CAAQS,MAAR;EAEA,IAAQC,SAAR,GAAsBD,MAAtB,CAAQC,SAAR;;EAEA,gBAAgCgW,cAAQ,CAAqB,IAArB,CAAxC;MAAO3W,QAAP;MAAiBG,WAAjB;;EAEA,IAAMs4B,WAAW,GAAG,SAAdA,WAAc,CAACn7B,KAAD;IAClBA,KAAK,CAACuqB,eAAN;IACAvqB,KAAK,CAAC0sB,cAAN;IACA7pB,WAAW,CAAC7C,KAAK,CAACwqB,aAAP,CAAX;GAHF;;EAMA,IAAMgc,sCAAsC,GAC1CD,wCAAwC,YAAY5nC,QAApD,GACI4nC,wCAAwC,CAAC;IAAEnjC,MAAM,EAANA,MAAF;IAAUtF,QAAQ,EAARA;GAAX,CAD5C,GAEIyoC,wCAHN;EAKA,IAAME,uCAAuC,GAC3CpjC,SAAS,CAACkjC,wCAAV,YAA8D5nC,QAA9D,GACI0E,SAAS,CAACkjC,wCAAV,CAAmD;IACjDnjC,MAAM,EAANA,MADiD;IAEjDtF,QAAQ,EAARA;GAFF,CADJ,GAKIuF,SAAS,CAACkjC,wCANhB;;EAQA,IAAM7nC,eAAe,gBAChB8nC,sCADgB,EAEhBC,uCAFgB,CAArB;;EAKA,OACE7nC,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAACC,gBAAD;IACEC,KAAK;IACLC,UAAU,EAAE;IACZC,cAAc,EAAE;IAChB4jB,SAAS,EAAC;IACV3jB,KAAK,EAAEZ,YAAY,CAAC7H;GALtB,EAOEoI,4BAAA,CAACM,mBAAD;kBACcb,YAAY,CAAC7H;IACzB4I,OAAO,EAAE+7B;IACT1Y,IAAI,EAAC;KACD/jB;IACJW,EAAE;MACAC,MAAM,EAAE,MADR;MAEAwgC,EAAE,EAAE,SAFJ;MAGA9c,OAAO,EAAE,GAHT;MAIAtjB,UAAU,EAAE,cAJZ;MAKAH,KAAK,EAAE,MALP;MAMA,WAAW;QACTyjB,OAAO,EAAE;;OAERtkB,eAAe,CAACW,EATnB;IALJ,EAiBET,4BAAA,CAACjC,YAAD,MAAA,CAjBF,CAPF,CADF,EA4BEiC,4BAAA,CAAC4pB,oBAAD;IACE9lB,QAAQ,EAAEA;IACVC,MAAM,EAAEA;IACRE,WAAW,EAAEA;IACb/E,QAAQ,EAAEA;GAJZ,CA5BF,CADF;AAqCD,CA/EM;;ACSA,IAAM4oC,iBAAiB,GAAc,SAA/BA,iBAA+B;;;MAC1ChhB,eAAAA;MACAD,eAAAA;MACA9iB,cAAAA;MACA7E,gBAAAA;MACAiM,kBAAAA;MACA4b,kBAAAA;EAEA,IACEznB,QADF,GAUIJ,QAVJ,CACEI,QADF;0BAUIJ,QAVJ,CAEEK,OAFF;MAGIwoC,mBAHJ,qBAGIA,mBAHJ;MAIIxhB,oBAJJ,qBAIIA,oBAJJ;MAKIwD,oBALJ,qBAKIA,oBALJ;MAMIhE,cANJ,qBAMIA,cANJ;MAOIiiB,eAPJ,qBAOIA,eAPJ;MAQIC,qBARJ,qBAQIA,qBARJ;;EAYA,gBAAiC3oC,QAAQ,EAAzC;MAAQO,OAAR,aAAQA,OAAR;MAAiBk9B,WAAjB,aAAiBA,WAAjB;;EAEA,IAAQv4B,MAAR,GAAmBT,MAAnB,CAAQS,MAAR;EAEA,IAAQC,SAAR,GAAqCD,MAArC,CAAQC,SAAR;MAAmBkiB,aAAnB,GAAqCniB,MAArC,CAAmBmiB,aAAnB;EAEA,IAAMuhB,mBAAmB,GACvBD,qBAAqB,YAAYloC,QAAjC,GACIkoC,qBAAqB,CAAC;IAAEzjC,MAAM,EAANA,MAAF;IAAUtF,QAAQ,EAARA;GAAX,CADzB,GAEI+oC,qBAHN;EAKA,IAAME,oBAAoB,GACxB1jC,SAAS,CAACwjC,qBAAV,YAA2CloC,QAA3C,GACI0E,SAAS,CAACwjC,qBAAV,CAAgC;IAAEzjC,MAAM,EAANA,MAAF;IAAUtF,QAAQ,EAARA;GAA1C,CADJ,GAEIuF,SAAS,CAACwjC,qBAHhB;;EAKA,IAAMG,cAAc,gBACfF,mBADe,EAEfC,oBAFe,CAApB;;EAKA,IAAME,aAAa,qBAAK,CAAA5jC,SAAS,QAAT,YAAAA,SAAS,CAAE6jC,MAAX,aAA6BvoC,QAA7B,GACpB0E,SADoB,oBACpBA,SAAS,CAAE6jC,MADS,oBACpB7jC,SAAS,CAAE6jC,MAAX,CAAoB;IAClBvkC,MAAM,EAANA,MADkB;IAElB7E,QAAQ,EAARA;GAFF,CADoB,GAKpBuF,SALoB,oBAKpBA,SAAS,CAAE6jC,MALI,oBAMjBvkC,MAAM,CAACwkC,YAAP,EANiB,oBAOjB9jC,SAAS,CAACV,MAPZ;;EASA,IAAMykC,yBAAyB,GAAG,SAA5BA,yBAA4B;IAChC,OACEhkC,MAAM,CAACof,WAAP,OAAyB,MAAzB,IACA1kB,QAAQ,CAACupC,kBAAT,GAA8Br9B,MAA9B,GAAuC,CAAvC,KAA6C5G,MAAM,CAACkkC,cAAP,EAF/C;GADF;;EAOA,IAAMC,2BAA2B,GAAG,SAA9BA,2BAA8B;IAClC,OAAOnkC,MAAM,CAACof,WAAP,OAAyB,OAAzB,IAAoCpf,MAAM,CAACkkC,cAAP,OAA4B,CAAvE;GADF;;EAIA,IAAME,aAAa,GAAG,SAAhBA,aAAgB;IACpB,OACE,CAAC1pC,QAAQ,CAAC2pC,mBAAT,GAA+Bz9B,MAA/B,GAAwC,CAAxC,GAA4C5G,MAAM,CAACkkC,cAAP,EAA7C,IACA,GAFF;GADF;;EAOA,OACE1oC,4BAAA,CAAC8oC,kBAAD;IACEC,KAAK,EAAEpiB,aAAa,KAAK,OAAlB,GAA4B,QAA5B,GAAuC;IAC9CqiB,OAAO,EAAEjlC,MAAM,CAACilC;KACZZ;IACJpqB,GAAG,EACD2I,aAAa,KAAK,MAAlB,IAA4BJ,oBAA5B,GAAmDM,OAAnD,GAA6DzjB;IAE/D3C,EAAE,EAAE,YAACsiC,KAAD;MAAA;;MAAA;QACFze,eAAe,EACb9f,MAAM,CAACof,WAAP,MAAwB+C,aAAa,KAAK,OAA1C,GACI0d,cAAK,CAACrB,gBAAO,CAACD,KAAK,CAACE,OAAN,CAAcC,UAAd,WAAD,EAAmC,IAAnC,CAAR,EAAkD,IAAlD,CADT,GAEI,SAJJ;QAKFC,eAAe,EAAE,SALf;QAMFiB,SAAS,EAAEoE,yBAAyB,yBACdnE,cAAK,CAACtB,KAAK,CAACE,OAAN,CAAc7O,MAAd,CAAqBkQ,KAAtB,EAA6B,GAA7B,CADS,GAEhCqE,2BAA2B,0BACRtE,cAAK,CAACtB,KAAK,CAACE,OAAN,CAAc7O,MAAd,CAAqBkQ,KAAtB,EAA6B,GAA7B,CADG,GAE3BlhC,SAVF;QAWF6lC,UAAU,EAAE,MAXV;QAYFvoC,MAAM,EAAE,MAZN;QAaFm0B,IAAI,EACFrwB,MAAM,CAACof,WAAP,OAAyB,MAAzB,GACOpf,MAAM,CAAC0kC,QAAP,CAAgB,MAAhB,CADP,UAEI9lC,SAhBJ;QAiBFigC,QAAQ,EAAE,SAjBR;QAkBFhf,CAAC,EACCxkB,OAAO,KAAK,SAAZ,GACI8mB,aAAa,KAAK,SAAlB,GACE,UADF,GAEE,QAHN,GAII9mB,OAAO,KAAK,aAAZ,GACA8mB,aAAa,KAAK,SAAlB,GACE,gBADF,GAEE,MAHF,GAIAA,aAAa,KAAK,SAAlB,GACA,cADA,GAEA,QA7BJ;QA8BFwiB,EAAE,EAAExiB,aAAa,KAAK,SAAlB,GAA8B,CAA9B,GAAkCvjB,SA9BpC;QA+BFu7B,QAAQ,EACNn6B,MAAM,CAACof,WAAP,MAAwB+C,aAAa,KAAK,OAA1C,GACI,QADJ,GAEIvjB,SAlCJ;QAmCFmmB,EAAE,EACA5C,aAAa,KAAK,MAAlB,GACI,CADJ,GAEI9mB,OAAO,KAAK,SAAZ,GACA,MADA,GAEAA,OAAO,KAAK,aAAZ,GACA,QADA,GAEA,SA1CJ;QA2CFsiC,KAAK,EACH39B,MAAM,CAACof,WAAP,OAAyB,OAAzB,GAAsCglB,aAAa,EAAnD,UAA4DxlC,SA5C5D;QA6CFtC,UAAU,YAASipB,oBAAoB,GAAG,CAAH,GAAO,MAApC,kBA7CR;QA8CF8c,UAAU,EAAEmB,eAAe,GAAG,MAAH,GAAY5kC,SA9CrC;QA+CFgmC,aAAa,EACXziB,aAAa,KAAK,SAAlB,IAA+BoW,WAA/B,GAA6C,QAA7C,GAAwD,UAhDxD;QAiDFqC,MAAM,EAAE56B,MAAM,CAACoiC,aAAP,KACJ,CADI,GAEJpiC,MAAM,CAACof,WAAP,MAAwB+C,aAAa,KAAK,OAA1C,GACA,CADA,GAEA;SACAyhB,cAtDF,oBAsDEA,cAAc,CAAE3nC,EAtDlB;QAuDF4oC,QAAQ,WAAS7kC,MAAM,CAAC8kC,OAAP,EAAT,qBAvDN;QAwDF5lB,QAAQ,WAASlf,MAAM,CAAC8kC,OAAP,EAAT,mCAAgC7kC,SAAS,CAAC8kC,OAA1C,iCAAqD,EAArD,SAxDN;QAyDF5oC,KAAK,EAAEoD,MAAM,CAACulC,OAAP;;;IAhEX,EAmEGvlC,MAAM,CAACylC,aAAP,GAAuB,IAAvB,GAA8B7iB,aAAa,KAAK,SAAlB,GAC7B0hB,aAD6B,GAG7BroC,4BAAA,CAACyjB,YAAD;IACEzF,GAAG,EAAE+I;IACLtmB,EAAE,EAAE;MACFmD,UAAU,EAAE,YADV;MAEF4jB,OAAO,EAAE,MAFP;MAGFH,cAAc,EACZV,aAAa,KAAK,OAAlB,GAA4B,QAA5B,GAAuC,eAJvC;MAKFvC,OAAO,EAAEjZ,UAAU,GAAG,GAAH,GAAS,CAL1B;MAMFwzB,QAAQ,EAAE,UANR;MAOFh+B,KAAK,EAAE;;GATX,EAYEX,4BAAA,CAACyjB,YAAD;IACEjjB,OAAO,EAAEgE,MAAM,CAACilC,uBAAP;IACThpC,EAAE,EAAE;MACFmD,UAAU,EAAE,QADV;MAEFsgB,MAAM,EACJ1f,MAAM,CAACynB,UAAP,MAAuBtF,aAAa,KAAK,OAAzC,GACI,SADJ,GAEIvjB,SALJ;MAMFokB,OAAO,EAAE,MANP;MAOFC,QAAQ,EAAE,QAPR;MAQFoe,UAAU,EACR,+CAACphC,SAAS,CAACV,MAAX,qBAAC,kBAAkBqH,MAAnB,oCAA6B,CAA7B,IAAkC,EAAlC,GAAuC,QAAvC,GAAkD;;GAXxD,EAcGi9B,aAdH,EAeG1hB,aAAa,KAAK,MAAlB,IAA4BniB,MAAM,CAACynB,UAAP,EAA5B,IACCjsB,4BAAA,CAACqnC,0BAAD;IAA4BtjC,MAAM,EAAEA;IAAQ7E,QAAQ,EAAEA;GAAtD,CAhBJ,EAkBGynB,aAAa,KAAK,MAAlB,IAA4BniB,MAAM,CAAC6nB,YAAP,EAA5B,IACCrsB,4BAAA,CAAComC,4BAAD;IACEriC,MAAM,EAAEA;IACR7E,QAAQ,EAAEA;GAFZ,CAnBJ,CAZF,EAqCEc,4BAAA,CAACyjB,YAAD;IAAKhjB,EAAE,EAAE;MAAEolC,UAAU,EAAE;;GAAvB,EACGlf,aAAa,KAAK,MAAlB,KACGJ,oBAAoB,IACpB9hB,SAAS,CAAC8hB,oBAAV,KAAmC,KADpC,IAEER,cAAc,IAAIthB,SAAS,CAACshB,cAAV,KAA6B,KAHnD,KAIG/lB,4BAAA,CAAC8jB,oBAAD;IACE9F,GAAG,EAAE8I;IACL5nB,QAAQ,EAAEA;GAFZ,CALN,EAUG,CAAC6oC,mBAAmB,IAAItjC,SAAS,CAACsjC,mBAAlC,KACCtjC,SAAS,CAACsjC,mBAAV,KAAkC,KADnC,IAECphB,aAAa,KAAK,OAFnB,IAGG3mB,4BAAA,CAAC0nC,oCAAD;IACE3jC,MAAM,EAAEA;IACR7E,QAAQ,EAAEA;GAFZ,CAbN,CArCF,EAwDGsF,MAAM,CAACioB,YAAP,MACCzsB,4BAAA,CAACumC,6BAAD;IACExiC,MAAM,EAAEA;IACR7E,QAAQ,EAAEA;GAFZ,CAzDJ,CAtEJ,EAsIGynB,aAAa,KAAK,MAAlB,IAA4BniB,MAAM,CAAC6nB,YAAP,EAA5B,IACCrsB,4BAAA,CAACmmC,gCAAD;IAAkCpiC,MAAM,EAAEA;IAAQ7E,QAAQ,EAAEA;GAA5D,CAvIJ,CADF;AA4ID,CAhNM;;ACRA,IAAMwqC,0BAA0B,GAAc,SAAxCA,0BAAwC;MAAG3lC,cAAAA;MAAQ7E,gBAAAA;EAC9D,IAAQI,QAAR,GAAqCJ,QAArC,CAAQI,QAAR;MAAkBonB,cAAlB,GAAqCxnB,QAArC,CAAkBwnB,cAAlB;;EAEA,gBAAwBpnB,QAAQ,EAAhC;MAAQimB,WAAR,aAAQA,WAAR;;EAEA,IAAQ/gB,MAAR,GAAmBT,MAAnB,CAAQS,MAAR;;EAEA,eAAoB4e,OAAO,CAAC;IAC1BN,MAAM,EAAE,QADkB;IAE1BvX,IAAI,EAAE,cAAC8Z,YAAD;MACJ,IAAMuB,cAAc,GAAGxB,aAAa,CAACC,YAAD,EAAe7gB,MAAf,EAAuB+gB,WAAvB,CAApC;MACAmB,cAAc,CAACE,cAAD,CAAd;;GAJuB,CAA3B;MAASC,OAAT;;EAQA,eAA8CvE,OAAO,CAAC;IACpDjI,OAAO,EAAE,iBAAClQ,OAAD;MAAA,OAAc;QACrBgB,UAAU,EAAEhB,OAAO,CAACgB,UAAR;OADL;KAD2C;IAIpDpD,IAAI,EAAE;MAAA,OAAMvD,MAAN;KAJ8C;IAKpDkF,IAAI,EAAE;GAL6C,CAArD;MAASyB,UAAT,eAASA,UAAT;MAAuB2b,OAAvB;MAAgCC,UAAhC;;EAQA,OACE/mB,4BAAA,CAAC8nC,iBAAD;IACEhhB,OAAO,EAAEA;IACTD,OAAO,EAAEA;IACT9iB,MAAM,EAAEA;IACRoH,UAAU,EAAEA;IACZ4b,UAAU,EAAEA;IACZ7nB,QAAQ,EAAEA;GANZ,CADF;AAUD,CAjCM;;ACAA,IAAMyqC,gBAAgB,GAAc,SAA9BA,gBAA8B;MAAGC,mBAAAA;MAAa1qC,gBAAAA;EACzD,wBAEIA,QAFJ,CACEK,OADF;MACagnB,oBADb,qBACaA,oBADb;MACmCR,cADnC,qBACmCA,cADnC;MACmD8jB,oBADnD,qBACmDA,oBADnD;EAIA,IAAMC,aAAa,GACjBD,oBAAoB,YAAY9pC,QAAhC,GACI8pC,oBAAoB,CAAC;IAAED,WAAW,EAAXA,WAAF;IAAe1qC,QAAQ,EAARA;GAAhB,CADxB,GAEI2qC,oBAHN;EAKA,OACE7pC,4BAAA,CAAC+pC,iBAAD,oBACMD;IACJrpC,EAAE,EAAE,YAACsiC,KAAD;MAAA;QACFqB,SAAS,iBAAeC,cAAK,CAACtB,KAAK,CAACE,OAAN,CAAc7O,MAAd,CAAqBkQ,KAAtB,EAA6B,GAA7B,CAD3B;QAEFhgB,eAAe,EAAE0e,gBAAO,CAACD,KAAK,CAACE,OAAN,CAAcC,UAAd,WAAD,EAAmC,IAAnC;SACpB4G,aAHF,oBAGEA,aAAa,CAAErpC,EAHjB;;IAFN,EAQGmpC,WAAW,CAACI,OAAZ,CAAoBhkC,GAApB,CAAwB,UAACjC,MAAD,EAAqBkC,KAArB;IAAA,OACvBsgB,oBAAoB,IAAIR,cAAxB,GACE/lB,4BAAA,CAAC0pC,0BAAD;MACE3lC,MAAM,EAAEA;MACRoC,GAAG,EAAEpC,MAAM,CAACzB,EAAP,IAAa2D;MAClB/G,QAAQ,EAAEA;KAHZ,CADF,GAOEc,4BAAA,CAAC8nC,iBAAD;MACE/jC,MAAM,EAAEA;MACRoC,GAAG,EAAEpC,MAAM,CAACzB,EAAP,IAAa2D;MAClB/G,QAAQ,EAAEA;KAHZ,CARqB;GAAxB,CARH,CADF;AA0BD,CApCM;;ACFA,IAAM+qC,aAAa,GAAc,SAA3BA,aAA2B;MAAG/qC,gBAAAA;EACzC,IACEgrC,eADF,GAGIhrC,QAHJ,CACEgrC,eADF;MAEaC,iBAFb,GAGIjrC,QAHJ,CAEEK,OAFF,CAEa4qC,iBAFb;EAKA,IAAMC,cAAc,GAClBD,iBAAiB,YAAYpqC,QAA7B,GACIoqC,iBAAiB,CAAC;IAAEjrC,QAAQ,EAARA;GAAH,CADrB,GAEIirC,iBAHN;EAKA,OACEnqC,4BAAA,CAACqqC,kBAAD,oBAAeD,eAAf,EACGF,eAAe,GAAGlkC,GAAlB,CAAsB,UAAC4jC,WAAD;IAAA,OACrB5pC,4BAAA,CAAC2pC,gBAAD;MACEC,WAAW,EAAEA;MACbzjC,GAAG,EAAEyjC,WAAW,CAACtnC;MACjBpD,QAAQ,EAAEA;KAHZ,CADqB;GAAtB,CADH,CADF;AAWD,CAtBM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTP,IAAIsa,KAAK,GAAsB,CAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,KAAA,EAA/B,OAA+B,CAA/B;;AASA,IAAI8wB,WAAW,GAAG,SAAdA,WAAc,CAAA,CAAA,EAAA,CAAA,EAAA;AAAC,MAAA,CAAA,KAAA,KAAA,CAAA,EAAA;AAAA,IAAA,CAAA,GAAA,EAAA;;;AAA4B,MAAA,CAAA,KAAA,KAAA,CAAA,EAAA;AAAA,IAAA,CAAA,GAAA,EAAA;;;AAC7C,SAAA,KAAK,CAAL,IAAA,CAAW,UAAA,IAAA,EAAA;AAAQ,WAAA,CAAC,CAAD,IAAC,CAAD,KAAYn7B,CAAC,CAAb,IAAa,CAAb;AAAnB,GAAA,CAAA;AADF,CAAA;;AAGA,IAAIo7B,aAAa,gBAAG,IAApB,GAAoB,EAApB;AACA,IAAA,KAAA;;AAEA,IAAIC,GAAG,GAAG,SAANA,GAAM,GAAA;AACR,MAAMC,aAAa,GAAnB,EAAA;AACAF,EAAAA,aAAa,CAAbA,OAAAA,CAAsB,UAAA,KAAA,EAAA,IAAA,EAAA;AACpB,QAAIG,OAAO,GAAG73B,IAAI,CAAlB,qBAAcA,EAAd;;AACA,QAAIy3B,WAAW,CAAA,OAAA,EAAU/6B,KAAK,CAA9B,IAAe,CAAf,EAAsC;AACpCA,MAAAA,KAAK,CAALA,IAAAA,GAAAA,OAAAA;AACAk7B,MAAAA,aAAa,CAAbA,IAAAA,CAAAA,KAAAA;AACD;AALHF,GAAAA;AAQAE,EAAAA,aAAa,CAAbA,OAAAA,CAAsB,UAAA,KAAA,EAAA;AACpBl7B,IAAAA,KAAK,CAALA,SAAAA,CAAAA,OAAAA,CAAwB,UAAA,EAAA,EAAA;AAAM,aAAA,EAAE,CAACA,KAAK,CAAR,IAAE,CAAF;AAA9BA,KAAAA;AADFk7B,GAAAA;AAIAE,EAAAA,KAAK,GAAG7xB,MAAM,CAANA,qBAAAA,CAAR6xB,GAAQ7xB,CAAR6xB;AAdF,CAAA;;SAiBwBC,YACtB/3B,MACAg4B,IAAAA;AAEA,SAAO;AACL73B,IAAAA,OAAO,EAAPA,SAAAA,OAAAA,GAAAA;AACE,UAAI83B,QAAQ,GAAGP,aAAa,CAAbA,IAAAA,KAAf,CAAA;;AACA,UAAIA,aAAa,CAAbA,GAAAA,CAAJ,IAAIA,CAAJ,EAA6B;AAC3BA,QAAAA,aAAa,CAAbA,GAAAA,CAAAA,IAAAA,EAAAA,SAAAA,CAAAA,IAAAA,CAAAA,EAAAA;AADF,OAAA,MAEO;AACLA,QAAAA,aAAa,CAAbA,GAAAA,CAAAA,IAAAA,EAAwB;AACtBQ,UAAAA,IAAI,EADkB,SAAA;AAEtBC,UAAAA,cAAc,EAFQ,KAAA;AAGtBC,UAAAA,SAAS,EAAE,CAAA,EAAA;AAHW,SAAxBV;AAKD;;AACD,UAAA,QAAA,EAAcC,GAAG;AAZd,KAAA;AAeLU,IAAAA,SAAS,EAAA,SAAA,SAAA,GAAA;AACP,UAAI37B,KAAK,GAAGg7B,aAAa,CAAbA,GAAAA,CAAZ,IAAYA,CAAZ;;AACA,UAAA,KAAA,EAAW;AACT;AACA,YAAMtkC,KAAK,GAAGsJ,KAAK,CAALA,SAAAA,CAAAA,OAAAA,CAAd,EAAcA,CAAd;AACA,YAAItJ,KAAK,IAAT,CAAA,EAAgBsJ,KAAK,CAALA,SAAAA,CAAAA,MAAAA,CAAAA,KAAAA,EAHP,CAGOA,EAHP;;AAMT,YAAI,CAACA,KAAK,CAALA,SAAAA,CAAL,MAAA,EAA6Bg7B,aAAa,CAAbA,QAAa,CAAbA,CANpB,IAMoBA,EANpB;;AAST,YAAI,CAACA,aAAa,CAAlB,IAAA,EAAyBnS,oBAAoB,CAApBA,KAAoB,CAApBA;AAC1B;AACF;AA5BI,GAAP;AA8BD;;AChED,kCAAe,OAAOtf,MAAP,KAAkB,WAAlB,GACX9Y,cAAK,CAACma,eADK,GAEXna,cAAK,CAAC2Z,SAFV;;ACEe,SAASwxB,OAAT,CACbC,OADa,EAEbC,WAFa,EAGb;AAAA,MADAA,WACA;AADAA,IAAAA,WACA,GADc;AAAE1qC,MAAAA,KAAK,EAAE,CAAT;AAAYD,MAAAA,MAAM,EAAE;AAApB,KACd;AAAA;;AAAA,wBAC8BV,cAAK,CAACya,QAAN,CAAe2wB,OAAO,CAAC9sB,OAAvB,CAD9B;AAAA,MACOZ,OADP;AAAA,MACgB4tB,UADhB;;AAAA,0BAEyBtrC,cAAK,CAACurC,UAAN,CAAiBC,WAAjB,EAA8BH,WAA9B,CAFzB;AAAA,MAEON,IAFP;AAAA,MAEaxgC,QAFb;;AAGA,MAAMkhC,cAAc,GAAGzrC,cAAK,CAAC0rC,MAAN,CAAa,KAAb,CAAvB;AAEAxxB,EAAAA,2BAAyB,CAAC,YAAM;AAC9B,QAAIkxB,OAAO,CAAC9sB,OAAR,KAAoBZ,OAAxB,EAAiC;AAC/B4tB,MAAAA,UAAU,CAACF,OAAO,CAAC9sB,OAAT,CAAV;AACD;AACF,GAJwB,CAAzB;AAMApE,EAAAA,2BAAyB,CAAC,YAAM;AAC9B,QAAIwD,OAAO,IAAI,CAAC+tB,cAAc,CAACntB,OAA/B,EAAwC;AACtCmtB,MAAAA,cAAc,CAACntB,OAAf,GAAyB,IAAzB;;AACA,UAAMysB,KAAI,GAAGrtB,OAAO,CAACoX,qBAAR,EAAb;;AACAvqB,MAAAA,QAAQ,CAAC;AAAEwgC,QAAAA,IAAI,EAAJA;AAAF,OAAD,CAAR;AACD;AACF,GANwB,EAMtB,CAACrtB,OAAD,CANsB,CAAzB;AAQA1d,EAAAA,cAAK,CAAC2Z,SAAN,CAAgB,YAAM;AACpB,QAAI,CAAC+D,OAAL,EAAc;AACZ;AACD;;AAED,QAAM9K,QAAQ,GAAGg4B,WAAW,CAACltB,OAAD,EAAU,UAAAqtB,IAAI,EAAI;AAC5CxgC,MAAAA,QAAQ,CAAC;AAAEwgC,QAAAA,IAAI,EAAJA;AAAF,OAAD,CAAR;AACD,KAF2B,CAA5B;AAIAn4B,IAAAA,QAAQ,CAACI,OAAT;AAEA,WAAO,YAAM;AACXJ,MAAAA,QAAQ,CAACs4B,SAAT;AACD,KAFD;AAGD,GAdD,EAcG,CAACxtB,OAAD,CAdH;AAgBA,SAAOqtB,IAAP;AACD;;AAED,SAASS,WAAT,CAAqBj8B,KAArB,EAA4B1D,MAA5B,EAAoC;AAClC,MAAMk/B,IAAI,GAAGl/B,MAAM,CAACk/B,IAApB;;AACA,MAAIx7B,KAAK,CAAC7O,MAAN,KAAiBqqC,IAAI,CAACrqC,MAAtB,IAAgC6O,KAAK,CAAC5O,KAAN,KAAgBoqC,IAAI,CAACpqC,KAAzD,EAAgE;AAC9D,WAAOoqC,IAAP;AACD;;AACD,SAAOx7B,KAAP;AACD;;AC/CD,IAAMo8B,mBAAmB,GAAG,SAAtBA,mBAAsB;AAAA,SAAM,EAAN;AAAA,CAA5B;;AAEA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAA3lC,KAAK;AAAA,SAAIA,KAAJ;AAAA,CAAjC;;AAEA,IAAM4lC,kBAAkB,GAAG,SAArBA,kBAAqB,CAACpX,EAAD,EAAK9uB,UAAL,EAAoB;AAC7C,MAAMQ,GAAG,GAAGR,UAAU,GAAG,aAAH,GAAmB,cAAzC;AAEA,SAAO8uB,EAAE,CAACtuB,GAAD,CAAT;AACD,CAJD;;AAMA,IAAa2lC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAAC,KAAK,EAAI;AAC5C,MAAMC,KAAK,GAAGxY,IAAI,CAACp6B,GAAL,CAAS2yC,KAAK,CAACC,KAAN,GAAcD,KAAK,CAACE,QAA7B,EAAuC,CAAvC,CAAd;AACA,MAAMlqB,GAAG,GAAGyR,IAAI,CAACn6B,GAAL,CAAS0yC,KAAK,CAAChqB,GAAN,GAAYgqB,KAAK,CAACE,QAA3B,EAAqCF,KAAK,CAACloB,IAAN,GAAa,CAAlD,CAAZ;AAEA,MAAMqoB,GAAG,GAAG,EAAZ;;AAEA,OAAK,IAAIlkC,CAAC,GAAGgkC,KAAb,EAAoBhkC,CAAC,IAAI+Z,GAAzB,EAA8B/Z,CAAC,EAA/B,EAAmC;AACjCkkC,IAAAA,GAAG,CAACrjC,IAAJ,CAASb,CAAT;AACD;;AAED,SAAOkkC,GAAP;AACD,CAXM;AAaP,SAAgBC,UAAT,OAgBJ;AAAA;;AAAA,uBAfDtoB,IAeC;AAAA,MAfDA,IAeC,0BAfM,CAeN;AAAA,+BAdDuoB,YAcC;AAAA,MAdDA,YAcC,kCAdcT,mBAcd;AAAA,2BAbDM,QAaC;AAAA,MAbDA,QAaC,8BAbU,CAaV;AAAA,+BAZDI,YAYC;AAAA,MAZDA,YAYC,kCAZc,CAYd;AAAA,6BAXDC,UAWC;AAAA,MAXDA,UAWC,gCAXY,CAWZ;AAAA,MAVDC,SAUC,QAVDA,SAUC;AAAA,MATD5mC,UASC,QATDA,UASC;AAAA,MARD6mC,UAQC,QARDA,UAQC;AAAA,MAPDC,WAOC,QAPDA,WAOC;AAAA,MANDpB,WAMC,QANDA,WAMC;AAAA,MALDqB,eAKC,QALDA,eAKC;AAAA,MAJDC,cAIC,QAJDA,cAIC;AAAA,+BAHDC,YAGC;AAAA,MAHDA,YAGC,kCAHchB,mBAGd;AAAA,8BAFDiB,WAEC;AAAA,MAFDA,WAEC,iCAFahB,kBAEb;AAAA,iCADDiB,cACC;AAAA,MADDA,cACC,oCADgBhB,qBAChB;AACD,MAAMiB,OAAO,GAAGpnC,UAAU,GAAG,OAAH,GAAa,QAAvC;AACA,MAAMqnC,SAAS,GAAGrnC,UAAU,GAAG,YAAH,GAAkB,WAA9C;AAEA,MAAMsnC,SAAS,GAAGjtC,cAAK,CAAC0rC,MAAN,CAAa;AAC7BwB,IAAAA,YAAY,EAAE,CADe;AAE7BC,IAAAA,YAAY,EAAE;AAFe,GAAb,CAAlB;;AAJC,wBASuCntC,cAAK,CAACya,QAAN,CAAe,CAAf,CATvC;AAAA,MASMyyB,YATN;AAAA,MASoBE,eATpB;;AAUDH,EAAAA,SAAS,CAAC3uB,OAAV,CAAkB4uB,YAAlB,GAAiCA,YAAjC;AAEA,MAAMG,gBAAgB,GAAGZ,WAAW,IAAItB,OAAxC;;AAZC,0BAcgCkC,gBAAgB,CAACd,SAAD,EAAYlB,WAAZ,CAdhD;AAAA,MAckBiC,SAdlB,qBAcQP,OAdR;;AAgBDE,EAAAA,SAAS,CAAC3uB,OAAV,CAAkBgvB,SAAlB,GAA8BA,SAA9B;AAEA,MAAMC,iBAAiB,GAAGvtC,cAAK,CAAC2a,WAAN,CACxB,UAAA6yB,MAAM,EAAI;AACR,QAAIjB,SAAS,CAACjuB,OAAd,EAAuB;AACrBiuB,MAAAA,SAAS,CAACjuB,OAAV,CAAkB0uB,SAAlB,IAA+BQ,MAA/B;AACD;AACF,GALuB,EAMxB,CAACjB,SAAD,EAAYS,SAAZ,CANwB,CAA1B;AASA,MAAMS,kBAAkB,GAAGjB,UAAU,IAAIe,iBAAzC;AAEAf,EAAAA,UAAU,GAAGxsC,cAAK,CAAC2a,WAAN,CACX,UAAA6yB,MAAM,EAAI;AACRC,IAAAA,kBAAkB,CAACD,MAAD,EAASD,iBAAT,CAAlB;AACD,GAHU,EAIX,CAACA,iBAAD,EAAoBE,kBAApB,CAJW,CAAb;;AA7BC,yBAoCyCztC,cAAK,CAACya,QAAN,CAAe,EAAf,CApCzC;AAAA,MAoCMizB,aApCN;AAAA,MAoCqBC,gBApCrB;;AAsCD,MAAMC,OAAO,GAAG5tC,cAAK,CAAC2a,WAAN,CAAkB;AAAA,WAAMgzB,gBAAgB,CAAC,EAAD,CAAtB;AAAA,GAAlB,EAA8C,EAA9C,CAAhB;AAEA,MAAME,8BAA8B,GAAG7tC,cAAK,CAAC0rC,MAAN,CAAa,EAAb,CAAvC;AAEA,MAAMyB,YAAY,GAAGntC,cAAK,CAAC4E,OAAN,CAAc,YAAM;AACvC,QAAMvL,GAAG,GACPw0C,8BAA8B,CAACvvB,OAA/B,CAAuClT,MAAvC,GAAgD,CAAhD,GACIooB,IAAI,CAACn6B,GAAL,OAAAm6B,IAAI,EAAQqa,8BAA8B,CAACvvB,OAAvC,CADR,GAEI,CAHN;AAIAuvB,IAAAA,8BAA8B,CAACvvB,OAA/B,GAAyC,EAAzC;AAEA,QAAM6uB,YAAY,GAAGF,SAAS,CAAC3uB,OAAV,CAAkB6uB,YAAlB,CAA+B9/B,KAA/B,CAAqC,CAArC,EAAwChU,GAAxC,CAArB;;AAEA,SAAK,IAAI2O,CAAC,GAAG3O,GAAb,EAAkB2O,CAAC,GAAG6b,IAAtB,EAA4B7b,CAAC,EAA7B,EAAiC;AAC/B,UAAM7B,GAAG,GAAGymC,YAAY,CAAC5kC,CAAD,CAAxB;AACA,UAAM8lC,YAAY,GAAGJ,aAAa,CAACvnC,GAAD,CAAlC;;AACA,UAAM6lC,MAAK,GAAGmB,YAAY,CAACnlC,CAAC,GAAG,CAAL,CAAZ,GAAsBmlC,YAAY,CAACnlC,CAAC,GAAG,CAAL,CAAZ,CAAoB+Z,GAA1C,GAAgDsqB,YAA9D;;AACA,UAAMxoB,KAAI,GACR,OAAOiqB,YAAP,KAAwB,QAAxB,GAAmCA,YAAnC,GAAkD1B,YAAY,CAACpkC,CAAD,CADhE;;AAEA,UAAM+Z,IAAG,GAAGiqB,MAAK,GAAGnoB,KAApB;;AACAspB,MAAAA,YAAY,CAACnlC,CAAD,CAAZ,GAAkB;AAAE/B,QAAAA,KAAK,EAAE+B,CAAT;AAAYgkC,QAAAA,KAAK,EAALA,MAAZ;AAAmBnoB,QAAAA,IAAI,EAAJA,KAAnB;AAAyB9B,QAAAA,GAAG,EAAHA,IAAzB;AAA8B5b,QAAAA,GAAG,EAAHA;AAA9B,OAAlB;AACD;;AACD,WAAOgnC,YAAP;AACD,GAnBoB,EAmBlB,CAACf,YAAD,EAAesB,aAAf,EAA8BrB,YAA9B,EAA4CxoB,IAA5C,EAAkD+oB,YAAlD,CAnBkB,CAArB;AAqBA,MAAMmB,SAAS,GAAG,CAAC,kBAAAZ,YAAY,CAACtpB,IAAI,GAAG,CAAR,CAAZ,mCAAwB9B,GAAxB,KAA+BsqB,YAAhC,IAAgDC,UAAlE;AAEAW,EAAAA,SAAS,CAAC3uB,OAAV,CAAkB6uB,YAAlB,GAAiCA,YAAjC;AACAF,EAAAA,SAAS,CAAC3uB,OAAV,CAAkByvB,SAAlB,GAA8BA,SAA9B;AAEA,MAAMrwB,OAAO,GAAGgvB,eAAe,GAAGA,eAAe,CAACpuB,OAAnB,GAA6BiuB,SAAS,CAACjuB,OAAtE;AAEA,MAAM0vB,iBAAiB,GAAGhuC,cAAK,CAAC0rC,MAAN,CAAaiB,cAAb,CAA1B;AACAqB,EAAAA,iBAAiB,CAAC1vB,OAAlB,GAA4BquB,cAA5B;AAEAzyB,EAAAA,2BAAyB,CAAC,YAAM;AAC9B,QAAI,CAACwD,OAAL,EAAc;AACZ0vB,MAAAA,eAAe,CAAC,CAAD,CAAf;AAEA;AACD;;AAED,QAAMa,QAAQ,GAAG,SAAXA,QAAW,CAAA7sC,KAAK,EAAI;AACxB,UAAMosC,MAAM,GAAGQ,iBAAiB,CAAC1vB,OAAlB,GACX0vB,iBAAiB,CAAC1vB,OAAlB,CAA0Bld,KAA1B,CADW,GAEXsc,OAAO,CAACsvB,SAAD,CAFX;AAIAI,MAAAA,eAAe,CAACI,MAAD,CAAf;AACD,KAND;;AAQAS,IAAAA,QAAQ;AAERvwB,IAAAA,OAAO,CAAC8a,gBAAR,CAAyB,QAAzB,EAAmCyV,QAAnC,EAA6C;AAC3CC,MAAAA,OAAO,EAAE,KADkC;AAE3CC,MAAAA,OAAO,EAAE;AAFkC,KAA7C;AAKA,WAAO,YAAM;AACXzwB,MAAAA,OAAO,CAAC+a,mBAAR,CAA4B,QAA5B,EAAsCwV,QAAtC;AACD,KAFD;AAGD,GAzBwB,EAyBtB,CAACvwB,OAAD,EAAUsvB,SAAV,CAzBsB,CAAzB;;AAzEC,wBAoGsBoB,cAAc,CAACnB,SAAS,CAAC3uB,OAAX,CApGpC;AAAA,MAoGO0tB,KApGP,mBAoGOA,KApGP;AAAA,MAoGcjqB,GApGd,mBAoGcA,GApGd;;AAsGD,MAAMssB,OAAO,GAAGruC,cAAK,CAAC4E,OAAN,CACd;AAAA,WACEkoC,cAAc,CAAC;AACbd,MAAAA,KAAK,EAALA,KADa;AAEbjqB,MAAAA,GAAG,EAAHA,GAFa;AAGbkqB,MAAAA,QAAQ,EAARA,QAHa;AAIbpoB,MAAAA,IAAI,EAAEspB,YAAY,CAAC/hC;AAJN,KAAD,CADhB;AAAA,GADc,EAQd,CAAC4gC,KAAD,EAAQjqB,GAAR,EAAakqB,QAAb,EAAuBkB,YAAY,CAAC/hC,MAApC,EAA4C0hC,cAA5C,CARc,CAAhB;AAWA,MAAMwB,cAAc,GAAGtuC,cAAK,CAAC0rC,MAAN,CAAamB,WAAb,CAAvB;AACAyB,EAAAA,cAAc,CAAChwB,OAAf,GAAyBuuB,WAAzB;AAEA,MAAM0B,YAAY,GAAGvuC,cAAK,CAAC4E,OAAN,CAAc,YAAM;AACvC,QAAM2pC,YAAY,GAAG,EAArB;;AADuC,+BAG9BC,CAH8B,EAGvBC,GAHuB;AAIrC,UAAMzmC,CAAC,GAAGqmC,OAAO,CAACG,CAAD,CAAjB;AACA,UAAME,WAAW,GAAGvB,YAAY,CAACnlC,CAAD,CAAhC;;AAEA,UAAMD,IAAI,6BACL2mC,WADK;AAERC,QAAAA,UAAU,EAAE,oBAAAla,EAAE,EAAI;AAChB,cAAIA,EAAJ,EAAQ;AACN,gBAAMqZ,YAAY,GAAGQ,cAAc,CAAChwB,OAAf,CAAuBmW,EAAvB,EAA2B9uB,UAA3B,CAArB;;AAEA,gBAAImoC,YAAY,KAAK/lC,IAAI,CAAC8b,IAA1B,EAAgC;AAAA,kBACtBqpB,aADsB,GACLD,SAAS,CAAC3uB,OADL,CACtB4uB,YADsB;;AAG9B,kBAAInlC,IAAI,CAACikC,KAAL,GAAakB,aAAjB,EAA+B;AAC7BK,gBAAAA,iBAAiB,CAACL,aAAY,IAAIY,YAAY,GAAG/lC,IAAI,CAAC8b,IAAxB,CAAb,CAAjB;AACD;;AAEDgqB,cAAAA,8BAA8B,CAACvvB,OAA/B,CAAuCzV,IAAvC,CAA4Cb,CAA5C;AAEA2lC,cAAAA,gBAAgB,CAAC,UAAAxiB,GAAG;AAAA;;AAAA,iDACfA,GADe,kCAEjBpjB,IAAI,CAAC5B,GAFY,IAEN2nC,YAFM;AAAA,eAAJ,CAAhB;AAID;AACF;AACF;AArBO,QAAV;;AAwBAS,MAAAA,YAAY,CAAC1lC,IAAb,CAAkBd,IAAlB;AA/BqC;;AAGvC,SAAK,IAAIymC,CAAC,GAAG,CAAR,EAAWC,GAAG,GAAGJ,OAAO,CAACjjC,MAA9B,EAAsCojC,CAAC,GAAGC,GAA1C,EAA+CD,CAAC,EAAhD,EAAoD;AAAA,YAA3CA,CAA2C;AA6BnD;;AAED,WAAOD,YAAP;AACD,GAnCoB,EAmClB,CAACF,OAAD,EAAUd,iBAAV,EAA6B5nC,UAA7B,EAAyCwnC,YAAzC,CAnCkB,CAArB;AAqCA,MAAMyB,UAAU,GAAG5uC,cAAK,CAAC0rC,MAAN,CAAa,KAAb,CAAnB;AAEAxxB,EAAAA,2BAAyB,CAAC,YAAM;AAC9B,QAAI00B,UAAU,CAACtwB,OAAf,EAAwB;AACtBqvB,MAAAA,gBAAgB,CAAC,EAAD,CAAhB;AACD;;AACDiB,IAAAA,UAAU,CAACtwB,OAAX,GAAqB,IAArB;AACD,GALwB,EAKtB,CAAC8tB,YAAD,CALsB,CAAzB;AAOA,MAAMyC,cAAc,GAAG7uC,cAAK,CAAC2a,WAAN,CACrB,UAACm0B,QAAD,SAAwC;AAAA,mCAAP,EAAO;AAAA,4BAA3B/F,KAA2B;AAAA,QAA3BA,KAA2B,4BAAnB,OAAmB;;AAAA,6BACFkE,SAAS,CAAC3uB,OADR;AAAA,QAC9B4uB,YAD8B,sBAC9BA,YAD8B;AAAA,QAChBI,SADgB,sBAChBA,SADgB;;AAGtC,QAAIvE,KAAK,KAAK,MAAd,EAAsB;AACpB,UAAI+F,QAAQ,IAAI5B,YAAhB,EAA8B;AAC5BnE,QAAAA,KAAK,GAAG,OAAR;AACD,OAFD,MAEO,IAAI+F,QAAQ,IAAI5B,YAAY,GAAGI,SAA/B,EAA0C;AAC/CvE,QAAAA,KAAK,GAAG,KAAR;AACD,OAFM,MAEA;AACLA,QAAAA,KAAK,GAAG,OAAR;AACD;AACF;;AAED,QAAIA,KAAK,KAAK,OAAd,EAAuB;AACrByD,MAAAA,UAAU,CAACsC,QAAD,CAAV;AACD,KAFD,MAEO,IAAI/F,KAAK,KAAK,KAAd,EAAqB;AAC1ByD,MAAAA,UAAU,CAACsC,QAAQ,GAAGxB,SAAZ,CAAV;AACD,KAFM,MAEA,IAAIvE,KAAK,KAAK,QAAd,EAAwB;AAC7ByD,MAAAA,UAAU,CAACsC,QAAQ,GAAGxB,SAAS,GAAG,CAAxB,CAAV;AACD;AACF,GArBoB,EAsBrB,CAACd,UAAD,CAtBqB,CAAvB;AAyBA,MAAMuC,gBAAgB,GAAG/uC,cAAK,CAAC2a,WAAN,CACvB,UAAC1U,KAAD,UAA6C;AAAA,oCAAP,EAAO;AAAA,4BAAnC8iC,KAAmC;AAAA,QAAnCA,KAAmC,4BAA3B,MAA2B;AAAA,QAAhB9M,IAAgB;;AAAA,8BACOgR,SAAS,CAAC3uB,OADjB;AAAA,QACnC6uB,YADmC,uBACnCA,YADmC;AAAA,QACrBD,YADqB,uBACrBA,YADqB;AAAA,QACPI,SADO,uBACPA,SADO;AAG3C,QAAMoB,WAAW,GAAGvB,YAAY,CAAC3Z,IAAI,CAACp6B,GAAL,CAAS,CAAT,EAAYo6B,IAAI,CAACn6B,GAAL,CAAS4M,KAAT,EAAgB4d,IAAI,GAAG,CAAvB,CAAZ,CAAD,CAAhC;;AAEA,QAAI,CAAC6qB,WAAL,EAAkB;AAChB;AACD;;AAED,QAAI3F,KAAK,KAAK,MAAd,EAAsB;AACpB,UAAI2F,WAAW,CAAC3sB,GAAZ,IAAmBmrB,YAAY,GAAGI,SAAtC,EAAiD;AAC/CvE,QAAAA,KAAK,GAAG,KAAR;AACD,OAFD,MAEO,IAAI2F,WAAW,CAAC1C,KAAZ,IAAqBkB,YAAzB,EAAuC;AAC5CnE,QAAAA,KAAK,GAAG,OAAR;AACD,OAFM,MAEA;AACL;AACD;AACF;;AAED,QAAM+F,QAAQ,GACZ/F,KAAK,KAAK,QAAV,GACI2F,WAAW,CAAC1C,KAAZ,GAAoB0C,WAAW,CAAC7qB,IAAZ,GAAmB,CAD3C,GAEIklB,KAAK,KAAK,KAAV,GACA2F,WAAW,CAAC3sB,GADZ,GAEA2sB,WAAW,CAAC1C,KALlB;AAOA6C,IAAAA,cAAc,CAACC,QAAD;AAAa/F,MAAAA,KAAK,EAALA;AAAb,OAAuB9M,IAAvB,EAAd;AACD,GA5BsB,EA6BvB,CAAC4S,cAAD,EAAiBhrB,IAAjB,CA7BuB,CAAzB;AAgCA,MAAMmrB,aAAa,GAAGhvC,cAAK,CAAC2a,WAAN,CACpB,YAAa;AAAA,sCAAThU,IAAS;AAATA,MAAAA,IAAS;AAAA;;AACX;AACA;AACA;AACA;AACA;AACAooC,IAAAA,gBAAgB,MAAhB,SAAoBpoC,IAApB;AACAm0B,IAAAA,qBAAqB,CAAC,YAAM;AAC1BiU,MAAAA,gBAAgB,MAAhB,SAAoBpoC,IAApB;AACD,KAFoB,CAArB;AAGD,GAXmB,EAYpB,CAACooC,gBAAD,CAZoB,CAAtB;AAeA,SAAO;AACLR,IAAAA,YAAY,EAAZA,YADK;AAELR,IAAAA,SAAS,EAATA,SAFK;AAGLc,IAAAA,cAAc,EAAdA,cAHK;AAILG,IAAAA,aAAa,EAAbA,aAJK;AAKLpB,IAAAA,OAAO,EAAPA;AALK,GAAP;AAOD;;AAED,IAAMqB,uBAAuB,GAAG,SAA1BA,uBAA0B,CAAC5b,GAAD,EAAMC,IAAN,EAAY4b,eAAZ,EAA6B9pC,KAA7B,EAAuC;AACrE,SAAOiuB,GAAG,IAAIC,IAAd,EAAoB;AAClB,QAAI6b,MAAM,GAAI,CAAC9b,GAAG,GAAGC,IAAP,IAAe,CAAhB,GAAqB,CAAlC;AACA,QAAI8b,YAAY,GAAGF,eAAe,CAACC,MAAD,CAAlC;;AAEA,QAAIC,YAAY,GAAGhqC,KAAnB,EAA0B;AACxBiuB,MAAAA,GAAG,GAAG8b,MAAM,GAAG,CAAf;AACD,KAFD,MAEO,IAAIC,YAAY,GAAGhqC,KAAnB,EAA0B;AAC/BkuB,MAAAA,IAAI,GAAG6b,MAAM,GAAG,CAAhB;AACD,KAFM,MAEA;AACL,aAAOA,MAAP;AACD;AACF;;AAED,MAAI9b,GAAG,GAAG,CAAV,EAAa;AACX,WAAOA,GAAG,GAAG,CAAb;AACD,GAFD,MAEO;AACL,WAAO,CAAP;AACD;AACF,CAnBD;;AAqBA,SAAS+a,cAAT,QAAmE;AAAA,MAAzCjB,YAAyC,SAAzCA,YAAyC;AAAA,MAA3BG,SAA2B,SAA3BA,SAA2B;AAAA,MAAhBJ,YAAgB,SAAhBA,YAAgB;AACjE,MAAMrpB,IAAI,GAAGspB,YAAY,CAAC/hC,MAAb,GAAsB,CAAnC;;AACA,MAAMikC,SAAS,GAAG,SAAZA,SAAY,CAAAppC,KAAK;AAAA,WAAIknC,YAAY,CAAClnC,KAAD,CAAZ,CAAoB+lC,KAAxB;AAAA,GAAvB;;AAEA,MAAIA,KAAK,GAAGiD,uBAAuB,CAAC,CAAD,EAAIprB,IAAJ,EAAUwrB,SAAV,EAAqBnC,YAArB,CAAnC;AACA,MAAInrB,GAAG,GAAGiqB,KAAV;;AAEA,SAAOjqB,GAAG,GAAG8B,IAAN,IAAcspB,YAAY,CAACprB,GAAD,CAAZ,CAAkBA,GAAlB,GAAwBmrB,YAAY,GAAGI,SAA5D,EAAuE;AACrEvrB,IAAAA,GAAG;AACJ;;AAED,SAAO;AAAEiqB,IAAAA,KAAK,EAALA,KAAF;AAASjqB,IAAAA,GAAG,EAAHA;AAAT,GAAP;AACD;;AChTM,IAAMutB,qBAAqB,GAAc,SAAnCA,qBAAmC;MAAGC,YAAAA;MAAMrwC,gBAAAA;EACvD,IACEI,QADF,GAWIJ,QAXJ,CACEI,QADF;0BAWIJ,QAXJ,CAEEK,OAFF;MAGI0qB,OAHJ,qBAGIA,OAHJ;MAIIrE,aAJJ,qBAIIA,aAJJ;MAKI4pB,kCALJ,qBAKIA,kCALJ;MAMIC,cANJ,qBAMIA,cANJ;MAOIC,iBAPJ,qBAOIA,iBAPJ;MASEC,qBATF,GAWIzwC,QAXJ,CASEywC,qBATF;MAUEziB,oBAVF,GAWIhuB,QAXJ,CAUEguB,oBAVF;;EAaA,gBAA0BzS,cAAQ,CAAC80B,IAAI,CAACztC,QAAL,EAAD,CAAlC;MAAOsD,KAAP;MAAcwqC,QAAd;;EAEA,IAAQprC,MAAR,GAAwB+qC,IAAxB,CAAQ/qC,MAAR;MAAgBxD,GAAhB,GAAwBuuC,IAAxB,CAAgBvuC,GAAhB;EAEA,IAAQyD,SAAR,GAAsBD,MAAtB,CAAQC,SAAR;;EAEA,IAAM+L,YAAY,GAAG,SAAfA,YAAe,CAACpP,KAAD;IACnBwuC,QAAQ,CAACxuC,KAAK,CAAC2K,MAAN,CAAa3G,KAAd,CAAR;IACAX,SAAS,CAACirC,iBAAV,oBAAAjrC,SAAS,CAACirC,iBAAV,CAA8B;MAAEtuC,KAAK,EAALA,KAAF;MAASmuC,IAAI,EAAJA,IAAT;MAAerwC,QAAQ,EAARA;KAA7C;IACAwwC,iBAAiB,QAAjB,YAAAA,iBAAiB,CAAG;MAAEtuC,KAAK,EAALA,KAAF;MAASmuC,IAAI,EAAJA,IAAT;MAAerwC,QAAQ,EAARA;KAAlB,CAAjB;GAHF;;EAMA,IAAM2wC,UAAU,GAAG,SAAbA,UAAa,CAACzuC,KAAD;IACjB,IAAI9B,QAAQ,GAAG6tB,iBAAf,EAAkC;MAChC,IAAI,CAACnsB,GAAG,CAACqsB,YAAT,EAAuBrsB,GAAG,CAACqsB,YAAJ,GAAmB,EAAnB;MACtBrsB,GAAG,CAACqsB,YAAJ,CAAyC7oB,MAAM,CAAClC,EAAhD,IAAsD8C,KAAtD;MACD8nB,oBAAoB,cAAM5tB,QAAQ,GAAG6tB,iBAAjB,EAApB;;;IAEFwiB,qBAAqB,CAAC,IAAD,CAArB;IACAlrC,SAAS,CAACgrC,cAAV,oBAAAhrC,SAAS,CAACgrC,cAAV,CAA2B;MAAEruC,KAAK,EAALA,KAAF;MAASmuC,IAAI,EAAJA,IAAT;MAAerwC,QAAQ,EAARA;KAA1C;IACAuwC,cAAc,QAAd,YAAAA,cAAc,CAAG;MAAEruC,KAAK,EAALA,KAAF;MAASmuC,IAAI,EAAJA,IAAT;MAAerwC,QAAQ,EAARA;KAAlB,CAAd;GARF;;EAWA,IAAM4wC,gCAAgC,GACpCN,kCAAkC,YAAYzvC,QAA9C,GACIyvC,kCAAkC,CAAC;IAAED,IAAI,EAAJA,IAAF;IAAQrwC,QAAQ,EAARA;GAAT,CADtC,GAEIswC,kCAHN;EAKA,IAAMO,iCAAiC,GACrCtrC,SAAS,CAAC+qC,kCAAV,YAAwDzvC,QAAxD,GACI0E,SAAS,CAAC+qC,kCAAV,CAA6C;IAC3CD,IAAI,EAAJA,IAD2C;IAE3CrwC,QAAQ,EAARA;GAFF,CADJ,GAKIuF,SAAS,CAAC+qC,kCANhB;;EAQA,IAAMlS,cAAc,gBACfwS,gCADe,EAEfC,iCAFe,CAApB;;EAKA,IAAInqB,aAAa,IAAInhB,SAAS,CAACmhB,aAAV,KAA4B,KAA7C,IAAsDnhB,SAAS,CAAC/H,IAApE,EAA0E;IACxE,OAAOsD,4BAAA,wBAAA,MAAA,EAAGyE,SAAS,CAAC/H,IAAb,oBAAG+H,SAAS,CAAC/H,IAAV,CAAiB;MAAE6yC,IAAI,EAAJA,IAAF;MAAQrwC,QAAQ,EAARA;KAAzB,CAAH,CAAP;;;EAGF,OACEc,4BAAA,CAACq+B,kBAAD;IACE/7B,EAAE,WAAS2nB,OAAT,8BAAyCslB,IAAI,CAACjtC;IAChDwjC,MAAM,EAAC;IACPkK,MAAM,EAAEH;IACRznB,QAAQ,EAAE5X;IACVhQ,OAAO,EAAE,iBAACw0B,CAAD;MAAA,OAAqCA,CAAC,CAACrJ,eAAF,EAArC;;IACT2S,WAAW,EAAE75B,SAAS,CAACV;IACvBqB,KAAK,EAAEA;IACPm5B,OAAO,EAAC;KACJjB,eATN,CADF;AAaD,CAxEM;;ACLA,IAAM2S,cAAc,GAAc,SAA5BA,cAA4B;MAAGV,YAAAA;MAAMh2B,gBAAAA;MAAUra,gBAAAA;EAC1D,wBAEIA,QAFJ,CACEK,OADF;MACaE,YADb,qBACaA,YADb;MAC2BywC,+BAD3B,qBAC2BA,+BAD3B;EAIA,IAAQ1rC,MAAR,GAAmB+qC,IAAnB,CAAQ/qC,MAAR;EAEA,IAAQC,SAAR,GAAsBD,MAAtB,CAAQC,SAAR;;EAEA,gBAA4BgW,cAAQ,CAAC,KAAD,CAApC;MAAO01B,MAAP;MAAeC,SAAf;;EAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACne,IAAD;IACjBS,SAAS,CAAC2d,SAAV,CAAoBC,SAApB,CAA8Bre,IAA9B;IACAke,SAAS,CAAC,IAAD,CAAT;IACAh+B,UAAU,CAAC;MAAA,OAAMg+B,SAAS,CAAC,KAAD,CAAf;KAAD,EAAyB,IAAzB,CAAV;GAHF;;EAMA,IAAMI,6BAA6B,GACjCN,+BAA+B,YAAYnwC,QAA3C,GACImwC,+BAA+B,CAAC;IAAEX,IAAI,EAAJA,IAAF;IAAQrwC,QAAQ,EAARA;GAAT,CADnC,GAEIgxC,+BAHN;EAKA,IAAMO,8BAA8B,GAClChsC,SAAS,CAACyrC,+BAAV,YAAqDnwC,QAArD,GACI0E,SAAS,CAACyrC,+BAAV,CAA0C;IACxCX,IAAI,EAAJA,IADwC;IAExCrwC,QAAQ,EAARA;GAFF,CADJ,GAKIuF,SAAS,CAACyrC,+BANhB;;EAQA,IAAMQ,WAAW,gBACZF,6BADY,EAEZC,8BAFY,CAAjB;;EAKA,OACEzwC,4BAAA,CAACC,gBAAD;IACEC,KAAK;IACLC,UAAU,EAAE;IACZC,cAAc,EAAE;IAChB4jB,SAAS,EAAC;IACV3jB,KAAK,EAAE8vC,MAAM,GAAG1wC,YAAY,CAAC5H,iBAAhB,GAAoC4H,YAAY,CAAC9H;GALhE,EAOEqI,4BAAA,CAACwpB,eAAD;kBACc/pB,YAAY,CAAC9H;IACzB6I,OAAO,EAAE;MAAA,OAAM6vC,UAAU,CAACd,IAAI,CAACztC,QAAL,EAAD,CAAhB;;IACT+hB,IAAI,EAAC;IACLna,IAAI,EAAC;IACL60B,OAAO,EAAC;KACJmS;IACJjwC,EAAE;MACA6jB,eAAe,EAAE,aADjB;MAEAqsB,MAAM,EAAE,MAFR;MAGAnjB,KAAK,EAAE,SAHP;MAIAtJ,MAAM,EAAE,MAJR;MAKA0sB,UAAU,EAAE,SALZ;MAMA1O,QAAQ,EAAE,SANV;MAOA2O,aAAa,EAAE,SAPf;MAQA1sB,CAAC,EAAE,UARH;MASAT,QAAQ,EAAE,OATV;MAUAC,SAAS,EAAE,SAVX;MAWAmtB,aAAa,EAAE;OACZJ,WAZH,oBAYGA,WAAW,CAAEjwC,EAZhB;IAPJ,EAsBG8Y,QAtBH,CAPF,CADF;AAkCD,CArEM;;ACKA,IAAMw3B,iBAAiB,GAAc,SAA/BA,iBAA+B;;;MAC1CxB,YAAAA;MACAyB,mBAAAA;MACAC,gBAAAA;MACA/xC,gBAAAA;EAEA,IACEI,QADF,GAiBIJ,QAjBJ,CACEI,QADF;0BAiBIJ,QAjBJ,CAEEK,OAFF;MAGIsmB,WAHJ,qBAGIA,WAHJ;MAIIqrB,iBAJJ,qBAIIA,iBAJJ;MAKI3qB,oBALJ,qBAKIA,oBALJ;MAMIX,aANJ,qBAMIA,aANJ;MAOIK,gBAPJ,qBAOIA,gBAPJ;MAQIkrB,qBARJ,qBAQIA,qBARJ;MASIC,6BATJ,qBASIA,6BATJ;MAUIC,WAVJ,qBAUIA,WAVJ;MAWIC,UAXJ,qBAWIA,UAXJ;MAYIC,aAZJ,qBAYIA,aAZJ;MAaItnB,OAbJ,qBAaIA,OAbJ;MAeEvD,cAfF,GAiBIxnB,QAjBJ,CAeEwnB,cAfF;MAgBEipB,qBAhBF,GAiBIzwC,QAjBJ,CAgBEywC,qBAhBF;;EAmBA,gBAOIrwC,QAAQ,EAPZ;MACEimB,WADF,aACEA,WADF;MAEEisB,kBAFF,aAEEA,kBAFF;MAGErkB,iBAHF,aAGEA,iBAHF;MAIEttB,OAJF,aAIEA,OAJF;MAKE0iC,SALF,aAKEA,SALF;MAMEkP,aANF,aAMEA,aANF;;EASA,IAAQjtC,MAAR,GAAwB+qC,IAAxB,CAAQ/qC,MAAR;MAAgBxD,GAAhB,GAAwBuuC,IAAxB,CAAgBvuC,GAAhB;EAEA,IAAQyD,SAAR,GAAqCD,MAArC,CAAQC,SAAR;MAAmBkiB,aAAnB,GAAqCniB,MAArC,CAAmBmiB,aAAnB;;EAEA,eAAoBvD,OAAO,CAAC;IAC1BN,MAAM,EAAE,QADkB;IAE1BvX,IAAI,EAAE,cAAC8Z,YAAD;MACJ,IAAMuB,cAAc,GAAGxB,aAAa,CAACC,YAAD,EAAe7gB,MAAf,EAAuB+gB,WAAvB,CAApC;MACAmB,cAAc,CAACE,cAAD,CAAd;;GAJuB,CAA3B;MAASC,OAAT;;EAQA,IAAM6qB,mBAAmB,GACvBP,qBAAqB,YAAYpxC,QAAjC,GACIoxC,qBAAqB,CAAC;IAAE5B,IAAI,EAAJA,IAAF;IAAQrwC,QAAQ,EAARA;GAAT,CADzB,GAEIiyC,qBAHN;EAKA,IAAMQ,oBAAoB,GACxBltC,SAAS,CAAC0sC,qBAAV,YAA2CpxC,QAA3C,GACI0E,SAAS,CAAC0sC,qBAAV,CAAgC;IAAE5B,IAAI,EAAJA,IAAF;IAAQrwC,QAAQ,EAARA;GAAxC,CADJ,GAEIuF,SAAS,CAAC0sC,qBAHhB;;EAKA,IAAM/I,cAAc,gBACfsJ,mBADe,EAEfC,oBAFe,CAApB;;EAKA,IAAMC,aAAa,GAAGhtC,aAAO,CAC3B;IAAA,OACE+hB,aAAa,KAAK,SAAlB,GACIniB,MAAM,CAAC8kC,OAAP,KAAmB,CADvB,GAEI9V,IAAI,CAACqe,MAAL,MAAiBrtC,MAAM,CAAC8kC,OAAP,KAAmB9kC,MAAM,CAAC8kC,OAAP,KAAmB,CAAvD,IACA9kC,MAAM,CAAC8kC,OAAP,KAAmB,CAJzB;GAD2B,EAM3B,CAAC3iB,aAAD,EAAgBniB,MAAM,CAAC8kC,OAAP,EAAhB,CAN2B,CAA7B;EASA,IAAMwI,UAAU,GACd,CAAClsB,aAAa,IAAInhB,SAAS,CAACmhB,aAA5B,KACAnhB,SAAS,CAACmhB,aAAV,KAA4B,KAF9B;EAIA,IAAMmsB,SAAS,GACbD,UAAU,KACTjsB,WAAW,KAAK,OAAhB,IACC,CAAAsH,iBAAiB,QAAjB,YAAAA,iBAAiB,CAAE7qB,EAAnB,MAA0BtB,GAAG,CAACsB,EAD/B,IAEC,CAAAkvC,kBAAkB,QAAlB,YAAAA,kBAAkB,CAAElvC,EAApB,MAA2BitC,IAAI,CAACjtC,EAHxB,CADZ;;EAMA,IAAM0vC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,MAAD;IACxB,IACE,CAACrsB,aAAa,IAAInhB,SAAS,CAACmhB,aAA5B,KACAnhB,SAAS,CAACmhB,aAAV,KAA4B,KAD5B,IAEAC,WAAW,KAAK,MAHlB,EAIE;MACA8pB,qBAAqB,CAACJ,IAAD,CAArB;MACAn9B,UAAU,CAAC;QACT,IAAM8/B,SAAS,GAAGp/B,QAAQ,CAACwY,cAAT,UACTrB,OADS,8BACuBslB,IAAI,CAACjtC,EAD5B,CAAlB;;QAGA,IAAI4vC,SAAJ,EAAe;UACbA,SAAS,CAAC1mB,KAAV;UACA0mB,SAAS,CAACl4C,MAAV;;OANM,EAQP,GARO,CAAV;;GAPJ;;EAmBA,IAAMwuC,yBAAyB,GAAG,SAA5BA,yBAA4B;IAChC,OACEhkC,MAAM,CAACof,WAAP,OAAyB,MAAzB,IACA1kB,QAAQ,CAACupC,kBAAT,GAA8Br9B,MAA9B,GAAuC,CAAvC,KAA6C5G,MAAM,CAACkkC,cAAP,EAF/C;GADF;;EAOA,IAAMC,2BAA2B,GAAG,SAA9BA,2BAA8B;IAClC,OAAOnkC,MAAM,CAACof,WAAP,OAAyB,OAAzB,IAAoCpf,MAAM,CAACkkC,cAAP,OAA4B,CAAvE;GADF;;EAIA,IAAME,aAAa,GAAG,SAAhBA,aAAgB;IACpB,OACE,CAAC1pC,QAAQ,CAAC2pC,mBAAT,GAA+Bz9B,MAA/B,GAAwC,CAAxC,GAA4C5G,MAAM,CAACkkC,cAAP,EAA7C,IACA,GAFF;GADF;;EAOA,OACE1oC,4BAAA,CAAC8oC,kBAAD;IACEtoC,OAAO,EAAE,iBAACY,KAAD;MAAA,OACPiwC,WADO,oBACPA,WAAW,CAAG;QAAEjwC,KAAK,EAALA,KAAF;QAASmuC,IAAI,EAAJA,IAAT;QAAerwC,QAAQ,EAARA;OAAlB,CADJ;;IAGTunC,aAAa,EAAEuL;KACX5J;IACJpqB,GAAG,EACD2I,aAAa,KAAK,MAAlB,IAA4BJ,oBAA5B,GAAmDM,OAAnD,GAA6DzjB;IAE/D3C,EAAE,EAAE,YAACsiC,KAAD;MAAA;;MAAA;QACFze,eAAe,EAAE9f,MAAM,CAACof,WAAP,KACbygB,cAAK,CAACrB,gBAAO,CAACD,KAAK,CAACE,OAAN,CAAcC,UAAd,WAAD,EAAmC,IAAnC,CAAR,EAAkD,IAAlD,CADQ,GAEb9/B,SAHF;QAIFghC,SAAS,EAAEoE,yBAAyB,yBACdnE,cAAK,CAACtB,KAAK,CAACE,OAAN,CAAc7O,MAAd,CAAqBkQ,KAAtB,EAA6B,GAA7B,CADS,GAEhCqE,2BAA2B,0BACRtE,cAAK,CAACtB,KAAK,CAACE,OAAN,CAAc7O,MAAd,CAAqBkQ,KAAtB,EAA6B,GAA7B,CADG,GAE3BlhC,SARF;QASF8gB,MAAM,EACH4tB,UAAU,IAAIjsB,WAAW,KAAK,MAA/B,IAA0CyrB,UAA1C,IAAwDD,WAAxD,GACI,SADJ,GAEI,MAZJ;QAaFxc,IAAI,EACFrwB,MAAM,CAACof,WAAP,OAAyB,MAAzB,GACOpf,MAAM,CAAC0kC,QAAP,CAAgB,MAAhB,CADP,UAEI9lC,SAhBJ;QAiBFigC,QAAQ,EAAE,QAjBR;QAkBFhf,CAAC,EACCxkB,OAAO,KAAK,SAAZ,GACI8mB,aAAa,KAAK,SAAlB,GACE,UADF,GAEE,QAHN,GAII9mB,OAAO,KAAK,aAAZ,GACA8mB,aAAa,KAAK,SAAlB,GACE,gBADF,GAEE,MAHF,GAIAA,aAAa,KAAK,SAAlB,GACA,cADA,GAEA,QA7BJ;QA8BFW,EAAE,EACA9iB,MAAM,CAAClC,EAAP,KAAc,YAAd,GAEMtB,GAAG,CAACumB,KAAJ,IACC1nB,OAAO,KAAK,SAAZ,GACG,GADH,GAEGA,OAAO,KAAK,aAAZ,GACA,IADA,GAEA,IALJ,CAFN,WASIuD,SAxCJ;QAyCFu7B,QAAQ,EAAEn6B,MAAM,CAACof,WAAP,KAAuB,QAAvB,GAAkC,UAzC1C;QA0CFue,KAAK,EACH39B,MAAM,CAACof,WAAP,OAAyB,OAAzB,GAAsCglB,aAAa,EAAnD,UAA4DxlC,SA3C5D;QA4CFoiC,YAAY,EAAE7e,aAAa,KAAK,SAAlB,GAA8B,UAA9B,GAA2CvjB,SA5CvD;QA6CFtC,UAAU,EAAE,sBA7CV;QA8CF+kC,UAAU,EAAEhmC,OAAO,KAAK,SAAZ,GAAwB,QAAxB,GAAmC,QA9C7C;QA+CFu/B,MAAM,EAAE56B,MAAM,CAACof,WAAP,KAAuB,CAAvB,GAA2BxgB,SA/CjC;QAgDF,WAAW;UACTkhB,eAAe,EACb0sB,WAAW,IAAIprB,aAAf,IAAgCC,WAAW,KAAK,KAAhD,GACIkd,KAAK,CAACE,OAAN,CAAckP,IAAd,KAAuB,MAAvB,GACKnP,gBAAO,CACRD,KAAK,CAACE,OAAN,CAAcC,UAAd,WADQ,EAER,IAFQ,CADZ,mBAKKkP,eAAM,CAACrP,KAAK,CAACE,OAAN,CAAcC,UAAd,WAAD,EAAmC,IAAnC,CALX,gBADJ,GAOI9/B;;SAEJglC,cA3DF,oBA2DEA,cAAc,CAAE3nC,EA3DlB;QA4DF4oC,QAAQ,WAAS7kC,MAAM,CAAC8kC,OAAP,EAAT,qBA5DN;QA6DF5lB,QAAQ,WAASlf,MAAM,CAAC8kC,OAAP,EAAT,mCAAgC7kC,SAAS,CAAC8kC,OAA1C,iCAAqD,EAArD,SA7DN;QA8DF5oC,KAAK,EAAE6D,MAAM,CAAC8kC,OAAP;;;IAvEX,EA0EEtpC,4BAAA,wBAAA,MAAA,EACGuiC,SAAS,IAAIkP,aAAb,GACCzxC,4BAAA,CAACqyC,iBAAD;IACEC,SAAS,EAAC;IACV5xC,MAAM,EAAE;IACRC,KAAK,EAAEixC;KACHR,8BAJN,CADD,GAOGnrB,gBAAgB,IAClBsrB,aAAa,KAAK,QADhB,IAEF/sC,MAAM,CAAClC,EAAP,KAAc,iBAFZ,GAGF2uC,QAAQ,GAAG,CAHT,GAIAtqB,aAAa,KAAK,SAAlB,GACFliB,SAAS,CAAC8tC,IADR,oBACF9tC,SAAS,CAAC8tC,IAAV,CAAiB;IAAEhD,IAAI,EAAJA,IAAF;IAAQrwC,QAAQ,EAARA;GAAzB,CADE,GAEAqwC,IAAI,CAACiD,gBAAL,MACDxxC,GAAG,CAACmnB,YAAJ,MACC3jB,MAAM,CAAClC,EAAP,KACEtB,GAAG,CAACyxC,gBAHN,GAG0B,IAH1B,GAGiClD,IAAI,CAACmD,eAAL,8BACnCjuC,SAAS,CAACkuC,cADyB,oBACnCluC,SAAS,CAACkuC,cAAV,CAA2B;IAAEpD,IAAI,EAAJA,IAAF;IAAQrwC,QAAQ,EAARA;GAAnC,CADmC,oCAEnCqwC,IAAI,CAACqD,oBAAL,EAFmC,GAGjCb,SAAS,GACX/xC,4BAAA,CAACsvC,qBAAD;IAAuBC,IAAI,EAAEA;IAAMrwC,QAAQ,EAAEA;GAA7C,CADW,GAET,CAACgyC,iBAAiB,IAAIzsC,SAAS,CAACysC,iBAAhC,KACFzsC,SAAS,CAACysC,iBAAV,KAAgC,KAD9B,GAEFlxC,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAACiwC,cAAD;IAAgBV,IAAI,EAAEA;IAAMrwC,QAAQ,EAAEA;GAAtC,EACEc,4BAAA,wBAAA,MAAA,qBAAGyE,SAAH,oBAAGA,SAAS,CAAE8tC,IAAd,oBAAG9tC,SAAS,CAAE8tC,IAAX,CAAkB;IAAEhD,IAAI,EAAJA,IAAF;IAAQrwC,QAAQ,EAARA;GAA1B,CAAH,8BAA4CqwC,IAAI,CAACsD,UAAL,EAA5C,CADF,CADF,EAIG7xC,GAAG,CAACmnB,YAAJ,MAAsBnoB,4BAAA,wBAAA,MAAA,MAAA,kBAAKgB,GAAG,CAAC8xC,OAAT,qBAAK,aAAa1nC,MAAlB,KAAA,CAJzB,CAFE,GASFpL,4BAAA,wBAAA,MAAA,sBACGyE,SADH,oBACGA,SAAS,CAAE8tC,IADd,oBACG9tC,SAAS,CAAE8tC,IAAX,CAAkB;IAAEhD,IAAI,EAAJA,IAAF;IAAQrwC,QAAQ,EAARA;GAA1B,CADH,+BAC4CqwC,IAAI,CAACsD,UAAL,EAD5C,EAEG7xC,GAAG,CAACmnB,YAAJ,MAAsBnoB,4BAAA,wBAAA,MAAA,MAAA,0CAAKgB,GAAG,CAAC8xC,OAAT,qBAAK,cAAa1nC,MAAlB,kCAA4B,EAA5B,KAAA,CAFzB,CA/BJ,CA1EF,CADF;AAkHD,CAvOM;;ACNA,IAAM2nC,oBAAoB,GAAc,SAAlCA,oBAAkC;MAAG/xC,WAAAA;MAAK9B,gBAAAA;EACrD,IACE8zC,qBADF,GAQI9zC,QARJ,CACE8zC,qBADF;0BAQI9zC,QARJ,CAEEK,OAFF;MAGI0zC,oBAHJ,qBAGIA,oBAHJ;MAIIC,wBAJJ,qBAIIA,wBAJJ;MAKIC,kBALJ,qBAKIA,kBALJ;MAMIxzC,iBANJ,qBAMIA,iBANJ;EAUA,IAAMmqC,aAAa,GACjBmJ,oBAAoB,YAAYlzC,QAAhC,GACIkzC,oBAAoB,CAAC;IAAEjyC,GAAG,EAAHA,GAAF;IAAO9B,QAAQ,EAARA;GAAR,CADxB,GAEI+zC,oBAHN;EAKA,IAAM7K,cAAc,GAClB8K,wBAAwB,YAAYnzC,QAApC,GACImzC,wBAAwB,CAAC;IAAElyC,GAAG,EAAHA,GAAF;IAAO9B,QAAQ,EAARA;GAAR,CAD5B,GAEIg0C,wBAHN;EAKA,OACElzC,4BAAA,CAAC+pC,iBAAD,oBAAcD,cAAd,EACE9pC,4BAAA,CAAC8oC,kBAAD;IACEE,OAAO,EAAEgK,qBAAqB,GAAG5nC;IACjC5K,OAAO,EAAE,iBAACY,KAAD;MAAA,OACP+xC,kBADO,oBACPA,kBAAkB,CAAG;QAAE/xC,KAAK,EAALA,KAAF;QAASJ,GAAG,EAAHA,GAAT;QAAc9B,QAAQ,EAARA;OAAjB,CADX;;KAGLkpC;IACJ3nC,EAAE;MACA2yC,YAAY,EAAE,CAACpyC,GAAG,CAACO,aAAJ,EAAD,GAAuB,MAAvB,GAAgC6B,SAD9C;MAEA+lC,EAAE,EAAEnoC,GAAG,CAACO,aAAJ,KAAsB,MAAtB,GAA+B,CAFnC;MAGAgoB,EAAE,EAAEvoB,GAAG,CAACO,aAAJ,KAAsB,MAAtB,GAA+B,CAHnC;MAIAT,UAAU,EAAE,sBAJZ;MAKAH,KAAK,EAAKzB,QAAQ,CAACm0C,YAAT,EAAL;OACFjL,cANH,oBAMGA,cAAc,CAAE3nC,EANnB;IANJ,EAeGd,iBAAiB,IAChBK,4BAAA,CAACm+B,iBAAD;IAAU,MAAIn9B,GAAG,CAACO,aAAJ;GAAd,EACG5B,iBAAiB,CAAC;IAAEqB,GAAG,EAAHA,GAAF;IAAO9B,QAAQ,EAARA;GAAR,CADpB,CAhBJ,CADF,CADF;AAyBD,CA9CM;;ACGA,IAAMo0C,gBAAgB,GAAc,SAA9BA,gBAA8B;MAAGtyC,WAAAA;MAAKiwC,gBAAAA;MAAU/xC,gBAAAA;EAC3D,IACE0pB,sBADF,GAGI1pB,QAHJ,CACE0pB,sBADF;0BAGI1pB,QAHJ,CAEEK,OAFF;MAEa0zC,oBAFb,qBAEaA,oBAFb;MAEmC3B,UAFnC,qBAEmCA,UAFnC;MAE+C3xC,iBAF/C,qBAE+CA,iBAF/C;EAKA,IAAMmqC,aAAa,GACjBmJ,oBAAoB,YAAYlzC,QAAhC,GACIkzC,oBAAoB,CAAC;IAAEjyC,GAAG,EAAHA,GAAF;IAAO9B,QAAQ,EAARA;GAAR,CADxB,GAEI+zC,oBAHN;EAKA,OACEjzC,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAAC+pC,iBAAD;IACE78B,KAAK;IACL1M,OAAO,EAAE,iBAACY,KAAD;MAAA,OACPkwC,UADO,oBACPA,UAAU,CAAG;QAAElwC,KAAK,EAALA,KAAF;QAASJ,GAAG,EAAHA,GAAT;QAAc9B,QAAQ,EAARA;OAAjB,CADH;;IAGTkH,QAAQ,EAAEpF,GAAG,CAACouB,aAAJ;KACN0a;IACJrpC,EAAE,EAAE,YAACsiC,KAAD;MAAA;QACFze,eAAe,EAAE0e,gBAAO,CAACD,KAAK,CAACE,OAAN,CAAcC,UAAd,WAAD,EAAmC,IAAnC,CADtB;QAEFpiC,UAAU,EAAE,sBAFV;QAGF,cAAc;UACZwjB,eAAe,EACb,CAAAwlB,aAAa,QAAb,YAAAA,aAAa,CAAE58B,KAAf,MAAyB,KAAzB,IAAkC0b,sBAAsB,EAAxD,GACIma,KAAK,CAACE,OAAN,CAAckP,IAAd,KAAuB,MAAvB,QACKnP,gBAAO,CAACD,KAAK,CAACE,OAAN,CAAcC,UAAd,WAAD,EAAmC,IAAnC,CADZ,QAEKkP,eAAM,CAACrP,KAAK,CAACE,OAAN,CAAcC,UAAd,WAAD,EAAmC,IAAnC,CAHf,GAII9/B;;SAEJ0mC,aAXF,oBAWEA,aAAa,CAAErpC,EAXjB;;IAPN,EAqBGO,GAAG,CAACuyC,eAAJ,GAAsBvtC,GAAtB,CAA0B,UAACupC,IAAD;IAAA,OACzBvvC,4BAAA,CAAC+wC,iBAAD;MACExB,IAAI,EAAEA;MACNppC,GAAG,EAAEopC,IAAI,CAACjtC;MACV0uC,WAAW,EAAE,CAAAlH,aAAa,QAAb,YAAAA,aAAa,CAAE58B,KAAf,MAAyB;MACtC+jC,QAAQ,EAAEA;MACV/xC,QAAQ,EAAEA;KALZ,CADyB;GAA1B,CArBH,CADF,EAgCGS,iBAAiB,IAAI,CAACqB,GAAG,CAACmnB,YAAJ,EAAtB,IACCnoB,4BAAA,CAAC+yC,oBAAD;IAAsB/xC,GAAG,EAAEA;IAAK9B,QAAQ,EAAEA;GAA1C,CAjCJ,CADF;AAsCD,CAjDM;;ACRP,IAAMsC,OAAK,GAAG,SAARA,KAAQ,CAACgyC,IAAD,EAAgBC,IAAhB,EAA+BhyC,QAA/B;EACZ,IAAIiyC,GAAG,GAAG,CAAV;;EACA,IAAIF,IAAI,CAACG,iBAAL,CAAuBlyC,QAAvB,CAAJ,EAAsC;IACpCiyC,GAAG,GAAGE,6BAAY,CAChBJ,IAAI,CAACG,iBAAL,CAAuBlyC,QAAvB,CADgB,EAEhBgyC,IAAI,CAACE,iBAAL,CAAuBlyC,QAAvB,CAFgB,CAAlB;;;;EAMF,OAAOiyC,GAAG,KAAK,CAAR,GACHG,qBAAU,CAACC,YAAX,CAAwBN,IAAxB,EAA0CC,IAA1C,EAA4DhyC,QAA5D,CADG,GAEHiyC,GAFJ;AAGD,CAZD;;AAcA,AAAO,IAAMK,cAAc,GAAG;EAC5BvyC,KAAK,EAALA;AAD4B,CAAvB;AAIP,AAAO,IAAMwyC,eAAe,GAAG,SAAlBA,eAAkB,CAACR,IAAD,EAAgBC,IAAhB;EAAA,OAC7BjgB,IAAI,CAACp6B,GAAL,OAAAo6B,IAAI,EAAQhlB,MAAM,CAACke,MAAP,CAAc+mB,IAAI,CAACE,iBAAnB,EAAsC3tC,GAAtC,CAA0C,UAACiuC,CAAD;IAAA,OAAYA,CAAC,CAACC,IAAd;GAA1C,CAAR,CAAJ,GACA1gB,IAAI,CAACp6B,GAAL,OAAAo6B,IAAI,EAAQhlB,MAAM,CAACke,MAAP,CAAc8mB,IAAI,CAACG,iBAAnB,EAAsC3tC,GAAtC,CAA0C,UAACiuC,CAAD;IAAA,OAAYA,CAAC,CAACC,IAAd;GAA1C,CAAR,CAFyB;AAAA,CAAxB;;ACVA,IAAMC,aAAa,GAAc,SAA3BA,aAA2B;MAAGj1C,gBAAAA;MAAUk1C,yBAAAA;EACnD,IACElmB,WADF,GAWIhvB,QAXJ,CACEgvB,WADF;MAEEoR,wBAFF,GAWIpgC,QAXJ,CAEEogC,wBAFF;MAGEhgC,QAHF,GAWIJ,QAXJ,CAGEI,QAHF;0BAWIJ,QAXJ,CAIEK,OAJF;MAKI80C,+BALJ,qBAKIA,+BALJ;MAMI9Q,gBANJ,qBAMIA,gBANJ;MAOI+Q,uBAPJ,qBAOIA,uBAPJ;MAQIC,iBARJ,qBAQIA,iBARJ;MASIC,gBATJ,qBASIA,gBATJ;;EAaA,gBAAuDl1C,QAAQ,EAA/D;MAAQO,OAAR,aAAQA,OAAR;MAAiBg+B,YAAjB,aAAiBA,YAAjB;MAA+B+B,UAA/B,aAA+BA,UAA/B;MAA2C6U,OAA3C,aAA2CA,OAA3C;;EAEA,IAAMC,cAAc,GAClBH,iBAAiB,YAAYx0C,QAA7B,GACIw0C,iBAAiB,CAAC;IAAEr1C,QAAQ,EAARA;GAAH,CADrB,GAEIq1C,iBAHN;;EAKA,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAyB;IAC7B,OAAOnmC,MAAM,CAACke,MAAP,CAAc+nB,OAAd,EAAuBznC,IAAvB,CAA4BiE,OAA5B,CAAP;GADF;;EAIA,IAAMivB,IAAI,GAAGt7B,aAAO,CAAC;IACnB,IACEyvC,+BAA+B,IAC/BxW,YADA,IAEA,CAAC8W,sBAAsB,EAHzB,EAIE;MACA,IAAMC,UAAU,GAAGtV,wBAAwB,GAAGY,IAA3B,CAAgC2U,IAAhC,CAAqC,UAACltC,CAAD,EAAIwH,CAAJ;QAAA,OACtD6kC,eAAe,CAACrsC,CAAD,EAAIwH,CAAJ,CADuC;OAArC,CAAnB;;MAGA,IAAIo0B,gBAAJ,EAAsB;QACpB,OAAOqR,UAAU,CAACvnC,KAAX,CAAiB,CAAjB,EAAoBuyB,UAAU,CAACC,QAA/B,CAAP;;;MAEF,OAAO+U,UAAP;;;IAGF,OAAOrR,gBAAgB,GACnBrV,WAAW,GAAGgS,IADK,GAEnBZ,wBAAwB,GAAGY,IAF/B;GAfkB,EAkBjB,CACDmU,+BADC,EAEAA,+BAA+B,IAAIxW,YAApC,IAAqD,CAAC0F,gBAAtD,GACIjE,wBAAwB,GAAGY,IAD/B,GAEIhS,WAAW,GAAGgS,IAJjB,EAKDrC,YALC,CAlBiB,CAApB;EA0BA,IAAMiX,cAAc,GAAGR,uBAAuB,GAC1CnI,UAAU;IACRF,QAAQ,EAAEpsC,OAAO,KAAK,SAAZ,GAAwB,EAAxB,GAA6B,EAD/B;IAERgkB,IAAI,EAAEqc,IAAI,CAAC90B,MAFH;IAGRmhC,SAAS,EAAE6H;KACRI,gBAJK,EADgC,GAOzC,EAPL;EASA,IAAsBO,WAAtB,GAAsCD,cAAtC,CAAQvG,YAAR;EACA,IAAMyG,UAAU,GAAG,CAAAD,WAAW,QAAX,YAAAA,WAAW,CAAE3pC,MAAb,IAAsB,CAAtB,GAA0B2pC,WAAW,CAAC,CAAD,CAAX,CAAe/I,KAAzC,GAAiD,CAApE;EACA,IAAMiJ,aAAa,GACjB,CAAAF,WAAW,QAAX,YAAAA,WAAW,CAAE3pC,MAAb,IAAsB,CAAtB,GACI0pC,cAAc,CAAC/G,SAAf,GAA2BgH,WAAW,CAACA,WAAW,CAAC3pC,MAAZ,GAAqB,CAAtB,CAAX,CAAoC2W,GADnE,GAEI,CAHN;EAKA,OACE/hB,4BAAA,CAACk1C,kBAAD,oBAAeR,eAAf,EACGJ,uBAAuB,IAAIU,UAAU,GAAG,CAAxC,IACCh1C,4BAAA,KAAA,MAAA,EACEA,4BAAA,KAAA;IAAIY,KAAK,EAAE;MAAEF,MAAM,EAAKs0C,UAAL;;GAAnB,CADF,CAFJ,EAOG,CAACV,uBAAuB,GAAGS,WAAH,GAAiB7U,IAAzC,EAA+Cl6B,GAA/C,CACC,UAACmvC,eAAD,EAAuBlE,QAAvB;IACE,IAAMjwC,GAAG,GAAGszC,uBAAuB,GAC9BpU,IAAI,CAACiV,eAAe,CAAClvC,KAAjB,CAD0B,GAE9BkvC,eAFL;IAGA,OACEn1C,4BAAA,CAACszC,gBAAD;MACEntC,GAAG,EAAEnF,GAAG,CAACsB;MACTtB,GAAG,EAAEA;MACLiwC,QAAQ,EACNqD,uBAAuB,GAAGa,eAAe,CAAClvC,KAAnB,GAA2BgrC;MAEpD/xC,QAAQ,EAAEA;KANZ,CADF;GALH,CAPH,EAwBGo1C,uBAAuB,IAAIW,aAAa,GAAG,CAA3C,IACCj1C,4BAAA,KAAA,MAAA,EACEA,4BAAA,KAAA;IAAIY,KAAK,EAAE;MAAEF,MAAM,EAAKu0C,aAAL;;GAAnB,CADF,CAzBJ,CADF;AAgCD,CAnGM;;ACHA,IAAMG,mBAAmB,GAAc,SAAjCA,mBAAiC;;;MAAGC,cAAAA;MAAQn2C,gBAAAA;EACvD,IACEI,QADF,GAGIJ,QAHJ,CACEI,QADF;0BAGIJ,QAHJ,CAEEK,OAFF;MAEa+1C,uBAFb,qBAEaA,uBAFb;MAEsCvrB,oBAFtC,qBAEsCA,oBAFtC;;EAKA,gBAAoBzqB,QAAQ,EAA5B;MAAQO,OAAR,aAAQA,OAAR;;EAEA,IAAQ2E,MAAR,GAAmB6wC,MAAnB,CAAQ7wC,MAAR;EAEA,IAAQC,SAAR,GAAqCD,MAArC,CAAQC,SAAR;MAAmBkiB,aAAnB,GAAqCniB,MAArC,CAAmBmiB,aAAnB;EAEA,IAAM4uB,qBAAqB,GACzBD,uBAAuB,YAAYv1C,QAAnC,GACIu1C,uBAAuB,CAAC;IAAE9wC,MAAM,EAANA,MAAF;IAAUtF,QAAQ,EAARA;GAAX,CAD3B,GAEIo2C,uBAHN;EAKA,IAAME,sBAAsB,GAC1B/wC,SAAS,CAAC6wC,uBAAV,YAA6Cv1C,QAA7C,GACI0E,SAAS,CAAC6wC,uBAAV,CAAkC;IAAE9wC,MAAM,EAANA,MAAF;IAAUtF,QAAQ,EAARA;GAA5C,CADJ,GAEIuF,SAAS,CAAC6wC,uBAHhB;;EAKA,IAAMlN,cAAc,gBACfmN,qBADe,EAEfC,sBAFe,CAApB;;EAKA,OACEx1C,4BAAA,CAAC8oC,kBAAD;IACEC,KAAK,EAAEpiB,aAAa,KAAK,OAAlB,GAA4B,QAA5B,GAAuC;IAC9CqiB,OAAO,EAAEqM,MAAM,CAACrM;IAChBzK,OAAO,EAAC;KACJ6J;IACJ3nC,EAAE,EAAE,YAACsiC,KAAD;MAAA;QACFze,eAAe,EAAEye,KAAK,CAACE,OAAN,CAAcC,UAAd,WADf;QAEFC,eAAe,uBAAqBkB,cAAK,CACvCtB,KAAK,CAACE,OAAN,CAAc7O,MAAd,CAAqBqhB,KADkB,EAEvC,IAFuC,CAA1B,SAGVpR,cAAK,CAACtB,KAAK,CAACE,OAAN,CAAc7O,MAAd,CAAqBqhB,KAAtB,EAA6B,IAA7B,CAHK,MAFb;QAMFxM,UAAU,EAAE,MANV;QAOFI,QAAQ,EAAK7kC,MAAM,CAAC8kC,OAAP,EAAL,OAPN;QAQF5lB,QAAQ,EAAKlf,MAAM,CAAC8kC,OAAP,EAAL,OARN;QASFjlB,CAAC,EACCxkB,OAAO,KAAK,SAAZ,GACI,QADJ,GAEIA,OAAO,KAAK,aAAZ,GACA,MADA,GAEA,QAdJ;QAeFiB,UAAU,YAASipB,oBAAoB,GAAG,MAAH,GAAY,MAAzC,kBAfR;QAgBFppB,KAAK,EAAE6D,MAAM,CAAC8kC,OAAP,EAhBL;QAiBFF,aAAa,EAAE;SACXhB,cAlBF,oBAkBEA,cAAc,CAAE3nC,EAlBlB;;IALN,EA0BET,4BAAA,wBAAA,MAAA,EACGq1C,MAAM,CAAC7L,aAAP,GACG,IADH,8BAEI/kC,SAAS,CAACixC,MAAV,YAA4B31C,QAA5B,GACG0E,SAAS,CAACixC,MADb,oBACGjxC,SAAS,CAACixC,MAAV,CAAmB;IACjBL,MAAM,EAANA,MADiB;IAEjBn2C,QAAQ,EAARA;GAFF,CADH,GAKGuF,SAAS,CAACixC,MAPjB,oBAQGjxC,SAAS,CAAC4wC,MARb,oBASGA,MAAM,CAACM,YAAP,EATH,oBAUG,IAXN,CA1BF,CADF;AA0CD,CArEM;;ACCA,IAAMC,kBAAkB,GAAc,SAAhCA,kBAAgC;;;MAAGC,mBAAAA;MAAa32C,gBAAAA;EAC3D,IACa42C,sBADb,GAEI52C,QAFJ,CACEK,OADF,CACau2C,sBADb;;EAKA,IACE,0BAACD,WAAW,CAAC7L,OAAb,aAAC,qBAAqBh9B,IAArB,CACC,UAACjJ,MAAD;IAAA,OACG,OAAOA,MAAM,CAACS,MAAP,CAAcC,SAAd,CAAwB4wC,MAA/B,KAA0C,QAA1C,IACC,CAAC,CAACtxC,MAAM,CAACS,MAAP,CAAcC,SAAd,CAAwB4wC,MAD5B,IAEAtxC,MAAM,CAACS,MAAP,CAAcC,SAAd,CAAwBixC,MAH1B;GADD,CAAD,CADF,EAQE,OAAO,IAAP;EAEF,IAAM5L,aAAa,GACjBgM,sBAAsB,YAAY/1C,QAAlC,GACI+1C,sBAAsB,CAAC;IAAED,WAAW,EAAXA,WAAF;IAAe32C,QAAQ,EAARA;GAAhB,CAD1B,GAEI42C,sBAHN;EAKA,OACE91C,4BAAA,CAAC+pC,iBAAD,oBAAcD,cAAd,EACG+L,WAAW,CAAC7L,OAAZ,CAAoBhkC,GAApB,CAAwB,UAACqvC,MAAD;IAAA,OACvBr1C,4BAAA,CAACo1C,mBAAD;MACEC,MAAM,EAAEA;MACRlvC,GAAG,EAAEkvC,MAAM,CAAC/yC;MACZpD,QAAQ,EAAEA;KAHZ,CADuB;GAAxB,CADH,CADF;AAWD,CAhCM;;ACDA,IAAM62C,eAAe,GAAc,SAA7BA,eAA6B;MAAG72C,gBAAAA;EAC3C,IACE82C,eADF,GAII92C,QAJJ,CACE82C,eADF;MAGaC,mBAHb,GAII/2C,QAJJ,CAGEK,OAHF,CAGa02C,mBAHb;EAMA,IAAMC,gBAAgB,GACpBD,mBAAmB,YAAYl2C,QAA/B,GACIk2C,mBAAmB,CAAC;IAAE/2C,QAAQ,EAARA;GAAH,CADvB,GAEI+2C,mBAHN;EAKA,OACEj2C,4BAAA,CAACm2C,oBAAD,oBAAiBD,iBAAjB,EACGF,eAAe,GAAGhwC,GAAlB,CAAsB,UAAC6vC,WAAD;IAAA,OACrB71C,4BAAA,CAAC41C,kBAAD;MACEC,WAAW,EAAEA;MACb1vC,GAAG,EAAE0vC,WAAW,CAACvzC;MACjBpD,QAAQ,EAAEA;KAHZ,CADqB;GAAtB,CADH,CADF;AAWD,CAvBM;;ACGA,IAAMk3C,SAAS,GAAc,SAAvBA,SAAuB;MAAGhC,yBAAAA;MAAmBl1C,gBAAAA;EACxD,IACEI,QADF,GAUIJ,QAVJ,CACEI,QADF;0BAUIJ,QAVJ,CAEEK,OAFF;MAGIwqB,oBAHJ,qBAGIA,oBAHJ;MAIIuqB,uBAJJ,qBAIIA,uBAJJ;MAKI+B,kBALJ,qBAKIA,kBALJ;MAMIC,iBANJ,qBAMIA,iBANJ;MAOIC,eAPJ,qBAOIA,eAPJ;MAQIC,aARJ,qBAQIA,aARJ;;EAYA,gBAAyBl3C,QAAQ,EAAjC;MAAQ88B,YAAR,aAAQA,YAAR;;EAEA,IAAMqa,UAAU,GACdD,aAAa,YAAYz2C,QAAzB,GACIy2C,aAAa,CAAC;IAAEt3C,QAAQ,EAARA;GAAH,CADjB,GAEIs3C,aAHN;EAKA,OACEx2C,4BAAA,CAAC02C,cAAD;IACEC,YAAY,EACVN,kBAAkB,IAAI/B,uBAAtB,IAAiDlY;KAE/Cqa;IACJh2C,EAAE;MACAm2C,WAAW,EACT7sB,oBAAoB,IAAIuqB,uBAAxB,GAAkD,OAAlD,GAA4D;OAC3DmC,UAHH,oBAGGA,UAAU,CAAEh2C,EAHf;IALJ,EAWG81C,eAAe,IAAIv2C,4BAAA,CAACiqC,aAAD;IAAe/qC,QAAQ,EAAEA;GAAzB,CAXtB,EAYEc,4BAAA,CAACm0C,aAAD;IACEC,iBAAiB,EAAEA;IACnBl1C,QAAQ,EAAEA;GAFZ,CAZF,EAgBGo3C,iBAAiB,IAAIt2C,4BAAA,CAAC+1C,eAAD;IAAiB72C,QAAQ,EAAEA;GAA3B,CAhBxB,CADF;AAoBD,CAxCM;;ACPP,IAAMgb,2BAAyB,GAC7B,OAAOpB,MAAP,KAAkB,WAAlB,GAAgCqB,qBAAhC,GAAkDR,eADpD;AAOA,AAAO,IAAMk9B,kBAAkB,GAAc,SAAhCA,kBAAgC;MAAG33C,gBAAAA;EAC9C,IACEI,QADF,GAQIJ,QARJ,CACEI,QADF;0BAQIJ,QARJ,CAEEK,OAFF;MAGI82C,kBAHJ,qBAGIA,kBAHJ;MAII/B,uBAJJ,qBAIIA,uBAJJ;MAKIwC,sBALJ,qBAKIA,sBALJ;MAMI7sB,OANJ,qBAMIA,OANJ;;EAUA,gBAAyB3qB,QAAQ,EAAjC;MAAQ88B,YAAR,aAAQA,YAAR;;EAEA,gBAAoD3hB,cAAQ,CAAC,CAAD,CAA5D;MAAOs8B,kBAAP;MAA2BC,qBAA3B;;EAEA,IAAMC,mBAAmB,GACvBH,sBAAsB,YAAY/2C,QAAlC,GACI+2C,sBAAsB,CAAC;IAAE53C,QAAQ,EAARA;GAAH,CAD1B,GAEI43C,sBAHN;EAKA58B,2BAAyB,CAAC;;;IACxB,IAAMg9B,gBAAgB,GACpB,OAAOpkC,QAAP,KAAoB,WAApB,yCACIA,QADJ,+CACI,UAAUwY,cAAV,UAAgCrB,OAAhC,kBADJ,qBACI,uBACImM,YAFR,oCAEwB,CAFxB,GAGI,CAJN;IAMA,IAAM+gB,mBAAmB,GACvB,OAAOrkC,QAAP,KAAoB,WAApB,2CACIA,QADJ,8CACI,WAAUwY,cAAV,UAAgCrB,OAAhC,qBADJ,qBACI,sBACImM,YAFR,qCAEwB,CAFxB,GAGI,CAJN;IAMA4gB,qBAAqB,CAACE,gBAAgB,GAAGC,mBAApB,CAArB;GAbuB,CAAzB;EAgBA,IAAM/C,iBAAiB,GAAGp0C,cAAK,CAAC0rC,MAAN,CAA6B,IAA7B,CAA1B;EAEA,OACE1rC,4BAAA,CAACo3C,uBAAD,oBACMH;IACJj5B,GAAG,EAAEo2B;IACL3zC,EAAE;MACA4oC,QAAQ,EAAE,MADV;MAEAgO,SAAS,EACPhB,kBAAkB,IAAI/B,uBAAtB,kCACiCyC,kBADjC,oBAEI3zC,SALN;MAMAigC,QAAQ,EAAE;OACP4T,mBAPH,oBAOGA,mBAAmB,CAAEx2C,EAPxB;IASFG,KAAK;MACHy2C,SAAS,EAAEjb,YAAY,qBACH2a,kBADG,WAEnB3zC;OACD6zC,mBAJA,oBAIAA,mBAAmB,CAAEr2C,KAJrB;IAZP,EAmBEZ,4BAAA,CAACo2C,SAAD;IAAWhC,iBAAiB,EAAEA;IAAmBl1C,QAAQ,EAAEA;GAA3D,CAnBF,CADF;AAuBD,CA7DM;;ACCA,IAAMo4C,cAAc,GAAc,SAA5BA,cAA4B;MAAGp4C,gBAAAA;EAC1C,IACEI,QADF,GAGIJ,QAHJ,CACEI,QADF;0BAGIJ,QAHJ,CAEEK,OAFF;MAEag4C,mBAFb,qBAEaA,mBAFb;MAEkCC,gBAFlC,qBAEkCA,gBAFlC;MAEoDC,kBAFpD,qBAEoDA,kBAFpD;;EAKA,gBAAyBn4C,QAAQ,EAAjC;MAAQ88B,YAAR,aAAQA,YAAR;;EAEAziB,eAAS,CAAC;IACR,IAAI,OAAOb,MAAP,KAAkB,WAAtB,EAAmC;MACjC,IAAIsjB,YAAJ,EAAkB;QAChBtpB,QAAQ,CAAC6nB,IAAT,CAAc/5B,KAAd,CAAoBF,MAApB,GAA6B,OAA7B;OADF,MAEO;QACLoS,QAAQ,CAAC6nB,IAAT,CAAc/5B,KAAd,CAAoBF,MAApB,GAA6B,MAA7B;;;GALG,EAQN,CAAC07B,YAAD,CARM,CAAT;EAUA,IAAMsb,eAAe,GACnBD,kBAAkB,YAAY13C,QAA9B,GACI03C,kBAAkB,CAAC;IAAEv4C,QAAQ,EAARA;GAAH,CADtB,GAEIu4C,kBAHN;EAKA,OACEz3C,4BAAA,CAACqZ,WAAD;IAAapL,OAAO,EAAE6tB;GAAtB,EACE97B,4BAAA,CAAC23C,cAAD;IACEC,SAAS,EAAE;KACPF;IACJj3C,EAAE;MACAK,UAAU,EAAE;OACT42C,eAFH,oBAEGA,eAAe,CAAEj3C,EAFpB;IAIFG,KAAK,eACA82C,eADA,oBACAA,eAAe,CAAE92C,KADjB;MAEHF,MAAM,EAAE07B,YAAY,GAAG,OAAH,GAAah5B,SAF9B;MAGH0iC,MAAM,EAAE1J,YAAY,GAAG,GAAH,GAASh5B,SAH1B;MAIHi0C,SAAS,EAAEjb,YAAY,GAAG,OAAH,GAAah5B,SAJjC;MAKHimC,QAAQ,EAAEjN,YAAY,GAAG,OAAH,GAAah5B,SALhC;MAMHy0C,OAAO,EAAEzb,YAAY,GAAG,GAAH,GAASh5B,SAN3B;MAOHzC,KAAK,EAAEy7B,YAAY,GAAG,OAAH,GAAah5B;;IAdpC,EAiBGo0C,gBAAgB,IAAIx3C,4BAAA,CAACsjC,cAAD;IAAgBpkC,QAAQ,EAAEA;GAA1B,CAjBvB,EAkBEc,4BAAA,CAAC62C,kBAAD;IAAoB33C,QAAQ,EAAEA;GAA9B,CAlBF,EAmBGq4C,mBAAmB,IAAIv3C,4BAAA,CAACikC,iBAAD;IAAmB/kC,QAAQ,EAAEA;GAA7B,CAnB1B,CADF,CADF;AAyBD,CAhDM;;AC+BA,IAAM44C,aAAa,GAAG,SAAhBA,aAAgB,CAC3Bt+B,KAD2B;;;EAG3B,gBAA+BiB,cAAQ,CAACjB,KAAK,CAACyQ,OAAP,CAAvC;MAAOA,OAAP;MAAgB8tB,WAAhB;;EACAp+B,eAAS,CACP;IAAA;;IAAA,OACEo+B,WAAW,mBAACv+B,KAAK,CAACyQ,OAAP,6BAAkBuJ,IAAI,CAACqe,MAAL,GAActvC,QAAd,CAAuB,EAAvB,EAA2By1C,SAA3B,CAAqC,CAArC,EAAwC,CAAxC,CAAlB,CADb;GADO,EAGP,CAACx+B,KAAK,CAACyQ,OAAP,CAHO,CAAT;EAMA,IAAM7R,YAAY,GAA+BxT,aAAO,CAAC;;;IACvD,IAAMqzC,SAAS,0BAAGz+B,KAAK,CAACpB,YAAT,kCAAyB,EAAxC;IACA6/B,SAAS,CAAC1yB,WAAV,4BACE0yB,SAAS,CAAC1yB,WADZ,oCAC2BY,wBAAwB,CAAC3M,KAAD,CADnD;IAEA,OAAOy+B,SAAP;GAJsD,EAKrD,EALqD,CAAxD;;EAOA,iBAAsCx9B,cAAQ,0BAC5CrC,YAAY,CAACmN,WAD+B,oCAChB,EADgB,CAA9C;MAAOA,WAAP;MAAoBmB,cAApB;;EAGA,iBACEjM,cAAQ,0BAAqBrC,YAArB,oBAAqBA,YAAY,CAAEo5B,kBAAnC,oCAAyD,IAAzD,CADV;MAAOA,kBAAP;MAA2B7B,qBAA3B;;EAEA,iBAAkDl1B,cAAQ,2BACxDrC,YADwD,oBACxDA,YAAY,CAAE+U,iBAD0C,qCACrB,IADqB,CAA1D;MAAOA,iBAAP;MAA0BD,oBAA1B;;EAGA,iBAA8BzS,cAAQ,0BACpCrC,YADoC,oBACpCA,YAAY,CAAEvY,OADsB,oCACX,aADW,CAAtC;MAAOA,OAAP;MAAgB68B,UAAhB;;EAGA,iBAAwCjiB,cAAQ,0BAC9CrC,YAD8C,oBAC9CA,YAAY,CAAEgkB,YADgC,oCAChB,KADgB,CAAhD;MAAOA,YAAP;MAAqBD,eAArB;;EAGA,iBAAsC1hB,cAAQ,0BAC5CrC,YAD4C,oBAC5CA,YAAY,CAAE2kB,WAD8B,oCACf,KADe,CAA9C;MAAOA,WAAP;MAAoB7S,cAApB;;EAGA,iBAAgDzP,cAAQ,0BACtDrC,YADsD,oBACtDA,YAAY,CAAEilB,gBADwC,oCACpB,KADoB,CAAxD;MAAOA,gBAAP;MAAyBD,mBAAzB;;EAIA,iBAAgD3iB,cAAQ,CAErD;IAAA,OACDjM,MAAM,CAAC0pC,MAAP,OAAA1pC,MAAM,GACJ,EADI,SAED+V,oBAAoB,CAAC/K,KAAK,CAACgL,OAAP,CAApB,CAAuDxe,GAAvD,CAA2D,UAAC4B,CAAD;MAAA;;MAAA,yBAC3DA,CAAC,CAACtF,EADyD,2BAE1DsF,CAAC,CAACsd,QAFwD,0BAG1D9M,YAH0D,8CAG1DA,YAAY,CAAE9T,gBAH4C,qBAG1D,uBAAiCsD,CAAC,CAACtF,EAAnC,CAH0D,mBAIzD,CAAC,2BAACsF,CAAC,CAACmkB,mBAAH,aAAC,sBAAuB3gB,MAAxB,CAAD,GAAkC,QAAlC,GAA6C,OAJY;KAA3D,CAFC,EADL;GAFqD,CAAxD;MAAO9G,gBAAP;MAAyBF,mBAAzB;;EAcA,kBAA0DqW,cAAQ,0BAEhEjB,KAAK,CAAC2+B,cAF0D,oCAExC,OAFwC,CAAlE;MAAO5zC,qBAAP;MAA8BF,wBAA9B;;EAIA,IAAM2gB,KAAK,GAAGpgB,aAAO,CACnB;IAAA;MAEEwzC,sBAAW,GAAGC,UAAd,CAAyB;QACvBC,SAAS,eAAOA,oBAAP,EAAqB90C,aAArB,EAAuCgW,KAAK,CAAC8+B,SAA7C,CADc;QAEvBC,eAAe,EAAEA,0BAAe,EAFT;QAGvBC,mBAAmB,EAAEA,8BAAmB,EAHjB;QAIvBC,kBAAkB,EAAEA,6BAAkB,EAJf;QAKvBC,mBAAmB,EAAEA,8BAAmB,EALjB;QAMvBC,kBAAkB,EAAEA,6BAAkB,EANf;QAOvBxqB,qBAAqB,EAAEA,gCAAqB,EAPrB;QAQvByqB,iBAAiB,EAAEA,4BAAiB,EARb;QASvB/E,UAAU,eAAOA,qBAAP,EAAsBE,cAAtB,EAAyCv6B,KAAK,CAACq6B,UAA/C;OATZ;;GAHiB,EAcnB,EAdmB,CAArB;EAiBA,IAAMgF,cAAc,GAAGj0C,aAAO,CAAC;;;IAC7B,OAAO,CACL2gB,WAAW,CAAC7iB,QAAZ,CAAqB,iBAArB,KACEyiB,mBAAmB,CAACH,KAAD,EAAQ;MACzButB,IAAI,EAAE;QAAA,IAAGhD,IAAH,SAAGA,IAAH;QAAA,OACJvvC,4BAAA,CAAC2tB,6BAAD;UACE3sB,GAAG,EAAEuuC,IAAI,CAACvuC;UACV9B,QAAQ,EAAEA;SAFZ,CADI;OADmB;MAOzB6E,MAAM,yBAAEyV,KAAK,CAAC/Z,YAAR,qBAAE,oBAAoBtI,OAPH;MAQzBmL,EAAE,EAAE,iBARqB;MASzB6uC,qBAAqB,EAAE33B,KAAK,CAAC23B,qBATJ;MAUzBlJ,qBAAqB,EAAEzuB,KAAK,CAACyuB,qBAVJ;MAWzBpkB,IAAI,EAAE;KAXW,CAFhB,EAeL0B,WAAW,CAAC7iB,QAAZ,CAAqB,YAArB,KACEyiB,mBAAmB,CAACH,KAAD,EAAQ;MACzButB,IAAI,EAAE;QAAA,IAAGhD,IAAH,SAAGA,IAAH;QAAA,OACJvvC,4BAAA,CAACe,gBAAD;UAAkBC,GAAG,EAAEuuC,IAAI,CAACvuC;UAAY9B,QAAQ,EAAEA;SAAlD,CADI;OADmB;MAIzBopC,MAAM,EAAE;QAAA,OACN9uB,KAAK,CAACs/B,eAAN,GACE94C,4BAAA,CAACf,mBAAD;UAAqBC,QAAQ,EAAEA;SAA/B,CADF,GAEI,IAHE;OAJiB;MAQzB6E,MAAM,0BAAEyV,KAAK,CAAC/Z,YAAR,qBAAE,qBAAoB1H,MARH;MASzBuK,EAAE,EAAE,YATqB;MAUzB6uC,qBAAqB,EAAE33B,KAAK,CAAC23B,qBAVJ;MAWzBlJ,qBAAqB,EAAEzuB,KAAK,CAACyuB,qBAXJ;MAYzBpkB,IAAI,EAAE;KAZW,CAhBhB,EA8BL0B,WAAW,CAAC7iB,QAAZ,CAAqB,YAArB,KACEyiB,mBAAmB,CAACH,KAAD,EAAQ;MACzButB,IAAI,EAAE;QAAA,IAAGhD,IAAH,SAAGA,IAAH;QAAA,OACJvvC,4BAAA,CAACguB,kBAAD;UAAoBhtB,GAAG,EAAEuuC,IAAI,CAACvuC;UAAY9B,QAAQ,EAAEA;SAApD,CADI;OADmB;MAIzBopC,MAAM,EAAE;QAAA,OACN9uB,KAAK,CAACu/B,eAAN,GACE/4C,4BAAA,CAACguB,kBAAD;UAAoBC,SAAS;UAAC/uB,QAAQ,EAAEA;SAAxC,CADF,GAEI,IAHE;OAJiB;MAQzB6E,MAAM,0BAAEyV,KAAK,CAAC/Z,YAAR,qBAAE,qBAAoBzF,MARH;MASzBsI,EAAE,EAAE,YATqB;MAUzB6uC,qBAAqB,EAAE33B,KAAK,CAAC23B,qBAVJ;MAWzBlJ,qBAAqB,EAAEzuB,KAAK,CAACyuB,qBAXJ;MAYzBpkB,IAAI,EAAE;KAZW,CA/BhB,EA6CL0B,WAAW,CAAC7iB,QAAZ,CAAqB,iBAArB,KACEyiB,mBAAmB,CAACH,KAAD,EAAQ;MACzButB,IAAI,EAAE;QAAA,IAAGhD,IAAH,SAAGA,IAAH;QAAA,OAAcA,IAAI,CAACvuC,GAAL,CAASiF,KAAT,GAAiB,CAA/B;OADmB;MAEzBqiC,MAAM,EAAE;QAAA;;QAAA,+BAAM9uB,KAAK,CAAC/Z,YAAZ,qBAAM,qBAAoB9F,SAA1B;OAFiB;MAGzBoK,MAAM,0BAAEyV,KAAK,CAAC/Z,YAAR,qBAAE,qBAAoB7F,UAHH;MAIzB0I,EAAE,EAAE,iBAJqB;MAKzB6uC,qBAAqB,EAAE33B,KAAK,CAAC23B,qBALJ;MAMzBlJ,qBAAqB,EAAEzuB,KAAK,CAACyuB,qBANJ;MAOzBpkB,IAAI,EAAE;KAPW,CA9ChB,EAuDL5e,MAvDK,CAuDEgM,OAvDF,CAAP;GAD4B,EAyD3B,CACDsU,WADC,EAED/L,KAAK,CAACqM,WAFL,EAGDrM,KAAK,CAACoM,aAHL,EAIDpM,KAAK,CAACs/B,eAJL,EAKDt/B,KAAK,CAACsM,eALL,EAMDtM,KAAK,CAACuM,cANL,EAODvM,KAAK,CAACmM,gBAPL,EAQDnM,KAAK,CAACyM,gBARL,EASDzM,KAAK,CAACwM,kBATL,EAUDxM,KAAK,CAACu/B,eAVL,EAWDv/B,KAAK,CAAC/Z,YAXL,EAYD+Z,KAAK,CAAC23B,qBAZL,EAaD33B,KAAK,CAACyuB,qBAbL,EAcDzuB,KAAK,CAACkM,qBAdL,EAeDV,KAfC,CAzD2B,CAA9B;EA2EA,IAAMR,OAAO,GAAG5f,aAAO,CACrB;IAAA,iBACKi0C,cADL,EAEKr/B,KAAK,CAACgL,OAAN,CAAcxe,GAAd,CAAkB,UAACxB,MAAD;MAAA,OACnBA,MAAM,CAACggB,OAAP,GACIO,WAAW,CAACC,KAAD,EAAQxgB,MAAR,EAAuBF,gBAAvB,CADf,GAEI2gB,gBAAgB,CAACD,KAAD,EAAQxgB,MAAR,EAAuBF,gBAAvB,CAHD;KAAlB,CAFL;GADqB,EASrB,CAAC0gB,KAAD,EAAQxL,KAAK,CAACgL,OAAd,EAAuBlgB,gBAAvB,CATqB,CAAvB;EAYA,IAAM4O,IAAI,GAAQtO,aAAO,CACvB;IAAA;;IAAA,OACE,CAAC,gBAAA4U,KAAK,CAACjK,KAAN,0BAAagzB,SAAb,qBAA0B/oB,KAAK,CAACjK,KAAhC,aAA0B,cAAakiC,aAAxC,KACA,CAACj4B,KAAK,CAACtG,IAAN,CAAW9H,MADZ,GAEI,UAAI0B,KAAK,CAAC,EAAD,CAAL,CAAUksC,IAAV,CAAe,IAAf,CAAJ,EAA0BhzC,GAA1B,CAA8B;MAAA,OAC5BwI,MAAM,CAAC0pC,MAAP,OAAA1pC,MAAM,GACJ,EADI,SAED+V,oBAAoB,CAAC/K,KAAK,CAACgL,OAAP,CAApB,CAAuDxe,GAAvD,CACD,UAAC4B,CAAD;QAAA;;QAAA,yBACGA,CAAC,CAACtF,EADL,IACU,IADV;OADC,CAFC,EADsB;KAA9B,CAFJ,GAYIkX,KAAK,CAACtG,IAbZ;GADuB,EAevB,CAACsG,KAAK,CAACtG,IAAP,mBAAasG,KAAK,CAACjK,KAAnB,qBAAa,cAAagzB,SAA1B,mBAAqC/oB,KAAK,CAACjK,KAA3C,qBAAqC,cAAakiC,aAAlD,CAfuB,CAAzB;;EAmBA,IAAMvyC,QAAQ,gBAET+5C,2BAAgB,CAACj0B,KAAD;IACjBk0B,mBAAmB,EAAExyB;KAClBlN,KAFc;;IAIjBgL,OAAO,EAAPA,OAJiB;IAKjBtR,IAAI,EAAJA,IALiB;IAMjBimC,UAAU,EAAE,oBAACn4C,GAAD;MAAA,OAAUA,GAAV,oBAAUA,GAAe,CAAE8xC,OAA3B;KANK;;IAQjBqF,cAAc,EAAE5zC,qBARC;IASjB6T,YAAY,EAAZA,YATiB;IAUjB7I,KAAK;MACHgW,WAAW,EAAXA,WADG;MAEHisB,kBAAkB,EAAlBA,kBAFG;MAGHrkB,iBAAiB,EAAjBA,iBAHG;MAIH7oB,gBAAgB,EAAhBA,gBAJG;MAKHC,qBAAqB,EAArBA,qBALG;MAMH1E,OAAO,EAAPA,OANG;MAOHu8B,YAAY,EAAZA,YAPG;MAQHW,WAAW,EAAXA,WARG;MASHM,gBAAgB,EAAhBA;OACG7jB,KAAK,CAACjK,KAVN,CAVY;IAsBjB0a,OAAO,EAAPA;KAxBU;IA0BZ0lB,qBAAqB,2BACnBn2B,KAAK,CAAC4/B,0BADa,oCACiBzJ,qBA3B1B;IA4BZziB,oBAAoB,4BAClB1T,KAAK,CAAC6/B,yBADY,qCACiBnsB,oBA7BzB;IA8BZ9oB,mBAAmB,2BAAEoV,KAAK,CAAC8/B,wBAAR,oCAAoCl1C,mBA9B3C;IA+BZC,wBAAwB,2BACtBmV,KAAK,CAAC+/B,6BADgB,oCACiBl1C,wBAhC7B;IAiCZq4B,UAAU,2BAAEljB,KAAK,CAACggC,eAAR,oCAA2B9c,UAjCzB;IAkCZP,eAAe,2BAAE3iB,KAAK,CAACigC,oBAAR,oCAAgCtd,eAlCnC;IAmCZjS,cAAc,2BAAE1Q,KAAK,CAACkgC,mBAAR,oCAA+BxvB,cAnCjC;IAoCZkT,mBAAmB,2BAAE5jB,KAAK,CAACmgC,wBAAR,oCAAoCvc;IApCzD;;EAuCAzjB,eAAS,CAAC;IACRH,KAAK,QAAL,YAAAA,KAAK,CAAEogC,oBAAP,oBAAApgC,KAAK,CAAEogC,oBAAP,CAA8B;MAC5Br0B,WAAW,EAAErmB,QAAQ,CAACI,QAAT,GAAoBimB,WADL;;MAG5BrmB,QAAQ,EAARA;KAHF;GADO,EAMN,CAACA,QAAQ,CAACI,QAAT,GAAoBimB,WAArB,CANM,CAAT;EAQA5L,eAAS,CAAC;IACRH,KAAK,QAAL,YAAAA,KAAK,CAAEqgC,sBAAP,oBAAArgC,KAAK,CAAEqgC,sBAAP,CAAgC;MAC9B5wB,aAAa,EAAE/pB,QAAQ,CAACI,QAAT,GAAoB2pB,aADL;;MAG9B/pB,QAAQ,EAARA;KAHF;GADO,EAMN,CAACA,QAAQ,CAACI,QAAT,GAAoB2pB,aAArB,CANM,CAAT;EAQAtP,eAAS,CAAC;IACRH,KAAK,QAAL,YAAAA,KAAK,CAAEsgC,yBAAP,oBAAAtgC,KAAK,CAAEsgC,yBAAP,CAAmC;MACjC7wB,aAAa,EAAE/pB,QAAQ,CAACI,QAAT,GAAoB8qB,gBADF;;MAGjClrB,QAAQ,EAARA;KAHF;GADO,EAMN,CAACA,QAAQ,CAACI,QAAT,GAAoB8qB,gBAArB,CANM,CAAT;EAQA,OACEpqB,4BAAA,wBAAA,MAAA,EACEA,4BAAA,CAAC+5C,eAAD;IACEC,cAAc,EAAEv2B;IAChBw2B,mBAAmB,EAAE3T;IACrB4T,aAAa;IACbC,UAAU;IACVC,WAAW,EAAE;IACbx0C,OAAO,EAAE;MAAA,OAAMu2B,eAAe,CAAC,KAAD,CAArB;;IACTt2B,IAAI,EAAEu2B;IACNie,kBAAkB,EAAE;GARtB,EAUEr6C,4BAAA,CAACs3C,cAAD;IAAgBp4C,QAAQ,EAAEA;GAA1B,CAVF,CADF,EAaG,CAACk9B,YAAD,IAAiBp8B,4BAAA,CAACs3C,cAAD;IAAgBp4C,QAAQ,EAAEA;GAA1B,CAbpB,CADF;AAiBD,CAnQM;;;AC5CP,AAo1BA,0BAAe;EAAA,iCACbo7C,iBADa;MACbA,iBADa,sCACO,KADP;mCAEbC,gBAFa;MAEbA,gBAFa,sCAEM,OAFN;gCAGbC,aAHa;MAGbA,aAHa,mCAGG;IAAEjR,OAAO,EAAE,EAAX;IAAekR,OAAO,EAAE,IAAxB;IAA8B52B,IAAI,EAAE;GAHvC;8BAIbgC,WAJa;MAIbA,WAJa,iCAIC,KAJD;mCAKbkiB,mBALa;MAKbA,mBALa,sCAKS,IALT;mCAMble,4BANa;MAMbA,4BANa,sCAMkB,IANlB;oCAObC,mBAPa;MAObA,mBAPa,uCAOS,IAPT;mCAQbvD,oBARa;MAQbA,oBARa,sCAQU,KARV;mCASbwD,oBATa;MASbA,oBATa,sCASU,KATV;mCAUb+U,mBAVa;MAUbA,mBAVa,sCAUS,IAVT;kCAWbga,eAXa;MAWbA,eAXa,qCAWK,IAXL;gCAYb/Z,aAZa;MAYbA,aAZa,mCAYG,IAZH;mCAabC,sBAba;MAabA,sBAba,sCAaY,IAbZ;mCAcbC,kBAda;MAcbA,kBAda,sCAcQ,IAdR;oCAebvB,4BAfa;MAebA,4BAfa,uCAekB,IAflB;oCAgBb2W,+BAhBa;MAgBbA,+BAhBa,uCAgBqB,IAhBrB;iCAiBbtuB,cAjBa;MAiBbA,cAjBa,oCAiBI,KAjBJ;+BAkBbS,YAlBa;MAkBbA,YAlBa,kCAkBE,IAlBF;mCAmBbk0B,uBAnBa;MAmBbA,uBAnBa,sCAmBa,IAnBb;kCAoBb1S,eApBa;MAoBbA,eApBa,qCAoBK,IApBL;mCAqBbzE,gBArBa;MAqBbA,gBArBa,sCAqBM,IArBN;gCAsBb9c,aAtBa;MAsBbA,aAtBa,mCAsBG,KAtBH;mCAuBbT,kBAvBa;MAuBbA,kBAvBa,sCAuBQ,KAvBR;kCAwBb+yB,eAxBa;MAwBbA,eAxBa,qCAwBK,IAxBL;gCAyBb/uB,aAzBa;MAyBbA,aAzBa,mCAyBG,IAzBH;mCA0BbqsB,kBA1Ba;MA0BbA,kBA1Ba,sCA0BQ,KA1BR;mCA2BbC,iBA3Ba;MA2BbA,iBA3Ba,sCA2BO,IA3BP;kCA4BbC,eA5Ba;MA4BbA,eA5Ba,qCA4BK,IA5BL;mCA6BbgB,mBA7Ba;MA6BbA,mBA7Ba,sCA6BS,IA7BT;mCA8Bb7X,4BA9Ba;MA8BbA,4BA9Ba,sCA8BkB,IA9BlB;mCA+Bb8X,gBA/Ba;MA+BbA,gBA/Ba,sCA+BM,IA/BN;MAgCbh4C,KAhCa,QAgCbA,KAhCa;MAiCbC,YAjCa,QAiCbA,YAjCa;mCAkCbimB,qBAlCa;MAkCbA,qBAlCa,sCAkCW,OAlCX;mCAmCbwZ,oBAnCa;MAmCbA,oBAnCa,sCAmCU,OAnCV;mCAoCbuE,kBApCa;MAoCbA,kBApCa,sCAoCQ,QApCR;mCAqCbC,0BArCa;MAqCbA,0BArCa,sCAqCgB,KArChB;gCAsCb6N,aAtCa;MAsCbA,aAtCa,mCAsCG,UAtCH;gCAuCb9iB,aAvCa;MAuCbA,aAvCa,mCAuCG,KAvCH;MAwCVwN,IAxCU;;EAAA,OA0Cbj8B,4BAAA,CAAC83C,aAAD;IACEwC,iBAAiB,EAAEA;IACnBC,gBAAgB,EAAEA;IAClBC,aAAa,EAAEA;IACf30B,WAAW,EAAEA;IACbkiB,mBAAmB,EAAEA;IACrBle,4BAA4B,EAAEA;IAC9BC,mBAAmB,EAAEA;IACrBvD,oBAAoB,EAAEA;IACtBwD,oBAAoB,EAAEA;IACtB+U,mBAAmB,EAAEA;IACrBga,eAAe,EAAEA;IACjB/Z,aAAa,EAAEA;IACfC,sBAAsB,EAAEA;IACxBC,kBAAkB,EAAEA;IACpBvB,4BAA4B,EAAEA;IAC9B2W,+BAA+B,EAAEA;IACjCtuB,cAAc,EAAEA;IAChBS,YAAY,EAAEA;IACdk0B,uBAAuB,EAAEA;IACzB1S,eAAe,EAAEA;IACjBzE,gBAAgB,EAAEA;IAClB9c,aAAa,EAAEA;IACfT,kBAAkB,EAAEA;IACpB+yB,eAAe,EAAEA;IACjB/uB,aAAa,EAAEA;IACfqsB,kBAAkB,EAAEA;IACpBC,iBAAiB,EAAEA;IACnBC,eAAe,EAAEA;IACjBgB,mBAAmB,EAAEA;IACrB7X,4BAA4B,EAAEA;IAC9B8X,gBAAgB,EAAEA;IAClBh4C,KAAK,eAAOpE,iBAAP,EAA6BoE,KAA7B;IACLC,YAAY,eAAOvI,0BAAP,EAAsCuI,YAAtC;IACZimB,qBAAqB,EAAEA;IACvBwZ,oBAAoB,EAAEA;IACtBuE,kBAAkB,EAAEA;IACpBC,0BAA0B,EAAEA;IAC5B6N,aAAa,EAAEA;IACf9iB,aAAa,EAAEA;KACXwN,KAxCN,CA1Ca;AAAA,CAAf;;;;"}
1
+ {"version":3,"file":"material-react-table.cjs.development.js","sources":["../src/localization.ts","../src/icons.ts","../src/buttons/MRT_ExpandAllButton.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/filtersFns.ts","../src/menus/MRT_FilterOptionMenu.tsx","../node_modules/react-dnd/src/core/DndContext.ts","../node_modules/redux/es/redux.js","../node_modules/@react-dnd/invariant/src/index.ts","../node_modules/dnd-core/src/utils/js_utils.ts","../node_modules/dnd-core/src/actions/dragDrop/types.ts","../node_modules/dnd-core/src/actions/dragDrop/local/setClientOffset.ts","../node_modules/dnd-core/src/actions/dragDrop/beginDrag.ts","../node_modules/dnd-core/src/actions/dragDrop/drop.ts","../node_modules/dnd-core/src/actions/dragDrop/endDrag.ts","../node_modules/dnd-core/src/utils/matchesType.ts","../node_modules/dnd-core/src/actions/dragDrop/hover.ts","../node_modules/dnd-core/src/actions/dragDrop/publishDragSource.ts","../node_modules/dnd-core/src/actions/dragDrop/index.ts","../node_modules/dnd-core/src/classes/DragDropManagerImpl.ts","../node_modules/dnd-core/src/utils/coords.ts","../node_modules/dnd-core/src/utils/dirtiness.ts","../node_modules/dnd-core/src/classes/DragDropMonitorImpl.ts","../node_modules/@react-dnd/asap/src/makeRequestCall.ts","../node_modules/@react-dnd/asap/src/AsapQueue.ts","../node_modules/@react-dnd/asap/src/RawTask.ts","../node_modules/@react-dnd/asap/src/TaskFactory.ts","../node_modules/@react-dnd/asap/src/asap.ts","../node_modules/dnd-core/src/actions/registry.ts","../node_modules/dnd-core/src/contracts.ts","../node_modules/dnd-core/src/interfaces.ts","../node_modules/dnd-core/src/utils/getNextUniqueId.ts","../node_modules/dnd-core/src/classes/HandlerRegistryImpl.ts","../node_modules/dnd-core/src/utils/equality.ts","../node_modules/dnd-core/src/reducers/dirtyHandlerIds.ts","../node_modules/dnd-core/src/reducers/dragOffset.ts","../node_modules/dnd-core/src/reducers/dragOperation.ts","../node_modules/dnd-core/src/reducers/refCount.ts","../node_modules/dnd-core/src/reducers/stateId.ts","../node_modules/dnd-core/src/reducers/index.ts","../node_modules/dnd-core/src/createDragDropManager.ts","../node_modules/react-dnd/src/core/DndProvider.tsx","../node_modules/fast-deep-equal/index.js","../node_modules/react-dnd/src/hooks/useIsomorphicLayoutEffect.ts","../node_modules/react-dnd/src/hooks/useCollector.ts","../node_modules/react-dnd/src/hooks/useMonitorOutput.ts","../node_modules/react-dnd/src/hooks/useCollectedProps.ts","../node_modules/react-dnd/src/hooks/useOptionalFactory.ts","../node_modules/react-dnd/src/hooks/useDrag/connectors.ts","../node_modules/react-dnd/src/internals/DragSourceMonitorImpl.ts","../node_modules/react-dnd/src/internals/DropTargetMonitorImpl.ts","../node_modules/react-dnd/src/internals/registration.ts","../node_modules/@react-dnd/shallowequal/src/index.ts","../node_modules/react-dnd/src/internals/isRef.ts","../node_modules/react-dnd/src/internals/wrapConnectorHooks.ts","../node_modules/react-dnd/src/internals/SourceConnector.ts","../node_modules/react-dnd/src/internals/TargetConnector.ts","../node_modules/react-dnd/src/hooks/useDragDropManager.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragSourceConnector.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragSourceMonitor.ts","../node_modules/react-dnd/src/hooks/useDrag/DragSourceImpl.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragSource.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragType.ts","../node_modules/react-dnd/src/hooks/useDrag/useRegisteredDragSource.ts","../node_modules/react-dnd/src/hooks/useDrag/useDrag.ts","../node_modules/react-dnd/src/hooks/useDrop/connectors.ts","../node_modules/react-dnd/src/hooks/useDrop/useDropTargetConnector.ts","../node_modules/react-dnd/src/hooks/useDrop/useDropTargetMonitor.ts","../node_modules/react-dnd/src/hooks/useDrop/useAccept.ts","../node_modules/react-dnd/src/hooks/useDrop/DropTargetImpl.ts","../node_modules/react-dnd/src/hooks/useDrop/useDropTarget.ts","../node_modules/react-dnd/src/hooks/useDrop/useRegisteredDropTarget.ts","../node_modules/react-dnd/src/hooks/useDrop/useDrop.ts","../src/buttons/MRT_ColumnPinningButtons.tsx","../src/buttons/MRT_GrabHandleButton.tsx","../src/utils.ts","../src/menus/MRT_ShowHideColumnsMenuItems.tsx","../src/menus/MRT_ShowHideColumnsMenu.tsx","../src/menus/MRT_ColumnActionMenu.tsx","../src/menus/MRT_RowActionMenu.tsx","../src/buttons/MRT_EditActionButtons.tsx","../src/buttons/MRT_ToggleRowActionMenuButton.tsx","../src/inputs/MRT_SelectCheckbox.tsx","../node_modules/react-dnd-html5-backend/src/utils/js_utils.ts","../node_modules/react-dnd-html5-backend/src/EnterLeaveCounter.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/NativeDragSource.ts","../node_modules/react-dnd-html5-backend/src/NativeTypes.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/getDataFromDataTransfer.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/nativeTypesConfig.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/index.ts","../node_modules/react-dnd-html5-backend/src/BrowserDetector.ts","../node_modules/react-dnd-html5-backend/src/MonotonicInterpolant.ts","../node_modules/react-dnd-html5-backend/src/OffsetUtils.ts","../node_modules/react-dnd-html5-backend/src/OptionsReader.ts","../node_modules/react-dnd-html5-backend/src/HTML5BackendImpl.ts","../node_modules/react-dnd-html5-backend/src/index.ts","../src/buttons/MRT_FullScreenToggleButton.tsx","../src/buttons/MRT_ShowHideColumnsButton.tsx","../src/buttons/MRT_ToggleDensePaddingButton.tsx","../src/buttons/MRT_ToggleFiltersButton.tsx","../src/buttons/MRT_ToggleGlobalFilterButton.tsx","../src/inputs/MRT_GlobalFilterTextField.tsx","../src/toolbar/MRT_ToolbarInternalButtons.tsx","../src/toolbar/MRT_TablePagination.tsx","../src/toolbar/MRT_ToolbarAlertBanner.tsx","../src/toolbar/MRT_LinearProgressBar.tsx","../src/toolbar/MRT_ToolbarTop.tsx","../src/toolbar/MRT_ToolbarBottom.tsx","../src/inputs/MRT_FilterTextField.tsx","../src/inputs/MRT_FilterRangeFields.tsx","../src/head/MRT_TableHeadCellFilterContainer.tsx","../src/head/MRT_TableHeadCellFilterLabel.tsx","../src/head/MRT_TableHeadCellResizeHandle.tsx","../src/head/MRT_TableHeadCellSortLabel.tsx","../src/head/MRT_TableHeadCellColumnActionsButton.tsx","../src/head/MRT_TableHeadCell.tsx","../src/head/MRT_DraggableTableHeadCell.tsx","../src/head/MRT_TableHeadRow.tsx","../src/head/MRT_TableHead.tsx","../node_modules/react-virtual/node_modules/@reach/observe-rect/dist/observe-rect.esm.js","../node_modules/react-virtual/src/useIsomorphicLayoutEffect.js","../node_modules/react-virtual/src/useRect.js","../node_modules/react-virtual/src/index.js","../src/inputs/MRT_EditCellTextField.tsx","../src/buttons/MRT_CopyButton.tsx","../src/body/MRT_TableBodyCell.tsx","../src/body/MRT_TableDetailPanel.tsx","../src/body/MRT_TableBodyRow.tsx","../src/sortingFns.ts","../src/body/MRT_TableBody.tsx","../src/footer/MRT_TableFooterCell.tsx","../src/footer/MRT_TableFooterRow.tsx","../src/footer/MRT_TableFooter.tsx","../src/table/MRT_Table.tsx","../src/table/MRT_TableContainer.tsx","../src/table/MRT_TablePaper.tsx","../src/table/MRT_TableRoot.tsx","../src/MaterialReactTable.tsx"],"sourcesContent":["export interface MRT_Localization {\n actions: string;\n and: string;\n cancel: string;\n changeFilterMode: string;\n changeSearchMode: string;\n clearFilter: string;\n clearSearch: string;\n clearSort: string;\n clickToCopy: string;\n columnActions: string;\n copiedToClipboard: string;\n edit: string;\n expand: string;\n expandAll: string;\n filterBetween: string;\n filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterFuzzy: string;\n filterGreaterThan: string;\n filterLessThan: string;\n filterMode: string;\n filterNotEmpty: string;\n filterNotEquals: string;\n filterStartsWith: string;\n filteringByColumn: string;\n grab: string;\n groupByColumn: string;\n groupedBy: string;\n hideAll: string;\n hideColumn: string;\n max: string;\n min: string;\n pinToLeft: string;\n pinToRight: string;\n resetColumnSize: string;\n resetOrder: string;\n rowActions: string;\n rowNumber: string;\n rowNumbers: string;\n save: string;\n search: string;\n select: string;\n selectedCountOfRowCountRowsSelected: string;\n showAll: string;\n showAllColumns: string;\n showHideColumns: string;\n showHideFilters: string;\n showHideSearch: string;\n sortByColumnAsc: string;\n sortByColumnDesc: string;\n sortedByColumnAsc: string;\n sortedByColumnDesc: string;\n thenBy: string;\n toggleDensity: string;\n toggleFullScreen: string;\n toggleSelectAll: string;\n toggleSelectRow: string;\n toggleVisibility: string;\n ungroupByColumn: string;\n unpin: string;\n unpinAll: string;\n unsorted: string;\n}\n\nexport const MRT_DefaultLocalization_EN: MRT_Localization = {\n actions: 'Actions',\n and: 'and',\n cancel: 'Cancel',\n changeFilterMode: 'Change filter mode',\n changeSearchMode: 'Change search mode',\n clearFilter: 'Clear filter',\n clearSearch: 'Clear search',\n clearSort: 'Clear sort',\n clickToCopy: 'Click to copy',\n columnActions: 'Column Actions',\n copiedToClipboard: 'Copied to clipboard',\n edit: 'Edit',\n expand: 'Expand',\n expandAll: 'Expand all',\n filterBetween: 'Between',\n filterByColumn: 'Filter by {column}',\n filterContains: 'Contains',\n filterEmpty: 'Empty',\n filterEndsWith: 'Ends With',\n filterEquals: 'Equals',\n filterFuzzy: 'Fuzzy',\n filterGreaterThan: 'Greater Than',\n filterLessThan: 'Less Than',\n filterMode: 'Filter Mode: {filterType}',\n filterNotEmpty: 'Not Empty',\n filterNotEquals: 'Not Equals',\n filterStartsWith: 'Starts With',\n filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',\n grab: 'Grab',\n groupByColumn: 'Group by {column}',\n groupedBy: 'Grouped by ',\n hideAll: 'Hide all',\n hideColumn: 'Hide {column} column',\n max: 'Max',\n min: 'Min',\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n resetColumnSize: 'Reset column size',\n resetOrder: 'Reset order',\n rowActions: 'Row Actions',\n rowNumber: '#',\n rowNumbers: 'Row Numbers',\n save: 'Save',\n search: 'Search',\n selectedCountOfRowCountRowsSelected:\n '{selectedCount} of {rowCount} row(s) selected',\n select: 'Select',\n showAll: 'Show all',\n showAllColumns: 'Show all columns',\n showHideColumns: 'Show/Hide columns',\n showHideFilters: 'Show/Hide filters',\n showHideSearch: 'Show/Hide search',\n sortByColumnAsc: 'Sort by {column} ascending',\n sortByColumnDesc: 'Sort by {column} descending',\n sortedByColumnAsc: 'Sorted by {column} ascending',\n sortedByColumnDesc: 'Sorted by {column} descending',\n thenBy: ', then by ',\n toggleDensity: 'Toggle density',\n toggleFullScreen: 'Toggle full screen',\n toggleSelectAll: 'Toggle select all',\n toggleSelectRow: 'Toggle select row',\n toggleVisibility: 'Toggle visibility',\n ungroupByColumn: 'Ungroup by {column}',\n unpin: 'Unpin',\n unpinAll: 'Unpin all',\n unsorted: 'Unsorted',\n};\n","import {\n ArrowRight,\n Cancel,\n CheckBox,\n ClearAll,\n Close,\n DensityLarge,\n DensityMedium,\n DensitySmall,\n DragHandle,\n DynamicFeed,\n Edit,\n ExpandLess,\n ExpandMore,\n FilterAlt,\n FilterAltOff,\n FilterList,\n FilterListOff,\n Fullscreen,\n FullscreenExit,\n KeyboardDoubleArrowDown,\n MoreHoriz,\n MoreVert,\n PushPin,\n RestartAlt,\n Save,\n Search,\n SearchOff,\n Sort,\n ViewColumn,\n VisibilityOff,\n} from '@mui/icons-material';\n\nexport interface MRT_Icons {\n ArrowRightIcon: any;\n CancelIcon: any;\n CheckBoxIcon: any;\n ClearAllIcon: any;\n CloseIcon: any;\n DensityLargeIcon: any;\n DensityMediumIcon: any;\n DensitySmallIcon: any;\n KeyboardDoubleArrowDownIcon: any;\n DragHandleIcon: any;\n DynamicFeedIcon: any;\n EditIcon: any;\n ExpandLessIcon: any;\n ExpandMoreIcon: any;\n FilterAltIcon: any;\n FilterAltOffIcon: any;\n FilterListIcon: any;\n FilterListOffIcon: any;\n FullscreenExitIcon: any;\n FullscreenIcon: any;\n MoreHorizIcon: any;\n MoreVertIcon: any;\n PushPinIcon: any;\n RestartAltIcon: any;\n SaveIcon: any;\n SearchIcon: any;\n SearchOffIcon: any;\n SortIcon: any;\n ViewColumnIcon: any;\n VisibilityOffIcon: any;\n}\n\nexport const MRT_Default_Icons: MRT_Icons = {\n ArrowRightIcon: ArrowRight,\n CancelIcon: Cancel,\n CheckBoxIcon: CheckBox,\n ClearAllIcon: ClearAll,\n CloseIcon: Close,\n DensityLargeIcon: DensityLarge,\n DensityMediumIcon: DensityMedium,\n DensitySmallIcon: DensitySmall,\n DragHandleIcon: DragHandle,\n DynamicFeedIcon: DynamicFeed,\n EditIcon: Edit,\n ExpandLessIcon: ExpandLess,\n ExpandMoreIcon: ExpandMore,\n FilterAltIcon: FilterAlt,\n FilterAltOffIcon: FilterAltOff,\n FilterListIcon: FilterList,\n FilterListOffIcon: FilterListOff,\n FullscreenExitIcon: FullscreenExit,\n FullscreenIcon: Fullscreen,\n KeyboardDoubleArrowDownIcon: KeyboardDoubleArrowDown,\n MoreHorizIcon: MoreHoriz,\n MoreVertIcon: MoreVert,\n PushPinIcon: PushPin,\n RestartAltIcon: RestartAlt,\n SaveIcon: Save,\n SearchIcon: Search,\n SearchOffIcon: SearchOff,\n SortIcon: Sort,\n ViewColumnIcon: ViewColumn,\n VisibilityOffIcon: VisibilityOff,\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ExpandAllButton: FC<Props> = ({ instance }) => {\n const {\n getIsAllRowsExpanded,\n getIsSomeRowsExpanded,\n getCanSomeRowsExpand,\n getState,\n options: {\n icons: { KeyboardDoubleArrowDownIcon },\n localization,\n muiExpandAllButtonProps,\n renderDetailPanel,\n },\n toggleAllRowsExpanded,\n } = instance;\n\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandAllButtonProps instanceof Function\n ? muiExpandAllButtonProps({ instance })\n : muiExpandAllButtonProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expandAll}\n >\n <span>\n <IconButton\n aria-label={localization.expandAll}\n disabled={!getCanSomeRowsExpand() && !renderDetailPanel}\n onClick={() => toggleAllRowsExpanded(!getIsAllRowsExpanded())}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\n }}\n >\n <KeyboardDoubleArrowDownIcon\n style={{\n transform: `rotate(${\n getIsAllRowsExpanded()\n ? -180\n : getIsSomeRowsExpanded()\n ? -90\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ExpandButton: FC<Props> = ({ row, instance }) => {\n const {\n getState,\n options: {\n icons: { ExpandMoreIcon },\n localization,\n muiExpandButtonProps,\n renderDetailPanel,\n },\n } = instance;\n\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandButtonProps instanceof Function\n ? muiExpandButtonProps({ instance, row })\n : muiExpandButtonProps;\n\n const handleToggleExpand = () => {\n row.toggleExpanded();\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expand}\n >\n <span>\n <IconButton\n aria-label={localization.expand}\n disabled={!row.getCanExpand() && !renderDetailPanel}\n onClick={handleToggleExpand}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\n }}\n >\n <ExpandMoreIcon\n style={{\n transform: `rotate(${\n !row.getCanExpand() && !renderDetailPanel\n ? -90\n : row.getIsExpanded()\n ? -180\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { MRT_Row } from '.';\n\nexport const fuzzy = (\n row: MRT_Row,\n columnId: string,\n filterValue: string,\n addMeta: (item: RankingInfo) => void,\n) => {\n const itemRank = rankItem(row.getValue(columnId), filterValue, {\n threshold: rankings.MATCHES,\n });\n addMeta(itemRank);\n return itemRank.passed;\n};\n\nfuzzy.autoRemove = (val: any) => !val;\n\nexport const contains = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim());\n\ncontains.autoRemove = (val: any) => !val;\n\nexport const startsWith = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim());\n\nstartsWith.autoRemove = (val: any) => !val;\n\nexport const endsWith = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim());\n\nendsWith.autoRemove = (val: any) => !val;\n\nexport const equals = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue(id).toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim();\n\nequals.autoRemove = (val: any) => !val;\n\nexport const notEquals = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue(id).toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim();\n\nnotEquals.autoRemove = (val: any) => !val;\n\nexport const greaterThan = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue(id))\n ? +row.getValue(id) >= +filterValue\n : row.getValue(id).toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim();\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nexport const lessThan = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue(id))\n ? +row.getValue(id) <= +filterValue\n : row.getValue(id).toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim();\n\nlessThan.autoRemove = (val: any) => !val;\n\nexport const between = (\n row: MRT_Row,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThan(row, id, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as any[]).includes(filterValues[1]) ||\n lessThan(row, id, filterValues[1]));\n\nbetween.autoRemove = (val: any) => !val;\n\nexport const empty = (\n row: MRT_Row,\n id: string,\n _filterValue: string | number,\n) => !row.getValue(id).toString().trim();\n\nempty.autoRemove = (val: any) => !val;\n\nexport const notEmpty = (\n row: MRT_Row,\n id: string,\n _filterValue: string | number,\n) => !!row.getValue(id).toString().trim();\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const MRT_FilterFns = {\n between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import React, { FC, useMemo } from 'react';\nimport { Menu, MenuItem } from '@mui/material';\nimport type {\n MRT_FilterFn,\n MRT_FILTER_OPTION,\n MRT_Header,\n MRT_TableInstance,\n} from '..';\nimport {\n between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n} from '../filtersFns';\n\nconst commonMenuItemStyles = {\n py: '6px',\n my: 0,\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header?: MRT_Header;\n onSelect?: () => void;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_FilterOptionMenu: FC<Props> = ({\n anchorEl,\n header,\n onSelect,\n setAnchorEl,\n instance,\n}) => {\n const {\n getState,\n options: {\n enabledGlobalFilterOptions,\n enabledColumnFilterOptions,\n localization,\n },\n setCurrentFilterFns,\n setCurrentGlobalFilterFn,\n } = instance;\n\n const { density, currentFilterFns, currentGlobalFilterFn } = getState();\n\n const { column } = header ?? {};\n\n const { columnDef } = column ?? {};\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const filterOptions = useMemo(\n () =>\n [\n {\n option: 'fuzzy',\n label: localization.filterFuzzy,\n divider: false,\n fn: fuzzy,\n },\n {\n option: 'contains',\n label: localization.filterContains,\n divider: false,\n fn: contains,\n },\n {\n option: 'startsWith',\n label: localization.filterStartsWith,\n divider: false,\n fn: startsWith,\n },\n {\n option: 'endsWith',\n label: localization.filterEndsWith,\n divider: true,\n fn: endsWith,\n },\n {\n option: 'equals',\n label: localization.filterEquals,\n divider: false,\n fn: equals,\n },\n {\n option: 'notEquals',\n label: localization.filterNotEquals,\n divider: true,\n fn: notEquals,\n },\n {\n option: 'between',\n label: localization.filterBetween,\n divider: false,\n fn: between,\n },\n {\n option: 'greaterThan',\n label: localization.filterGreaterThan,\n divider: false,\n fn: greaterThan,\n },\n {\n option: 'lessThan',\n label: localization.filterLessThan,\n divider: true,\n fn: lessThan,\n },\n {\n option: 'empty',\n label: localization.filterEmpty,\n divider: false,\n fn: empty,\n },\n {\n option: 'notEmpty',\n label: localization.filterNotEmpty,\n divider: false,\n fn: notEmpty,\n },\n ].filter((filterType) =>\n columnDef\n ? allowedColumnFilterOptions === undefined ||\n allowedColumnFilterOptions?.includes(filterType.option)\n : (!enabledGlobalFilterOptions ||\n enabledGlobalFilterOptions.includes(filterType.option)) &&\n ['fuzzy', 'contains'].includes(filterType.option),\n ) as Array<{\n option: MRT_FILTER_OPTION;\n label: string;\n divider: boolean;\n fn: Function;\n }>,\n [],\n );\n\n const handleSelectFilterType = (value: string) => {\n if (header && column) {\n setCurrentFilterFns((prev: { [key: string]: MRT_FilterFn }) => ({\n ...prev,\n [header.id]: value,\n }));\n if (['empty', 'notEmpty'].includes(value)) {\n column.setFilterValue(' ');\n } else if (value === 'between') {\n column.setFilterValue(['', '']);\n } else {\n column.setFilterValue('');\n }\n } else {\n setCurrentGlobalFilterFn(value);\n }\n setAnchorEl(null);\n onSelect?.();\n };\n\n const filterOption = !!header\n ? currentFilterFns[header.id]\n : currentGlobalFilterFn;\n\n return (\n <Menu\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'center', horizontal: 'right' }}\n onClose={() => setAnchorEl(null)}\n open={!!anchorEl}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {filterOptions.map(({ option, label, divider, fn }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(option as string)}\n selected={option === filterOption || fn === filterOption}\n sx={commonMenuItemStyles}\n value={option as string}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import type { DragDropManager } from 'dnd-core'\nimport { createContext } from 'react'\n\n/**\n * The React context type\n */\nexport interface DndContextType {\n\tdragDropManager: DragDropManager | undefined\n}\n\n/**\n * Create the React Context\n */\nexport const DndContext = createContext<DndContextType>({\n\tdragDropManager: undefined,\n})\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nexport function invariant(condition: any, format: string, ...args: any[]) {\n\tif (isProduction()) {\n\t\tif (format === undefined) {\n\t\t\tthrow new Error('invariant requires an error message argument')\n\t\t}\n\t}\n\n\tif (!condition) {\n\t\tlet error\n\t\tif (format === undefined) {\n\t\t\terror = new Error(\n\t\t\t\t'Minified exception occurred; use the non-minified dev environment ' +\n\t\t\t\t\t'for the full error message and additional helpful warnings.',\n\t\t\t)\n\t\t} else {\n\t\t\tlet argIndex = 0\n\t\t\terror = new Error(\n\t\t\t\tformat.replace(/%s/g, function () {\n\t\t\t\t\treturn args[argIndex++]\n\t\t\t\t}),\n\t\t\t)\n\t\t\terror.name = 'Invariant Violation'\n\t\t}\n\n\t\t;(error as any).framesToPop = 1 // we don't care about invariant's own frame\n\t\tthrow error\n\t}\n}\n\nfunction isProduction() {\n\treturn (\n\t\ttypeof process !== 'undefined' && process.env['NODE_ENV'] === 'production'\n\t)\n}\n","// cheap lodash replacements\n\n/**\n * drop-in replacement for _.get\n * @param obj\n * @param path\n * @param defaultValue\n */\nexport function get<T>(obj: any, path: string, defaultValue: T): T {\n\treturn path\n\t\t.split('.')\n\t\t.reduce((a, c) => (a && a[c] ? a[c] : defaultValue || null), obj) as T\n}\n\n/**\n * drop-in replacement for _.without\n */\nexport function without<T>(items: T[], item: T): T[] {\n\treturn items.filter((i) => i !== item)\n}\n\n/**\n * drop-in replacement for _.isString\n * @param input\n */\nexport function isString(input: any): boolean {\n\treturn typeof input === 'string'\n}\n\n/**\n * drop-in replacement for _.isString\n * @param input\n */\nexport function isObject(input: any): boolean {\n\treturn typeof input === 'object'\n}\n\n/**\n * replacement for _.xor\n * @param itemsA\n * @param itemsB\n */\nexport function xor<T extends string | number>(itemsA: T[], itemsB: T[]): T[] {\n\tconst map = new Map<T, number>()\n\tconst insertItem = (item: T) => {\n\t\tmap.set(item, map.has(item) ? (map.get(item) as number) + 1 : 1)\n\t}\n\titemsA.forEach(insertItem)\n\titemsB.forEach(insertItem)\n\n\tconst result: T[] = []\n\tmap.forEach((count, key) => {\n\t\tif (count === 1) {\n\t\t\tresult.push(key)\n\t\t}\n\t})\n\treturn result\n}\n\n/**\n * replacement for _.intersection\n * @param itemsA\n * @param itemsB\n */\nexport function intersection<T>(itemsA: T[], itemsB: T[]): T[] {\n\treturn itemsA.filter((t) => itemsB.indexOf(t) > -1)\n}\n","export const INIT_COORDS = 'dnd-core/INIT_COORDS'\nexport const BEGIN_DRAG = 'dnd-core/BEGIN_DRAG'\nexport const PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE'\nexport const HOVER = 'dnd-core/HOVER'\nexport const DROP = 'dnd-core/DROP'\nexport const END_DRAG = 'dnd-core/END_DRAG'\n","import type { AnyAction } from 'redux'\n\nimport type { XYCoord } from '../../../interfaces.js'\nimport { INIT_COORDS } from '../types.js'\n\nexport function setClientOffset(\n\tclientOffset: XYCoord | null | undefined,\n\tsourceClientOffset?: XYCoord | null | undefined,\n): AnyAction {\n\treturn {\n\t\ttype: INIT_COORDS,\n\t\tpayload: {\n\t\t\tsourceClientOffset: sourceClientOffset || null,\n\t\t\tclientOffset: clientOffset || null,\n\t\t},\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tAction,\n\tBeginDragOptions,\n\tBeginDragPayload,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tIdentifier,\n\tXYCoord,\n} from '../../interfaces.js'\nimport { isObject } from '../../utils/js_utils.js'\nimport { setClientOffset } from './local/setClientOffset.js'\nimport { BEGIN_DRAG, INIT_COORDS } from './types.js'\n\nconst ResetCoordinatesAction = {\n\ttype: INIT_COORDS,\n\tpayload: {\n\t\tclientOffset: null,\n\t\tsourceClientOffset: null,\n\t},\n}\n\nexport function createBeginDrag(manager: DragDropManager) {\n\treturn function beginDrag(\n\t\tsourceIds: Identifier[] = [],\n\t\toptions: BeginDragOptions = {\n\t\t\tpublishSource: true,\n\t\t},\n\t): Action<BeginDragPayload> | undefined {\n\t\tconst {\n\t\t\tpublishSource = true,\n\t\t\tclientOffset,\n\t\t\tgetSourceClientOffset,\n\t\t}: BeginDragOptions = options\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\n\t\t// Initialize the coordinates using the client offset\n\t\tmanager.dispatch(setClientOffset(clientOffset))\n\n\t\tverifyInvariants(sourceIds, monitor, registry)\n\n\t\t// Get the draggable source\n\t\tconst sourceId = getDraggableSource(sourceIds, monitor)\n\t\tif (sourceId == null) {\n\t\t\tmanager.dispatch(ResetCoordinatesAction)\n\t\t\treturn\n\t\t}\n\n\t\t// Get the source client offset\n\t\tlet sourceClientOffset: XYCoord | null = null\n\t\tif (clientOffset) {\n\t\t\tif (!getSourceClientOffset) {\n\t\t\t\tthrow new Error('getSourceClientOffset must be defined')\n\t\t\t}\n\t\t\tverifyGetSourceClientOffsetIsFunction(getSourceClientOffset)\n\t\t\tsourceClientOffset = getSourceClientOffset(sourceId)\n\t\t}\n\n\t\t// Initialize the full coordinates\n\t\tmanager.dispatch(setClientOffset(clientOffset, sourceClientOffset))\n\n\t\tconst source = registry.getSource(sourceId)\n\t\tconst item = source.beginDrag(monitor, sourceId)\n\t\t// If source.beginDrag returns null, this is an indicator to cancel the drag\n\t\tif (item == null) {\n\t\t\treturn undefined\n\t\t}\n\t\tverifyItemIsObject(item)\n\t\tregistry.pinSource(sourceId)\n\n\t\tconst itemType = registry.getSourceType(sourceId)\n\t\treturn {\n\t\t\ttype: BEGIN_DRAG,\n\t\t\tpayload: {\n\t\t\t\titemType,\n\t\t\t\titem,\n\t\t\t\tsourceId,\n\t\t\t\tclientOffset: clientOffset || null,\n\t\t\t\tsourceClientOffset: sourceClientOffset || null,\n\t\t\t\tisSourcePublic: !!publishSource,\n\t\t\t},\n\t\t}\n\t}\n}\n\nfunction verifyInvariants(\n\tsourceIds: Identifier[],\n\tmonitor: DragDropMonitor,\n\tregistry: HandlerRegistry,\n) {\n\tinvariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.')\n\tsourceIds.forEach(function (sourceId) {\n\t\tinvariant(\n\t\t\tregistry.getSource(sourceId),\n\t\t\t'Expected sourceIds to be registered.',\n\t\t)\n\t})\n}\n\nfunction verifyGetSourceClientOffsetIsFunction(getSourceClientOffset: any) {\n\tinvariant(\n\t\ttypeof getSourceClientOffset === 'function',\n\t\t'When clientOffset is provided, getSourceClientOffset must be a function.',\n\t)\n}\n\nfunction verifyItemIsObject(item: any) {\n\tinvariant(isObject(item), 'Item must be an object.')\n}\n\nfunction getDraggableSource(sourceIds: Identifier[], monitor: DragDropMonitor) {\n\tlet sourceId = null\n\tfor (let i = sourceIds.length - 1; i >= 0; i--) {\n\t\tif (monitor.canDragSource(sourceIds[i])) {\n\t\t\tsourceId = sourceIds[i]\n\t\t\tbreak\n\t\t}\n\t}\n\treturn sourceId\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tAction,\n\tDragDropManager,\n\tDragDropMonitor,\n\tDropPayload,\n\tHandlerRegistry,\n\tIdentifier,\n} from '../../interfaces.js'\nimport { isObject } from '../../utils/js_utils.js'\nimport { DROP } from './types.js'\n\nexport function createDrop(manager: DragDropManager) {\n\treturn function drop(options = {}): void {\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\t\tverifyInvariants(monitor)\n\t\tconst targetIds = getDroppableTargets(monitor)\n\n\t\t// Multiple actions are dispatched here, which is why this doesn't return an action\n\t\ttargetIds.forEach((targetId, index) => {\n\t\t\tconst dropResult = determineDropResult(targetId, index, registry, monitor)\n\t\t\tconst action: Action<DropPayload> = {\n\t\t\t\ttype: DROP,\n\t\t\t\tpayload: {\n\t\t\t\t\tdropResult: {\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\t...dropResult,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t\tmanager.dispatch(action)\n\t\t})\n\t}\n}\n\nfunction verifyInvariants(monitor: DragDropMonitor) {\n\tinvariant(monitor.isDragging(), 'Cannot call drop while not dragging.')\n\tinvariant(\n\t\t!monitor.didDrop(),\n\t\t'Cannot call drop twice during one drag operation.',\n\t)\n}\n\nfunction determineDropResult(\n\ttargetId: Identifier,\n\tindex: number,\n\tregistry: HandlerRegistry,\n\tmonitor: DragDropMonitor,\n) {\n\tconst target = registry.getTarget(targetId)\n\tlet dropResult = target ? target.drop(monitor, targetId) : undefined\n\tverifyDropResultType(dropResult)\n\tif (typeof dropResult === 'undefined') {\n\t\tdropResult = index === 0 ? {} : monitor.getDropResult()\n\t}\n\treturn dropResult\n}\n\nfunction verifyDropResultType(dropResult: any) {\n\tinvariant(\n\t\ttypeof dropResult === 'undefined' || isObject(dropResult),\n\t\t'Drop result must either be an object or undefined.',\n\t)\n}\n\nfunction getDroppableTargets(monitor: DragDropMonitor) {\n\tconst targetIds = monitor\n\t\t.getTargetIds()\n\t\t.filter(monitor.canDropOnTarget, monitor)\n\ttargetIds.reverse()\n\treturn targetIds\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tDragDropManager,\n\tDragDropMonitor,\n\tSentinelAction,\n} from '../../interfaces.js'\nimport { END_DRAG } from './types.js'\n\nexport function createEndDrag(manager: DragDropManager) {\n\treturn function endDrag(): SentinelAction {\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\t\tverifyIsDragging(monitor)\n\n\t\tconst sourceId = monitor.getSourceId()\n\t\tif (sourceId != null) {\n\t\t\tconst source = registry.getSource(sourceId, true)\n\t\t\tsource.endDrag(monitor, sourceId)\n\t\t\tregistry.unpinSource()\n\t\t}\n\t\treturn { type: END_DRAG }\n\t}\n}\n\nfunction verifyIsDragging(monitor: DragDropMonitor) {\n\tinvariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.')\n}\n","import type { Identifier } from '../interfaces.js'\n\nexport function matchesType(\n\ttargetType: Identifier | Identifier[] | null,\n\tdraggedItemType: Identifier | null,\n): boolean {\n\tif (draggedItemType === null) {\n\t\treturn targetType === null\n\t}\n\treturn Array.isArray(targetType)\n\t\t? (targetType as Identifier[]).some((t) => t === draggedItemType)\n\t\t: targetType === draggedItemType\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tAction,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tHoverOptions,\n\tHoverPayload,\n\tIdentifier,\n} from '../../interfaces.js'\nimport { matchesType } from '../../utils/matchesType.js'\nimport { HOVER } from './types.js'\n\nexport function createHover(manager: DragDropManager) {\n\treturn function hover(\n\t\ttargetIdsArg: string[],\n\t\t{ clientOffset }: HoverOptions = {},\n\t): Action<HoverPayload> {\n\t\tverifyTargetIdsIsArray(targetIdsArg)\n\t\tconst targetIds = targetIdsArg.slice(0)\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\t\tconst draggedItemType = monitor.getItemType()\n\t\tremoveNonMatchingTargetIds(targetIds, registry, draggedItemType)\n\t\tcheckInvariants(targetIds, monitor, registry)\n\t\thoverAllTargets(targetIds, monitor, registry)\n\n\t\treturn {\n\t\t\ttype: HOVER,\n\t\t\tpayload: {\n\t\t\t\ttargetIds,\n\t\t\t\tclientOffset: clientOffset || null,\n\t\t\t},\n\t\t}\n\t}\n}\n\nfunction verifyTargetIdsIsArray(targetIdsArg: string[]) {\n\tinvariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.')\n}\n\nfunction checkInvariants(\n\ttargetIds: string[],\n\tmonitor: DragDropMonitor,\n\tregistry: HandlerRegistry,\n) {\n\tinvariant(monitor.isDragging(), 'Cannot call hover while not dragging.')\n\tinvariant(!monitor.didDrop(), 'Cannot call hover after drop.')\n\tfor (let i = 0; i < targetIds.length; i++) {\n\t\tconst targetId = targetIds[i] as string\n\t\tinvariant(\n\t\t\ttargetIds.lastIndexOf(targetId) === i,\n\t\t\t'Expected targetIds to be unique in the passed array.',\n\t\t)\n\n\t\tconst target = registry.getTarget(targetId)\n\t\tinvariant(target, 'Expected targetIds to be registered.')\n\t}\n}\n\nfunction removeNonMatchingTargetIds(\n\ttargetIds: string[],\n\tregistry: HandlerRegistry,\n\tdraggedItemType: Identifier | null,\n) {\n\t// Remove those targetIds that don't match the targetType. This\n\t// fixes shallow isOver which would only be non-shallow because of\n\t// non-matching targets.\n\tfor (let i = targetIds.length - 1; i >= 0; i--) {\n\t\tconst targetId = targetIds[i] as string\n\t\tconst targetType = registry.getTargetType(targetId)\n\t\tif (!matchesType(targetType, draggedItemType)) {\n\t\t\ttargetIds.splice(i, 1)\n\t\t}\n\t}\n}\n\nfunction hoverAllTargets(\n\ttargetIds: string[],\n\tmonitor: DragDropMonitor,\n\tregistry: HandlerRegistry,\n) {\n\t// Finally call hover on all matching targets.\n\ttargetIds.forEach(function (targetId) {\n\t\tconst target = registry.getTarget(targetId)\n\t\ttarget.hover(monitor, targetId)\n\t})\n}\n","import type { DragDropManager, SentinelAction } from '../../interfaces.js'\nimport { PUBLISH_DRAG_SOURCE } from './types.js'\n\nexport function createPublishDragSource(manager: DragDropManager) {\n\treturn function publishDragSource(): SentinelAction | undefined {\n\t\tconst monitor = manager.getMonitor()\n\t\tif (monitor.isDragging()) {\n\t\t\treturn { type: PUBLISH_DRAG_SOURCE }\n\t\t}\n\t\treturn\n\t}\n}\n","import type { DragDropActions, DragDropManager } from '../../interfaces.js'\nimport { createBeginDrag } from './beginDrag.js'\nimport { createDrop } from './drop.js'\nimport { createEndDrag } from './endDrag.js'\nimport { createHover } from './hover.js'\nimport { createPublishDragSource } from './publishDragSource.js'\n\nexport * from './types.js'\n\nexport function createDragDropActions(\n\tmanager: DragDropManager,\n): DragDropActions {\n\treturn {\n\t\tbeginDrag: createBeginDrag(manager),\n\t\tpublishDragSource: createPublishDragSource(manager),\n\t\thover: createHover(manager),\n\t\tdrop: createDrop(manager),\n\t\tendDrag: createEndDrag(manager),\n\t}\n}\n","import type { Action, Store } from 'redux'\n\nimport { createDragDropActions } from '../actions/dragDrop/index.js'\nimport type {\n\tActionCreator,\n\tBackend,\n\tDragDropActions,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n} from '../interfaces.js'\nimport type { State } from '../reducers/index.js'\nimport type { DragDropMonitorImpl } from './DragDropMonitorImpl.js'\n\nexport class DragDropManagerImpl implements DragDropManager {\n\tprivate store: Store<State>\n\tprivate monitor: DragDropMonitor\n\tprivate backend: Backend | undefined\n\tprivate isSetUp = false\n\n\tpublic constructor(store: Store<State>, monitor: DragDropMonitor) {\n\t\tthis.store = store\n\t\tthis.monitor = monitor\n\t\tstore.subscribe(this.handleRefCountChange)\n\t}\n\n\tpublic receiveBackend(backend: Backend): void {\n\t\tthis.backend = backend\n\t}\n\n\tpublic getMonitor(): DragDropMonitor {\n\t\treturn this.monitor\n\t}\n\n\tpublic getBackend(): Backend {\n\t\treturn this.backend as Backend\n\t}\n\n\tpublic getRegistry(): HandlerRegistry {\n\t\treturn (this.monitor as DragDropMonitorImpl).registry\n\t}\n\n\tpublic getActions(): DragDropActions {\n\t\t/* eslint-disable-next-line @typescript-eslint/no-this-alias */\n\t\tconst manager = this\n\t\tconst { dispatch } = this.store\n\n\t\tfunction bindActionCreator(actionCreator: ActionCreator<any>) {\n\t\t\treturn (...args: any[]) => {\n\t\t\t\tconst action = actionCreator.apply(manager, args as any)\n\t\t\t\tif (typeof action !== 'undefined') {\n\t\t\t\t\tdispatch(action)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst actions = createDragDropActions(this)\n\n\t\treturn Object.keys(actions).reduce(\n\t\t\t(boundActions: DragDropActions, key: string) => {\n\t\t\t\tconst action: ActionCreator<any> = (actions as any)[\n\t\t\t\t\tkey\n\t\t\t\t] as ActionCreator<any>\n\t\t\t\t;(boundActions as any)[key] = bindActionCreator(action)\n\t\t\t\treturn boundActions\n\t\t\t},\n\t\t\t{} as DragDropActions,\n\t\t)\n\t}\n\n\tpublic dispatch(action: Action<any>): void {\n\t\tthis.store.dispatch(action)\n\t}\n\n\tprivate handleRefCountChange = (): void => {\n\t\tconst shouldSetUp = this.store.getState().refCount > 0\n\t\tif (this.backend) {\n\t\t\tif (shouldSetUp && !this.isSetUp) {\n\t\t\t\tthis.backend.setup()\n\t\t\t\tthis.isSetUp = true\n\t\t\t} else if (!shouldSetUp && this.isSetUp) {\n\t\t\t\tthis.backend.teardown()\n\t\t\t\tthis.isSetUp = false\n\t\t\t}\n\t\t}\n\t}\n}\n","import type { XYCoord } from '../interfaces.js'\nimport type { State } from '../reducers/dragOffset.js'\n\n/**\n * Coordinate addition\n * @param a The first coordinate\n * @param b The second coordinate\n */\nexport function add(a: XYCoord, b: XYCoord): XYCoord {\n\treturn {\n\t\tx: a.x + b.x,\n\t\ty: a.y + b.y,\n\t}\n}\n\n/**\n * Coordinate subtraction\n * @param a The first coordinate\n * @param b The second coordinate\n */\nexport function subtract(a: XYCoord, b: XYCoord): XYCoord {\n\treturn {\n\t\tx: a.x - b.x,\n\t\ty: a.y - b.y,\n\t}\n}\n\n/**\n * Returns the cartesian distance of the drag source component's position, based on its position\n * at the time when the current drag operation has started, and the movement difference.\n *\n * Returns null if no item is being dragged.\n *\n * @param state The offset state to compute from\n */\nexport function getSourceClientOffset(state: State): XYCoord | null {\n\tconst { clientOffset, initialClientOffset, initialSourceClientOffset } = state\n\tif (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n\t\treturn null\n\t}\n\treturn subtract(\n\t\tadd(clientOffset, initialSourceClientOffset),\n\t\tinitialClientOffset,\n\t)\n}\n\n/**\n * Determines the x,y offset between the client offset and the initial client offset\n *\n * @param state The offset state to compute from\n */\nexport function getDifferenceFromInitialOffset(state: State): XYCoord | null {\n\tconst { clientOffset, initialClientOffset } = state\n\tif (!clientOffset || !initialClientOffset) {\n\t\treturn null\n\t}\n\treturn subtract(clientOffset, initialClientOffset)\n}\n","import { intersection } from './js_utils.js'\n\nexport const NONE: string[] = []\nexport const ALL: string[] = []\n// Add these flags for debug\n;(NONE as any).__IS_NONE__ = true\n;(ALL as any).__IS_ALL__ = true\n\n/**\n * Determines if the given handler IDs are dirty or not.\n *\n * @param dirtyIds The set of dirty handler ids\n * @param handlerIds The set of handler ids to check\n */\nexport function areDirty(\n\tdirtyIds: string[],\n\thandlerIds: string[] | undefined,\n): boolean {\n\tif (dirtyIds === NONE) {\n\t\treturn false\n\t}\n\n\tif (dirtyIds === ALL || typeof handlerIds === 'undefined') {\n\t\treturn true\n\t}\n\n\tconst commonIds = intersection(handlerIds, dirtyIds)\n\treturn commonIds.length > 0\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { Store } from 'redux'\n\nimport type {\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tIdentifier,\n\tListener,\n\tUnsubscribe,\n\tXYCoord,\n} from '../interfaces.js'\nimport type { State } from '../reducers/index.js'\nimport {\n\tgetDifferenceFromInitialOffset,\n\tgetSourceClientOffset,\n} from '../utils/coords.js'\nimport { areDirty } from '../utils/dirtiness.js'\nimport { matchesType } from '../utils/matchesType.js'\n\nexport class DragDropMonitorImpl implements DragDropMonitor {\n\tprivate store: Store<State>\n\tpublic readonly registry: HandlerRegistry\n\n\tpublic constructor(store: Store<State>, registry: HandlerRegistry) {\n\t\tthis.store = store\n\t\tthis.registry = registry\n\t}\n\n\tpublic subscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions: { handlerIds?: string[] } = {},\n\t): Unsubscribe {\n\t\tconst { handlerIds } = options\n\t\tinvariant(typeof listener === 'function', 'listener must be a function.')\n\t\tinvariant(\n\t\t\ttypeof handlerIds === 'undefined' || Array.isArray(handlerIds),\n\t\t\t'handlerIds, when specified, must be an array of strings.',\n\t\t)\n\n\t\tlet prevStateId = this.store.getState().stateId\n\t\tconst handleChange = () => {\n\t\t\tconst state = this.store.getState()\n\t\t\tconst currentStateId = state.stateId\n\t\t\ttry {\n\t\t\t\tconst canSkipListener =\n\t\t\t\t\tcurrentStateId === prevStateId ||\n\t\t\t\t\t(currentStateId === prevStateId + 1 &&\n\t\t\t\t\t\t!areDirty(state.dirtyHandlerIds, handlerIds))\n\n\t\t\t\tif (!canSkipListener) {\n\t\t\t\t\tlistener()\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tprevStateId = currentStateId\n\t\t\t}\n\t\t}\n\n\t\treturn this.store.subscribe(handleChange)\n\t}\n\n\tpublic subscribeToOffsetChange(listener: Listener): Unsubscribe {\n\t\tinvariant(typeof listener === 'function', 'listener must be a function.')\n\n\t\tlet previousState = this.store.getState().dragOffset\n\t\tconst handleChange = () => {\n\t\t\tconst nextState = this.store.getState().dragOffset\n\t\t\tif (nextState === previousState) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tpreviousState = nextState\n\t\t\tlistener()\n\t\t}\n\n\t\treturn this.store.subscribe(handleChange)\n\t}\n\n\tpublic canDragSource(sourceId: string | undefined): boolean {\n\t\tif (!sourceId) {\n\t\t\treturn false\n\t\t}\n\t\tconst source = this.registry.getSource(sourceId)\n\t\tinvariant(source, `Expected to find a valid source. sourceId=${sourceId}`)\n\n\t\tif (this.isDragging()) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn source.canDrag(this, sourceId)\n\t}\n\n\tpublic canDropOnTarget(targetId: string | undefined): boolean {\n\t\t// undefined on initial render\n\t\tif (!targetId) {\n\t\t\treturn false\n\t\t}\n\t\tconst target = this.registry.getTarget(targetId)\n\t\tinvariant(target, `Expected to find a valid target. targetId=${targetId}`)\n\n\t\tif (!this.isDragging() || this.didDrop()) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst targetType = this.registry.getTargetType(targetId)\n\t\tconst draggedItemType = this.getItemType()\n\t\treturn (\n\t\t\tmatchesType(targetType, draggedItemType) && target.canDrop(this, targetId)\n\t\t)\n\t}\n\n\tpublic isDragging(): boolean {\n\t\treturn Boolean(this.getItemType())\n\t}\n\n\tpublic isDraggingSource(sourceId: string | undefined): boolean {\n\t\t// undefined on initial render\n\t\tif (!sourceId) {\n\t\t\treturn false\n\t\t}\n\t\tconst source = this.registry.getSource(sourceId, true)\n\t\tinvariant(source, `Expected to find a valid source. sourceId=${sourceId}`)\n\n\t\tif (!this.isDragging() || !this.isSourcePublic()) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst sourceType = this.registry.getSourceType(sourceId)\n\t\tconst draggedItemType = this.getItemType()\n\t\tif (sourceType !== draggedItemType) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn source.isDragging(this, sourceId)\n\t}\n\n\tpublic isOverTarget(\n\t\ttargetId: string | undefined,\n\t\toptions = { shallow: false },\n\t): boolean {\n\t\t// undefined on initial render\n\t\tif (!targetId) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst { shallow } = options\n\t\tif (!this.isDragging()) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst targetType = this.registry.getTargetType(targetId)\n\t\tconst draggedItemType = this.getItemType()\n\t\tif (draggedItemType && !matchesType(targetType, draggedItemType)) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst targetIds = this.getTargetIds()\n\t\tif (!targetIds.length) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst index = targetIds.indexOf(targetId)\n\t\tif (shallow) {\n\t\t\treturn index === targetIds.length - 1\n\t\t} else {\n\t\t\treturn index > -1\n\t\t}\n\t}\n\n\tpublic getItemType(): Identifier {\n\t\treturn this.store.getState().dragOperation.itemType as Identifier\n\t}\n\n\tpublic getItem(): any {\n\t\treturn this.store.getState().dragOperation.item\n\t}\n\n\tpublic getSourceId(): string | null {\n\t\treturn this.store.getState().dragOperation.sourceId\n\t}\n\n\tpublic getTargetIds(): string[] {\n\t\treturn this.store.getState().dragOperation.targetIds\n\t}\n\n\tpublic getDropResult(): any {\n\t\treturn this.store.getState().dragOperation.dropResult\n\t}\n\n\tpublic didDrop(): boolean {\n\t\treturn this.store.getState().dragOperation.didDrop\n\t}\n\n\tpublic isSourcePublic(): boolean {\n\t\treturn Boolean(this.store.getState().dragOperation.isSourcePublic)\n\t}\n\n\tpublic getInitialClientOffset(): XYCoord | null {\n\t\treturn this.store.getState().dragOffset.initialClientOffset\n\t}\n\n\tpublic getInitialSourceClientOffset(): XYCoord | null {\n\t\treturn this.store.getState().dragOffset.initialSourceClientOffset\n\t}\n\n\tpublic getClientOffset(): XYCoord | null {\n\t\treturn this.store.getState().dragOffset.clientOffset\n\t}\n\n\tpublic getSourceClientOffset(): XYCoord | null {\n\t\treturn getSourceClientOffset(this.store.getState().dragOffset)\n\t}\n\n\tpublic getDifferenceFromInitialOffset(): XYCoord | null {\n\t\treturn getDifferenceFromInitialOffset(this.store.getState().dragOffset)\n\t}\n}\n","// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nconst scope = typeof global !== 'undefined' ? global : self\nconst BrowserMutationObserver =\n\t(scope as any).MutationObserver || (scope as any).WebKitMutationObserver\n\nexport function makeRequestCallFromTimer(callback: () => void) {\n\treturn function requestCall() {\n\t\t// We dispatch a timeout with a specified delay of 0 for engines that\n\t\t// can reliably accommodate that request. This will usually be snapped\n\t\t// to a 4 milisecond delay, but once we're flushing, there's no delay\n\t\t// between events.\n\t\tconst timeoutHandle = setTimeout(handleTimer, 0)\n\t\t// However, since this timer gets frequently dropped in Firefox\n\t\t// workers, we enlist an interval handle that will try to fire\n\t\t// an event 20 times per second until it succeeds.\n\t\tconst intervalHandle = setInterval(handleTimer, 50)\n\n\t\tfunction handleTimer() {\n\t\t\t// Whichever timer succeeds will cancel both timers and\n\t\t\t// execute the callback.\n\t\t\tclearTimeout(timeoutHandle)\n\t\t\tclearInterval(intervalHandle)\n\t\t\tcallback()\n\t\t}\n\t}\n}\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nexport function makeRequestCallFromMutationObserver(callback: () => void) {\n\tlet toggle = 1\n\tconst observer = new BrowserMutationObserver(callback)\n\tconst node = document.createTextNode('')\n\tobserver.observe(node, { characterData: true })\n\treturn function requestCall() {\n\t\ttoggle = -toggle\n\t\t;(node as any).data = toggle\n\t}\n}\n\nexport const makeRequestCall =\n\ttypeof BrowserMutationObserver === 'function'\n\t\t? // MutationObservers are desirable because they have high priority and work\n\t\t // reliably everywhere they are implemented.\n\t\t // They are implemented in all modern browsers.\n\t\t //\n\t\t // - Android 4-4.3\n\t\t // - Chrome 26-34\n\t\t // - Firefox 14-29\n\t\t // - Internet Explorer 11\n\t\t // - iPad Safari 6-7.1\n\t\t // - iPhone Safari 7-7.1\n\t\t // - Safari 6-7\n\t\t makeRequestCallFromMutationObserver\n\t\t: // MessageChannels are desirable because they give direct access to the HTML\n\t\t // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n\t\t // 11-12, and in web workers in many engines.\n\t\t // Although message channels yield to any queued rendering and IO tasks, they\n\t\t // would be better than imposing the 4ms delay of timers.\n\t\t // However, they do not work reliably in Internet Explorer or Safari.\n\n\t\t // Internet Explorer 10 is the only browser that has setImmediate but does\n\t\t // not have MutationObservers.\n\t\t // Although setImmediate yields to the browser's renderer, it would be\n\t\t // preferrable to falling back to setTimeout since it does not have\n\t\t // the minimum 4ms penalty.\n\t\t // Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n\t\t // Desktop to a lesser extent) that renders both setImmediate and\n\t\t // MessageChannel useless for the purposes of ASAP.\n\t\t // https://github.com/kriskowal/q/issues/396\n\n\t\t // Timers are implemented universally.\n\t\t // We fall back to timers in workers in most engines, and in foreground\n\t\t // contexts in the following browsers.\n\t\t // However, note that even this simple case requires nuances to operate in a\n\t\t // broad spectrum of browsers.\n\t\t //\n\t\t // - Firefox 3-13\n\t\t // - Internet Explorer 6-9\n\t\t // - iPad Safari 4.3\n\t\t // - Lynx 2.8.7\n\t\t makeRequestCallFromTimer\n","/* eslint-disable no-restricted-globals, @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-non-null-assertion */\nimport { makeRequestCall, makeRequestCallFromTimer } from './makeRequestCall.js'\nimport type { Task } from './types.js'\n\nexport class AsapQueue {\n\tprivate queue: Task[] = []\n\t// We queue errors to ensure they are thrown in right order (FIFO).\n\t// Array-as-queue is good enough here, since we are just dealing with exceptions.\n\tprivate pendingErrors: any[] = []\n\t// Once a flush has been requested, no further calls to `requestFlush` are\n\t// necessary until the next `flush` completes.\n\t// @ts-ignore\n\tprivate flushing = false\n\t// `requestFlush` is an implementation-specific method that attempts to kick\n\t// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n\t// the event queue before yielding to the browser's own event loop.\n\tprivate requestFlush: () => void\n\n\tprivate requestErrorThrow: () => void\n\t// The position of the next task to execute in the task queue. This is\n\t// preserved between calls to `flush` so that it can be resumed if\n\t// a task throws an exception.\n\tprivate index = 0\n\t// If a task schedules additional tasks recursively, the task queue can grow\n\t// unbounded. To prevent memory exhaustion, the task queue will periodically\n\t// truncate already-completed tasks.\n\tprivate capacity = 1024\n\n\tpublic constructor() {\n\t\t// `requestFlush` requests that the high priority event queue be flushed as\n\t\t// soon as possible.\n\t\t// This is useful to prevent an error thrown in a task from stalling the event\n\t\t// queue if the exception handled by Node.js’s\n\t\t// `process.on(\"uncaughtException\")` or by a domain.\n\n\t\t// `requestFlush` is implemented using a strategy based on data collected from\n\t\t// every available SauceLabs Selenium web driver worker at time of writing.\n\t\t// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\t\tthis.requestFlush = makeRequestCall(this.flush)\n\t\tthis.requestErrorThrow = makeRequestCallFromTimer(() => {\n\t\t\t// Throw first error\n\t\t\tif (this.pendingErrors.length) {\n\t\t\t\tthrow this.pendingErrors.shift()\n\t\t\t}\n\t\t})\n\t}\n\n\t// Use the fastest means possible to execute a task in its own turn, with\n\t// priority over other events including IO, animation, reflow, and redraw\n\t// events in browsers.\n\t//\n\t// An exception thrown by a task will permanently interrupt the processing of\n\t// subsequent tasks. The higher level `asap` function ensures that if an\n\t// exception is thrown by a task, that the task queue will continue flushing as\n\t// soon as possible, but if you use `rawAsap` directly, you are responsible to\n\t// either ensure that no exceptions are thrown from your task, or to manually\n\t// call `rawAsap.requestFlush` if an exception is thrown.\n\tpublic enqueueTask(task: Task): void {\n\t\tconst { queue: q, requestFlush } = this\n\t\tif (!q.length) {\n\t\t\trequestFlush()\n\t\t\tthis.flushing = true\n\t\t}\n\t\t// Equivalent to push, but avoids a function call.\n\t\tq[q.length] = task\n\t}\n\n\t// The flush function processes all tasks that have been scheduled with\n\t// `rawAsap` unless and until one of those tasks throws an exception.\n\t// If a task throws an exception, `flush` ensures that its state will remain\n\t// consistent and will resume where it left off when called again.\n\t// However, `flush` does not make any arrangements to be called again if an\n\t// exception is thrown.\n\tprivate flush = () => {\n\t\tconst { queue: q } = this\n\t\twhile (this.index < q.length) {\n\t\t\tconst currentIndex = this.index\n\t\t\t// Advance the index before calling the task. This ensures that we will\n\t\t\t// begin flushing on the next task the task throws an error.\n\t\t\tthis.index++\n\t\t\tq[currentIndex]!.call()\n\t\t\t// Prevent leaking memory for long chains of recursive calls to `asap`.\n\t\t\t// If we call `asap` within tasks scheduled by `asap`, the queue will\n\t\t\t// grow, but to avoid an O(n) walk for every task we execute, we don't\n\t\t\t// shift tasks off the queue after they have been executed.\n\t\t\t// Instead, we periodically shift 1024 tasks off the queue.\n\t\t\tif (this.index > this.capacity) {\n\t\t\t\t// Manually shift all values starting at the index back to the\n\t\t\t\t// beginning of the queue.\n\t\t\t\tfor (\n\t\t\t\t\tlet scan = 0, newLength = q.length - this.index;\n\t\t\t\t\tscan < newLength;\n\t\t\t\t\tscan++\n\t\t\t\t) {\n\t\t\t\t\tq[scan] = q[scan + this.index]!\n\t\t\t\t}\n\t\t\t\tq.length -= this.index\n\t\t\t\tthis.index = 0\n\t\t\t}\n\t\t}\n\t\tq.length = 0\n\t\tthis.index = 0\n\t\tthis.flushing = false\n\t}\n\n\t// In a web browser, exceptions are not fatal. However, to avoid\n\t// slowing down the queue of pending tasks, we rethrow the error in a\n\t// lower priority turn.\n\tpublic registerPendingError = (err: any) => {\n\t\tthis.pendingErrors.push(err)\n\t\tthis.requestErrorThrow()\n\t}\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// // its existence.\n// rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n","// We wrap tasks with recyclable task objects. A task object implements\n\nimport type { Task, TaskFn } from 'types'\n\n// `call`, just like a function.\nexport class RawTask implements Task {\n\tpublic task: TaskFn | null = null\n\n\tpublic constructor(\n\t\tprivate onError: (err: any) => void,\n\t\tprivate release: (t: RawTask) => void,\n\t) {}\n\n\tpublic call() {\n\t\ttry {\n\t\t\tthis.task && this.task()\n\t\t} catch (error) {\n\t\t\tthis.onError(error)\n\t\t} finally {\n\t\t\tthis.task = null\n\t\t\tthis.release(this)\n\t\t}\n\t}\n}\n","import { RawTask } from './RawTask.js'\nimport type { Task } from './types.js'\n\nexport class TaskFactory {\n\tprivate freeTasks: RawTask[] = []\n\n\tpublic constructor(private onError: (err: any) => void) {}\n\n\tpublic create(task: () => void): Task {\n\t\tconst tasks = this.freeTasks\n\t\tconst t = tasks.length\n\t\t\t? (tasks.pop() as RawTask)\n\t\t\t: new RawTask(this.onError, (t) => (tasks[tasks.length] = t))\n\t\tt.task = task\n\t\treturn t\n\t}\n}\n","import { AsapQueue } from './AsapQueue.js'\nimport { TaskFactory } from './TaskFactory.js'\nimport type { TaskFn } from './types.js'\n\nconst asapQueue = new AsapQueue()\nconst taskFactory = new TaskFactory(asapQueue.registerPendingError)\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nexport function asap(task: TaskFn) {\n\tasapQueue.enqueueTask(taskFactory.create(task))\n}\n","import type { Action, SourceIdPayload, TargetIdPayload } from '../interfaces.js'\n\nexport const ADD_SOURCE = 'dnd-core/ADD_SOURCE'\nexport const ADD_TARGET = 'dnd-core/ADD_TARGET'\nexport const REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE'\nexport const REMOVE_TARGET = 'dnd-core/REMOVE_TARGET'\n\nexport function addSource(sourceId: string): Action<SourceIdPayload> {\n\treturn {\n\t\ttype: ADD_SOURCE,\n\t\tpayload: {\n\t\t\tsourceId,\n\t\t},\n\t}\n}\n\nexport function addTarget(targetId: string): Action<TargetIdPayload> {\n\treturn {\n\t\ttype: ADD_TARGET,\n\t\tpayload: {\n\t\t\ttargetId,\n\t\t},\n\t}\n}\n\nexport function removeSource(sourceId: string): Action<SourceIdPayload> {\n\treturn {\n\t\ttype: REMOVE_SOURCE,\n\t\tpayload: {\n\t\t\tsourceId,\n\t\t},\n\t}\n}\n\nexport function removeTarget(targetId: string): Action<TargetIdPayload> {\n\treturn {\n\t\ttype: REMOVE_TARGET,\n\t\tpayload: {\n\t\t\ttargetId,\n\t\t},\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type { DragSource, DropTarget, Identifier } from './interfaces.js'\n\nexport function validateSourceContract(source: DragSource): void {\n\tinvariant(\n\t\ttypeof source.canDrag === 'function',\n\t\t'Expected canDrag to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof source.beginDrag === 'function',\n\t\t'Expected beginDrag to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof source.endDrag === 'function',\n\t\t'Expected endDrag to be a function.',\n\t)\n}\n\nexport function validateTargetContract(target: DropTarget): void {\n\tinvariant(\n\t\ttypeof target.canDrop === 'function',\n\t\t'Expected canDrop to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof target.hover === 'function',\n\t\t'Expected hover to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof target.drop === 'function',\n\t\t'Expected beginDrag to be a function.',\n\t)\n}\n\nexport function validateType(\n\ttype: Identifier | Identifier[],\n\tallowArray?: boolean,\n): void {\n\tif (allowArray && Array.isArray(type)) {\n\t\ttype.forEach((t) => validateType(t, false))\n\t\treturn\n\t}\n\n\tinvariant(\n\t\ttypeof type === 'string' || typeof type === 'symbol',\n\t\tallowArray\n\t\t\t? 'Type can only be a string, a symbol, or an array of either.'\n\t\t\t: 'Type can only be a string or a symbol.',\n\t)\n}\n","export type Identifier = string | symbol\nexport type SourceType = Identifier\nexport type TargetType = Identifier | Identifier[]\nexport type Unsubscribe = () => void\nexport type Listener = () => void\n\nexport interface XYCoord {\n\tx: number\n\ty: number\n}\n\nexport enum HandlerRole {\n\tSOURCE = 'SOURCE',\n\tTARGET = 'TARGET',\n}\n\nexport interface Backend {\n\tsetup(): void\n\tteardown(): void\n\tconnectDragSource(sourceId: any, node?: any, options?: any): Unsubscribe\n\tconnectDragPreview(sourceId: any, node?: any, options?: any): Unsubscribe\n\tconnectDropTarget(targetId: any, node?: any, options?: any): Unsubscribe\n\tprofile(): Record<string, number>\n}\n\nexport interface DragDropMonitor {\n\tsubscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions?: {\n\t\t\thandlerIds?: Identifier[]\n\t\t},\n\t): Unsubscribe\n\tsubscribeToOffsetChange(listener: Listener): Unsubscribe\n\tcanDragSource(sourceId: Identifier | undefined): boolean\n\tcanDropOnTarget(targetId: Identifier | undefined): boolean\n\n\t/**\n\t * Returns true if a drag operation is in progress, and either the owner initiated the drag, or its isDragging()\n\t * is defined and returns true.\n\t */\n\tisDragging(): boolean\n\tisDraggingSource(sourceId: Identifier | undefined): boolean\n\tisOverTarget(\n\t\ttargetId: Identifier | undefined,\n\t\toptions?: {\n\t\t\tshallow?: boolean\n\t\t},\n\t): boolean\n\n\t/**\n\t * Returns a string or a symbol identifying the type of the current dragged item. Returns null if no item is being dragged.\n\t */\n\tgetItemType(): Identifier | null\n\n\t/**\n\t * Returns a plain object representing the currently dragged item. Every drag source must specify it by returning an object\n\t * from its beginDrag() method. Returns null if no item is being dragged.\n\t */\n\tgetItem(): any\n\tgetSourceId(): Identifier | null\n\tgetTargetIds(): Identifier[]\n\t/**\n\t * Returns a plain object representing the last recorded drop result. The drop targets may optionally specify it by returning an\n\t * object from their drop() methods. When a chain of drop() is dispatched for the nested targets, bottom up, any parent that\n\t * explicitly returns its own result from drop() overrides the child drop result previously set by the child. Returns null if\n\t * called outside endDrag().\n\t */\n\tgetDropResult(): any\n\t/**\n\t * Returns true if some drop target has handled the drop event, false otherwise. Even if a target did not return a drop result,\n\t * didDrop() returns true. Use it inside endDrag() to test whether any drop target has handled the drop. Returns false if called\n\t * outside endDrag().\n\t */\n\tdidDrop(): boolean\n\tisSourcePublic(): boolean | null\n\t/**\n\t * Returns the { x, y } client offset of the pointer at the time when the current drag operation has started.\n\t * Returns null if no item is being dragged.\n\t */\n\tgetInitialClientOffset(): XYCoord | null\n\t/**\n\t * Returns the { x, y } client offset of the drag source component's root DOM node at the time when the current drag\n\t * operation has started. Returns null if no item is being dragged.\n\t */\n\tgetInitialSourceClientOffset(): XYCoord | null\n\n\t/**\n\t * Returns the last recorded { x, y } client offset of the pointer while a drag operation is in progress.\n\t * Returns null if no item is being dragged.\n\t */\n\tgetClientOffset(): XYCoord | null\n\n\t/**\n\t * Returns the projected { x, y } client offset of the drag source component's root DOM node, based on its position at the time\n\t * when the current drag operation has started, and the movement difference. Returns null if no item is being dragged.\n\t */\n\tgetSourceClientOffset(): XYCoord | null\n\n\t/**\n\t * Returns the { x, y } difference between the last recorded client offset of the pointer and the client offset when the current\n\t * drag operation has started. Returns null if no item is being dragged.\n\t */\n\tgetDifferenceFromInitialOffset(): XYCoord | null\n}\n\nexport interface HandlerRegistry {\n\taddSource(type: SourceType, source: DragSource): Identifier\n\taddTarget(type: TargetType, target: DropTarget): Identifier\n\tcontainsHandler(handler: DragSource | DropTarget): boolean\n\tgetSource(sourceId: Identifier, includePinned?: boolean): DragSource\n\tgetSourceType(sourceId: Identifier): SourceType\n\tgetTargetType(targetId: Identifier): TargetType\n\tgetTarget(targetId: Identifier): DropTarget\n\tisSourceId(handlerId: Identifier): boolean\n\tisTargetId(handlerId: Identifier): boolean\n\tremoveSource(sourceId: Identifier): void\n\tremoveTarget(targetId: Identifier): void\n\tpinSource(sourceId: Identifier): void\n\tunpinSource(): void\n}\n\nexport interface Action<Payload> {\n\ttype: Identifier\n\tpayload: Payload\n}\nexport interface SentinelAction {\n\ttype: Identifier\n}\n\nexport type ActionCreator<Payload> = (args: any[]) => Action<Payload>\n\nexport interface BeginDragOptions {\n\tpublishSource?: boolean\n\tclientOffset?: XYCoord\n\tgetSourceClientOffset?: (sourceId: Identifier | undefined) => XYCoord\n}\n\nexport interface InitCoordsPayload {\n\tclientOffset: XYCoord | null\n\tsourceClientOffset: XYCoord | null\n}\n\nexport interface BeginDragPayload {\n\titemType: Identifier\n\titem: any\n\tsourceId: Identifier\n\tclientOffset: XYCoord | null\n\tsourceClientOffset: XYCoord | null\n\tisSourcePublic: boolean\n}\n\nexport interface HoverPayload {\n\ttargetIds: Identifier[]\n\tclientOffset: XYCoord | null\n}\n\nexport interface HoverOptions {\n\tclientOffset?: XYCoord\n}\n\nexport interface DropPayload {\n\tdropResult: any\n}\n\nexport interface TargetIdPayload {\n\ttargetId: Identifier\n}\n\nexport interface SourceIdPayload {\n\tsourceId: Identifier\n}\n\nexport interface DragDropActions {\n\tbeginDrag(\n\t\tsourceIds?: Identifier[],\n\t\toptions?: any,\n\t): Action<BeginDragPayload> | undefined\n\tpublishDragSource(): SentinelAction | undefined\n\thover(targetIds: Identifier[], options?: any): Action<HoverPayload>\n\tdrop(options?: any): void\n\tendDrag(): SentinelAction\n}\n\nexport interface DragDropManager {\n\tgetMonitor(): DragDropMonitor\n\tgetBackend(): Backend\n\tgetRegistry(): HandlerRegistry\n\tgetActions(): DragDropActions\n\tdispatch(action: any): void\n}\n\nexport type BackendFactory = (\n\tmanager: DragDropManager,\n\tglobalContext?: any,\n\tconfiguration?: any,\n) => Backend\n\nexport interface DragSource {\n\tbeginDrag(monitor: DragDropMonitor, targetId: Identifier): void\n\tendDrag(monitor: DragDropMonitor, targetId: Identifier): void\n\tcanDrag(monitor: DragDropMonitor, targetId: Identifier): boolean\n\tisDragging(monitor: DragDropMonitor, targetId: Identifier): boolean\n}\n\nexport interface DropTarget {\n\tcanDrop(monitor: DragDropMonitor, targetId: Identifier): boolean\n\thover(monitor: DragDropMonitor, targetId: Identifier): void\n\tdrop(monitor: DragDropMonitor, targetId: Identifier): any\n}\n","let nextUniqueId = 0\n\nexport function getNextUniqueId(): number {\n\treturn nextUniqueId++\n}\n","import { asap } from '@react-dnd/asap'\nimport { invariant } from '@react-dnd/invariant'\nimport type { Store } from 'redux'\n\nimport {\n\taddSource,\n\taddTarget,\n\tremoveSource,\n\tremoveTarget,\n} from '../actions/registry.js'\nimport {\n\tvalidateSourceContract,\n\tvalidateTargetContract,\n\tvalidateType,\n} from '../contracts.js'\nimport type {\n\tDragSource,\n\tDropTarget,\n\tHandlerRegistry,\n\tIdentifier,\n\tSourceType,\n\tTargetType,\n} from '../interfaces.js'\nimport { HandlerRole } from '../interfaces.js'\nimport type { State } from '../reducers/index.js'\nimport { getNextUniqueId } from '../utils/getNextUniqueId.js'\n\nfunction getNextHandlerId(role: HandlerRole): string {\n\tconst id = getNextUniqueId().toString()\n\tswitch (role) {\n\t\tcase HandlerRole.SOURCE:\n\t\t\treturn `S${id}`\n\t\tcase HandlerRole.TARGET:\n\t\t\treturn `T${id}`\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Handler Role: ${role}`)\n\t}\n}\n\nfunction parseRoleFromHandlerId(handlerId: string) {\n\tswitch (handlerId[0]) {\n\t\tcase 'S':\n\t\t\treturn HandlerRole.SOURCE\n\t\tcase 'T':\n\t\t\treturn HandlerRole.TARGET\n\t\tdefault:\n\t\t\tthrow new Error(`Cannot parse handler ID: ${handlerId}`)\n\t}\n}\n\nfunction mapContainsValue<T>(map: Map<string, T>, searchValue: T) {\n\tconst entries = map.entries()\n\tlet isDone = false\n\tdo {\n\t\tconst {\n\t\t\tdone,\n\t\t\tvalue: [, value],\n\t\t} = entries.next()\n\t\tif (value === searchValue) {\n\t\t\treturn true\n\t\t}\n\t\tisDone = !!done\n\t} while (!isDone)\n\treturn false\n}\n\nexport class HandlerRegistryImpl implements HandlerRegistry {\n\tprivate types: Map<string, SourceType | TargetType> = new Map()\n\tprivate dragSources: Map<string, DragSource> = new Map()\n\tprivate dropTargets: Map<string, DropTarget> = new Map()\n\tprivate pinnedSourceId: string | null = null\n\tprivate pinnedSource: any = null\n\tprivate store: Store<State>\n\n\tpublic constructor(store: Store<State>) {\n\t\tthis.store = store\n\t}\n\n\tpublic addSource(type: SourceType, source: DragSource): string {\n\t\tvalidateType(type)\n\t\tvalidateSourceContract(source)\n\n\t\tconst sourceId = this.addHandler(HandlerRole.SOURCE, type, source)\n\t\tthis.store.dispatch(addSource(sourceId))\n\t\treturn sourceId\n\t}\n\n\tpublic addTarget(type: TargetType, target: DropTarget): string {\n\t\tvalidateType(type, true)\n\t\tvalidateTargetContract(target)\n\n\t\tconst targetId = this.addHandler(HandlerRole.TARGET, type, target)\n\t\tthis.store.dispatch(addTarget(targetId))\n\t\treturn targetId\n\t}\n\n\tpublic containsHandler(handler: DragSource | DropTarget): boolean {\n\t\treturn (\n\t\t\tmapContainsValue(this.dragSources, handler) ||\n\t\t\tmapContainsValue(this.dropTargets, handler)\n\t\t)\n\t}\n\n\tpublic getSource(sourceId: string, includePinned = false): DragSource {\n\t\tinvariant(this.isSourceId(sourceId), 'Expected a valid source ID.')\n\t\tconst isPinned = includePinned && sourceId === this.pinnedSourceId\n\t\tconst source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId)\n\t\treturn source\n\t}\n\n\tpublic getTarget(targetId: string): DropTarget {\n\t\tinvariant(this.isTargetId(targetId), 'Expected a valid target ID.')\n\t\treturn this.dropTargets.get(targetId) as DropTarget\n\t}\n\n\tpublic getSourceType(sourceId: string): Identifier {\n\t\tinvariant(this.isSourceId(sourceId), 'Expected a valid source ID.')\n\t\treturn this.types.get(sourceId) as Identifier\n\t}\n\n\tpublic getTargetType(targetId: string): Identifier | Identifier[] {\n\t\tinvariant(this.isTargetId(targetId), 'Expected a valid target ID.')\n\t\treturn this.types.get(targetId) as Identifier | Identifier[]\n\t}\n\n\tpublic isSourceId(handlerId: string): boolean {\n\t\tconst role = parseRoleFromHandlerId(handlerId)\n\t\treturn role === HandlerRole.SOURCE\n\t}\n\n\tpublic isTargetId(handlerId: string): boolean {\n\t\tconst role = parseRoleFromHandlerId(handlerId)\n\t\treturn role === HandlerRole.TARGET\n\t}\n\n\tpublic removeSource(sourceId: string): void {\n\t\tinvariant(this.getSource(sourceId), 'Expected an existing source.')\n\t\tthis.store.dispatch(removeSource(sourceId))\n\t\tasap(() => {\n\t\t\tthis.dragSources.delete(sourceId)\n\t\t\tthis.types.delete(sourceId)\n\t\t})\n\t}\n\n\tpublic removeTarget(targetId: string): void {\n\t\tinvariant(this.getTarget(targetId), 'Expected an existing target.')\n\t\tthis.store.dispatch(removeTarget(targetId))\n\t\tthis.dropTargets.delete(targetId)\n\t\tthis.types.delete(targetId)\n\t}\n\n\tpublic pinSource(sourceId: string): void {\n\t\tconst source = this.getSource(sourceId)\n\t\tinvariant(source, 'Expected an existing source.')\n\n\t\tthis.pinnedSourceId = sourceId\n\t\tthis.pinnedSource = source\n\t}\n\n\tpublic unpinSource(): void {\n\t\tinvariant(this.pinnedSource, 'No source is pinned at the time.')\n\n\t\tthis.pinnedSourceId = null\n\t\tthis.pinnedSource = null\n\t}\n\n\tprivate addHandler(\n\t\trole: HandlerRole,\n\t\ttype: SourceType | TargetType,\n\t\thandler: DragSource | DropTarget,\n\t): string {\n\t\tconst id = getNextHandlerId(role)\n\t\tthis.types.set(id, type)\n\t\tif (role === HandlerRole.SOURCE) {\n\t\t\tthis.dragSources.set(id, handler as DragSource)\n\t\t} else if (role === HandlerRole.TARGET) {\n\t\t\tthis.dropTargets.set(id, handler as DropTarget)\n\t\t}\n\t\treturn id\n\t}\n}\n","import type { XYCoord } from '../interfaces.js'\n\nexport type EqualityCheck<T> = (a: T, b: T) => boolean\nexport const strictEquality = <T>(a: T, b: T): boolean => a === b\n\n/**\n * Determine if two cartesian coordinate offsets are equal\n * @param offsetA\n * @param offsetB\n */\nexport function areCoordsEqual(\n\toffsetA: XYCoord | null | undefined,\n\toffsetB: XYCoord | null | undefined,\n): boolean {\n\tif (!offsetA && !offsetB) {\n\t\treturn true\n\t} else if (!offsetA || !offsetB) {\n\t\treturn false\n\t} else {\n\t\treturn offsetA.x === offsetB.x && offsetA.y === offsetB.y\n\t}\n}\n\n/**\n * Determines if two arrays of items are equal\n * @param a The first array of items\n * @param b The second array of items\n */\nexport function areArraysEqual<T>(\n\ta: T[],\n\tb: T[],\n\tisEqual: EqualityCheck<T> = strictEquality,\n): boolean {\n\tif (a.length !== b.length) {\n\t\treturn false\n\t}\n\tfor (let i = 0; i < a.length; ++i) {\n\t\tif (!isEqual(a[i] as T, b[i] as T)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n","import {\n\tBEGIN_DRAG,\n\tDROP,\n\tEND_DRAG,\n\tHOVER,\n\tPUBLISH_DRAG_SOURCE,\n} from '../actions/dragDrop/index.js'\nimport {\n\tADD_SOURCE,\n\tADD_TARGET,\n\tREMOVE_SOURCE,\n\tREMOVE_TARGET,\n} from '../actions/registry.js'\nimport type { Action } from '../interfaces.js'\nimport { ALL, NONE } from '../utils/dirtiness.js'\nimport { areArraysEqual } from '../utils/equality.js'\nimport { xor } from '../utils/js_utils.js'\n\nexport type State = string[]\n\nexport interface DirtyHandlerIdPayload {\n\ttargetIds: string[]\n\tprevTargetIds: string[]\n}\n\nexport function reduce(\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t_state: State = NONE,\n\taction: Action<DirtyHandlerIdPayload>,\n): State {\n\tswitch (action.type) {\n\t\tcase HOVER:\n\t\t\tbreak\n\t\tcase ADD_SOURCE:\n\t\tcase ADD_TARGET:\n\t\tcase REMOVE_TARGET:\n\t\tcase REMOVE_SOURCE:\n\t\t\treturn NONE\n\t\tcase BEGIN_DRAG:\n\t\tcase PUBLISH_DRAG_SOURCE:\n\t\tcase END_DRAG:\n\t\tcase DROP:\n\t\tdefault:\n\t\t\treturn ALL\n\t}\n\n\tconst { targetIds = [], prevTargetIds = [] } = action.payload\n\tconst result = xor(targetIds, prevTargetIds)\n\tconst didChange =\n\t\tresult.length > 0 || !areArraysEqual(targetIds, prevTargetIds)\n\n\tif (!didChange) {\n\t\treturn NONE\n\t}\n\n\t// Check the target ids at the innermost position. If they are valid, add them\n\t// to the result\n\tconst prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1]\n\tconst innermostTargetId = targetIds[targetIds.length - 1]\n\tif (prevInnermostTargetId !== innermostTargetId) {\n\t\tif (prevInnermostTargetId) {\n\t\t\tresult.push(prevInnermostTargetId)\n\t\t}\n\t\tif (innermostTargetId) {\n\t\t\tresult.push(innermostTargetId)\n\t\t}\n\t}\n\n\treturn result\n}\n","import {\n\tBEGIN_DRAG,\n\tDROP,\n\tEND_DRAG,\n\tHOVER,\n\tINIT_COORDS,\n} from '../actions/dragDrop/index.js'\nimport type { Action, XYCoord } from '../interfaces.js'\nimport { areCoordsEqual } from '../utils/equality.js'\n\nexport interface State {\n\tinitialSourceClientOffset: XYCoord | null\n\tinitialClientOffset: XYCoord | null\n\tclientOffset: XYCoord | null\n}\n\nconst initialState: State = {\n\tinitialSourceClientOffset: null,\n\tinitialClientOffset: null,\n\tclientOffset: null,\n}\n\nexport function reduce(\n\tstate: State = initialState,\n\taction: Action<{\n\t\tsourceClientOffset: XYCoord\n\t\tclientOffset: XYCoord\n\t}>,\n): State {\n\tconst { payload } = action\n\tswitch (action.type) {\n\t\tcase INIT_COORDS:\n\t\tcase BEGIN_DRAG:\n\t\t\treturn {\n\t\t\t\tinitialSourceClientOffset: payload.sourceClientOffset,\n\t\t\t\tinitialClientOffset: payload.clientOffset,\n\t\t\t\tclientOffset: payload.clientOffset,\n\t\t\t}\n\t\tcase HOVER:\n\t\t\tif (areCoordsEqual(state.clientOffset, payload.clientOffset)) {\n\t\t\t\treturn state\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tclientOffset: payload.clientOffset,\n\t\t\t}\n\t\tcase END_DRAG:\n\t\tcase DROP:\n\t\t\treturn initialState\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n","import {\n\tBEGIN_DRAG,\n\tDROP,\n\tEND_DRAG,\n\tHOVER,\n\tPUBLISH_DRAG_SOURCE,\n} from '../actions/dragDrop/index.js'\nimport { REMOVE_TARGET } from '../actions/registry.js'\nimport type { Action, Identifier } from '../interfaces.js'\nimport { without } from '../utils/js_utils.js'\n\nexport interface State {\n\titemType: Identifier | Identifier[] | null\n\titem: any\n\tsourceId: string | null\n\ttargetIds: string[]\n\tdropResult: any\n\tdidDrop: boolean\n\tisSourcePublic: boolean | null\n}\n\nconst initialState: State = {\n\titemType: null,\n\titem: null,\n\tsourceId: null,\n\ttargetIds: [],\n\tdropResult: null,\n\tdidDrop: false,\n\tisSourcePublic: null,\n}\n\nexport function reduce(\n\tstate: State = initialState,\n\taction: Action<{\n\t\titemType: Identifier | Identifier[]\n\t\titem: any\n\t\tsourceId: string\n\t\ttargetId: string\n\t\ttargetIds: string[]\n\t\tisSourcePublic: boolean\n\t\tdropResult: any\n\t}>,\n): State {\n\tconst { payload } = action\n\tswitch (action.type) {\n\t\tcase BEGIN_DRAG:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\titemType: payload.itemType,\n\t\t\t\titem: payload.item,\n\t\t\t\tsourceId: payload.sourceId,\n\t\t\t\tisSourcePublic: payload.isSourcePublic,\n\t\t\t\tdropResult: null,\n\t\t\t\tdidDrop: false,\n\t\t\t}\n\t\tcase PUBLISH_DRAG_SOURCE:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisSourcePublic: true,\n\t\t\t}\n\t\tcase HOVER:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\ttargetIds: payload.targetIds,\n\t\t\t}\n\t\tcase REMOVE_TARGET:\n\t\t\tif (state.targetIds.indexOf(payload.targetId) === -1) {\n\t\t\t\treturn state\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\ttargetIds: without(state.targetIds, payload.targetId),\n\t\t\t}\n\t\tcase DROP:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tdropResult: payload.dropResult,\n\t\t\t\tdidDrop: true,\n\t\t\t\ttargetIds: [],\n\t\t\t}\n\t\tcase END_DRAG:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\titemType: null,\n\t\t\t\titem: null,\n\t\t\t\tsourceId: null,\n\t\t\t\tdropResult: null,\n\t\t\t\tdidDrop: false,\n\t\t\t\tisSourcePublic: null,\n\t\t\t\ttargetIds: [],\n\t\t\t}\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n","import {\n\tADD_SOURCE,\n\tADD_TARGET,\n\tREMOVE_SOURCE,\n\tREMOVE_TARGET,\n} from '../actions/registry.js'\nimport type { Action } from '../interfaces.js'\n\nexport type State = number\n\nexport function reduce(state: State = 0, action: Action<any>): State {\n\tswitch (action.type) {\n\t\tcase ADD_SOURCE:\n\t\tcase ADD_TARGET:\n\t\t\treturn state + 1\n\t\tcase REMOVE_SOURCE:\n\t\tcase REMOVE_TARGET:\n\t\t\treturn state - 1\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n","export type State = number\n\nexport function reduce(state: State = 0): State {\n\treturn state + 1\n}\n","import type { Action } from '../interfaces.js'\nimport { get } from '../utils/js_utils.js'\nimport type { State as DirtyHandlerIdsState } from './dirtyHandlerIds.js'\nimport { reduce as dirtyHandlerIds } from './dirtyHandlerIds.js'\nimport type { State as DragOffsetState } from './dragOffset.js'\nimport { reduce as dragOffset } from './dragOffset.js'\nimport type { State as DragOperationState } from './dragOperation.js'\nimport { reduce as dragOperation } from './dragOperation.js'\nimport type { State as RefCountState } from './refCount.js'\nimport { reduce as refCount } from './refCount.js'\nimport type { State as StateIdState } from './stateId.js'\nimport { reduce as stateId } from './stateId.js'\n\nexport interface State {\n\tdirtyHandlerIds: DirtyHandlerIdsState\n\tdragOffset: DragOffsetState\n\trefCount: RefCountState\n\tdragOperation: DragOperationState\n\tstateId: StateIdState\n}\n\nexport function reduce(state: State = {} as State, action: Action<any>): State {\n\treturn {\n\t\tdirtyHandlerIds: dirtyHandlerIds(state.dirtyHandlerIds, {\n\t\t\ttype: action.type,\n\t\t\tpayload: {\n\t\t\t\t...action.payload,\n\t\t\t\tprevTargetIds: get<string[]>(state, 'dragOperation.targetIds', []),\n\t\t\t},\n\t\t}),\n\t\tdragOffset: dragOffset(state.dragOffset, action),\n\t\trefCount: refCount(state.refCount, action),\n\t\tdragOperation: dragOperation(state.dragOperation, action),\n\t\tstateId: stateId(state.stateId),\n\t}\n}\n","import type { Store } from 'redux'\nimport { createStore } from 'redux'\n\nimport { DragDropManagerImpl } from './classes/DragDropManagerImpl.js'\nimport { DragDropMonitorImpl } from './classes/DragDropMonitorImpl.js'\nimport { HandlerRegistryImpl } from './classes/HandlerRegistryImpl.js'\nimport type { BackendFactory, DragDropManager } from './interfaces.js'\nimport type { State } from './reducers/index.js'\nimport { reduce } from './reducers/index.js'\n\nexport function createDragDropManager(\n\tbackendFactory: BackendFactory,\n\tglobalContext: unknown = undefined,\n\tbackendOptions: unknown = {},\n\tdebugMode = false,\n): DragDropManager {\n\tconst store = makeStoreInstance(debugMode)\n\tconst monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store))\n\tconst manager = new DragDropManagerImpl(store, monitor)\n\tconst backend = backendFactory(manager, globalContext, backendOptions)\n\tmanager.receiveBackend(backend)\n\treturn manager\n}\n\nfunction makeStoreInstance(debugMode: boolean): Store<State> {\n\t// TODO: if we ever make a react-native version of this,\n\t// we'll need to consider how to pull off dev-tooling\n\tconst reduxDevTools =\n\t\ttypeof window !== 'undefined' &&\n\t\t(window as any).__REDUX_DEVTOOLS_EXTENSION__\n\treturn createStore(\n\t\treduce,\n\t\tdebugMode &&\n\t\t\treduxDevTools &&\n\t\t\treduxDevTools({\n\t\t\t\tname: 'dnd-core',\n\t\t\t\tinstanceId: 'dnd-core',\n\t\t\t}),\n\t)\n}\n","import type { BackendFactory, DragDropManager } from 'dnd-core'\nimport { createDragDropManager } from 'dnd-core'\nimport type { FC, ReactNode } from 'react'\nimport { memo, useEffect } from 'react'\n\nimport { DndContext } from './DndContext.js'\n\nexport type DndProviderProps<BackendContext, BackendOptions> =\n\t| {\n\t\t\tchildren?: ReactNode\n\t\t\tmanager: DragDropManager\n\t }\n\t| {\n\t\t\tbackend: BackendFactory\n\t\t\tchildren?: ReactNode\n\t\t\tcontext?: BackendContext\n\t\t\toptions?: BackendOptions\n\t\t\tdebugMode?: boolean\n\t }\n\nlet refCount = 0\nconst INSTANCE_SYM = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__')\n\n/**\n * A React component that provides the React-DnD context\n */\nexport const DndProvider: FC<DndProviderProps<unknown, unknown>> = memo(\n\tfunction DndProvider({ children, ...props }) {\n\t\tconst [manager, isGlobalInstance] = getDndContextValue(props) // memoized from props\n\t\t/**\n\t\t * If the global context was used to store the DND context\n\t\t * then where theres no more references to it we should\n\t\t * clean it up to avoid memory leaks\n\t\t */\n\t\tuseEffect(() => {\n\t\t\tif (isGlobalInstance) {\n\t\t\t\tconst context = getGlobalContext()\n\t\t\t\t++refCount\n\n\t\t\t\treturn () => {\n\t\t\t\t\tif (--refCount === 0) {\n\t\t\t\t\t\tcontext[INSTANCE_SYM] = null\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn\n\t\t}, [])\n\n\t\treturn <DndContext.Provider value={manager}>{children}</DndContext.Provider>\n\t},\n)\n\nfunction getDndContextValue(props: DndProviderProps<unknown, unknown>) {\n\tif ('manager' in props) {\n\t\tconst manager = { dragDropManager: props.manager }\n\t\treturn [manager, false]\n\t}\n\n\tconst manager = createSingletonDndContext(\n\t\tprops.backend,\n\t\tprops.context,\n\t\tprops.options,\n\t\tprops.debugMode,\n\t)\n\tconst isGlobalInstance = !props.context\n\n\treturn [manager, isGlobalInstance]\n}\n\nfunction createSingletonDndContext<BackendContext, BackendOptions>(\n\tbackend: BackendFactory,\n\tcontext: BackendContext = getGlobalContext(),\n\toptions: BackendOptions,\n\tdebugMode?: boolean,\n) {\n\tconst ctx = context as any\n\tif (!ctx[INSTANCE_SYM]) {\n\t\tctx[INSTANCE_SYM] = {\n\t\t\tdragDropManager: createDragDropManager(\n\t\t\t\tbackend,\n\t\t\t\tcontext,\n\t\t\t\toptions,\n\t\t\t\tdebugMode,\n\t\t\t),\n\t\t}\n\t}\n\treturn ctx[INSTANCE_SYM]\n}\n\ndeclare const global: any\nfunction getGlobalContext() {\n\treturn typeof global !== 'undefined' ? global : (window as any)\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import { useEffect, useLayoutEffect } from 'react'\n\n// suppress the useLayoutEffect warning on server side.\nexport const useIsomorphicLayoutEffect =\n\ttypeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import equal from 'fast-deep-equal'\nimport { useCallback, useState } from 'react'\n\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js'\n\n/**\n *\n * @param monitor The monitor to collect state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */\nexport function useCollector<T, S>(\n\tmonitor: T,\n\tcollect: (monitor: T) => S,\n\tonUpdate?: () => void,\n): [S, () => void] {\n\tconst [collected, setCollected] = useState(() => collect(monitor))\n\n\tconst updateCollected = useCallback(() => {\n\t\tconst nextValue = collect(monitor)\n\t\t// This needs to be a deep-equality check because some monitor-collected values\n\t\t// include XYCoord objects that may be equivalent, but do not have instance equality.\n\t\tif (!equal(collected, nextValue)) {\n\t\t\tsetCollected(nextValue)\n\t\t\tif (onUpdate) {\n\t\t\t\tonUpdate()\n\t\t\t}\n\t\t}\n\t}, [collected, monitor, onUpdate])\n\n\t// update the collected properties after react renders.\n\t// Note that the \"Dustbin Stress Test\" fails if this is not\n\t// done when the component updates\n\tuseIsomorphicLayoutEffect(updateCollected)\n\n\treturn [collected, updateCollected]\n}\n","import type { HandlerManager, MonitorEventEmitter } from '../types/index.js'\nimport { useCollector } from './useCollector.js'\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js'\n\nexport function useMonitorOutput<Monitor extends HandlerManager, Collected>(\n\tmonitor: Monitor & MonitorEventEmitter,\n\tcollect: (monitor: Monitor) => Collected,\n\tonCollect?: () => void,\n): Collected {\n\tconst [collected, updateCollected] = useCollector(monitor, collect, onCollect)\n\n\tuseIsomorphicLayoutEffect(\n\t\tfunction subscribeToMonitorStateChange() {\n\t\t\tconst handlerId = monitor.getHandlerId()\n\t\t\tif (handlerId == null) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\treturn monitor.subscribeToStateChange(updateCollected, {\n\t\t\t\thandlerIds: [handlerId],\n\t\t\t})\n\t\t},\n\t\t[monitor, updateCollected],\n\t)\n\n\treturn collected\n}\n","import type { Connector } from '../internals/index.js'\nimport type { HandlerManager, MonitorEventEmitter } from '../types/index.js'\nimport { useMonitorOutput } from './useMonitorOutput.js'\n\nexport function useCollectedProps<Collected, Monitor extends HandlerManager>(\n\tcollector: ((monitor: Monitor) => Collected) | undefined,\n\tmonitor: Monitor & MonitorEventEmitter,\n\tconnector: Connector,\n) {\n\treturn useMonitorOutput(monitor, collector || (() => ({} as Collected)), () =>\n\t\tconnector.reconnect(),\n\t)\n}\n","import { useMemo } from 'react'\n\nimport type { FactoryOrInstance } from './types.js'\n\nexport function useOptionalFactory<T>(\n\targ: FactoryOrInstance<T>,\n\tdeps?: unknown[],\n): T {\n\tconst memoDeps = [...(deps || [])]\n\tif (deps == null && typeof arg !== 'function') {\n\t\tmemoDeps.push(arg)\n\t}\n\treturn useMemo<T>(() => {\n\t\treturn typeof arg === 'function' ? (arg as () => T)() : (arg as T)\n\t}, memoDeps)\n}\n","import { useMemo } from 'react'\n\nimport type { SourceConnector } from '../../internals/index.js'\n\nexport function useConnectDragSource(connector: SourceConnector) {\n\treturn useMemo(() => connector.hooks.dragSource(), [connector])\n}\n\nexport function useConnectDragPreview(connector: SourceConnector) {\n\treturn useMemo(() => connector.hooks.dragPreview(), [connector])\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type {\n\tDragDropManager,\n\tDragDropMonitor,\n\tIdentifier,\n\tListener,\n\tUnsubscribe,\n\tXYCoord,\n} from 'dnd-core'\n\nimport type { DragSourceMonitor } from '../types/index.js'\n\nlet isCallingCanDrag = false\nlet isCallingIsDragging = false\n\nexport class DragSourceMonitorImpl implements DragSourceMonitor {\n\tprivate internalMonitor: DragDropMonitor\n\tprivate sourceId: Identifier | null = null\n\n\tpublic constructor(manager: DragDropManager) {\n\t\tthis.internalMonitor = manager.getMonitor()\n\t}\n\n\tpublic receiveHandlerId(sourceId: Identifier | null): void {\n\t\tthis.sourceId = sourceId\n\t}\n\n\tpublic getHandlerId(): Identifier | null {\n\t\treturn this.sourceId\n\t}\n\n\tpublic canDrag(): boolean {\n\t\tinvariant(\n\t\t\t!isCallingCanDrag,\n\t\t\t'You may not call monitor.canDrag() inside your canDrag() implementation. ' +\n\t\t\t\t'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor',\n\t\t)\n\n\t\ttry {\n\t\t\tisCallingCanDrag = true\n\t\t\treturn this.internalMonitor.canDragSource(this.sourceId as Identifier)\n\t\t} finally {\n\t\t\tisCallingCanDrag = false\n\t\t}\n\t}\n\n\tpublic isDragging(): boolean {\n\t\tif (!this.sourceId) {\n\t\t\treturn false\n\t\t}\n\t\tinvariant(\n\t\t\t!isCallingIsDragging,\n\t\t\t'You may not call monitor.isDragging() inside your isDragging() implementation. ' +\n\t\t\t\t'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor',\n\t\t)\n\n\t\ttry {\n\t\t\tisCallingIsDragging = true\n\t\t\treturn this.internalMonitor.isDraggingSource(this.sourceId)\n\t\t} finally {\n\t\t\tisCallingIsDragging = false\n\t\t}\n\t}\n\n\tpublic subscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions?: { handlerIds?: Identifier[] },\n\t): Unsubscribe {\n\t\treturn this.internalMonitor.subscribeToStateChange(listener, options)\n\t}\n\n\tpublic isDraggingSource(sourceId: Identifier): boolean {\n\t\treturn this.internalMonitor.isDraggingSource(sourceId)\n\t}\n\n\tpublic isOverTarget(\n\t\ttargetId: Identifier,\n\t\toptions?: { shallow: boolean },\n\t): boolean {\n\t\treturn this.internalMonitor.isOverTarget(targetId, options)\n\t}\n\n\tpublic getTargetIds(): Identifier[] {\n\t\treturn this.internalMonitor.getTargetIds()\n\t}\n\n\tpublic isSourcePublic(): boolean | null {\n\t\treturn this.internalMonitor.isSourcePublic()\n\t}\n\n\tpublic getSourceId(): Identifier | null {\n\t\treturn this.internalMonitor.getSourceId()\n\t}\n\n\tpublic subscribeToOffsetChange(listener: Listener): Unsubscribe {\n\t\treturn this.internalMonitor.subscribeToOffsetChange(listener)\n\t}\n\n\tpublic canDragSource(sourceId: Identifier): boolean {\n\t\treturn this.internalMonitor.canDragSource(sourceId)\n\t}\n\n\tpublic canDropOnTarget(targetId: Identifier): boolean {\n\t\treturn this.internalMonitor.canDropOnTarget(targetId)\n\t}\n\n\tpublic getItemType(): Identifier | null {\n\t\treturn this.internalMonitor.getItemType()\n\t}\n\n\tpublic getItem(): any {\n\t\treturn this.internalMonitor.getItem()\n\t}\n\n\tpublic getDropResult(): any {\n\t\treturn this.internalMonitor.getDropResult()\n\t}\n\n\tpublic didDrop(): boolean {\n\t\treturn this.internalMonitor.didDrop()\n\t}\n\n\tpublic getInitialClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialClientOffset()\n\t}\n\n\tpublic getInitialSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialSourceClientOffset()\n\t}\n\n\tpublic getSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getSourceClientOffset()\n\t}\n\n\tpublic getClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getClientOffset()\n\t}\n\n\tpublic getDifferenceFromInitialOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getDifferenceFromInitialOffset()\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type {\n\tDragDropManager,\n\tDragDropMonitor,\n\tIdentifier,\n\tListener,\n\tUnsubscribe,\n\tXYCoord,\n} from 'dnd-core'\n\nimport type { DropTargetMonitor } from '../types/index.js'\n\nlet isCallingCanDrop = false\n\nexport class DropTargetMonitorImpl implements DropTargetMonitor {\n\tprivate internalMonitor: DragDropMonitor\n\tprivate targetId: Identifier | null = null\n\n\tpublic constructor(manager: DragDropManager) {\n\t\tthis.internalMonitor = manager.getMonitor()\n\t}\n\n\tpublic receiveHandlerId(targetId: Identifier | null): void {\n\t\tthis.targetId = targetId\n\t}\n\n\tpublic getHandlerId(): Identifier | null {\n\t\treturn this.targetId\n\t}\n\n\tpublic subscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions?: { handlerIds?: Identifier[] },\n\t): Unsubscribe {\n\t\treturn this.internalMonitor.subscribeToStateChange(listener, options)\n\t}\n\n\tpublic canDrop(): boolean {\n\t\t// Cut out early if the target id has not been set. This should prevent errors\n\t\t// where the user has an older version of dnd-core like in\n\t\t// https://github.com/react-dnd/react-dnd/issues/1310\n\t\tif (!this.targetId) {\n\t\t\treturn false\n\t\t}\n\t\tinvariant(\n\t\t\t!isCallingCanDrop,\n\t\t\t'You may not call monitor.canDrop() inside your canDrop() implementation. ' +\n\t\t\t\t'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor',\n\t\t)\n\n\t\ttry {\n\t\t\tisCallingCanDrop = true\n\t\t\treturn this.internalMonitor.canDropOnTarget(this.targetId)\n\t\t} finally {\n\t\t\tisCallingCanDrop = false\n\t\t}\n\t}\n\n\tpublic isOver(options?: { shallow?: boolean }): boolean {\n\t\tif (!this.targetId) {\n\t\t\treturn false\n\t\t}\n\t\treturn this.internalMonitor.isOverTarget(this.targetId, options)\n\t}\n\n\tpublic getItemType(): Identifier | null {\n\t\treturn this.internalMonitor.getItemType()\n\t}\n\n\tpublic getItem(): any {\n\t\treturn this.internalMonitor.getItem()\n\t}\n\n\tpublic getDropResult(): any {\n\t\treturn this.internalMonitor.getDropResult()\n\t}\n\n\tpublic didDrop(): boolean {\n\t\treturn this.internalMonitor.didDrop()\n\t}\n\n\tpublic getInitialClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialClientOffset()\n\t}\n\n\tpublic getInitialSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialSourceClientOffset()\n\t}\n\n\tpublic getSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getSourceClientOffset()\n\t}\n\n\tpublic getClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getClientOffset()\n\t}\n\n\tpublic getDifferenceFromInitialOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getDifferenceFromInitialOffset()\n\t}\n}\n","import type {\n\tDragDropManager,\n\tDragSource,\n\tDropTarget,\n\tIdentifier,\n\tSourceType,\n\tTargetType,\n\tUnsubscribe,\n} from 'dnd-core'\n\nexport function registerTarget(\n\ttype: TargetType,\n\ttarget: DropTarget,\n\tmanager: DragDropManager,\n): [Identifier, Unsubscribe] {\n\tconst registry = manager.getRegistry()\n\tconst targetId = registry.addTarget(type, target)\n\n\treturn [targetId, () => registry.removeTarget(targetId)]\n}\n\nexport function registerSource(\n\ttype: SourceType,\n\tsource: DragSource,\n\tmanager: DragDropManager,\n): [Identifier, Unsubscribe] {\n\tconst registry = manager.getRegistry()\n\tconst sourceId = registry.addSource(type, source)\n\n\treturn [sourceId, () => registry.removeSource(sourceId)]\n}\n","export function shallowEqual<T>(\n\tobjA: T,\n\tobjB: T,\n\tcompare?: (a: T, b: T, key?: string) => boolean | void,\n\tcompareContext?: any,\n) {\n\tlet compareResult = compare\n\t\t? compare.call(compareContext, objA, objB)\n\t\t: void 0\n\tif (compareResult !== void 0) {\n\t\treturn !!compareResult\n\t}\n\n\tif (objA === objB) {\n\t\treturn true\n\t}\n\n\tif (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n\t\treturn false\n\t}\n\n\tconst keysA = Object.keys(objA)\n\tconst keysB = Object.keys(objB)\n\n\tif (keysA.length !== keysB.length) {\n\t\treturn false\n\t}\n\n\tconst bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB)\n\n\t// Test for A's keys different from B.\n\tfor (let idx = 0; idx < keysA.length; idx++) {\n\t\tconst key = keysA[idx] as string\n\n\t\tif (!bHasOwnProperty(key)) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst valueA = (objA as any)[key]\n\t\tconst valueB = (objB as any)[key]\n\n\t\tcompareResult = compare\n\t\t\t? compare.call(compareContext, valueA, valueB, key)\n\t\t\t: void 0\n\n\t\tif (\n\t\t\tcompareResult === false ||\n\t\t\t(compareResult === void 0 && valueA !== valueB)\n\t\t) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n","export interface Ref<T> {\n\tcurrent: T\n}\n\nexport function isRef(obj: unknown): boolean {\n\treturn (\n\t\t// eslint-disable-next-line no-prototype-builtins\n\t\tobj !== null &&\n\t\ttypeof obj === 'object' &&\n\t\tObject.prototype.hasOwnProperty.call(obj, 'current')\n\t)\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { ReactElement } from 'react'\nimport { cloneElement, isValidElement } from 'react'\n\nfunction throwIfCompositeComponentElement(element: ReactElement<any>) {\n\t// Custom components can no longer be wrapped directly in React DnD 2.0\n\t// so that we don't need to depend on findDOMNode() from react-dom.\n\tif (typeof element.type === 'string') {\n\t\treturn\n\t}\n\n\tconst displayName =\n\t\t(element.type as any).displayName || element.type.name || 'the component'\n\n\tthrow new Error(\n\t\t'Only native element nodes can now be passed to React DnD connectors.' +\n\t\t\t`You can either wrap ${displayName} into a <div>, or turn it into a ` +\n\t\t\t'drag source or a drop target itself.',\n\t)\n}\n\nfunction wrapHookToRecognizeElement(hook: (node: any, options: any) => void) {\n\treturn (elementOrNode = null, options = null) => {\n\t\t// When passed a node, call the hook straight away.\n\t\tif (!isValidElement(elementOrNode)) {\n\t\t\tconst node = elementOrNode\n\t\t\thook(node, options)\n\t\t\t// return the node so it can be chained (e.g. when within callback refs\n\t\t\t// <div ref={node => connectDragSource(connectDropTarget(node))}/>\n\t\t\treturn node\n\t\t}\n\n\t\t// If passed a ReactElement, clone it and attach this function as a ref.\n\t\t// This helps us achieve a neat API where user doesn't even know that refs\n\t\t// are being used under the hood.\n\t\tconst element: ReactElement | null = elementOrNode\n\t\tthrowIfCompositeComponentElement(element as any)\n\n\t\t// When no options are passed, use the hook directly\n\t\tconst ref = options ? (node: Element) => hook(node, options) : hook\n\t\treturn cloneWithRef(element, ref)\n\t}\n}\n\nexport function wrapConnectorHooks(hooks: any) {\n\tconst wrappedHooks: any = {}\n\n\tObject.keys(hooks).forEach((key) => {\n\t\tconst hook = hooks[key]\n\n\t\t// ref objects should be passed straight through without wrapping\n\t\tif (key.endsWith('Ref')) {\n\t\t\twrappedHooks[key] = hooks[key]\n\t\t} else {\n\t\t\tconst wrappedHook = wrapHookToRecognizeElement(hook)\n\t\t\twrappedHooks[key] = () => wrappedHook\n\t\t}\n\t})\n\n\treturn wrappedHooks\n}\n\nfunction setRef(ref: any, node: any) {\n\tif (typeof ref === 'function') {\n\t\tref(node)\n\t} else {\n\t\tref.current = node\n\t}\n}\n\nfunction cloneWithRef(element: any, newRef: any): ReactElement<any> {\n\tconst previousRef = element.ref\n\tinvariant(\n\t\ttypeof previousRef !== 'string',\n\t\t'Cannot connect React DnD to an element with an existing string ref. ' +\n\t\t\t'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' +\n\t\t\t'Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs',\n\t)\n\n\tif (!previousRef) {\n\t\t// When there is no ref on the element, use the new ref directly\n\t\treturn cloneElement(element, {\n\t\t\tref: newRef,\n\t\t})\n\t} else {\n\t\treturn cloneElement(element, {\n\t\t\tref: (node: any) => {\n\t\t\t\tsetRef(previousRef, node)\n\t\t\t\tsetRef(newRef, node)\n\t\t\t},\n\t\t})\n\t}\n}\n","import { shallowEqual } from '@react-dnd/shallowequal'\nimport type { Backend, Identifier, Unsubscribe } from 'dnd-core'\nimport type { ReactElement, Ref, RefObject } from 'react'\n\nimport type { DragPreviewOptions, DragSourceOptions } from '../types/index.js'\nimport { isRef } from './isRef.js'\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js'\n\nexport interface Connector {\n\thooks: any\n\tconnectTarget: any\n\treceiveHandlerId(handlerId: Identifier | null): void\n\treconnect(): void\n}\n\nexport class SourceConnector implements Connector {\n\tpublic hooks = wrapConnectorHooks({\n\t\tdragSource: (\n\t\t\tnode: Element | ReactElement | Ref<any>,\n\t\t\toptions?: DragSourceOptions,\n\t\t) => {\n\t\t\tthis.clearDragSource()\n\t\t\tthis.dragSourceOptions = options || null\n\t\t\tif (isRef(node)) {\n\t\t\t\tthis.dragSourceRef = node as RefObject<any>\n\t\t\t} else {\n\t\t\t\tthis.dragSourceNode = node\n\t\t\t}\n\t\t\tthis.reconnectDragSource()\n\t\t},\n\t\tdragPreview: (node: any, options?: DragPreviewOptions) => {\n\t\t\tthis.clearDragPreview()\n\t\t\tthis.dragPreviewOptions = options || null\n\t\t\tif (isRef(node)) {\n\t\t\t\tthis.dragPreviewRef = node\n\t\t\t} else {\n\t\t\t\tthis.dragPreviewNode = node\n\t\t\t}\n\t\t\tthis.reconnectDragPreview()\n\t\t},\n\t})\n\tprivate handlerId: Identifier | null = null\n\n\t// The drop target may either be attached via ref or connect function\n\tprivate dragSourceRef: RefObject<any> | null = null\n\tprivate dragSourceNode: any\n\tprivate dragSourceOptionsInternal: DragSourceOptions | null = null\n\tprivate dragSourceUnsubscribe: Unsubscribe | undefined\n\n\t// The drag preview may either be attached via ref or connect function\n\tprivate dragPreviewRef: RefObject<any> | null = null\n\tprivate dragPreviewNode: any\n\tprivate dragPreviewOptionsInternal: DragPreviewOptions | null = null\n\tprivate dragPreviewUnsubscribe: Unsubscribe | undefined\n\n\tprivate lastConnectedHandlerId: Identifier | null = null\n\tprivate lastConnectedDragSource: any = null\n\tprivate lastConnectedDragSourceOptions: any = null\n\tprivate lastConnectedDragPreview: any = null\n\tprivate lastConnectedDragPreviewOptions: any = null\n\n\tprivate readonly backend: Backend\n\n\tpublic constructor(backend: Backend) {\n\t\tthis.backend = backend\n\t}\n\n\tpublic receiveHandlerId(newHandlerId: Identifier | null): void {\n\t\tif (this.handlerId === newHandlerId) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.handlerId = newHandlerId\n\t\tthis.reconnect()\n\t}\n\n\tpublic get connectTarget(): any {\n\t\treturn this.dragSource\n\t}\n\n\tpublic get dragSourceOptions(): DragSourceOptions | null {\n\t\treturn this.dragSourceOptionsInternal\n\t}\n\tpublic set dragSourceOptions(options: DragSourceOptions | null) {\n\t\tthis.dragSourceOptionsInternal = options\n\t}\n\n\tpublic get dragPreviewOptions(): DragPreviewOptions | null {\n\t\treturn this.dragPreviewOptionsInternal\n\t}\n\n\tpublic set dragPreviewOptions(options: DragPreviewOptions | null) {\n\t\tthis.dragPreviewOptionsInternal = options\n\t}\n\n\tpublic reconnect(): void {\n\t\tconst didChange = this.reconnectDragSource()\n\t\tthis.reconnectDragPreview(didChange)\n\t}\n\n\tprivate reconnectDragSource(): boolean {\n\t\tconst dragSource = this.dragSource\n\t\t// if nothing has changed then don't resubscribe\n\t\tconst didChange =\n\t\t\tthis.didHandlerIdChange() ||\n\t\t\tthis.didConnectedDragSourceChange() ||\n\t\t\tthis.didDragSourceOptionsChange()\n\n\t\tif (didChange) {\n\t\t\tthis.disconnectDragSource()\n\t\t}\n\n\t\tif (!this.handlerId) {\n\t\t\treturn didChange\n\t\t}\n\t\tif (!dragSource) {\n\t\t\tthis.lastConnectedDragSource = dragSource\n\t\t\treturn didChange\n\t\t}\n\n\t\tif (didChange) {\n\t\t\tthis.lastConnectedHandlerId = this.handlerId\n\t\t\tthis.lastConnectedDragSource = dragSource\n\t\t\tthis.lastConnectedDragSourceOptions = this.dragSourceOptions\n\t\t\tthis.dragSourceUnsubscribe = this.backend.connectDragSource(\n\t\t\t\tthis.handlerId,\n\t\t\t\tdragSource,\n\t\t\t\tthis.dragSourceOptions,\n\t\t\t)\n\t\t}\n\t\treturn didChange\n\t}\n\n\tprivate reconnectDragPreview(forceDidChange = false): void {\n\t\tconst dragPreview = this.dragPreview\n\t\t// if nothing has changed then don't resubscribe\n\t\tconst didChange =\n\t\t\tforceDidChange ||\n\t\t\tthis.didHandlerIdChange() ||\n\t\t\tthis.didConnectedDragPreviewChange() ||\n\t\t\tthis.didDragPreviewOptionsChange()\n\n\t\tif (didChange) {\n\t\t\tthis.disconnectDragPreview()\n\t\t}\n\n\t\tif (!this.handlerId) {\n\t\t\treturn\n\t\t}\n\t\tif (!dragPreview) {\n\t\t\tthis.lastConnectedDragPreview = dragPreview\n\t\t\treturn\n\t\t}\n\n\t\tif (didChange) {\n\t\t\tthis.lastConnectedHandlerId = this.handlerId\n\t\t\tthis.lastConnectedDragPreview = dragPreview\n\t\t\tthis.lastConnectedDragPreviewOptions = this.dragPreviewOptions\n\t\t\tthis.dragPreviewUnsubscribe = this.backend.connectDragPreview(\n\t\t\t\tthis.handlerId,\n\t\t\t\tdragPreview,\n\t\t\t\tthis.dragPreviewOptions,\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate didHandlerIdChange(): boolean {\n\t\treturn this.lastConnectedHandlerId !== this.handlerId\n\t}\n\n\tprivate didConnectedDragSourceChange(): boolean {\n\t\treturn this.lastConnectedDragSource !== this.dragSource\n\t}\n\n\tprivate didConnectedDragPreviewChange(): boolean {\n\t\treturn this.lastConnectedDragPreview !== this.dragPreview\n\t}\n\n\tprivate didDragSourceOptionsChange(): boolean {\n\t\treturn !shallowEqual(\n\t\t\tthis.lastConnectedDragSourceOptions,\n\t\t\tthis.dragSourceOptions,\n\t\t)\n\t}\n\n\tprivate didDragPreviewOptionsChange(): boolean {\n\t\treturn !shallowEqual(\n\t\t\tthis.lastConnectedDragPreviewOptions,\n\t\t\tthis.dragPreviewOptions,\n\t\t)\n\t}\n\n\tpublic disconnectDragSource() {\n\t\tif (this.dragSourceUnsubscribe) {\n\t\t\tthis.dragSourceUnsubscribe()\n\t\t\tthis.dragSourceUnsubscribe = undefined\n\t\t}\n\t}\n\n\tpublic disconnectDragPreview() {\n\t\tif (this.dragPreviewUnsubscribe) {\n\t\t\tthis.dragPreviewUnsubscribe()\n\t\t\tthis.dragPreviewUnsubscribe = undefined\n\t\t\tthis.dragPreviewNode = null\n\t\t\tthis.dragPreviewRef = null\n\t\t}\n\t}\n\n\tprivate get dragSource() {\n\t\treturn (\n\t\t\tthis.dragSourceNode || (this.dragSourceRef && this.dragSourceRef.current)\n\t\t)\n\t}\n\n\tprivate get dragPreview() {\n\t\treturn (\n\t\t\tthis.dragPreviewNode ||\n\t\t\t(this.dragPreviewRef && this.dragPreviewRef.current)\n\t\t)\n\t}\n\n\tprivate clearDragSource() {\n\t\tthis.dragSourceNode = null\n\t\tthis.dragSourceRef = null\n\t}\n\n\tprivate clearDragPreview() {\n\t\tthis.dragPreviewNode = null\n\t\tthis.dragPreviewRef = null\n\t}\n}\n","import { shallowEqual } from '@react-dnd/shallowequal'\nimport type { Backend, Identifier, Unsubscribe } from 'dnd-core'\nimport type { RefObject } from 'react'\n\nimport type { DropTargetOptions } from '../types/index.js'\nimport { isRef } from './isRef.js'\nimport type { Connector } from './SourceConnector.js'\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js'\n\nexport class TargetConnector implements Connector {\n\tpublic hooks = wrapConnectorHooks({\n\t\tdropTarget: (node: any, options: DropTargetOptions) => {\n\t\t\tthis.clearDropTarget()\n\t\t\tthis.dropTargetOptions = options\n\t\t\tif (isRef(node)) {\n\t\t\t\tthis.dropTargetRef = node\n\t\t\t} else {\n\t\t\t\tthis.dropTargetNode = node\n\t\t\t}\n\t\t\tthis.reconnect()\n\t\t},\n\t})\n\n\tprivate handlerId: Identifier | null = null\n\t// The drop target may either be attached via ref or connect function\n\tprivate dropTargetRef: RefObject<any> | null = null\n\tprivate dropTargetNode: any\n\tprivate dropTargetOptionsInternal: DropTargetOptions | null = null\n\tprivate unsubscribeDropTarget: Unsubscribe | undefined\n\n\tprivate lastConnectedHandlerId: Identifier | null = null\n\tprivate lastConnectedDropTarget: any = null\n\tprivate lastConnectedDropTargetOptions: DropTargetOptions | null = null\n\tprivate readonly backend: Backend\n\n\tpublic constructor(backend: Backend) {\n\t\tthis.backend = backend\n\t}\n\n\tpublic get connectTarget(): any {\n\t\treturn this.dropTarget\n\t}\n\n\tpublic reconnect(): void {\n\t\t// if nothing has changed then don't resubscribe\n\t\tconst didChange =\n\t\t\tthis.didHandlerIdChange() ||\n\t\t\tthis.didDropTargetChange() ||\n\t\t\tthis.didOptionsChange()\n\n\t\tif (didChange) {\n\t\t\tthis.disconnectDropTarget()\n\t\t}\n\n\t\tconst dropTarget = this.dropTarget\n\t\tif (!this.handlerId) {\n\t\t\treturn\n\t\t}\n\t\tif (!dropTarget) {\n\t\t\tthis.lastConnectedDropTarget = dropTarget\n\t\t\treturn\n\t\t}\n\n\t\tif (didChange) {\n\t\t\tthis.lastConnectedHandlerId = this.handlerId\n\t\t\tthis.lastConnectedDropTarget = dropTarget\n\t\t\tthis.lastConnectedDropTargetOptions = this.dropTargetOptions\n\n\t\t\tthis.unsubscribeDropTarget = this.backend.connectDropTarget(\n\t\t\t\tthis.handlerId,\n\t\t\t\tdropTarget,\n\t\t\t\tthis.dropTargetOptions,\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic receiveHandlerId(newHandlerId: Identifier | null): void {\n\t\tif (newHandlerId === this.handlerId) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.handlerId = newHandlerId\n\t\tthis.reconnect()\n\t}\n\n\tpublic get dropTargetOptions(): DropTargetOptions {\n\t\treturn this.dropTargetOptionsInternal\n\t}\n\tpublic set dropTargetOptions(options: DropTargetOptions) {\n\t\tthis.dropTargetOptionsInternal = options\n\t}\n\n\tprivate didHandlerIdChange(): boolean {\n\t\treturn this.lastConnectedHandlerId !== this.handlerId\n\t}\n\n\tprivate didDropTargetChange(): boolean {\n\t\treturn this.lastConnectedDropTarget !== this.dropTarget\n\t}\n\n\tprivate didOptionsChange(): boolean {\n\t\treturn !shallowEqual(\n\t\t\tthis.lastConnectedDropTargetOptions,\n\t\t\tthis.dropTargetOptions,\n\t\t)\n\t}\n\n\tpublic disconnectDropTarget() {\n\t\tif (this.unsubscribeDropTarget) {\n\t\t\tthis.unsubscribeDropTarget()\n\t\t\tthis.unsubscribeDropTarget = undefined\n\t\t}\n\t}\n\n\tprivate get dropTarget() {\n\t\treturn (\n\t\t\tthis.dropTargetNode || (this.dropTargetRef && this.dropTargetRef.current)\n\t\t)\n\t}\n\n\tprivate clearDropTarget() {\n\t\tthis.dropTargetRef = null\n\t\tthis.dropTargetNode = null\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { DragDropManager } from 'dnd-core'\nimport { useContext } from 'react'\n\nimport { DndContext } from '../core/index.js'\n\n/**\n * A hook to retrieve the DragDropManager from Context\n */\nexport function useDragDropManager(): DragDropManager {\n\tconst { dragDropManager } = useContext(DndContext)\n\tinvariant(dragDropManager != null, 'Expected drag drop context')\n\treturn dragDropManager as DragDropManager\n}\n","import { useMemo } from 'react'\n\nimport { SourceConnector } from '../../internals/index.js'\nimport type {\n\tDragPreviewOptions,\n\tDragSourceOptions,\n} from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\n\nexport function useDragSourceConnector(\n\tdragSourceOptions: DragSourceOptions | undefined,\n\tdragPreviewOptions: DragPreviewOptions | undefined,\n): SourceConnector {\n\tconst manager = useDragDropManager()\n\tconst connector = useMemo(\n\t\t() => new SourceConnector(manager.getBackend()),\n\t\t[manager],\n\t)\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconnector.dragSourceOptions = dragSourceOptions || null\n\t\tconnector.reconnect()\n\t\treturn () => connector.disconnectDragSource()\n\t}, [connector, dragSourceOptions])\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconnector.dragPreviewOptions = dragPreviewOptions || null\n\t\tconnector.reconnect()\n\t\treturn () => connector.disconnectDragPreview()\n\t}, [connector, dragPreviewOptions])\n\treturn connector\n}\n","import { useMemo } from 'react'\n\nimport { DragSourceMonitorImpl } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\n\nexport function useDragSourceMonitor<O, R>(): DragSourceMonitor<O, R> {\n\tconst manager = useDragDropManager()\n\treturn useMemo<DragSourceMonitor<O, R>>(\n\t\t() => new DragSourceMonitorImpl(manager),\n\t\t[manager],\n\t)\n}\n","import type { DragDropMonitor, DragSource, Identifier } from 'dnd-core'\n\nimport type { Connector } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport type { DragObjectFactory, DragSourceHookSpec } from '../types.js'\n\nexport class DragSourceImpl<O, R, P> implements DragSource {\n\tpublic constructor(\n\t\tpublic spec: DragSourceHookSpec<O, R, P>,\n\t\tprivate monitor: DragSourceMonitor<O, R>,\n\t\tprivate connector: Connector,\n\t) {}\n\n\tpublic beginDrag() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\n\t\tlet result: O | null = null\n\t\tif (typeof spec.item === 'object') {\n\t\t\tresult = spec.item as O\n\t\t} else if (typeof spec.item === 'function') {\n\t\t\tresult = (spec.item as DragObjectFactory<O>)(monitor)\n\t\t} else {\n\t\t\tresult = {} as O\n\t\t}\n\t\treturn result ?? null\n\t}\n\n\tpublic canDrag() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tif (typeof spec.canDrag === 'boolean') {\n\t\t\treturn spec.canDrag\n\t\t} else if (typeof spec.canDrag === 'function') {\n\t\t\treturn spec.canDrag(monitor)\n\t\t} else {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tpublic isDragging(globalMonitor: DragDropMonitor, target: Identifier) {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tconst { isDragging } = spec\n\t\treturn isDragging\n\t\t\t? isDragging(monitor)\n\t\t\t: target === globalMonitor.getSourceId()\n\t}\n\n\tpublic endDrag() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tconst connector = this.connector\n\t\tconst { end } = spec\n\t\tif (end) {\n\t\t\tend(monitor.getItem(), monitor)\n\t\t}\n\t\tconnector.reconnect()\n\t}\n}\n","import { useEffect, useMemo } from 'react'\n\nimport type { Connector } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport type { DragSourceHookSpec } from '../types.js'\nimport { DragSourceImpl } from './DragSourceImpl.js'\n\nexport function useDragSource<O, R, P>(\n\tspec: DragSourceHookSpec<O, R, P>,\n\tmonitor: DragSourceMonitor<O, R>,\n\tconnector: Connector,\n) {\n\tconst handler = useMemo(\n\t\t() => new DragSourceImpl(spec, monitor, connector),\n\t\t[monitor, connector],\n\t)\n\tuseEffect(() => {\n\t\thandler.spec = spec\n\t}, [spec])\n\treturn handler\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { Identifier } from 'dnd-core'\nimport { useMemo } from 'react'\n\nimport type { DragSourceHookSpec } from '../types.js'\n\nexport function useDragType(\n\tspec: DragSourceHookSpec<any, any, any>,\n): Identifier {\n\treturn useMemo(() => {\n\t\tconst result: Identifier = spec.type\n\t\tinvariant(result != null, 'spec.type must be defined')\n\t\treturn result\n\t}, [spec])\n}\n","import type { SourceConnector } from '../../internals/index.js'\nimport { registerSource } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport type { DragSourceHookSpec } from '../types.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\nimport { useDragSource } from './useDragSource.js'\nimport { useDragType } from './useDragType.js'\n\nexport function useRegisteredDragSource<O, R, P>(\n\tspec: DragSourceHookSpec<O, R, P>,\n\tmonitor: DragSourceMonitor<O, R>,\n\tconnector: SourceConnector,\n): void {\n\tconst manager = useDragDropManager()\n\tconst handler = useDragSource(spec, monitor, connector)\n\tconst itemType = useDragType(spec)\n\n\tuseIsomorphicLayoutEffect(\n\t\tfunction registerDragSource() {\n\t\t\tif (itemType != null) {\n\t\t\t\tconst [handlerId, unregister] = registerSource(\n\t\t\t\t\titemType,\n\t\t\t\t\thandler,\n\t\t\t\t\tmanager,\n\t\t\t\t)\n\t\t\t\tmonitor.receiveHandlerId(handlerId)\n\t\t\t\tconnector.receiveHandlerId(handlerId)\n\t\t\t\treturn unregister\n\t\t\t}\n\t\t\treturn\n\t\t},\n\t\t[manager, monitor, connector, handler, itemType],\n\t)\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tConnectDragPreview,\n\tConnectDragSource,\n} from '../../types/index.js'\nimport type { DragSourceHookSpec, FactoryOrInstance } from '../types.js'\nimport { useCollectedProps } from '../useCollectedProps.js'\nimport { useOptionalFactory } from '../useOptionalFactory.js'\nimport { useConnectDragPreview, useConnectDragSource } from './connectors.js'\nimport { useDragSourceConnector } from './useDragSourceConnector.js'\nimport { useDragSourceMonitor } from './useDragSourceMonitor.js'\nimport { useRegisteredDragSource } from './useRegisteredDragSource.js'\n\n/**\n * useDragSource hook\n * @param sourceSpec The drag source specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\nexport function useDrag<\n\tDragObject = unknown,\n\tDropResult = unknown,\n\tCollectedProps = unknown,\n>(\n\tspecArg: FactoryOrInstance<\n\t\tDragSourceHookSpec<DragObject, DropResult, CollectedProps>\n\t>,\n\tdeps?: unknown[],\n): [CollectedProps, ConnectDragSource, ConnectDragPreview] {\n\tconst spec = useOptionalFactory(specArg, deps)\n\tinvariant(\n\t\t!(spec as any).begin,\n\t\t`useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)`,\n\t)\n\n\tconst monitor = useDragSourceMonitor<DragObject, DropResult>()\n\tconst connector = useDragSourceConnector(spec.options, spec.previewOptions)\n\tuseRegisteredDragSource(spec, monitor, connector)\n\n\treturn [\n\t\tuseCollectedProps(spec.collect, monitor, connector),\n\t\tuseConnectDragSource(connector),\n\t\tuseConnectDragPreview(connector),\n\t]\n}\n","import { useMemo } from 'react'\n\nimport type { TargetConnector } from '../../internals/index.js'\n\nexport function useConnectDropTarget(connector: TargetConnector) {\n\treturn useMemo(() => connector.hooks.dropTarget(), [connector])\n}\n","import { useMemo } from 'react'\n\nimport { TargetConnector } from '../../internals/index.js'\nimport type { DropTargetOptions } from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\n\nexport function useDropTargetConnector(\n\toptions: DropTargetOptions,\n): TargetConnector {\n\tconst manager = useDragDropManager()\n\tconst connector = useMemo(\n\t\t() => new TargetConnector(manager.getBackend()),\n\t\t[manager],\n\t)\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconnector.dropTargetOptions = options || null\n\t\tconnector.reconnect()\n\t\treturn () => connector.disconnectDropTarget()\n\t}, [options])\n\treturn connector\n}\n","import { useMemo } from 'react'\n\nimport { DropTargetMonitorImpl } from '../../internals/index.js'\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\n\nexport function useDropTargetMonitor<O, R>(): DropTargetMonitor<O, R> {\n\tconst manager = useDragDropManager()\n\treturn useMemo(() => new DropTargetMonitorImpl(manager), [manager])\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { Identifier } from 'dnd-core'\nimport { useMemo } from 'react'\n\nimport type { DropTargetHookSpec } from '../types.js'\n\n/**\n * Internal utility hook to get an array-version of spec.accept.\n * The main utility here is that we aren't creating a new array on every render if a non-array spec.accept is passed in.\n * @param spec\n */\nexport function useAccept<O, R, P>(\n\tspec: DropTargetHookSpec<O, R, P>,\n): Identifier[] {\n\tconst { accept } = spec\n\treturn useMemo(() => {\n\t\tinvariant(spec.accept != null, 'accept must be defined')\n\t\treturn Array.isArray(accept) ? accept : [accept]\n\t}, [accept])\n}\n","import type { DropTarget } from 'dnd-core'\n\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport type { DropTargetHookSpec } from '../types.js'\n\nexport class DropTargetImpl<O, R, P> implements DropTarget {\n\tpublic constructor(\n\t\tpublic spec: DropTargetHookSpec<O, R, P>,\n\t\tprivate monitor: DropTargetMonitor<O, R>,\n\t) {}\n\n\tpublic canDrop() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\treturn spec.canDrop ? spec.canDrop(monitor.getItem(), monitor) : true\n\t}\n\n\tpublic hover() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tif (spec.hover) {\n\t\t\tspec.hover(monitor.getItem(), monitor)\n\t\t}\n\t}\n\n\tpublic drop() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tif (spec.drop) {\n\t\t\treturn spec.drop(monitor.getItem(), monitor)\n\t\t}\n\t\treturn\n\t}\n}\n","import { useEffect, useMemo } from 'react'\n\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport type { DropTargetHookSpec } from '../types.js'\nimport { DropTargetImpl } from './DropTargetImpl.js'\n\nexport function useDropTarget<O, R, P>(\n\tspec: DropTargetHookSpec<O, R, P>,\n\tmonitor: DropTargetMonitor<O, R>,\n) {\n\tconst dropTarget = useMemo(() => new DropTargetImpl(spec, monitor), [monitor])\n\tuseEffect(() => {\n\t\tdropTarget.spec = spec\n\t}, [spec])\n\treturn dropTarget\n}\n","import type { TargetConnector } from '../../internals/index.js'\nimport { registerTarget } from '../../internals/index.js'\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport type { DropTargetHookSpec } from '../types.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\nimport { useAccept } from './useAccept.js'\nimport { useDropTarget } from './useDropTarget.js'\n\nexport function useRegisteredDropTarget<O, R, P>(\n\tspec: DropTargetHookSpec<O, R, P>,\n\tmonitor: DropTargetMonitor<O, R>,\n\tconnector: TargetConnector,\n): void {\n\tconst manager = useDragDropManager()\n\tconst dropTarget = useDropTarget(spec, monitor)\n\tconst accept = useAccept(spec)\n\n\tuseIsomorphicLayoutEffect(\n\t\tfunction registerDropTarget() {\n\t\t\tconst [handlerId, unregister] = registerTarget(\n\t\t\t\taccept,\n\t\t\t\tdropTarget,\n\t\t\t\tmanager,\n\t\t\t)\n\t\t\tmonitor.receiveHandlerId(handlerId)\n\t\t\tconnector.receiveHandlerId(handlerId)\n\t\t\treturn unregister\n\t\t},\n\t\t[\n\t\t\tmanager,\n\t\t\tmonitor,\n\t\t\tdropTarget,\n\t\t\tconnector,\n\t\t\taccept.map((a) => a.toString()).join('|'),\n\t\t],\n\t)\n}\n","import type { ConnectDropTarget } from '../../types/index.js'\nimport type { DropTargetHookSpec, FactoryOrInstance } from '../types.js'\nimport { useCollectedProps } from '../useCollectedProps.js'\nimport { useOptionalFactory } from '../useOptionalFactory.js'\nimport { useConnectDropTarget } from './connectors.js'\nimport { useDropTargetConnector } from './useDropTargetConnector.js'\nimport { useDropTargetMonitor } from './useDropTargetMonitor.js'\nimport { useRegisteredDropTarget } from './useRegisteredDropTarget.js'\n\n/**\n * useDropTarget Hook\n * @param spec The drop target specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\nexport function useDrop<\n\tDragObject = unknown,\n\tDropResult = unknown,\n\tCollectedProps = unknown,\n>(\n\tspecArg: FactoryOrInstance<\n\t\tDropTargetHookSpec<DragObject, DropResult, CollectedProps>\n\t>,\n\tdeps?: unknown[],\n): [CollectedProps, ConnectDropTarget] {\n\tconst spec = useOptionalFactory(specArg, deps)\n\tconst monitor = useDropTargetMonitor<DragObject, DropResult>()\n\tconst connector = useDropTargetConnector(spec.options)\n\tuseRegisteredDropTarget(spec, monitor, connector)\n\n\treturn [\n\t\tuseCollectedProps(spec.collect, monitor, connector),\n\t\tuseConnectDropTarget(connector),\n\t]\n}\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ColumnPinningButtons: FC<Props> = ({ column, instance }) => {\n const {\n options: {\n icons: { PushPinIcon },\n localization,\n },\n } = instance;\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n };\n\n return (\n <Box sx={{ minWidth: '70px', textAlign: 'center' }}>\n {column.getIsPinned() ? (\n <Tooltip arrow title={localization.unpin}>\n <IconButton onClick={() => handlePinColumn(false)} size=\"small\">\n <PushPinIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <>\n <Tooltip arrow title={localization.pinToLeft}>\n <IconButton onClick={() => handlePinColumn('left')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.pinToRight}>\n <IconButton onClick={() => handlePinColumn('right')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(-90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n );\n};\n","import { IconButton, Tooltip } from '@mui/material';\nimport React, { FC, forwardRef, Ref } from 'react';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n ref: Ref<HTMLButtonElement>;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_GrabHandleButton: FC<Props> = forwardRef(\n ({ instance }, ref) => {\n const {\n options: {\n icons: { DragHandleIcon },\n localization,\n },\n } = instance;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.grab}\n >\n <IconButton\n disableRipple\n ref={ref}\n size=\"small\"\n sx={{\n cursor: 'grab',\n m: 0,\n opacity: 0.5,\n p: '2px',\n transition: 'all 0.2s ease-in-out',\n '&:hover': {\n backgroundColor: 'transparent',\n opacity: 1,\n },\n '&:active': {\n cursor: 'grabbing',\n },\n }}\n >\n <DragHandleIcon />\n </IconButton>\n </Tooltip>\n );\n },\n);\n","import { ColumnDef, ColumnOrderState, Table } from '@tanstack/react-table';\nimport {\n MaterialReactTableProps,\n MRT_Column,\n MRT_ColumnDef,\n MRT_FilterFn,\n} from '.';\nimport { MRT_FilterFns } from './filtersFns';\n\nexport const getAllLeafColumnDefs = (\n columns: MRT_ColumnDef[],\n): MRT_ColumnDef[] => {\n let lowestLevelColumns: MRT_ColumnDef[] = columns;\n let currentCols: MRT_ColumnDef[] | undefined = columns;\n while (!!currentCols?.length && currentCols.some((col) => col.columns)) {\n const nextCols: MRT_ColumnDef[] = currentCols\n .filter((col) => !!col.columns)\n .map((col) => col.columns)\n .flat() as MRT_ColumnDef[];\n if (nextCols.every((col) => !col?.columns)) {\n lowestLevelColumns = [...lowestLevelColumns, ...nextCols];\n }\n currentCols = nextCols;\n }\n return lowestLevelColumns.filter((col) => !col.columns);\n};\n\nexport const createGroup = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: MRT_ColumnDef<D>,\n currentFilterFns: { [key: string]: MRT_FilterFn },\n): ColumnDef<D> =>\n table.createGroup({\n ...column,\n columns: column?.columns?.map?.((col) =>\n col.columns\n ? createGroup<D>(table, col, currentFilterFns)\n : createDataColumn(table, col, currentFilterFns),\n ),\n } as any);\n\nexport const createDataColumn = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: MRT_ColumnDef<D>,\n currentFilterFns: { [key: string]: MRT_FilterFn },\n): ColumnDef<D> => // @ts-ignore\n table.createDataColumn(column.id, {\n filterFn:\n currentFilterFns[column.id] instanceof Function\n ? currentFilterFns[column.id]\n : // @ts-ignore\n MRT_FilterFns[currentFilterFns[column.id]],\n ...column,\n }) as any;\n\nexport const createDisplayColumn = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: Omit<MRT_ColumnDef<D>, 'header'> & { header?: string },\n): ColumnDef<D> => table.createDisplayColumn(column as ColumnDef<D>);\n\nexport const reorderColumn = (\n movingColumn: MRT_Column,\n receivingColumn: MRT_Column,\n columnOrder: ColumnOrderState,\n): ColumnOrderState => {\n if (movingColumn.getCanPin()) {\n movingColumn.pin(receivingColumn.getIsPinned());\n }\n columnOrder.splice(\n columnOrder.indexOf(receivingColumn.id),\n 0,\n columnOrder.splice(columnOrder.indexOf(movingColumn.id), 1)[0],\n );\n return [...columnOrder];\n};\n\nexport const getLeadingDisplayColumnIds = (\n props: MaterialReactTableProps<any>,\n) =>\n [\n ((props.positionActionsColumn === 'first' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n (props.enableExpanding || props.enableGrouping) && 'mrt-expand',\n props.enableRowSelection && 'mrt-select',\n props.enableRowNumbers && 'mrt-row-numbers',\n ].filter(Boolean) as string[];\n\nexport const getTrailingDisplayColumnIds = (\n props: MaterialReactTableProps<any>,\n) => [\n ((props.positionActionsColumn === 'last' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n];\n\nexport const getDefaultColumnOrderIds = (props: MaterialReactTableProps<any>) =>\n [\n ...getLeadingDisplayColumnIds(props),\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map((c) => c.id),\n ...getTrailingDisplayColumnIds(props),\n ].filter(Boolean) as string[];\n","import React, { FC, Ref } from 'react';\nimport { useDrag, useDrop } from 'react-dnd';\nimport {\n Box,\n FormControlLabel,\n MenuItem,\n Switch,\n Tooltip,\n Typography,\n} from '@mui/material';\nimport { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n allColumns: MRT_Column[];\n column: MRT_Column;\n isSubMenu?: boolean;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenuItems: FC<Props> = ({\n allColumns,\n column,\n isSubMenu,\n instance,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n enableHiding,\n enablePinning,\n localization,\n },\n setColumnOrder,\n } = instance;\n\n const { columnOrder } = getState();\n\n const { columnDef, columnDefType } = column;\n\n const [, dropRef] = useDrop({\n accept: 'column',\n drop: (movingColumn: MRT_Column) => {\n const newColumnOrder = reorderColumn(movingColumn, column, columnOrder);\n setColumnOrder(newColumnOrder);\n },\n });\n\n const [, dragRef, previewRef] = useDrag({\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n item: () => column,\n type: 'column',\n });\n\n const switchChecked =\n (columnDefType !== 'group' && column.getIsVisible()) ||\n (columnDefType === 'group' &&\n column.getLeafColumns().some((col) => col.getIsVisible()));\n\n const handleToggleColumnHidden = (column: MRT_Column) => {\n if (columnDefType === 'group') {\n column?.columns?.forEach?.((childColumn: MRT_Column) => {\n childColumn.toggleVisibility(!switchChecked);\n });\n } else {\n column.toggleVisibility();\n }\n };\n\n return (\n <>\n <MenuItem\n ref={columnDefType === 'data' ? dropRef : undefined}\n sx={{\n alignItems: 'center',\n justifyContent: 'flex-start',\n my: 0,\n pl: `${(column.depth + 0.5) * 2}rem`,\n py: '6px',\n }}\n >\n <Box\n ref={previewRef}\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n gap: '8px',\n }}\n >\n {columnDefType !== 'group' &&\n enableColumnOrdering &&\n !allColumns.some((col) => col.columnDefType === 'group') &&\n (columnDef.enableColumnOrdering !== false ? (\n <MRT_GrabHandleButton\n ref={dragRef as Ref<HTMLButtonElement>}\n instance={instance}\n />\n ) : (\n <Box sx={{ width: '28px' }} />\n ))}\n {enablePinning &&\n !isSubMenu &&\n (column.getCanPin() ? (\n <MRT_ColumnPinningButtons column={column} instance={instance} />\n ) : (\n <Box sx={{ width: '70px' }} />\n ))}\n {enableHiding ? (\n <FormControlLabel\n componentsProps={{\n typography: {\n sx: {\n mb: 0,\n opacity: columnDefType !== 'display' ? 1 : 0.5,\n },\n },\n }}\n checked={switchChecked}\n control={\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.toggleVisibility}\n >\n <Switch />\n </Tooltip>\n }\n disabled={\n (isSubMenu && switchChecked) ||\n !column.getCanHide() ||\n column.getIsGrouped()\n }\n label={columnDef.header}\n onChange={() => handleToggleColumnHidden(column)}\n />\n ) : (\n <Typography sx={{ alignSelf: 'center' }}>\n {columnDef.header}\n </Typography>\n )}\n </Box>\n </MenuItem>\n {column.columns?.map((c: MRT_Column, i) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n key={`${i}-${c.id}`}\n column={c}\n isSubMenu={isSubMenu}\n instance={instance}\n />\n ))}\n </>\n );\n};\n","import React, { FC, useMemo } from 'react';\nimport { Button, Menu, Divider, Box } from '@mui/material';\nimport { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems';\nimport type { MRT_Column, MRT_TableInstance } from '..';\nimport { getDefaultColumnOrderIds } from '../utils';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n isSubMenu?: boolean;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenu: FC<Props> = ({\n anchorEl,\n isSubMenu,\n setAnchorEl,\n instance,\n}) => {\n const {\n getAllColumns,\n getAllLeafColumns,\n getCenterLeafColumns,\n getIsAllColumnsVisible,\n getIsSomeColumnsPinned,\n getIsSomeColumnsVisible,\n getLeftLeafColumns,\n getRightLeafColumns,\n getState,\n toggleAllColumnsVisible,\n options: { localization, enablePinning, enableColumnOrdering },\n } = instance;\n\n const { density, columnOrder, columnPinning } = getState();\n\n const hideAllColumns = () => {\n getAllLeafColumns()\n .filter((col) => col.columnDef.enableHiding !== false)\n .forEach((col) => col.toggleVisibility(false));\n };\n\n const allColumns = useMemo(() => {\n const columns = getAllColumns();\n if (\n columnOrder.length > 0 &&\n !columns.some((col) => col.columnDefType === 'group')\n ) {\n return [\n ...getLeftLeafColumns(),\n ...Array.from(new Set(columnOrder)).map((colId) =>\n getCenterLeafColumns().find((col) => col?.id === colId),\n ),\n ...getRightLeafColumns(),\n ].filter(Boolean);\n }\n return columns;\n }, [\n columnOrder,\n columnPinning,\n getAllColumns(),\n getCenterLeafColumns(),\n getLeftLeafColumns(),\n getRightLeafColumns(),\n ]) as MRT_Column[];\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: isSubMenu ? 'center' : 'space-between',\n p: '0.5rem',\n pt: 0,\n }}\n >\n {!isSubMenu && (\n <Button\n disabled={!getIsSomeColumnsVisible()}\n onClick={hideAllColumns}\n >\n {localization.hideAll}\n </Button>\n )}\n {!isSubMenu && enableColumnOrdering && (\n <Button\n onClick={() =>\n instance.setColumnOrder(\n getDefaultColumnOrderIds(instance.options as any),\n )\n }\n >\n {localization.resetOrder}\n </Button>\n )}\n {!isSubMenu && enablePinning && (\n <Button\n disabled={!getIsSomeColumnsPinned()}\n onClick={() => instance.resetColumnPinning(true)}\n >\n {localization.unpinAll}\n </Button>\n )}\n <Button\n disabled={getIsAllColumnsVisible()}\n onClick={() => toggleAllColumnsVisible(true)}\n >\n {localization.showAll}\n </Button>\n </Box>\n <Divider />\n {allColumns.map((column, index) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={column}\n isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n instance={instance}\n />\n ))}\n </Menu>\n );\n};\n","import React, { FC, useState } from 'react';\nimport { Box, IconButton, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\nimport { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';\nimport { MRT_ShowHideColumnsMenu } from './MRT_ShowHideColumnsMenu';\n\nexport const commonMenuItemStyles = {\n py: '6px',\n my: 0,\n justifyContent: 'space-between',\n alignItems: 'center',\n};\n\nexport const commonListItemStyles = {\n display: 'flex',\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header: MRT_Header;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ColumnActionMenu: FC<Props> = ({\n anchorEl,\n header,\n setAnchorEl,\n instance,\n}) => {\n const {\n getState,\n toggleAllColumnsVisible,\n setColumnOrder,\n options: {\n enableColumnFilterChangeMode,\n enableColumnFilters,\n enableColumnResizing,\n enableGrouping,\n enableHiding,\n enablePinning,\n enableSorting,\n enabledColumnFilterOptions,\n icons: {\n ArrowRightIcon,\n ClearAllIcon,\n ViewColumnIcon,\n DynamicFeedIcon,\n FilterListIcon,\n FilterListOffIcon,\n PushPinIcon,\n SortIcon,\n RestartAltIcon,\n VisibilityOffIcon,\n },\n tableId,\n localization,\n },\n setShowFilters,\n } = instance;\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const { columnSizing, columnVisibility, density } = getState();\n\n const [filterMenuAnchorEl, setFilterMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const [showHideColumnsMenuAnchorEl, setShowHideColumnsMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const handleClearSort = () => {\n column.clearSorting();\n setAnchorEl(null);\n };\n\n const handleSortAsc = () => {\n column.toggleSorting(false);\n setAnchorEl(null);\n };\n\n const handleSortDesc = () => {\n column.toggleSorting(true);\n setAnchorEl(null);\n };\n\n const handleResetColumnSize = () => {\n column.resetSize();\n setAnchorEl(null);\n };\n\n const handleHideColumn = () => {\n column.toggleVisibility(false);\n setAnchorEl(null);\n };\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n setAnchorEl(null);\n };\n\n const handleGroupByColumn = () => {\n column.toggleGrouping();\n setColumnOrder((old) => ['mrt-expand', ...old]);\n setAnchorEl(null);\n };\n\n const handleClearFilter = () => {\n column.setFilterValue('');\n setAnchorEl(null);\n };\n\n const handleFilterByColumn = () => {\n setShowFilters(true);\n setTimeout(\n () =>\n document\n .getElementById(\n // @ts-ignore\n header.muiTableHeadCellFilterTextFieldProps?.id ??\n `mrt-${tableId}-${header.id}-filter-text-field`,\n )\n ?.focus(),\n 200,\n );\n setAnchorEl(null);\n };\n\n const handleShowAllColumns = () => {\n toggleAllColumnsVisible(true);\n setAnchorEl(null);\n };\n\n const handleOpenFilterModeMenu = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setFilterMenuAnchorEl(event.currentTarget);\n };\n\n const handleOpenShowHideColumnsMenu = (\n event: React.MouseEvent<HTMLElement>,\n ) => {\n event.stopPropagation();\n setShowHideColumnsMenuAnchorEl(event.currentTarget);\n };\n\n const isSelectFilter = !!columnDef.filterSelectOptions;\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showFilterModeSubMenu =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableSorting &&\n column.getCanSort() && [\n <MenuItem\n disabled={!column.getIsSorted()}\n key={0}\n onClick={handleClearSort}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ClearAllIcon />\n </ListItemIcon>\n {localization.clearSort}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsSorted() === 'asc'}\n key={1}\n onClick={handleSortAsc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon />\n </ListItemIcon>\n {localization.sortByColumnAsc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableColumnFilters || enableGrouping || enableHiding}\n key={2}\n disabled={column.getIsSorted() === 'desc'}\n onClick={handleSortDesc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />\n </ListItemIcon>\n {localization.sortByColumnDesc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnFilters &&\n column.getCanFilter() &&\n [\n <MenuItem\n disabled={!column.getFilterValue()}\n key={0}\n onClick={handleClearFilter}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListOffIcon />\n </ListItemIcon>\n {localization.clearFilter}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableGrouping || enableHiding}\n key={1}\n onClick={handleFilterByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListIcon />\n </ListItemIcon>\n {localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n {showFilterModeSubMenu && (\n <IconButton\n onClick={handleOpenFilterModeMenu}\n onMouseEnter={handleOpenFilterModeMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </MenuItem>,\n showFilterModeSubMenu && (\n <MRT_FilterOptionMenu\n anchorEl={filterMenuAnchorEl}\n header={header}\n key={2}\n onSelect={handleFilterByColumn}\n setAnchorEl={setFilterMenuAnchorEl}\n instance={instance}\n />\n ),\n ].filter(Boolean)}\n {enableGrouping &&\n column.getCanGroup() && [\n <MenuItem\n divider={enablePinning}\n key={0}\n onClick={handleGroupByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <DynamicFeedIcon />\n </ListItemIcon>\n {localization[\n column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn'\n ]?.replace('{column}', String(columnDef.header))}\n </Box>\n </MenuItem>,\n ]}\n {enablePinning &&\n column.getCanPin() && [\n <MenuItem\n disabled={column.getIsPinned() === 'left' || !column.getCanPin()}\n key={0}\n onClick={() => handlePinColumn('left')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(90deg)' }} />\n </ListItemIcon>\n {localization.pinToLeft}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsPinned() === 'right' || !column.getCanPin()}\n key={1}\n onClick={() => handlePinColumn('right')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(-90deg)' }} />\n </ListItemIcon>\n {localization.pinToRight}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={!column.getIsPinned()}\n divider={enableHiding}\n key={2}\n onClick={() => handlePinColumn(false)}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon />\n </ListItemIcon>\n {localization.unpin}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnResizing && [\n <MenuItem\n disabled={!column.getCanResize() || !columnSizing[column.id]}\n key={0}\n onClick={handleResetColumnSize}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <RestartAltIcon />\n </ListItemIcon>\n {localization.resetColumnSize}\n </Box>\n </MenuItem>,\n ]}\n {enableHiding && [\n <MenuItem\n disabled={columnDef.enableHiding === false}\n key={0}\n onClick={handleHideColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <VisibilityOffIcon />\n </ListItemIcon>\n {localization.hideColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={\n !Object.values(columnVisibility).filter((visible) => !visible)\n .length\n }\n key={1}\n onClick={handleShowAllColumns}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ViewColumnIcon />\n </ListItemIcon>\n {localization.showAllColumns?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n <IconButton\n onClick={handleOpenShowHideColumnsMenu}\n onMouseEnter={handleOpenShowHideColumnsMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n </MenuItem>,\n <MRT_ShowHideColumnsMenu\n anchorEl={showHideColumnsMenuAnchorEl}\n isSubMenu\n key={2}\n setAnchorEl={setShowHideColumnsMenuAnchorEl}\n instance={instance}\n />,\n ]}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\nimport {\n commonListItemStyles,\n commonMenuItemStyles,\n} from './MRT_ColumnActionMenu';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n handleEdit: () => void;\n row: MRT_Row;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_RowActionMenu: FC<Props> = ({\n anchorEl,\n handleEdit,\n row,\n setAnchorEl,\n instance,\n}) => {\n const {\n getState,\n options: {\n icons: { EditIcon },\n enableEditing,\n localization,\n renderRowActionMenuItems,\n },\n } = instance;\n\n const { density } = getState();\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableEditing && (\n <MenuItem onClick={handleEdit} sx={commonMenuItemStyles}>\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <EditIcon />\n </ListItemIcon>\n {localization.edit}\n </Box>\n </MenuItem>\n )}\n {renderRowActionMenuItems?.({\n row,\n instance,\n closeMenu: () => setAnchorEl(null),\n })}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_EditActionButtons: FC<Props> = ({ row, instance }) => {\n const {\n getState,\n options: {\n icons: { CancelIcon, SaveIcon },\n localization,\n onEditRowSubmit,\n },\n setCurrentEditingRow,\n } = instance;\n\n const { currentEditingRow } = getState();\n\n const handleCancel = () => {\n row._valuesCache = row.original ?? {};\n setCurrentEditingRow(null);\n };\n\n const handleSave = () => {\n onEditRowSubmit?.({ row: currentEditingRow ?? row, instance });\n setCurrentEditingRow(null);\n };\n\n return (\n <Box sx={{ display: 'flex', gap: '0.75rem' }}>\n <Tooltip arrow title={localization.cancel}>\n <IconButton aria-label={localization.cancel} onClick={handleCancel}>\n <CancelIcon />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.save}>\n <IconButton\n aria-label={localization.save}\n color=\"info\"\n onClick={handleSave}\n >\n <SaveIcon />\n </IconButton>\n </Tooltip>\n </Box>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu';\nimport { MRT_EditActionButtons } from './MRT_EditActionButtons';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\nconst commonIconButtonStyles = {\n height: '2rem',\n ml: '10px',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n};\n\ninterface Props {\n row: MRT_Row;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, instance }) => {\n const {\n getState,\n options: {\n enableEditing,\n icons: { EditIcon, MoreHorizIcon },\n localization,\n renderRowActionMenuItems,\n renderRowActions,\n },\n setCurrentEditingRow,\n } = instance;\n\n const { currentEditingRow } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleOpenRowActionMenu = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const handleStartEditMode = () => {\n setCurrentEditingRow({ ...row });\n setAnchorEl(null);\n };\n\n return (\n <>\n {renderRowActions ? (\n <>{renderRowActions({ row, instance })}</>\n ) : row.id === currentEditingRow?.id ? (\n <MRT_EditActionButtons row={row} instance={instance} />\n ) : !renderRowActionMenuItems && enableEditing ? (\n <Tooltip placement=\"right\" arrow title={localization.edit}>\n <IconButton sx={commonIconButtonStyles} onClick={handleStartEditMode}>\n <EditIcon />\n </IconButton>\n </Tooltip>\n ) : renderRowActionMenuItems ? (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.rowActions}\n >\n <IconButton\n aria-label={localization.rowActions}\n onClick={handleOpenRowActionMenu}\n size=\"small\"\n sx={commonIconButtonStyles}\n >\n <MoreHorizIcon />\n </IconButton>\n </Tooltip>\n <MRT_RowActionMenu\n anchorEl={anchorEl}\n handleEdit={handleStartEditMode}\n row={row}\n setAnchorEl={setAnchorEl}\n instance={instance}\n />\n </>\n ) : null}\n </>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { Checkbox, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row?: MRT_Row;\n selectAll?: boolean;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, instance }) => {\n const {\n getState,\n options: {\n localization,\n muiSelectCheckboxProps,\n muiSelectAllCheckboxProps,\n selectAllMode,\n },\n } = instance;\n\n const { density } = getState();\n\n const handleSelectChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (selectAll) {\n if (selectAllMode === 'all') {\n instance.getToggleAllRowsSelectedHandler()(event as any);\n } else if (selectAllMode === 'page') {\n instance.getToggleAllPageRowsSelectedHandler()(event as any);\n }\n } else if (row) {\n row?.getToggleSelectedHandler()(event as any);\n }\n };\n\n const checkboxProps = selectAll\n ? muiSelectAllCheckboxProps instanceof Function\n ? muiSelectAllCheckboxProps({ instance })\n : muiSelectAllCheckboxProps\n : muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ row: row as MRT_Row, instance })\n : muiSelectCheckboxProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={\n selectAll ? localization.toggleSelectAll : localization.toggleSelectRow\n }\n >\n <Checkbox\n checked={\n selectAll ? instance.getIsAllRowsSelected() : row?.getIsSelected()\n }\n indeterminate={\n selectAll\n ? instance.getIsSomeRowsSelected()\n : row?.getIsSomeSelected()\n }\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n onChange={handleSelectChange}\n size={density === 'compact' ? 'small' : 'medium'}\n {...checkboxProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...checkboxProps?.sx,\n }}\n />\n </Tooltip>\n );\n};\n","// cheap lodash replacements\n\nexport function memoize<T>(fn: () => T): () => T {\n\tlet result: T | null = null\n\tconst memoized = () => {\n\t\tif (result == null) {\n\t\t\tresult = fn()\n\t\t}\n\t\treturn result\n\t}\n\treturn memoized\n}\n\n/**\n * drop-in replacement for _.without\n */\nexport function without<T>(items: T[], item: T) {\n\treturn items.filter((i) => i !== item)\n}\n\nexport function union<T extends string | number>(itemsA: T[], itemsB: T[]) {\n\tconst set = new Set<T>()\n\tconst insertItem = (item: T) => set.add(item)\n\titemsA.forEach(insertItem)\n\titemsB.forEach(insertItem)\n\n\tconst result: T[] = []\n\tset.forEach((key) => result.push(key))\n\treturn result\n}\n","import { union, without } from './utils/js_utils.js'\n\ntype NodePredicate = (node: Node | null | undefined) => boolean\n\nexport class EnterLeaveCounter {\n\tprivate entered: any[] = []\n\tprivate isNodeInDocument: NodePredicate\n\n\tpublic constructor(isNodeInDocument: NodePredicate) {\n\t\tthis.isNodeInDocument = isNodeInDocument\n\t}\n\n\tpublic enter(enteringNode: EventTarget | null): boolean {\n\t\tconst previousLength = this.entered.length\n\n\t\tconst isNodeEntered = (node: Node): boolean =>\n\t\t\tthis.isNodeInDocument(node) &&\n\t\t\t(!node.contains || node.contains(enteringNode as Node))\n\n\t\tthis.entered = union(this.entered.filter(isNodeEntered), [enteringNode])\n\n\t\treturn previousLength === 0 && this.entered.length > 0\n\t}\n\n\tpublic leave(leavingNode: EventTarget | null): boolean {\n\t\tconst previousLength = this.entered.length\n\n\t\tthis.entered = without(\n\t\t\tthis.entered.filter(this.isNodeInDocument),\n\t\t\tleavingNode,\n\t\t)\n\n\t\treturn previousLength > 0 && this.entered.length === 0\n\t}\n\n\tpublic reset(): void {\n\t\tthis.entered = []\n\t}\n}\n","import type { DragDropMonitor } from 'dnd-core'\n\nimport type { NativeItemConfig } from './nativeTypesConfig.js'\n\nexport class NativeDragSource {\n\tpublic item: any\n\tprivate config: NativeItemConfig\n\n\tpublic constructor(config: NativeItemConfig) {\n\t\tthis.config = config\n\t\tthis.item = {}\n\t\tthis.initializeExposedProperties()\n\t}\n\n\tprivate initializeExposedProperties() {\n\t\tObject.keys(this.config.exposeProperties).forEach((property) => {\n\t\t\tObject.defineProperty(this.item, property, {\n\t\t\t\tconfigurable: true, // This is needed to allow redefining it later\n\t\t\t\tenumerable: true,\n\t\t\t\tget() {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`Browser doesn't allow reading \"${property}\" until the drop event.`,\n\t\t\t\t\t)\n\t\t\t\t\treturn null\n\t\t\t\t},\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic loadDataTransfer(dataTransfer: DataTransfer | null | undefined): void {\n\t\tif (dataTransfer) {\n\t\t\tconst newProperties: PropertyDescriptorMap = {}\n\t\t\tObject.keys(this.config.exposeProperties).forEach((property) => {\n\t\t\t\tconst propertyFn = this.config.exposeProperties[property]\n\t\t\t\tif (propertyFn != null) {\n\t\t\t\t\tnewProperties[property] = {\n\t\t\t\t\t\tvalue: propertyFn(dataTransfer, this.config.matchesTypes),\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\tObject.defineProperties(this.item, newProperties)\n\t\t}\n\t}\n\n\tpublic canDrag(): boolean {\n\t\treturn true\n\t}\n\n\tpublic beginDrag(): any {\n\t\treturn this.item\n\t}\n\n\tpublic isDragging(monitor: DragDropMonitor, handle: string): boolean {\n\t\treturn handle === monitor.getSourceId()\n\t}\n\n\tpublic endDrag(): void {\n\t\t// empty\n\t}\n}\n","export const FILE = '__NATIVE_FILE__'\nexport const URL = '__NATIVE_URL__'\nexport const TEXT = '__NATIVE_TEXT__'\nexport const HTML = '__NATIVE_HTML__'\n","export function getDataFromDataTransfer(\n\tdataTransfer: DataTransfer,\n\ttypesToTry: string[],\n\tdefaultValue: string,\n): string {\n\tconst result = typesToTry.reduce(\n\t\t(resultSoFar, typeToTry) => resultSoFar || dataTransfer.getData(typeToTry),\n\t\t'',\n\t)\n\n\treturn result != null ? result : defaultValue\n}\n","import * as NativeTypes from '../NativeTypes.js'\nimport { getDataFromDataTransfer } from './getDataFromDataTransfer.js'\n\nexport interface NativeItemConfigExposePropreties {\n\t[property: string]: (\n\t\tdataTransfer: DataTransfer,\n\t\tmatchesTypes: string[],\n\t) => any\n}\n\nexport interface NativeItemConfig {\n\texposeProperties: NativeItemConfigExposePropreties\n\tmatchesTypes: string[]\n}\n\nexport const nativeTypesConfig: {\n\t[key: string]: NativeItemConfig\n} = {\n\t[NativeTypes.FILE]: {\n\t\texposeProperties: {\n\t\t\tfiles: (dataTransfer: DataTransfer): File[] =>\n\t\t\t\tArray.prototype.slice.call(dataTransfer.files),\n\t\t\titems: (dataTransfer: DataTransfer): DataTransferItemList =>\n\t\t\t\tdataTransfer.items,\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Files'],\n\t},\n\t[NativeTypes.HTML]: {\n\t\texposeProperties: {\n\t\t\thtml: (dataTransfer: DataTransfer, matchesTypes: string[]): string =>\n\t\t\t\tgetDataFromDataTransfer(dataTransfer, matchesTypes, ''),\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Html', 'text/html'],\n\t},\n\t[NativeTypes.URL]: {\n\t\texposeProperties: {\n\t\t\turls: (dataTransfer: DataTransfer, matchesTypes: string[]): string[] =>\n\t\t\t\tgetDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n'),\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Url', 'text/uri-list'],\n\t},\n\t[NativeTypes.TEXT]: {\n\t\texposeProperties: {\n\t\t\ttext: (dataTransfer: DataTransfer, matchesTypes: string[]): string =>\n\t\t\t\tgetDataFromDataTransfer(dataTransfer, matchesTypes, ''),\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Text', 'text/plain'],\n\t},\n}\n","import { NativeDragSource } from './NativeDragSource.js'\nimport { nativeTypesConfig } from './nativeTypesConfig.js'\n\nexport function createNativeDragSource(\n\ttype: string,\n\tdataTransfer?: DataTransfer,\n): NativeDragSource {\n\tconst config = nativeTypesConfig[type]\n\tif (!config) {\n\t\tthrow new Error(`native type ${type} has no configuration`)\n\t}\n\tconst result = new NativeDragSource(config)\n\tresult.loadDataTransfer(dataTransfer)\n\treturn result\n}\n\nexport function matchNativeItemType(\n\tdataTransfer: DataTransfer | null,\n): string | null {\n\tif (!dataTransfer) {\n\t\treturn null\n\t}\n\n\tconst dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || [])\n\treturn (\n\t\tObject.keys(nativeTypesConfig).filter((nativeItemType) => {\n\t\t\tconst typeConfig = nativeTypesConfig[nativeItemType]\n\t\t\tif (!typeConfig?.matchesTypes) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn typeConfig.matchesTypes.some(\n\t\t\t\t(t) => dataTransferTypes.indexOf(t) > -1,\n\t\t\t)\n\t\t})[0] || null\n\t)\n}\n","import { memoize } from './utils/js_utils.js'\n\ndeclare global {\n\tinterface Window extends HTMLElement {\n\t\tsafari: any\n\t}\n}\n\nexport type Predicate = () => boolean\nexport const isFirefox: Predicate = memoize(() =>\n\t/firefox/i.test(navigator.userAgent),\n)\nexport const isSafari: Predicate = memoize(() => Boolean(window.safari))\n","export class MonotonicInterpolant {\n\tprivate xs: any\n\tprivate ys: any\n\tprivate c1s: any\n\tprivate c2s: any\n\tprivate c3s: any\n\n\tpublic constructor(xs: number[], ys: number[]) {\n\t\tconst { length } = xs\n\n\t\t// Rearrange xs and ys so that xs is sorted\n\t\tconst indexes = []\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tindexes.push(i)\n\t\t}\n\t\tindexes.sort((a, b) => ((xs[a] as number) < (xs[b] as number) ? -1 : 1))\n\n\t\t// Get consecutive differences and slopes\n\t\tconst dys = []\n\t\tconst dxs = []\n\t\tconst ms = []\n\t\tlet dx\n\t\tlet dy\n\t\tfor (let i = 0; i < length - 1; i++) {\n\t\t\tdx = (xs[i + 1] as number) - (xs[i] as number)\n\t\t\tdy = (ys[i + 1] as number) - (ys[i] as number)\n\t\t\tdxs.push(dx)\n\t\t\tdys.push(dy)\n\t\t\tms.push(dy / dx)\n\t\t}\n\n\t\t// Get degree-1 coefficients\n\t\tconst c1s = [ms[0]]\n\t\tfor (let i = 0; i < dxs.length - 1; i++) {\n\t\t\tconst m2 = ms[i] as number\n\t\t\tconst mNext = ms[i + 1] as number\n\t\t\tif (m2 * mNext <= 0) {\n\t\t\t\tc1s.push(0)\n\t\t\t} else {\n\t\t\t\tdx = dxs[i] as number\n\t\t\t\tconst dxNext = dxs[i + 1] as number\n\t\t\t\tconst common = dx + dxNext\n\t\t\t\tc1s.push(\n\t\t\t\t\t(3 * common) / ((common + dxNext) / m2 + (common + dx) / mNext),\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tc1s.push(ms[ms.length - 1])\n\n\t\t// Get degree-2 and degree-3 coefficients\n\t\tconst c2s = []\n\t\tconst c3s = []\n\t\tlet m\n\t\tfor (let i = 0; i < c1s.length - 1; i++) {\n\t\t\tm = ms[i] as number\n\t\t\tconst c1 = c1s[i] as number\n\t\t\tconst invDx = 1 / (dxs[i] as number)\n\t\t\tconst common = c1 + (c1s[i + 1] as number) - m - m\n\t\t\tc2s.push((m - c1 - common) * invDx)\n\t\t\tc3s.push(common * invDx * invDx)\n\t\t}\n\n\t\tthis.xs = xs\n\t\tthis.ys = ys\n\t\tthis.c1s = c1s\n\t\tthis.c2s = c2s\n\t\tthis.c3s = c3s\n\t}\n\n\tpublic interpolate(x: number): number {\n\t\tconst { xs, ys, c1s, c2s, c3s } = this\n\n\t\t// The rightmost point in the dataset should give an exact result\n\t\tlet i = xs.length - 1\n\t\tif (x === xs[i]) {\n\t\t\treturn ys[i]\n\t\t}\n\n\t\t// Search for the interval x is in, returning the corresponding y if x is one of the original xs\n\t\tlet low = 0\n\t\tlet high = c3s.length - 1\n\t\tlet mid\n\t\twhile (low <= high) {\n\t\t\tmid = Math.floor(0.5 * (low + high))\n\t\t\tconst xHere = xs[mid]\n\t\t\tif (xHere < x) {\n\t\t\t\tlow = mid + 1\n\t\t\t} else if (xHere > x) {\n\t\t\t\thigh = mid - 1\n\t\t\t} else {\n\t\t\t\treturn ys[mid]\n\t\t\t}\n\t\t}\n\t\ti = Math.max(0, high)\n\n\t\t// Interpolate\n\t\tconst diff = x - xs[i]\n\t\tconst diffSq = diff * diff\n\t\treturn ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq\n\t}\n}\n","import type { XYCoord } from 'dnd-core'\n\nimport { isFirefox, isSafari } from './BrowserDetector.js'\nimport { MonotonicInterpolant } from './MonotonicInterpolant.js'\n\nconst ELEMENT_NODE = 1\n\nexport function getNodeClientOffset(node: Node): XYCoord | null {\n\tconst el = node.nodeType === ELEMENT_NODE ? node : node.parentElement\n\n\tif (!el) {\n\t\treturn null\n\t}\n\n\tconst { top, left } = (el as HTMLElement).getBoundingClientRect()\n\treturn { x: left, y: top }\n}\n\nexport function getEventClientOffset(e: MouseEvent): XYCoord {\n\treturn {\n\t\tx: e.clientX,\n\t\ty: e.clientY,\n\t}\n}\n\nfunction isImageNode(node: any) {\n\treturn (\n\t\tnode.nodeName === 'IMG' &&\n\t\t(isFirefox() || !document.documentElement?.contains(node))\n\t)\n}\n\nfunction getDragPreviewSize(\n\tisImage: boolean,\n\tdragPreview: any,\n\tsourceWidth: number,\n\tsourceHeight: number,\n) {\n\tlet dragPreviewWidth = isImage ? dragPreview.width : sourceWidth\n\tlet dragPreviewHeight = isImage ? dragPreview.height : sourceHeight\n\n\t// Work around @2x coordinate discrepancies in browsers\n\tif (isSafari() && isImage) {\n\t\tdragPreviewHeight /= window.devicePixelRatio\n\t\tdragPreviewWidth /= window.devicePixelRatio\n\t}\n\treturn { dragPreviewWidth, dragPreviewHeight }\n}\n\nexport function getDragPreviewOffset(\n\tsourceNode: HTMLElement,\n\tdragPreview: HTMLElement,\n\tclientOffset: XYCoord,\n\tanchorPoint: { anchorX: number; anchorY: number },\n\toffsetPoint: { offsetX: number; offsetY: number },\n): XYCoord {\n\t// The browsers will use the image intrinsic size under different conditions.\n\t// Firefox only cares if it's an image, but WebKit also wants it to be detached.\n\tconst isImage = isImageNode(dragPreview)\n\tconst dragPreviewNode = isImage ? sourceNode : dragPreview\n\tconst dragPreviewNodeOffsetFromClient = getNodeClientOffset(\n\t\tdragPreviewNode,\n\t) as XYCoord\n\tconst offsetFromDragPreview = {\n\t\tx: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n\t\ty: clientOffset.y - dragPreviewNodeOffsetFromClient.y,\n\t}\n\tconst { offsetWidth: sourceWidth, offsetHeight: sourceHeight } = sourceNode\n\tconst { anchorX, anchorY } = anchorPoint\n\tconst { dragPreviewWidth, dragPreviewHeight } = getDragPreviewSize(\n\t\tisImage,\n\t\tdragPreview,\n\t\tsourceWidth,\n\t\tsourceHeight,\n\t)\n\n\tconst calculateYOffset = () => {\n\t\tconst interpolantY = new MonotonicInterpolant(\n\t\t\t[0, 0.5, 1],\n\t\t\t[\n\t\t\t\t// Dock to the top\n\t\t\t\toffsetFromDragPreview.y,\n\t\t\t\t// Align at the center\n\t\t\t\t(offsetFromDragPreview.y / sourceHeight) * dragPreviewHeight,\n\t\t\t\t// Dock to the bottom\n\t\t\t\toffsetFromDragPreview.y + dragPreviewHeight - sourceHeight,\n\t\t\t],\n\t\t)\n\t\tlet y = interpolantY.interpolate(anchorY)\n\t\t// Work around Safari 8 positioning bug\n\t\tif (isSafari() && isImage) {\n\t\t\t// We'll have to wait for @3x to see if this is entirely correct\n\t\t\ty += (window.devicePixelRatio - 1) * dragPreviewHeight\n\t\t}\n\t\treturn y\n\t}\n\n\tconst calculateXOffset = () => {\n\t\t// Interpolate coordinates depending on anchor point\n\t\t// If you know a simpler way to do this, let me know\n\t\tconst interpolantX = new MonotonicInterpolant(\n\t\t\t[0, 0.5, 1],\n\t\t\t[\n\t\t\t\t// Dock to the left\n\t\t\t\toffsetFromDragPreview.x,\n\t\t\t\t// Align at the center\n\t\t\t\t(offsetFromDragPreview.x / sourceWidth) * dragPreviewWidth,\n\t\t\t\t// Dock to the right\n\t\t\t\toffsetFromDragPreview.x + dragPreviewWidth - sourceWidth,\n\t\t\t],\n\t\t)\n\t\treturn interpolantX.interpolate(anchorX)\n\t}\n\n\t// Force offsets if specified in the options.\n\tconst { offsetX, offsetY } = offsetPoint\n\tconst isManualOffsetX = offsetX === 0 || offsetX\n\tconst isManualOffsetY = offsetY === 0 || offsetY\n\treturn {\n\t\tx: isManualOffsetX ? offsetX : calculateXOffset(),\n\t\ty: isManualOffsetY ? offsetY : calculateYOffset(),\n\t}\n}\n","import type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\n\nexport class OptionsReader {\n\tpublic ownerDocument: Document | null = null\n\tprivate globalContext: HTML5BackendContext\n\tprivate optionsArgs: HTML5BackendOptions | undefined\n\n\tpublic constructor(\n\t\tglobalContext: HTML5BackendContext,\n\t\toptions?: HTML5BackendOptions,\n\t) {\n\t\tthis.globalContext = globalContext\n\t\tthis.optionsArgs = options\n\t}\n\n\tpublic get window(): Window | undefined {\n\t\tif (this.globalContext) {\n\t\t\treturn this.globalContext\n\t\t} else if (typeof window !== 'undefined') {\n\t\t\treturn window\n\t\t}\n\t\treturn undefined\n\t}\n\n\tpublic get document(): Document | undefined {\n\t\tif (this.globalContext?.document) {\n\t\t\treturn this.globalContext.document\n\t\t} else if (this.window) {\n\t\t\treturn this.window.document\n\t\t} else {\n\t\t\treturn undefined\n\t\t}\n\t}\n\n\tpublic get rootElement(): Node | undefined {\n\t\treturn this.optionsArgs?.rootElement || this.window\n\t}\n}\n","import type {\n\tBackend,\n\tDragDropActions,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tIdentifier,\n\tUnsubscribe,\n\tXYCoord,\n} from 'dnd-core'\n\nimport { EnterLeaveCounter } from './EnterLeaveCounter.js'\nimport {\n\tcreateNativeDragSource,\n\tmatchNativeItemType,\n} from './NativeDragSources/index.js'\nimport type { NativeDragSource } from './NativeDragSources/NativeDragSource.js'\nimport * as NativeTypes from './NativeTypes.js'\nimport {\n\tgetDragPreviewOffset,\n\tgetEventClientOffset,\n\tgetNodeClientOffset,\n} from './OffsetUtils.js'\nimport { OptionsReader } from './OptionsReader.js'\nimport type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\n\ntype RootNode = Node & { __isReactDndBackendSetUp: boolean | undefined }\n\nexport class HTML5BackendImpl implements Backend {\n\tprivate options: OptionsReader\n\n\t// React-Dnd Components\n\tprivate actions: DragDropActions\n\tprivate monitor: DragDropMonitor\n\tprivate registry: HandlerRegistry\n\n\t// Internal State\n\tprivate enterLeaveCounter: EnterLeaveCounter\n\n\tprivate sourcePreviewNodes: Map<string, Element> = new Map()\n\tprivate sourcePreviewNodeOptions: Map<string, any> = new Map()\n\tprivate sourceNodes: Map<string, Element> = new Map()\n\tprivate sourceNodeOptions: Map<string, any> = new Map()\n\n\tprivate dragStartSourceIds: string[] | null = null\n\tprivate dropTargetIds: string[] = []\n\tprivate dragEnterTargetIds: string[] = []\n\tprivate currentNativeSource: NativeDragSource | null = null\n\tprivate currentNativeHandle: Identifier | null = null\n\tprivate currentDragSourceNode: Element | null = null\n\tprivate altKeyPressed = false\n\tprivate mouseMoveTimeoutTimer: number | null = null\n\tprivate asyncEndDragFrameId: number | null = null\n\tprivate dragOverTargetIds: string[] | null = null\n\n\tprivate lastClientOffset: XYCoord | null = null\n\tprivate hoverRafId: number | null = null\n\n\tpublic constructor(\n\t\tmanager: DragDropManager,\n\t\tglobalContext?: HTML5BackendContext,\n\t\toptions?: HTML5BackendOptions,\n\t) {\n\t\tthis.options = new OptionsReader(globalContext, options)\n\t\tthis.actions = manager.getActions()\n\t\tthis.monitor = manager.getMonitor()\n\t\tthis.registry = manager.getRegistry()\n\t\tthis.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument)\n\t}\n\n\t/**\n\t * Generate profiling statistics for the HTML5Backend.\n\t */\n\tpublic profile(): Record<string, number> {\n\t\treturn {\n\t\t\tsourcePreviewNodes: this.sourcePreviewNodes.size,\n\t\t\tsourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,\n\t\t\tsourceNodeOptions: this.sourceNodeOptions.size,\n\t\t\tsourceNodes: this.sourceNodes.size,\n\t\t\tdragStartSourceIds: this.dragStartSourceIds?.length || 0,\n\t\t\tdropTargetIds: this.dropTargetIds.length,\n\t\t\tdragEnterTargetIds: this.dragEnterTargetIds.length,\n\t\t\tdragOverTargetIds: this.dragOverTargetIds?.length || 0,\n\t\t}\n\t}\n\n\t// public for test\n\tpublic get window(): Window | undefined {\n\t\treturn this.options.window\n\t}\n\tpublic get document(): Document | undefined {\n\t\treturn this.options.document\n\t}\n\t/**\n\t * Get the root element to use for event subscriptions\n\t */\n\tprivate get rootElement(): Node | undefined {\n\t\treturn this.options.rootElement as Node\n\t}\n\n\tpublic setup(): void {\n\t\tconst root = this.rootElement as RootNode | undefined\n\t\tif (root === undefined) {\n\t\t\treturn\n\t\t}\n\n\t\tif (root.__isReactDndBackendSetUp) {\n\t\t\tthrow new Error('Cannot have two HTML5 backends at the same time.')\n\t\t}\n\t\troot.__isReactDndBackendSetUp = true\n\t\tthis.addEventListeners(root)\n\t}\n\n\tpublic teardown(): void {\n\t\tconst root = this.rootElement as RootNode\n\t\tif (root === undefined) {\n\t\t\treturn\n\t\t}\n\n\t\troot.__isReactDndBackendSetUp = false\n\t\tthis.removeEventListeners(this.rootElement as Element)\n\t\tthis.clearCurrentDragSourceNode()\n\t\tif (this.asyncEndDragFrameId) {\n\t\t\tthis.window?.cancelAnimationFrame(this.asyncEndDragFrameId)\n\t\t}\n\t}\n\n\tpublic connectDragPreview(\n\t\tsourceId: string,\n\t\tnode: Element,\n\t\toptions: any,\n\t): Unsubscribe {\n\t\tthis.sourcePreviewNodeOptions.set(sourceId, options)\n\t\tthis.sourcePreviewNodes.set(sourceId, node)\n\n\t\treturn (): void => {\n\t\t\tthis.sourcePreviewNodes.delete(sourceId)\n\t\t\tthis.sourcePreviewNodeOptions.delete(sourceId)\n\t\t}\n\t}\n\n\tpublic connectDragSource(\n\t\tsourceId: string,\n\t\tnode: Element,\n\t\toptions: any,\n\t): Unsubscribe {\n\t\tthis.sourceNodes.set(sourceId, node)\n\t\tthis.sourceNodeOptions.set(sourceId, options)\n\n\t\tconst handleDragStart = (e: any) => this.handleDragStart(e, sourceId)\n\t\tconst handleSelectStart = (e: any) => this.handleSelectStart(e)\n\n\t\tnode.setAttribute('draggable', 'true')\n\t\tnode.addEventListener('dragstart', handleDragStart)\n\t\tnode.addEventListener('selectstart', handleSelectStart)\n\n\t\treturn (): void => {\n\t\t\tthis.sourceNodes.delete(sourceId)\n\t\t\tthis.sourceNodeOptions.delete(sourceId)\n\n\t\t\tnode.removeEventListener('dragstart', handleDragStart)\n\t\t\tnode.removeEventListener('selectstart', handleSelectStart)\n\t\t\tnode.setAttribute('draggable', 'false')\n\t\t}\n\t}\n\n\tpublic connectDropTarget(targetId: string, node: HTMLElement): Unsubscribe {\n\t\tconst handleDragEnter = (e: DragEvent) => this.handleDragEnter(e, targetId)\n\t\tconst handleDragOver = (e: DragEvent) => this.handleDragOver(e, targetId)\n\t\tconst handleDrop = (e: DragEvent) => this.handleDrop(e, targetId)\n\n\t\tnode.addEventListener('dragenter', handleDragEnter)\n\t\tnode.addEventListener('dragover', handleDragOver)\n\t\tnode.addEventListener('drop', handleDrop)\n\n\t\treturn (): void => {\n\t\t\tnode.removeEventListener('dragenter', handleDragEnter)\n\t\t\tnode.removeEventListener('dragover', handleDragOver)\n\t\t\tnode.removeEventListener('drop', handleDrop)\n\t\t}\n\t}\n\n\tprivate addEventListeners(target: Node) {\n\t\t// SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n\t\tif (!target.addEventListener) {\n\t\t\treturn\n\t\t}\n\t\ttarget.addEventListener(\n\t\t\t'dragstart',\n\t\t\tthis.handleTopDragStart as EventListener,\n\t\t)\n\t\ttarget.addEventListener('dragstart', this.handleTopDragStartCapture, true)\n\t\ttarget.addEventListener('dragend', this.handleTopDragEndCapture, true)\n\t\ttarget.addEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnter as EventListener,\n\t\t)\n\t\ttarget.addEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnterCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.addEventListener(\n\t\t\t'dragleave',\n\t\t\tthis.handleTopDragLeaveCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.addEventListener('dragover', this.handleTopDragOver as EventListener)\n\t\ttarget.addEventListener(\n\t\t\t'dragover',\n\t\t\tthis.handleTopDragOverCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.addEventListener('drop', this.handleTopDrop as EventListener)\n\t\ttarget.addEventListener(\n\t\t\t'drop',\n\t\t\tthis.handleTopDropCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t}\n\n\tprivate removeEventListeners(target: Node) {\n\t\t// SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n\t\tif (!target.removeEventListener) {\n\t\t\treturn\n\t\t}\n\t\ttarget.removeEventListener('dragstart', this.handleTopDragStart as any)\n\t\ttarget.removeEventListener(\n\t\t\t'dragstart',\n\t\t\tthis.handleTopDragStartCapture,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener('dragend', this.handleTopDragEndCapture, true)\n\t\ttarget.removeEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnter as EventListener,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnterCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragleave',\n\t\t\tthis.handleTopDragLeaveCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragover',\n\t\t\tthis.handleTopDragOver as EventListener,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragover',\n\t\t\tthis.handleTopDragOverCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener('drop', this.handleTopDrop as EventListener)\n\t\ttarget.removeEventListener(\n\t\t\t'drop',\n\t\t\tthis.handleTopDropCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t}\n\n\tprivate getCurrentSourceNodeOptions() {\n\t\tconst sourceId = this.monitor.getSourceId() as string\n\t\tconst sourceNodeOptions = this.sourceNodeOptions.get(sourceId)\n\n\t\treturn {\n\t\t\tdropEffect: this.altKeyPressed ? 'copy' : 'move',\n\t\t\t...(sourceNodeOptions || {}),\n\t\t}\n\t}\n\n\tprivate getCurrentDropEffect() {\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\t// It makes more sense to default to 'copy' for native resources\n\t\t\treturn 'copy'\n\t\t}\n\n\t\treturn this.getCurrentSourceNodeOptions().dropEffect\n\t}\n\n\tprivate getCurrentSourcePreviewNodeOptions() {\n\t\tconst sourceId = this.monitor.getSourceId() as string\n\t\tconst sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId)\n\n\t\treturn {\n\t\t\tanchorX: 0.5,\n\t\t\tanchorY: 0.5,\n\t\t\tcaptureDraggingState: false,\n\t\t\t...(sourcePreviewNodeOptions || {}),\n\t\t}\n\t}\n\n\tprivate getSourceClientOffset = (sourceId: string): XYCoord | null => {\n\t\tconst source = this.sourceNodes.get(sourceId)\n\t\treturn (source && getNodeClientOffset(source as HTMLElement)) || null\n\t}\n\n\tprivate isDraggingNativeItem() {\n\t\tconst itemType = this.monitor.getItemType()\n\t\treturn Object.keys(NativeTypes).some(\n\t\t\t(key: string) => (NativeTypes as any)[key] === itemType,\n\t\t)\n\t}\n\n\tprivate beginDragNativeItem(type: string, dataTransfer?: DataTransfer) {\n\t\tthis.clearCurrentDragSourceNode()\n\n\t\tthis.currentNativeSource = createNativeDragSource(type, dataTransfer)\n\t\tthis.currentNativeHandle = this.registry.addSource(\n\t\t\ttype,\n\t\t\tthis.currentNativeSource,\n\t\t)\n\t\tthis.actions.beginDrag([this.currentNativeHandle])\n\t}\n\n\tprivate endDragNativeItem = (): void => {\n\t\tif (!this.isDraggingNativeItem()) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.actions.endDrag()\n\t\tif (this.currentNativeHandle) {\n\t\t\tthis.registry.removeSource(this.currentNativeHandle)\n\t\t}\n\t\tthis.currentNativeHandle = null\n\t\tthis.currentNativeSource = null\n\t}\n\n\tprivate isNodeInDocument = (node: Node | null | undefined): boolean => {\n\t\t// Check the node either in the main document or in the current context\n\t\treturn Boolean(\n\t\t\tnode &&\n\t\t\t\tthis.document &&\n\t\t\t\tthis.document.body &&\n\t\t\t\tthis.document.body.contains(node),\n\t\t)\n\t}\n\n\tprivate endDragIfSourceWasRemovedFromDOM = (): void => {\n\t\tconst node = this.currentDragSourceNode\n\t\tif (node == null || this.isNodeInDocument(node)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n\t\t\tthis.actions.endDrag()\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tprivate setCurrentDragSourceNode(node: Element | null) {\n\t\tthis.clearCurrentDragSourceNode()\n\t\tthis.currentDragSourceNode = node\n\n\t\t// A timeout of > 0 is necessary to resolve Firefox issue referenced\n\t\t// See:\n\t\t// * https://github.com/react-dnd/react-dnd/pull/928\n\t\t// * https://github.com/react-dnd/react-dnd/issues/869\n\t\tconst MOUSE_MOVE_TIMEOUT = 1000\n\n\t\t// Receiving a mouse event in the middle of a dragging operation\n\t\t// means it has ended and the drag source node disappeared from DOM,\n\t\t// so the browser didn't dispatch the dragend event.\n\t\t//\n\t\t// We need to wait before we start listening for mousemove events.\n\t\t// This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event\n\t\t// immediately in some browsers.\n\t\t//\n\t\t// See:\n\t\t// * https://github.com/react-dnd/react-dnd/pull/928\n\t\t// * https://github.com/react-dnd/react-dnd/issues/869\n\t\t//\n\t\tthis.mouseMoveTimeoutTimer = setTimeout(() => {\n\t\t\treturn this.rootElement?.addEventListener(\n\t\t\t\t'mousemove',\n\t\t\t\tthis.endDragIfSourceWasRemovedFromDOM,\n\t\t\t\ttrue,\n\t\t\t)\n\t\t}, MOUSE_MOVE_TIMEOUT) as any as number\n\t}\n\n\tprivate clearCurrentDragSourceNode() {\n\t\tif (this.currentDragSourceNode) {\n\t\t\tthis.currentDragSourceNode = null\n\n\t\t\tif (this.rootElement) {\n\t\t\t\tthis.window?.clearTimeout(this.mouseMoveTimeoutTimer || undefined)\n\t\t\t\tthis.rootElement.removeEventListener(\n\t\t\t\t\t'mousemove',\n\t\t\t\t\tthis.endDragIfSourceWasRemovedFromDOM,\n\t\t\t\t\ttrue,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.mouseMoveTimeoutTimer = null\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tprivate scheduleHover = (dragOverTargetIds: string[] | null) => {\n\t\tif (\n\t\t\tthis.hoverRafId === null &&\n\t\t\ttypeof requestAnimationFrame !== 'undefined'\n\t\t) {\n\t\t\tthis.hoverRafId = requestAnimationFrame(() => {\n\t\t\t\tif (this.monitor.isDragging()) {\n\t\t\t\t\tthis.actions.hover(dragOverTargetIds || [], {\n\t\t\t\t\t\tclientOffset: this.lastClientOffset,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tthis.hoverRafId = null\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate cancelHover = () => {\n\t\tif (\n\t\t\tthis.hoverRafId !== null &&\n\t\t\ttypeof cancelAnimationFrame !== 'undefined'\n\t\t) {\n\t\t\tcancelAnimationFrame(this.hoverRafId)\n\t\t\tthis.hoverRafId = null\n\t\t}\n\t}\n\n\tpublic handleTopDragStartCapture = (): void => {\n\t\tthis.clearCurrentDragSourceNode()\n\t\tthis.dragStartSourceIds = []\n\t}\n\n\tpublic handleDragStart(e: DragEvent, sourceId: string): void {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn\n\t\t}\n\n\t\tif (!this.dragStartSourceIds) {\n\t\t\tthis.dragStartSourceIds = []\n\t\t}\n\t\tthis.dragStartSourceIds.unshift(sourceId)\n\t}\n\n\tpublic handleTopDragStart = (e: DragEvent): void => {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn\n\t\t}\n\n\t\tconst { dragStartSourceIds } = this\n\t\tthis.dragStartSourceIds = null\n\n\t\tconst clientOffset = getEventClientOffset(e)\n\n\t\t// Avoid crashing if we missed a drop event or our previous drag died\n\t\tif (this.monitor.isDragging()) {\n\t\t\tthis.actions.endDrag()\n\t\t\tthis.cancelHover()\n\t\t}\n\n\t\t// Don't publish the source just yet (see why below)\n\t\tthis.actions.beginDrag(dragStartSourceIds || [], {\n\t\t\tpublishSource: false,\n\t\t\tgetSourceClientOffset: this.getSourceClientOffset,\n\t\t\tclientOffset,\n\t\t})\n\n\t\tconst { dataTransfer } = e\n\t\tconst nativeType = matchNativeItemType(dataTransfer)\n\n\t\tif (this.monitor.isDragging()) {\n\t\t\tif (dataTransfer && typeof dataTransfer.setDragImage === 'function') {\n\t\t\t\t// Use custom drag image if user specifies it.\n\t\t\t\t// If child drag source refuses drag but parent agrees,\n\t\t\t\t// use parent's node as drag image. Neither works in IE though.\n\t\t\t\tconst sourceId: string = this.monitor.getSourceId() as string\n\t\t\t\tconst sourceNode = this.sourceNodes.get(sourceId)\n\t\t\t\tconst dragPreview = this.sourcePreviewNodes.get(sourceId) || sourceNode\n\n\t\t\t\tif (dragPreview) {\n\t\t\t\t\tconst { anchorX, anchorY, offsetX, offsetY } =\n\t\t\t\t\t\tthis.getCurrentSourcePreviewNodeOptions()\n\t\t\t\t\tconst anchorPoint = { anchorX, anchorY }\n\t\t\t\t\tconst offsetPoint = { offsetX, offsetY }\n\t\t\t\t\tconst dragPreviewOffset = getDragPreviewOffset(\n\t\t\t\t\t\tsourceNode as HTMLElement,\n\t\t\t\t\t\tdragPreview as HTMLElement,\n\t\t\t\t\t\tclientOffset,\n\t\t\t\t\t\tanchorPoint,\n\t\t\t\t\t\toffsetPoint,\n\t\t\t\t\t)\n\n\t\t\t\t\tdataTransfer.setDragImage(\n\t\t\t\t\t\tdragPreview,\n\t\t\t\t\t\tdragPreviewOffset.x,\n\t\t\t\t\t\tdragPreviewOffset.y,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\t// Firefox won't drag without setting data\n\t\t\t\tdataTransfer?.setData('application/json', {} as any)\n\t\t\t} catch (err) {\n\t\t\t\t// IE doesn't support MIME types in setData\n\t\t\t}\n\n\t\t\t// Store drag source node so we can check whether\n\t\t\t// it is removed from DOM and trigger endDrag manually.\n\t\t\tthis.setCurrentDragSourceNode(e.target as Element)\n\n\t\t\t// Now we are ready to publish the drag source.. or are we not?\n\t\t\tconst { captureDraggingState } = this.getCurrentSourcePreviewNodeOptions()\n\t\t\tif (!captureDraggingState) {\n\t\t\t\t// Usually we want to publish it in the next tick so that browser\n\t\t\t\t// is able to screenshot the current (not yet dragging) state.\n\t\t\t\t//\n\t\t\t\t// It also neatly avoids a situation where render() returns null\n\t\t\t\t// in the same tick for the source element, and browser freaks out.\n\t\t\t\tsetTimeout(() => this.actions.publishDragSource(), 0)\n\t\t\t} else {\n\t\t\t\t// In some cases the user may want to override this behavior, e.g.\n\t\t\t\t// to work around IE not supporting custom drag previews.\n\t\t\t\t//\n\t\t\t\t// When using a custom drag layer, the only way to prevent\n\t\t\t\t// the default drag preview from drawing in IE is to screenshot\n\t\t\t\t// the dragging state in which the node itself has zero opacity\n\t\t\t\t// and height. In this case, though, returning null from render()\n\t\t\t\t// will abruptly end the dragging, which is not obvious.\n\t\t\t\t//\n\t\t\t\t// This is the reason such behavior is strictly opt-in.\n\t\t\t\tthis.actions.publishDragSource()\n\t\t\t}\n\t\t} else if (nativeType) {\n\t\t\t// A native item (such as URL) dragged from inside the document\n\t\t\tthis.beginDragNativeItem(nativeType)\n\t\t} else if (\n\t\t\tdataTransfer &&\n\t\t\t!dataTransfer.types &&\n\t\t\t((e.target && !(e.target as Element).hasAttribute) ||\n\t\t\t\t!(e.target as Element).hasAttribute('draggable'))\n\t\t) {\n\t\t\t// Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.\n\t\t\t// Just let it drag. It's a native type (URL or text) and will be picked up in\n\t\t\t// dragenter handler.\n\t\t\treturn\n\t\t} else {\n\t\t\t// If by this time no drag source reacted, tell browser not to drag.\n\t\t\te.preventDefault()\n\t\t}\n\t}\n\n\tpublic handleTopDragEndCapture = (): void => {\n\t\tif (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n\t\t\t// Firefox can dispatch this event in an infinite loop\n\t\t\t// if dragend handler does something like showing an alert.\n\t\t\t// Only proceed if we have not handled it already.\n\t\t\tthis.actions.endDrag()\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tpublic handleTopDragEnterCapture = (e: DragEvent): void => {\n\t\tthis.dragEnterTargetIds = []\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tthis.currentNativeSource?.loadDataTransfer(e.dataTransfer)\n\t\t}\n\n\t\tconst isFirstEnter = this.enterLeaveCounter.enter(e.target)\n\t\tif (!isFirstEnter || this.monitor.isDragging()) {\n\t\t\treturn\n\t\t}\n\n\t\tconst { dataTransfer } = e\n\t\tconst nativeType = matchNativeItemType(dataTransfer)\n\n\t\tif (nativeType) {\n\t\t\t// A native item (such as file or URL) dragged from outside the document\n\t\t\tthis.beginDragNativeItem(nativeType, dataTransfer as DataTransfer)\n\t\t}\n\t}\n\n\tpublic handleDragEnter(_e: DragEvent, targetId: string): void {\n\t\tthis.dragEnterTargetIds.unshift(targetId)\n\t}\n\n\tpublic handleTopDragEnter = (e: DragEvent): void => {\n\t\tconst { dragEnterTargetIds } = this\n\t\tthis.dragEnterTargetIds = []\n\n\t\tif (!this.monitor.isDragging()) {\n\t\t\t// This is probably a native item type we don't understand.\n\t\t\treturn\n\t\t}\n\n\t\tthis.altKeyPressed = e.altKey\n\n\t\t// If the target changes position as the result of `dragenter`, `dragover` might still\n\t\t// get dispatched despite target being no longer there. The easy solution is to check\n\t\t// whether there actually is a target before firing `hover`.\n\t\tif (dragEnterTargetIds.length > 0) {\n\t\t\tthis.actions.hover(dragEnterTargetIds, {\n\t\t\t\tclientOffset: getEventClientOffset(e),\n\t\t\t})\n\t\t}\n\n\t\tconst canDrop = dragEnterTargetIds.some((targetId) =>\n\t\t\tthis.monitor.canDropOnTarget(targetId),\n\t\t)\n\n\t\tif (canDrop) {\n\t\t\t// IE requires this to fire dragover events\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = this.getCurrentDropEffect()\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic handleTopDragOverCapture = (e: DragEvent): void => {\n\t\tthis.dragOverTargetIds = []\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tthis.currentNativeSource?.loadDataTransfer(e.dataTransfer)\n\t\t}\n\t}\n\n\tpublic handleDragOver(_e: DragEvent, targetId: string): void {\n\t\tif (this.dragOverTargetIds === null) {\n\t\t\tthis.dragOverTargetIds = []\n\t\t}\n\t\tthis.dragOverTargetIds.unshift(targetId)\n\t}\n\n\tpublic handleTopDragOver = (e: DragEvent): void => {\n\t\tconst { dragOverTargetIds } = this\n\t\tthis.dragOverTargetIds = []\n\n\t\tif (!this.monitor.isDragging()) {\n\t\t\t// This is probably a native item type we don't understand.\n\t\t\t// Prevent default \"drop and blow away the whole document\" action.\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = 'none'\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tthis.altKeyPressed = e.altKey\n\t\tthis.lastClientOffset = getEventClientOffset(e)\n\n\t\tthis.scheduleHover(dragOverTargetIds)\n\n\t\tconst canDrop = (dragOverTargetIds || []).some((targetId) =>\n\t\t\tthis.monitor.canDropOnTarget(targetId),\n\t\t)\n\n\t\tif (canDrop) {\n\t\t\t// Show user-specified drop effect.\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = this.getCurrentDropEffect()\n\t\t\t}\n\t\t} else if (this.isDraggingNativeItem()) {\n\t\t\t// Don't show a nice cursor but still prevent default\n\t\t\t// \"drop and blow away the whole document\" action.\n\t\t\te.preventDefault()\n\t\t} else {\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = 'none'\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic handleTopDragLeaveCapture = (e: DragEvent): void => {\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\te.preventDefault()\n\t\t}\n\n\t\tconst isLastLeave = this.enterLeaveCounter.leave(e.target)\n\t\tif (!isLastLeave) {\n\t\t\treturn\n\t\t}\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tsetTimeout(() => this.endDragNativeItem(), 0)\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tpublic handleTopDropCapture = (e: DragEvent): void => {\n\t\tthis.dropTargetIds = []\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\te.preventDefault()\n\t\t\tthis.currentNativeSource?.loadDataTransfer(e.dataTransfer)\n\t\t} else if (matchNativeItemType(e.dataTransfer)) {\n\t\t\t// Dragging some elements, like <a> and <img> may still behave like a native drag event,\n\t\t\t// even if the current drag event matches a user-defined type.\n\t\t\t// Stop the default behavior when we're not expecting a native item to be dropped.\n\n\t\t\te.preventDefault()\n\t\t}\n\n\t\tthis.enterLeaveCounter.reset()\n\t}\n\n\tpublic handleDrop(_e: DragEvent, targetId: string): void {\n\t\tthis.dropTargetIds.unshift(targetId)\n\t}\n\n\tpublic handleTopDrop = (e: DragEvent): void => {\n\t\tconst { dropTargetIds } = this\n\t\tthis.dropTargetIds = []\n\n\t\tthis.actions.hover(dropTargetIds, {\n\t\t\tclientOffset: getEventClientOffset(e),\n\t\t})\n\t\tthis.actions.drop({ dropEffect: this.getCurrentDropEffect() })\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tthis.endDragNativeItem()\n\t\t} else if (this.monitor.isDragging()) {\n\t\t\tthis.actions.endDrag()\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tpublic handleSelectStart = (e: DragEvent): void => {\n\t\tconst target = e.target as HTMLElement & { dragDrop: () => void }\n\n\t\t// Only IE requires us to explicitly say\n\t\t// we want drag drop operation to start\n\t\tif (typeof target.dragDrop !== 'function') {\n\t\t\treturn\n\t\t}\n\n\t\t// Inputs and textareas should be selectable\n\t\tif (\n\t\t\ttarget.tagName === 'INPUT' ||\n\t\t\ttarget.tagName === 'SELECT' ||\n\t\t\ttarget.tagName === 'TEXTAREA' ||\n\t\t\ttarget.isContentEditable\n\t\t) {\n\t\t\treturn\n\t\t}\n\n\t\t// For other targets, ask IE\n\t\t// to enable drag and drop\n\t\te.preventDefault()\n\t\ttarget.dragDrop()\n\t}\n}\n","import type { BackendFactory, DragDropManager } from 'dnd-core'\n\nimport { HTML5BackendImpl } from './HTML5BackendImpl.js'\nimport type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\nexport { getEmptyImage } from './getEmptyImage.js'\nexport * as NativeTypes from './NativeTypes.js'\nexport type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\n\nexport const HTML5Backend: BackendFactory = function createBackend(\n\tmanager: DragDropManager,\n\tcontext?: HTML5BackendContext,\n\toptions?: HTML5BackendOptions,\n): HTML5BackendImpl {\n\treturn new HTML5BackendImpl(manager, context, options)\n}\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_FullScreenToggleButton: FC<Props> = ({\n instance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { FullscreenExitIcon, FullscreenIcon },\n localization,\n },\n setIsFullScreen,\n } = instance;\n\n const { isFullScreen } = getState();\n\n const handleToggleFullScreen = () => {\n setIsFullScreen(!isFullScreen);\n };\n\n return (\n <Tooltip arrow title={localization.toggleFullScreen}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleFullScreen}\n {...rest}\n >\n {isFullScreen ? <FullscreenExitIcon /> : <FullscreenIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip, IconButtonProps } from '@mui/material';\nimport { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsButton: FC<Props> = ({ instance, ...rest }) => {\n const {\n options: {\n icons: { ViewColumnIcon },\n localization,\n },\n } = instance;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n return (\n <>\n <Tooltip arrow title={localization.showHideColumns}>\n <IconButton\n aria-label={localization.showHideColumns}\n onClick={handleClick}\n {...rest}\n >\n <ViewColumnIcon />\n </IconButton>\n </Tooltip>\n <MRT_ShowHideColumnsMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n instance={instance}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleDensePaddingButton: FC<Props> = ({\n instance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { DensityLargeIcon, DensityMediumIcon, DensitySmallIcon },\n localization,\n },\n setDensity,\n } = instance;\n\n const { density } = getState();\n\n const handleToggleDensePadding = () => {\n const nextDensity =\n density === 'comfortable'\n ? 'compact'\n : density === 'compact'\n ? 'spacious'\n : 'comfortable';\n setDensity(nextDensity);\n };\n\n return (\n <Tooltip arrow title={localization.toggleDensity}>\n <IconButton\n aria-label={localization.toggleDensity}\n onClick={handleToggleDensePadding}\n {...rest}\n >\n {density === 'compact' ? (\n <DensitySmallIcon />\n ) : density === 'comfortable' ? (\n <DensityMediumIcon />\n ) : (\n <DensityLargeIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleFiltersButton: FC<Props> = ({ instance, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, FilterListOffIcon },\n localization,\n },\n setShowFilters,\n } = instance;\n\n const { showFilters } = getState();\n\n const handleToggleShowFilters = () => {\n setShowFilters(!showFilters);\n };\n\n return (\n <Tooltip arrow title={localization.showHideFilters}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleShowFilters}\n {...rest}\n >\n {showFilters ? <FilterListOffIcon /> : <FilterListIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleGlobalFilterButton: FC<Props> = ({\n instance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { SearchIcon, SearchOffIcon },\n tableId,\n localization,\n muiSearchTextFieldProps,\n },\n setShowGlobalFilter,\n } = instance;\n\n const { showGlobalFilter } = getState();\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ instance })\n : muiSearchTextFieldProps;\n\n const handleToggleSearch = () => {\n setShowGlobalFilter(!showGlobalFilter);\n setTimeout(\n () =>\n document\n .getElementById(\n textFieldProps?.id ?? `mrt-${tableId}-search-text-field`,\n )\n ?.focus(),\n 200,\n );\n };\n\n return (\n <Tooltip arrow title={localization.showHideSearch}>\n <IconButton onClick={handleToggleSearch} {...rest}>\n {showGlobalFilter ? <SearchOffIcon /> : <SearchIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Collapse,\n debounce,\n IconButton,\n InputAdornment,\n TextField,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_GlobalFilterTextField: FC<Props> = ({ instance }) => {\n const {\n getState,\n setGlobalFilter,\n options: {\n enableGlobalFilterChangeMode,\n icons: { SearchIcon, CloseIcon },\n localization,\n muiSearchTextFieldProps,\n tableId,\n },\n } = instance;\n\n const { globalFilter, showGlobalFilter } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [searchValue, setSearchValue] = useState(globalFilter ?? '');\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n setGlobalFilter(event.target.value ?? undefined);\n }, 250),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleGlobalFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setSearchValue('');\n setGlobalFilter(undefined);\n };\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ instance })\n : muiSearchTextFieldProps;\n\n return (\n <Collapse in={showGlobalFilter} orientation=\"horizontal\">\n <TextField\n id={`mrt-${tableId}-search-text-field`}\n placeholder={localization.search}\n onChange={handleChange}\n value={searchValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: enableGlobalFilterChangeMode ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeSearchMode}>\n <IconButton\n aria-label={localization.changeSearchMode}\n onClick={handleGlobalFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <SearchIcon />\n </IconButton>\n </Tooltip>\n </InputAdornment>\n ) : (\n <SearchIcon />\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <Tooltip arrow title={localization.clearSearch ?? ''}>\n <span>\n <IconButton\n aria-label={localization.clearSearch}\n disabled={!searchValue?.length}\n onClick={handleClear}\n size=\"small\"\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n />\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n instance={instance}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FullScreenToggleButton } from '../buttons/MRT_FullScreenToggleButton';\nimport { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';\nimport { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton';\nimport { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';\nimport { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarInternalButtons: FC<Props> = ({ instance }) => {\n const {\n options: {\n enableColumnFilters,\n enableColumnOrdering,\n enableDensityToggle,\n enableFilters,\n enableFullScreenToggle,\n enableGlobalFilter,\n enableHiding,\n enablePinning,\n positionGlobalFilter,\n renderToolbarInternalActions,\n },\n } = instance;\n\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n zIndex: 3,\n }}\n >\n {renderToolbarInternalActions?.({\n MRT_FullScreenToggleButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_ToggleFiltersButton,\n MRT_ToggleGlobalFilterButton,\n instance,\n }) ?? (\n <>\n {enableGlobalFilter && positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField instance={instance} />\n )}\n {enableFilters && enableGlobalFilter && (\n <MRT_ToggleGlobalFilterButton instance={instance} />\n )}\n {enableFilters && enableColumnFilters && (\n <MRT_ToggleFiltersButton instance={instance} />\n )}\n {(enableHiding || enableColumnOrdering || enablePinning) && (\n <MRT_ShowHideColumnsButton instance={instance} />\n )}\n {enableDensityToggle && (\n <MRT_ToggleDensePaddingButton instance={instance} />\n )}\n {enableFullScreenToggle && (\n <MRT_FullScreenToggleButton instance={instance} />\n )}\n </>\n )}\n </Box>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { TablePagination } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n position: 'top' | 'bottom';\n}\n\nexport const MRT_TablePagination: FC<Props> = ({ instance, position }) => {\n const {\n getPrePaginationRowModel,\n getState,\n setPageIndex,\n setPageSize,\n options: {\n muiTablePaginationProps,\n enableToolbarInternalActions,\n rowCount,\n },\n } = instance;\n\n const {\n pagination: { pageSize = 10, pageIndex = 0 },\n showGlobalFilter,\n } = getState();\n\n const tablePaginationProps =\n muiTablePaginationProps instanceof Function\n ? muiTablePaginationProps({ instance })\n : muiTablePaginationProps;\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n setPageSize(+event.target.value);\n };\n\n const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;\n\n const showFirstLastPageButtons = totalRowCount / pageSize > 2;\n\n return (\n <TablePagination\n SelectProps={{\n sx: { m: '0 1rem 0 1ch' },\n MenuProps: { MenuListProps: { disablePadding: true } },\n }}\n component=\"div\"\n count={totalRowCount}\n onPageChange={(_: any, newPage: number) => setPageIndex(newPage)}\n onRowsPerPageChange={handleChangeRowsPerPage}\n page={pageIndex}\n rowsPerPage={pageSize}\n rowsPerPageOptions={[5, 10, 15, 20, 25, 30, 50, 100]}\n showFirstButton={showFirstLastPageButtons}\n showLastButton={showFirstLastPageButtons}\n {...tablePaginationProps}\n sx={{\n m: '0 0.5rem',\n mt:\n position === 'top' &&\n enableToolbarInternalActions &&\n !showGlobalFilter\n ? '3.5rem'\n : undefined,\n position: 'relative',\n zIndex: 2,\n ...tablePaginationProps?.sx,\n }}\n />\n );\n};\n","import React, { FC, Fragment } from 'react';\nimport { Alert, AlertTitle, Box, Chip, Collapse } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n stackAlertBanner?: boolean;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarAlertBanner: FC<Props> = ({\n stackAlertBanner,\n instance,\n}) => {\n const {\n getPrePaginationRowModel,\n getSelectedRowModel,\n getState,\n options: { localization, muiTableToolbarAlertBannerProps },\n } = instance;\n\n const { grouping, showAlertBanner } = getState();\n\n const alertProps =\n muiTableToolbarAlertBannerProps instanceof Function\n ? muiTableToolbarAlertBannerProps({ instance })\n : muiTableToolbarAlertBannerProps;\n\n const selectMessage =\n getSelectedRowModel().rows.length > 0\n ? localization.selectedCountOfRowCountRowsSelected\n ?.replace(\n '{selectedCount}',\n getSelectedRowModel().rows.length.toString(),\n )\n ?.replace(\n '{rowCount}',\n getPrePaginationRowModel().rows.length.toString(),\n )\n : null;\n\n const groupedByMessage =\n grouping.length > 0 ? (\n <span>\n {localization.groupedBy}{' '}\n {grouping.map((columnId, index) => (\n <Fragment key={`${index}-${columnId}`}>\n {index > 0 ? localization.thenBy : ''}\n <Chip\n color=\"secondary\"\n label={instance.getColumn(columnId).columnDef.header}\n onDelete={() => instance.getColumn(columnId).toggleGrouping()}\n />\n </Fragment>\n ))}\n </span>\n ) : null;\n\n return (\n <Collapse\n in={showAlertBanner || !!selectMessage || !!groupedByMessage}\n timeout={stackAlertBanner ? 200 : 0}\n >\n <Alert\n color=\"info\"\n icon={false}\n {...alertProps}\n sx={{\n borderRadius: 0,\n fontSize: '1rem',\n left: 0,\n p: 0,\n position: 'relative',\n right: 0,\n top: 0,\n width: '100%',\n zIndex: 2,\n ...alertProps?.sx,\n }}\n >\n {alertProps?.title && <AlertTitle>{alertProps.title}</AlertTitle>}\n <Box sx={{ p: '0.5rem 1rem' }}>\n {alertProps?.children}\n {alertProps?.children && (selectMessage || groupedByMessage) && (\n <br />\n )}\n {selectMessage}\n {selectMessage && groupedByMessage && <br />}\n {groupedByMessage}\n </Box>\n </Alert>\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, LinearProgress } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n alignTo: 'bottom' | 'top';\n instance: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ alignTo, instance }) => {\n const {\n options: { muiLinearProgressProps },\n getState,\n } = instance;\n\n const { isLoading, showProgressBars } = getState();\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ instance })\n : muiLinearProgressProps;\n\n return (\n <Collapse\n in={isLoading || showProgressBars}\n mountOnEnter\n unmountOnExit\n sx={{\n bottom: alignTo === 'bottom' ? 0 : undefined,\n position: 'absolute',\n top: alignTo === 'top' ? 0 : undefined,\n width: '100%',\n }}\n >\n <LinearProgress\n aria-label=\"Loading\"\n aria-busy=\"true\"\n sx={{ position: 'relative' }}\n {...linearProgressProps}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, lighten, Theme, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\nexport const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n backgroundImage: 'none',\n display: 'grid',\n minHeight: '3.5rem',\n overflow: 'hidden',\n p: '0 !important',\n transition: 'all 0.2s ease-in-out',\n zIndex: 1,\n});\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarTop: FC<Props> = ({ instance }) => {\n const {\n getState,\n options: {\n enableGlobalFilter,\n enablePagination,\n enableToolbarInternalActions,\n muiTableToolbarTopProps,\n positionGlobalFilter,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarTopCustomActions,\n tableId,\n },\n } = instance;\n\n const { isFullScreen, showGlobalFilter } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarTopProps instanceof Function\n ? muiTableToolbarTopProps({ instance })\n : muiTableToolbarTopProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'top' &&\n (!!renderToolbarTopCustomActions || showGlobalFilter));\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-top`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n position: isFullScreen ? 'sticky' : undefined,\n top: isFullScreen ? '0' : undefined,\n ...commonToolbarStyles({ theme }),\n ...toolbarProps?.sx,\n } as any)\n }\n >\n {positionToolbarAlertBanner === 'top' && (\n <MRT_ToolbarAlertBanner\n stackAlertBanner={stackAlertBanner}\n instance={instance}\n />\n )}\n <Box\n sx={{\n alignItems: 'flex-start',\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'space-between',\n p: '0.5rem',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n width: '100%',\n }}\n >\n {enableGlobalFilter && positionGlobalFilter === 'left' && (\n <MRT_GlobalFilterTextField instance={instance} />\n )}\n\n {renderToolbarTopCustomActions?.({ instance }) ?? <span />}\n {enableToolbarInternalActions ? (\n <MRT_ToolbarInternalButtons instance={instance} />\n ) : (\n enableGlobalFilter &&\n positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField instance={instance} />\n )\n )}\n </Box>\n {enablePagination &&\n ['top', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination instance={instance} position=\"top\" />\n )}\n <MRT_LinearProgressBar alignTo=\"bottom\" instance={instance} />\n </Toolbar>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, Box, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { commonToolbarStyles } from './MRT_ToolbarTop';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarBottom: FC<Props> = ({ instance }) => {\n const {\n getState,\n options: {\n enablePagination,\n muiTableToolbarBottomProps,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarBottomCustomActions,\n tableId,\n },\n } = instance;\n\n const { isFullScreen } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarBottomProps instanceof Function\n ? muiTableToolbarBottomProps({ instance })\n : muiTableToolbarBottomProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'bottom' &&\n !!renderToolbarBottomCustomActions);\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-bottom`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n ...commonToolbarStyles({ theme }),\n bottom: isFullScreen ? '0' : undefined,\n boxShadow: `-3px 0 6px ${alpha(theme.palette.common.black, 0.1)}`,\n left: 0,\n position: isFullScreen ? 'fixed' : 'relative',\n right: 0,\n ...toolbarProps?.sx,\n } as any)\n }\n >\n <MRT_LinearProgressBar alignTo=\"top\" instance={instance} />\n {positionToolbarAlertBanner === 'bottom' && (\n <MRT_ToolbarAlertBanner instance={instance} />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n {renderToolbarBottomCustomActions ? (\n <Box sx={{ p: '0.5rem' }}>\n {renderToolbarBottomCustomActions({ instance })}\n </Box>\n ) : (\n <span />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n }}\n >\n {enablePagination &&\n ['bottom', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination instance={instance} position=\"bottom\" />\n )}\n </Box>\n </Box>\n </Toolbar>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Chip,\n debounce,\n IconButton,\n InputAdornment,\n MenuItem,\n TextField,\n TextFieldProps,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n inputIndex?: number;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({\n header,\n inputIndex,\n instance,\n}) => {\n const {\n getState,\n options: {\n enableColumnFilterChangeMode,\n enabledColumnFilterOptions,\n icons: { FilterListIcon, CloseIcon },\n localization,\n muiTableHeadCellFilterTextFieldProps,\n tableId,\n },\n setCurrentFilterFns,\n } = instance;\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const { currentFilterFns } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const mTableHeadCellFilterTextFieldProps =\n muiTableHeadCellFilterTextFieldProps instanceof Function\n ? muiTableHeadCellFilterTextFieldProps({ column, instance })\n : muiTableHeadCellFilterTextFieldProps;\n\n const mcTableHeadCellFilterTextFieldProps =\n columnDef.muiTableHeadCellFilterTextFieldProps instanceof Function\n ? columnDef.muiTableHeadCellFilterTextFieldProps({\n column,\n instance,\n })\n : columnDef.muiTableHeadCellFilterTextFieldProps;\n\n const textFieldProps = {\n ...mTableHeadCellFilterTextFieldProps,\n ...mcTableHeadCellFilterTextFieldProps,\n } as TextFieldProps;\n\n const [filterValue, setFilterValue] = useState<string>(() =>\n inputIndex !== undefined\n ? (column.getFilterValue() as [string, string])?.[inputIndex] ?? ''\n : (column.getFilterValue() as string) ?? '',\n );\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string, string]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = event.target.value;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(event.target.value ?? undefined);\n }\n }, 200),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setFilterValue('');\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string | undefined, string | undefined]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = undefined;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(undefined);\n }\n };\n\n const handleClearFilterChip = () => {\n setFilterValue('');\n column.setFilterValue(undefined);\n setCurrentFilterFns((prev) => ({\n ...prev,\n [header.id]: 'fuzzy',\n }));\n };\n\n if (columnDef.Filter) {\n return <>{columnDef.Filter?.({ header, instance })}</>;\n }\n\n const filterId = `mrt-${tableId}-${header.id}-filter-text-field${\n inputIndex ?? ''\n }`;\n const filterFn = currentFilterFns?.[header.id];\n const isSelectFilter = !!columnDef.filterSelectOptions;\n const filterChipLabel =\n !(filterFn instanceof Function) && ['empty', 'notEmpty'].includes(filterFn)\n ? //@ts-ignore\n localization[\n `filter${filterFn.charAt(0).toUpperCase() + filterFn.slice(1)}`\n ]\n : '';\n const filterPlaceholder =\n inputIndex === undefined\n ? localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )\n : inputIndex === 0\n ? localization.min\n : inputIndex === 1\n ? localization.max\n : '';\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showChangeModeButton =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n !inputIndex &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <>\n <TextField\n fullWidth\n id={filterId}\n inputProps={{\n disabled: !!filterChipLabel,\n sx: {\n textOverflow: 'ellipsis',\n width: filterChipLabel ? 0 : undefined,\n },\n title: filterPlaceholder,\n }}\n helperText={\n showChangeModeButton ? (\n <label htmlFor={filterId}>\n {filterFn instanceof Function\n ? localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n filterFn.name.charAt(0).toUpperCase() +\n filterFn.name.slice(1)\n }`\n ] ?? '',\n ) ?? ''\n : localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n filterFn.charAt(0).toUpperCase() + filterFn.slice(1)\n }`\n ],\n )}\n </label>\n ) : null\n }\n FormHelperTextProps={{\n sx: {\n fontSize: '0.6rem',\n lineHeight: '0.8rem',\n whiteSpace: 'nowrap',\n },\n }}\n margin=\"none\"\n placeholder={\n filterChipLabel || isSelectFilter ? undefined : filterPlaceholder\n }\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n select={isSelectFilter}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: showChangeModeButton ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeFilterMode}>\n <span>\n <IconButton\n aria-label={localization.changeFilterMode}\n onClick={handleFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <FilterListIcon />\n </IconButton>\n </span>\n </Tooltip>\n {filterChipLabel && (\n <Chip\n onDelete={handleClearFilterChip}\n label={filterChipLabel}\n />\n )}\n </InputAdornment>\n ) : (\n <FilterListIcon />\n ),\n endAdornment: !filterChipLabel && (\n <InputAdornment position=\"end\">\n <Tooltip\n arrow\n disableHoverListener={isSelectFilter}\n placement=\"right\"\n title={localization.clearFilter ?? ''}\n >\n <span>\n <IconButton\n aria-label={localization.clearFilter}\n disabled={!filterValue?.length}\n onClick={handleClear}\n size=\"small\"\n sx={{\n height: '1.75rem',\n width: '1.75rem',\n }}\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n sx={{\n m: '-0.25rem',\n p: 0,\n minWidth: !filterChipLabel ? '8rem' : 'auto',\n width: 'calc(100% + 0.5rem)',\n '&\t.MuiSelect-icon': {\n mr: '1.5rem',\n },\n ...textFieldProps?.sx,\n }}\n >\n {isSelectFilter && (\n <MenuItem divider disabled={!filterValue} value=\"\">\n {localization.clearFilter}\n </MenuItem>\n )}\n {columnDef?.filterSelectOptions?.map((option) => {\n let value;\n let text;\n if (typeof option === 'string') {\n value = option;\n text = option;\n } else if (typeof option === 'object') {\n value = option.value;\n text = option.text;\n }\n return (\n <MenuItem key={value} value={value}>\n {text}\n </MenuItem>\n );\n })}\n </TextField>\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n instance={instance}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FilterTextField } from './MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_FilterRangeFields: FC<Props> = ({ header, instance }) => {\n return (\n <Box sx={{ display: 'grid', gridTemplateColumns: '6fr 6fr', gap: '1rem' }}>\n <MRT_FilterTextField header={header} inputIndex={0} instance={instance} />\n <MRT_FilterTextField header={header} inputIndex={1} instance={instance} />\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse } from '@mui/material';\nimport { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields';\nimport { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterContainer: FC<Props> = ({\n header,\n instance,\n}) => {\n const { getState } = instance;\n\n const { currentFilterFns, showFilters } = getState();\n\n const { column } = header;\n\n return (\n <Collapse in={showFilters} mountOnEnter unmountOnExit>\n {currentFilterFns[column.id] === 'between' ? (\n <MRT_FilterRangeFields header={header} instance={instance} />\n ) : (\n <MRT_FilterTextField header={header} instance={instance} />\n )}\n </Collapse>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { Grow, IconButton, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterLabel: FC<Props> = ({\n header,\n instance,\n}) => {\n const {\n getState,\n options: {\n icons: { FilterAltIcon },\n localization,\n },\n } = instance;\n\n const { currentFilterFns } = getState();\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const filterFn = currentFilterFns?.[header.id];\n\n const filterTooltip = localization.filteringByColumn\n .replace('{column}', String(columnDef.header))\n .replace(\n '{filterType}',\n filterFn instanceof Function\n ? ''\n : // @ts-ignore\n localization[\n `filter${filterFn.charAt(0).toUpperCase() + filterFn.slice(1)}`\n ],\n )\n .replace(\n '{filterValue}',\n `\"${\n Array.isArray(column.getFilterValue())\n ? (column.getFilterValue() as [string, string]).join(\n `\" ${localization.and} \"`,\n )\n : (column.getFilterValue() as string)\n }\"`,\n )\n .replace('\" \"', '');\n\n return (\n <Grow\n unmountOnExit\n in={\n (!!column.getFilterValue() && filterFn !== 'between') ||\n (filterFn === 'between' && // @ts-ignore\n (!!column.getFilterValue()?.[0] || !!column.getFilterValue()?.[1]))\n }\n >\n <span>\n <Tooltip arrow placement=\"top\" title={filterTooltip}>\n <IconButton\n disableRipple\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n }}\n size=\"small\"\n sx={{\n m: 0,\n opacity: 0.8,\n p: '2px',\n transform: 'scale(0.66)',\n width: '1.5ch',\n }}\n >\n <FilterAltIcon />\n </IconButton>\n </Tooltip>\n </span>\n </Grow>\n );\n};\n","import React, { FC } from 'react';\nimport { Divider, Theme } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellResizeHandle: FC<Props> = ({\n header,\n instance,\n}) => {\n const { getState } = instance;\n\n const { density, showFilters } = getState();\n\n const { column } = header;\n\n const { columnDefType } = column;\n\n return (\n <Divider\n flexItem\n orientation=\"vertical\"\n onDoubleClick={() => column.resetSize()}\n sx={(theme: Theme) => ({\n borderRadius: '2px',\n borderRightWidth: '2px',\n cursor: 'col-resize',\n height: showFilters && columnDefType === 'data' ? '4rem' : '2rem',\n mr: density === 'compact' ? '-0.5rem' : '-1rem',\n opacity: 0.8,\n position: 'absolute',\n right: '1px',\n touchAction: 'none',\n transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',\n userSelect: 'none',\n zIndex: 4,\n '&:active': {\n backgroundColor: theme.palette.info.main,\n opacity: 1,\n },\n })}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n style={{\n transform: column.getIsResizing()\n ? `translateX(${getState().columnSizingInfo.deltaOffset}px)`\n : 'none',\n }}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { TableSortLabel, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellSortLabel: FC<Props> = ({ header, instance }) => {\n const {\n options: { localization },\n } = instance;\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const sortTooltip = !!column.getIsSorted()\n ? column.getIsSorted() === 'desc'\n ? localization.sortedByColumnDesc.replace('{column}', columnDef.header)\n : localization.sortedByColumnAsc.replace('{column}', columnDef.header)\n : localization.unsorted;\n\n return (\n <Tooltip arrow placement=\"top\" title={sortTooltip}>\n <TableSortLabel\n aria-label={sortTooltip}\n active={!!column.getIsSorted()}\n direction={\n column.getIsSorted()\n ? (column.getIsSorted() as 'asc' | 'desc')\n : undefined\n }\n sx={{\n width: '2ch',\n transform: 'translateX(-0.5ch)',\n }}\n />\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({\n header,\n instance,\n}) => {\n const {\n options: {\n icons: { MoreVertIcon },\n localization,\n muiTableHeadCellColumnActionsButtonProps,\n },\n } = instance;\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const mTableHeadCellColumnActionsButtonProps =\n muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? muiTableHeadCellColumnActionsButtonProps({ column, instance })\n : muiTableHeadCellColumnActionsButtonProps;\n\n const mcTableHeadCellColumnActionsButtonProps =\n columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? columnDef.muiTableHeadCellColumnActionsButtonProps({\n column,\n instance,\n })\n : columnDef.muiTableHeadCellColumnActionsButtonProps;\n\n const iconButtonProps = {\n ...mTableHeadCellColumnActionsButtonProps,\n ...mcTableHeadCellColumnActionsButtonProps,\n };\n\n return (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.columnActions}\n >\n <IconButton\n aria-label={localization.columnActions}\n onClick={handleClick}\n size=\"small\"\n {...iconButtonProps}\n sx={{\n height: '2rem',\n mt: '-0.2rem',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n ...iconButtonProps.sx,\n }}\n >\n <MoreVertIcon />\n </IconButton>\n </Tooltip>\n <MRT_ColumnActionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n instance={instance}\n />\n </>\n );\n};\n","import React, { FC, ReactNode, Ref } from 'react';\nimport { Box, TableCell, Theme, alpha, lighten } from '@mui/material';\nimport { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer';\nimport { MRT_TableHeadCellFilterLabel } from './MRT_TableHeadCellFilterLabel';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';\nimport { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';\nimport { MRT_TableHeadCellColumnActionsButton } from './MRT_TableHeadCellColumnActionsButton';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n dragRef?: Ref<HTMLButtonElement>;\n dropRef?: Ref<HTMLDivElement>;\n header: MRT_Header;\n instance: MRT_TableInstance;\n isDragging?: boolean;\n previewRef?: Ref<HTMLTableCellElement>;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({\n dragRef,\n dropRef,\n header,\n instance,\n isDragging,\n previewRef,\n}) => {\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnOrdering,\n enableColumnResizing,\n enableGrouping,\n enableMultiSort,\n muiTableHeadCellProps,\n },\n } = instance;\n\n const { density, showFilters } = getState();\n\n const { column } = header;\n\n const { columnDef, columnDefType } = column;\n\n const mTableHeadCellProps =\n muiTableHeadCellProps instanceof Function\n ? muiTableHeadCellProps({ column, instance })\n : muiTableHeadCellProps;\n\n const mcTableHeadCellProps =\n columnDef.muiTableHeadCellProps instanceof Function\n ? columnDef.muiTableHeadCellProps({ column, instance })\n : columnDef.muiTableHeadCellProps;\n\n const tableCellProps = {\n ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const headerElement = ((columnDef?.Header instanceof Function\n ? columnDef?.Header?.({\n header,\n instance,\n })\n : columnDef?.Header) ??\n header.renderHeader() ??\n columnDef.header) as ReactNode;\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n instance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (instance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) *\n 150\n );\n };\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={header.colSpan}\n {...tableCellProps}\n ref={\n columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined\n }\n sx={(theme: Theme) => ({\n backgroundColor:\n column.getIsPinned() && columnDefType !== 'group'\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : 'inherit',\n backgroundImage: 'inherit',\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n fontWeight: 'bold',\n height: '100%',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'visible',\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pb: columnDefType === 'display' ? 0 : undefined,\n position:\n column.getIsPinned() && columnDefType !== 'group'\n ? 'sticky'\n : undefined,\n pt:\n columnDefType !== 'data'\n ? 0\n : density === 'compact'\n ? '0.25'\n : density === 'comfortable'\n ? '.75rem'\n : '1.25rem',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,\n userSelect: enableMultiSort ? 'none' : undefined,\n verticalAlign:\n columnDefType === 'display' && showFilters ? 'center' : 'text-top',\n zIndex: column.getIsResizing()\n ? 3\n : column.getIsPinned() && columnDefType !== 'group'\n ? 2\n : 1,\n ...(tableCellProps?.sx as any),\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: header.getSize(),\n })}\n >\n {header.isPlaceholder ? null : columnDefType === 'display' ? (\n headerElement\n ) : (\n <Box\n ref={previewRef}\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n columnDefType === 'group' ? 'center' : 'space-between',\n opacity: isDragging ? 0.5 : 1,\n position: 'relative',\n width: '100%',\n }}\n >\n <Box\n onClick={column.getToggleSortingHandler()}\n sx={{\n alignItems: 'center',\n cursor:\n column.getCanSort() && columnDefType !== 'group'\n ? 'pointer'\n : undefined,\n display: 'flex',\n flexWrap: 'nowrap',\n whiteSpace:\n (columnDef.header?.length ?? 0) < 24 ? 'nowrap' : 'normal',\n }}\n >\n {headerElement}\n {columnDefType === 'data' && column.getCanSort() && (\n <MRT_TableHeadCellSortLabel header={header} instance={instance} />\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterLabel\n header={header}\n instance={instance}\n />\n )}\n </Box>\n <Box sx={{ whiteSpace: 'nowrap' }}>\n {columnDefType === 'data' &&\n ((enableColumnOrdering &&\n columnDef.enableColumnOrdering !== false) ||\n (enableGrouping && columnDef.enableGrouping !== false)) && (\n <MRT_GrabHandleButton\n ref={dragRef as Ref<HTMLButtonElement>}\n instance={instance}\n />\n )}\n {(enableColumnActions || columnDef.enableColumnActions) &&\n columnDef.enableColumnActions !== false &&\n columnDefType !== 'group' && (\n <MRT_TableHeadCellColumnActionsButton\n header={header}\n instance={instance}\n />\n )}\n </Box>\n {column.getCanResize() && (\n <MRT_TableHeadCellResizeHandle\n header={header}\n instance={instance}\n />\n )}\n </Box>\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterContainer header={header} instance={instance} />\n )}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { useDrag, useDrop } from 'react-dnd';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport type { MRT_Column, MRT_Header, MRT_TableInstance } from '..';\nimport { reorderColumn } from '../utils';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_DraggableTableHeadCell: FC<Props> = ({ header, instance }) => {\n const { getState, setColumnOrder } = instance;\n\n const { columnOrder } = getState();\n\n const { column } = header;\n\n const [, dropRef] = useDrop({\n accept: 'column',\n drop: (movingColumn: MRT_Column) => {\n const newColumnOrder = reorderColumn(movingColumn, column, columnOrder);\n setColumnOrder(newColumnOrder);\n },\n });\n\n const [{ isDragging }, dragRef, previewRef] = useDrag({\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n item: () => column,\n type: 'column',\n });\n\n return (\n <MRT_TableHeadCell\n dragRef={dragRef}\n dropRef={dropRef}\n header={header}\n isDragging={isDragging}\n previewRef={previewRef}\n instance={instance}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, lighten, TableRow } from '@mui/material';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport { MRT_DraggableTableHeadCell } from './MRT_DraggableTableHeadCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n headerGroup: MRT_HeaderGroup;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup, instance }) => {\n const {\n options: { enableColumnOrdering, enableGrouping, muiTableHeadRowProps },\n } = instance;\n\n const tableRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, instance })\n : muiTableHeadRowProps;\n\n return (\n <TableRow\n {...tableRowProps}\n sx={(theme) => ({\n boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`,\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n ...(tableRowProps?.sx as any),\n })}\n >\n {headerGroup.headers.map((header: MRT_Header, index) =>\n enableColumnOrdering || enableGrouping ? (\n <MRT_DraggableTableHeadCell\n header={header}\n key={header.id || index}\n instance={instance}\n />\n ) : (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n instance={instance}\n />\n ),\n )}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableHead } from '@mui/material';\nimport { MRT_TableHeadRow } from './MRT_TableHeadRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ instance }) => {\n const {\n getHeaderGroups,\n options: { muiTableHeadProps },\n } = instance;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ instance })\n : muiTableHeadProps;\n\n return (\n <TableHead {...tableHeadProps}>\n {getHeaderGroups().map((headerGroup) => (\n <MRT_TableHeadRow\n headerGroup={headerGroup as any}\n key={headerGroup.id}\n instance={instance}\n />\n ))}\n </TableHead>\n );\n};\n","var props = ['bottom', 'height', 'left', 'right', 'top', 'width'];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes =\n/*#__PURE__*/\nnew Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes[\"delete\"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\nexport default observeRect;\n//# sourceMappingURL=observe-rect.esm.js.map\n","import React from 'react'\n\nexport default typeof window !== 'undefined'\n ? React.useLayoutEffect\n : React.useEffect\n","import React from 'react'\nimport observeRect from '@reach/observe-rect'\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect'\n\nexport default function useRect(\n nodeRef,\n initialRect = { width: 0, height: 0 }\n) {\n const [element, setElement] = React.useState(nodeRef.current)\n const [rect, dispatch] = React.useReducer(rectReducer, initialRect)\n const initialRectSet = React.useRef(false)\n\n useIsomorphicLayoutEffect(() => {\n if (nodeRef.current !== element) {\n setElement(nodeRef.current)\n }\n })\n\n useIsomorphicLayoutEffect(() => {\n if (element && !initialRectSet.current) {\n initialRectSet.current = true\n const rect = element.getBoundingClientRect()\n dispatch({ rect })\n }\n }, [element])\n\n React.useEffect(() => {\n if (!element) {\n return\n }\n\n const observer = observeRect(element, rect => {\n dispatch({ rect })\n })\n\n observer.observe()\n\n return () => {\n observer.unobserve()\n }\n }, [element])\n\n return rect\n}\n\nfunction rectReducer(state, action) {\n const rect = action.rect\n if (state.height !== rect.height || state.width !== rect.width) {\n return rect\n }\n return state\n}\n","import React from 'react'\nimport useRect from './useRect'\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect'\n\nconst defaultEstimateSize = () => 50\n\nconst defaultKeyExtractor = index => index\n\nconst defaultMeasureSize = (el, horizontal) => {\n const key = horizontal ? 'offsetWidth' : 'offsetHeight'\n\n return el[key]\n}\n\nexport const defaultRangeExtractor = range => {\n const start = Math.max(range.start - range.overscan, 0)\n const end = Math.min(range.end + range.overscan, range.size - 1)\n\n const arr = []\n\n for (let i = start; i <= end; i++) {\n arr.push(i)\n }\n\n return arr\n}\n\nexport function useVirtual({\n size = 0,\n estimateSize = defaultEstimateSize,\n overscan = 1,\n paddingStart = 0,\n paddingEnd = 0,\n parentRef,\n horizontal,\n scrollToFn,\n useObserver,\n initialRect,\n onScrollElement,\n scrollOffsetFn,\n keyExtractor = defaultKeyExtractor,\n measureSize = defaultMeasureSize,\n rangeExtractor = defaultRangeExtractor,\n}) {\n const sizeKey = horizontal ? 'width' : 'height'\n const scrollKey = horizontal ? 'scrollLeft' : 'scrollTop'\n\n const latestRef = React.useRef({\n scrollOffset: 0,\n measurements: [],\n })\n\n const [scrollOffset, setScrollOffset] = React.useState(0)\n latestRef.current.scrollOffset = scrollOffset\n\n const useMeasureParent = useObserver || useRect\n\n const { [sizeKey]: outerSize } = useMeasureParent(parentRef, initialRect)\n\n latestRef.current.outerSize = outerSize\n\n const defaultScrollToFn = React.useCallback(\n offset => {\n if (parentRef.current) {\n parentRef.current[scrollKey] = offset\n }\n },\n [parentRef, scrollKey]\n )\n\n const resolvedScrollToFn = scrollToFn || defaultScrollToFn\n\n scrollToFn = React.useCallback(\n offset => {\n resolvedScrollToFn(offset, defaultScrollToFn)\n },\n [defaultScrollToFn, resolvedScrollToFn]\n )\n\n const [measuredCache, setMeasuredCache] = React.useState({})\n\n const measure = React.useCallback(() => setMeasuredCache({}), [])\n\n const pendingMeasuredCacheIndexesRef = React.useRef([])\n\n const measurements = React.useMemo(() => {\n const min =\n pendingMeasuredCacheIndexesRef.current.length > 0\n ? Math.min(...pendingMeasuredCacheIndexesRef.current)\n : 0\n pendingMeasuredCacheIndexesRef.current = []\n\n const measurements = latestRef.current.measurements.slice(0, min)\n\n for (let i = min; i < size; i++) {\n const key = keyExtractor(i)\n const measuredSize = measuredCache[key]\n const start = measurements[i - 1] ? measurements[i - 1].end : paddingStart\n const size =\n typeof measuredSize === 'number' ? measuredSize : estimateSize(i)\n const end = start + size\n measurements[i] = { index: i, start, size, end, key }\n }\n return measurements\n }, [estimateSize, measuredCache, paddingStart, size, keyExtractor])\n\n const totalSize = (measurements[size - 1]?.end || paddingStart) + paddingEnd\n\n latestRef.current.measurements = measurements\n latestRef.current.totalSize = totalSize\n\n const element = onScrollElement ? onScrollElement.current : parentRef.current\n\n const scrollOffsetFnRef = React.useRef(scrollOffsetFn)\n scrollOffsetFnRef.current = scrollOffsetFn\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n setScrollOffset(0)\n\n return\n }\n\n const onScroll = event => {\n const offset = scrollOffsetFnRef.current\n ? scrollOffsetFnRef.current(event)\n : element[scrollKey]\n\n setScrollOffset(offset)\n }\n\n onScroll()\n\n element.addEventListener('scroll', onScroll, {\n capture: false,\n passive: true,\n })\n\n return () => {\n element.removeEventListener('scroll', onScroll)\n }\n }, [element, scrollKey])\n\n const { start, end } = calculateRange(latestRef.current)\n\n const indexes = React.useMemo(\n () =>\n rangeExtractor({\n start,\n end,\n overscan,\n size: measurements.length,\n }),\n [start, end, overscan, measurements.length, rangeExtractor]\n )\n\n const measureSizeRef = React.useRef(measureSize)\n measureSizeRef.current = measureSize\n\n const virtualItems = React.useMemo(() => {\n const virtualItems = []\n\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k]\n const measurement = measurements[i]\n\n const item = {\n ...measurement,\n measureRef: el => {\n if (el) {\n const measuredSize = measureSizeRef.current(el, horizontal)\n\n if (measuredSize !== item.size) {\n const { scrollOffset } = latestRef.current\n\n if (item.start < scrollOffset) {\n defaultScrollToFn(scrollOffset + (measuredSize - item.size))\n }\n\n pendingMeasuredCacheIndexesRef.current.push(i)\n\n setMeasuredCache(old => ({\n ...old,\n [item.key]: measuredSize,\n }))\n }\n }\n },\n }\n\n virtualItems.push(item)\n }\n\n return virtualItems\n }, [indexes, defaultScrollToFn, horizontal, measurements])\n\n const mountedRef = React.useRef(false)\n\n useIsomorphicLayoutEffect(() => {\n if (mountedRef.current) {\n setMeasuredCache({})\n }\n mountedRef.current = true\n }, [estimateSize])\n\n const scrollToOffset = React.useCallback(\n (toOffset, { align = 'start' } = {}) => {\n const { scrollOffset, outerSize } = latestRef.current\n\n if (align === 'auto') {\n if (toOffset <= scrollOffset) {\n align = 'start'\n } else if (toOffset >= scrollOffset + outerSize) {\n align = 'end'\n } else {\n align = 'start'\n }\n }\n\n if (align === 'start') {\n scrollToFn(toOffset)\n } else if (align === 'end') {\n scrollToFn(toOffset - outerSize)\n } else if (align === 'center') {\n scrollToFn(toOffset - outerSize / 2)\n }\n },\n [scrollToFn]\n )\n\n const tryScrollToIndex = React.useCallback(\n (index, { align = 'auto', ...rest } = {}) => {\n const { measurements, scrollOffset, outerSize } = latestRef.current\n\n const measurement = measurements[Math.max(0, Math.min(index, size - 1))]\n\n if (!measurement) {\n return\n }\n\n if (align === 'auto') {\n if (measurement.end >= scrollOffset + outerSize) {\n align = 'end'\n } else if (measurement.start <= scrollOffset) {\n align = 'start'\n } else {\n return\n }\n }\n\n const toOffset =\n align === 'center'\n ? measurement.start + measurement.size / 2\n : align === 'end'\n ? measurement.end\n : measurement.start\n\n scrollToOffset(toOffset, { align, ...rest })\n },\n [scrollToOffset, size]\n )\n\n const scrollToIndex = React.useCallback(\n (...args) => {\n // We do a double request here because of\n // dynamic sizes which can cause offset shift\n // and end up in the wrong spot. Unfortunately,\n // we can't know about those dynamic sizes until\n // we try and render them. So double down!\n tryScrollToIndex(...args)\n requestAnimationFrame(() => {\n tryScrollToIndex(...args)\n })\n },\n [tryScrollToIndex]\n )\n\n return {\n virtualItems,\n totalSize,\n scrollToOffset,\n scrollToIndex,\n measure,\n }\n}\n\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n let middle = ((low + high) / 2) | 0\n let currentValue = getCurrentValue(middle)\n\n if (currentValue < value) {\n low = middle + 1\n } else if (currentValue > value) {\n high = middle - 1\n } else {\n return middle\n }\n }\n\n if (low > 0) {\n return low - 1\n } else {\n return 0\n }\n}\n\nfunction calculateRange({ measurements, outerSize, scrollOffset }) {\n const size = measurements.length - 1\n const getOffset = index => measurements[index].start\n\n let start = findNearestBinarySearch(0, size, getOffset, scrollOffset)\n let end = start\n\n while (end < size && measurements[end].end < scrollOffset + outerSize) {\n end++\n }\n\n return { start, end }\n}\n","import React, {\n ChangeEvent,\n FC,\n FocusEvent,\n MouseEvent,\n useState,\n} from 'react';\nimport { TextField } from '@mui/material';\nimport type { MRT_Cell, MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_EditCellTextField: FC<Props> = ({ cell, instance }) => {\n const {\n getState,\n options: {\n tableId,\n enableEditing,\n muiTableBodyCellEditTextFieldProps,\n onCellEditBlur,\n onCellEditChange,\n },\n setCurrentEditingCell,\n setCurrentEditingRow,\n } = instance;\n\n const [value, setValue] = useState(cell.getValue());\n\n const { column, row } = cell;\n\n const { columnDef } = column;\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value);\n columnDef.onCellEditChange?.({ event, cell, instance });\n onCellEditChange?.({ event, cell, instance });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (getState().currentEditingRow) {\n if (!row._valuesCache) row._valuesCache = {};\n (row._valuesCache as Record<string, any>)[column.id] = value;\n setCurrentEditingRow({ ...getState().currentEditingRow } as MRT_Row);\n }\n setCurrentEditingCell(null);\n columnDef.onCellEditBlur?.({ event, cell, instance });\n onCellEditBlur?.({ event, cell, instance });\n };\n\n const mTableBodyCellEditTextFieldProps =\n muiTableBodyCellEditTextFieldProps instanceof Function\n ? muiTableBodyCellEditTextFieldProps({ cell, instance })\n : muiTableBodyCellEditTextFieldProps;\n\n const mcTableBodyCellEditTextFieldProps =\n columnDef.muiTableBodyCellEditTextFieldProps instanceof Function\n ? columnDef.muiTableBodyCellEditTextFieldProps({\n cell,\n instance,\n })\n : columnDef.muiTableBodyCellEditTextFieldProps;\n\n const textFieldProps = {\n ...mTableBodyCellEditTextFieldProps,\n ...mcTableBodyCellEditTextFieldProps,\n };\n\n if (enableEditing && columnDef.enableEditing !== false && columnDef.Edit) {\n return <>{columnDef.Edit?.({ cell, instance })}</>;\n }\n\n return (\n <TextField\n id={`mrt-${tableId}-edit-cell-text-field-${cell.id}`}\n margin=\"dense\"\n onBlur={handleBlur}\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n placeholder={columnDef.header}\n value={value}\n variant=\"standard\"\n {...textFieldProps}\n />\n );\n};\n","import React, { FC, ReactNode, useState } from 'react';\nimport { Button, Tooltip } from '@mui/material';\nimport { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n children: ReactNode;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_CopyButton: FC<Props> = ({ cell, children, instance }) => {\n const {\n options: { localization, muiTableBodyCellCopyButtonProps },\n } = instance;\n\n const { column } = cell;\n\n const { columnDef } = column;\n\n const [copied, setCopied] = useState(false);\n\n const handleCopy = (text: unknown) => {\n navigator.clipboard.writeText(text as string);\n setCopied(true);\n setTimeout(() => setCopied(false), 4000);\n };\n\n const mTableBodyCellCopyButtonProps =\n muiTableBodyCellCopyButtonProps instanceof Function\n ? muiTableBodyCellCopyButtonProps({ cell, instance })\n : muiTableBodyCellCopyButtonProps;\n\n const mcTableBodyCellCopyButtonProps =\n columnDef.muiTableBodyCellCopyButtonProps instanceof Function\n ? columnDef.muiTableBodyCellCopyButtonProps({\n cell,\n instance,\n })\n : columnDef.muiTableBodyCellCopyButtonProps;\n\n const buttonProps = {\n ...mTableBodyCellCopyButtonProps,\n ...mcTableBodyCellCopyButtonProps,\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={copied ? localization.copiedToClipboard : localization.clickToCopy}\n >\n <Button\n aria-label={localization.clickToCopy}\n onClick={() => handleCopy(cell.getValue())}\n size=\"small\"\n type=\"button\"\n variant=\"text\"\n {...buttonProps}\n sx={{\n backgroundColor: 'transparent',\n border: 'none',\n color: 'inherit',\n cursor: 'copy',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n letterSpacing: 'inherit',\n m: '-0.25rem',\n minWidth: 'unset',\n textAlign: 'inherit',\n textTransform: 'inherit',\n ...buttonProps?.sx,\n }}\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useMemo } from 'react';\nimport { useDrop } from 'react-dnd';\nimport { alpha, darken, lighten, Skeleton, TableCell } from '@mui/material';\nimport { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';\nimport { MRT_CopyButton } from '../buttons/MRT_CopyButton';\nimport { reorderColumn } from '../utils';\nimport type { MRT_Cell, MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n enableHover?: boolean;\n rowIndex: number;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({\n cell,\n enableHover,\n rowIndex,\n instance,\n}) => {\n const {\n getState,\n options: {\n editingMode,\n enableClickToCopy,\n enableColumnOrdering,\n enableEditing,\n enableRowNumbers,\n muiTableBodyCellProps,\n muiTableBodyCellSkeletonProps,\n rowNumberMode,\n tableId,\n },\n setColumnOrder,\n setCurrentEditingCell,\n } = instance;\n\n const {\n columnOrder,\n currentEditingCell,\n currentEditingRow,\n density,\n isLoading,\n showSkeletons,\n } = getState();\n\n const { column, row } = cell;\n\n const { columnDef, columnDefType } = column;\n\n const [, dropRef] = useDrop({\n accept: 'column',\n drop: (movingColumn: MRT_Column) => {\n const newColumnOrder = reorderColumn(movingColumn, column, columnOrder);\n setColumnOrder(newColumnOrder);\n },\n });\n\n const mTableCellBodyProps =\n muiTableBodyCellProps instanceof Function\n ? muiTableBodyCellProps({ cell, instance })\n : muiTableBodyCellProps;\n\n const mcTableCellBodyProps =\n columnDef.muiTableBodyCellProps instanceof Function\n ? columnDef.muiTableBodyCellProps({ cell, instance })\n : columnDef.muiTableBodyCellProps;\n\n const tableCellProps = {\n ...mTableCellBodyProps,\n ...mcTableCellBodyProps,\n };\n\n const skeletonWidth = useMemo(\n () =>\n columnDefType === 'display'\n ? column.getSize() / 2\n : Math.random() * (column.getSize() - column.getSize() / 3) +\n column.getSize() / 3,\n [columnDefType, column.getSize()],\n );\n\n const isEditable =\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false;\n\n const isEditing =\n isEditable &&\n (editingMode === 'table' ||\n currentEditingRow?.id === row.id ||\n currentEditingCell?.id === cell.id);\n\n const handleDoubleClick = (_event: MouseEvent<HTMLTableCellElement>) => {\n if (\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false &&\n editingMode === 'cell'\n ) {\n setCurrentEditingCell(cell);\n setTimeout(() => {\n const textField = document.getElementById(\n `mrt-${tableId}-edit-cell-text-field-${cell.id}`,\n ) as HTMLInputElement;\n if (textField) {\n textField.focus();\n textField.select();\n }\n }, 200);\n }\n };\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n instance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (instance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) *\n 150\n );\n };\n\n return (\n <TableCell\n onDoubleClick={handleDoubleClick}\n {...tableCellProps}\n ref={\n columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined\n }\n sx={(theme) => ({\n backgroundColor: column.getIsPinned()\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : undefined,\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'hidden',\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pl:\n column.id === 'mrt-expand'\n ? `${\n row.depth +\n (density === 'compact'\n ? 0.5\n : density === 'comfortable'\n ? 0.75\n : 1.25)\n }rem`\n : undefined,\n position: column.getIsPinned() ? 'sticky' : 'relative',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined,\n transition: 'all 0.2s ease-in-out',\n whiteSpace: density === 'compact' ? 'nowrap' : 'normal',\n zIndex: column.getIsPinned() ? 1 : undefined,\n '&:hover': {\n backgroundColor:\n enableHover && enableEditing && editingMode !== 'row'\n ? theme.palette.mode === 'dark'\n ? `${lighten(\n theme.palette.background.default,\n 0.13,\n )} !important`\n : `${darken(theme.palette.background.default, 0.07)} !important`\n : undefined,\n },\n ...(tableCellProps?.sx as any),\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: column.getSize(),\n })}\n >\n <>\n {isLoading || showSkeletons ? (\n <Skeleton\n animation=\"wave\"\n height={20}\n width={skeletonWidth}\n {...muiTableBodyCellSkeletonProps}\n />\n ) : enableRowNumbers &&\n rowNumberMode === 'static' &&\n column.id === 'mrt-row-numbers' ? (\n rowIndex + 1\n ) : columnDefType === 'display' ? (\n columnDef.Cell?.({ cell, instance })\n ) : cell.getIsPlaceholder() ||\n (row.getIsGrouped() &&\n column.id !==\n row.groupingColumnId) ? null : cell.getIsAggregated() ? (\n columnDef.AggregatedCell?.({ cell, instance }) ??\n cell.renderAggregatedCell()\n ) : isEditing ? (\n <MRT_EditCellTextField cell={cell} instance={instance} />\n ) : (enableClickToCopy || columnDef.enableClickToCopy) &&\n columnDef.enableClickToCopy !== false ? (\n <>\n <MRT_CopyButton cell={cell} instance={instance}>\n <>{columnDef?.Cell?.({ cell, instance }) ?? cell.renderCell()}</>\n </MRT_CopyButton>\n {row.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {columnDef?.Cell?.({ cell, instance }) ?? cell.renderCell()}\n {row.getIsGrouped() && <> ({row.subRows?.length ?? ''})</>}\n </>\n )}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, TableCell, TableRow } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row, instance }) => {\n const {\n getVisibleLeafColumns,\n options: {\n muiTableBodyRowProps,\n muiTableDetailPanelProps,\n renderDetailPanel,\n },\n } = instance;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, instance })\n : muiTableBodyRowProps;\n\n const tableCellProps =\n muiTableDetailPanelProps instanceof Function\n ? muiTableDetailPanelProps({ row, instance })\n : muiTableDetailPanelProps;\n\n return (\n <TableRow {...tableRowProps}>\n <TableCell\n colSpan={getVisibleLeafColumns().length}\n {...tableCellProps}\n sx={{\n borderBottom: !row.getIsExpanded() ? 'none' : undefined,\n pb: row.getIsExpanded() ? '1rem' : 0,\n pt: row.getIsExpanded() ? '1rem' : 0,\n transition: 'all 0.2s ease-in-out',\n width: `${instance.getTotalSize()}px`,\n ...tableCellProps?.sx,\n }}\n >\n {renderDetailPanel && (\n <Collapse in={row.getIsExpanded()}>\n {renderDetailPanel({ row, instance })}\n </Collapse>\n )}\n </TableCell>\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { darken, lighten, TableRow } from '@mui/material';\nimport { MRT_TableBodyCell } from './MRT_TableBodyCell';\nimport { MRT_TableDetailPanel } from './MRT_TableDetailPanel';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n rowIndex: number;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row, rowIndex, instance }) => {\n const {\n getIsSomeColumnsPinned,\n options: { muiTableBodyRowProps, renderDetailPanel },\n } = instance;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, instance })\n : muiTableBodyRowProps;\n\n return (\n <>\n <TableRow\n hover\n selected={row.getIsSelected()}\n {...tableRowProps}\n sx={(theme) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.06),\n transition: 'all 0.2s ease-in-out',\n '&:hover td': {\n backgroundColor:\n tableRowProps?.hover !== false && getIsSomeColumnsPinned()\n ? theme.palette.mode === 'dark'\n ? `${lighten(theme.palette.background.default, 0.12)}`\n : `${darken(theme.palette.background.default, 0.05)}`\n : undefined,\n },\n ...(tableRowProps?.sx as any),\n })}\n >\n {row.getVisibleCells().map((cell) => (\n <MRT_TableBodyCell\n cell={cell}\n key={cell.id}\n enableHover={tableRowProps?.hover !== false}\n rowIndex={rowIndex}\n instance={instance}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !row.getIsGrouped() && (\n <MRT_TableDetailPanel row={row} instance={instance} />\n )}\n </>\n );\n};\n","import { compareItems, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { Row, sortingFns } from '@tanstack/react-table';\nimport type { MRT_Row } from '.';\n\nconst fuzzy = (rowA: MRT_Row, rowB: MRT_Row, columnId: string) => {\n let dir = 0;\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]! as RankingInfo,\n rowB.columnFiltersMeta[columnId]! as RankingInfo,\n );\n }\n // Provide a fallback for when the item ranks are equal\n return dir === 0\n ? sortingFns.alphanumeric(rowA as Row<any>, rowB as Row<any>, columnId)\n : dir;\n};\n\nexport const MRT_SortingFns = {\n fuzzy,\n};\n\nexport const rankGlobalFuzzy = (rowA: MRT_Row, rowB: MRT_Row) =>\n Math.max(...Object.values(rowB.columnFiltersMeta).map((v: any) => v.rank)) -\n Math.max(...Object.values(rowA.columnFiltersMeta).map((v: any) => v.rank));\n","import React, { FC, RefObject, useMemo } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { TableBody } from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport type { MRT_Row, MRT_TableInstance } from '..';\nimport { rankGlobalFuzzy } from '../sortingFns';\n\ninterface Props {\n instance: MRT_TableInstance;\n tableContainerRef: RefObject<HTMLDivElement>;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ instance, tableContainerRef }) => {\n const {\n getRowModel,\n getPrePaginationRowModel,\n getState,\n options: {\n enableGlobalFilterRankedResults,\n enablePagination,\n enableRowVirtualization,\n muiTableBodyProps,\n virtualizerProps,\n },\n } = instance;\n\n const { density, globalFilter, pagination, sorting } = getState();\n\n const tableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ instance })\n : muiTableBodyProps;\n\n const getIsSomeColumnsSorted = () => {\n return Object.values(sorting).some(Boolean);\n };\n\n const rows = useMemo(() => {\n if (\n enableGlobalFilterRankedResults &&\n globalFilter &&\n !getIsSomeColumnsSorted()\n ) {\n const rankedRows = getPrePaginationRowModel().rows.sort((a, b) =>\n rankGlobalFuzzy(a, b),\n );\n if (enablePagination) {\n return rankedRows.slice(0, pagination.pageSize);\n }\n return rankedRows;\n }\n\n return enablePagination\n ? getRowModel().rows\n : getPrePaginationRowModel().rows;\n }, [\n enableGlobalFilterRankedResults,\n (enableGlobalFilterRankedResults && globalFilter) || !enablePagination\n ? getPrePaginationRowModel().rows\n : getRowModel().rows,\n globalFilter,\n ]);\n\n const rowVirtualizer = enableRowVirtualization\n ? useVirtual({\n overscan: density === 'compact' ? 20 : 10,\n size: rows.length,\n parentRef: tableContainerRef,\n ...virtualizerProps,\n })\n : ({} as any);\n\n const { virtualItems: virtualRows } = rowVirtualizer;\n const paddingTop = virtualRows?.length > 0 ? virtualRows[0].start : 0;\n const paddingBottom =\n virtualRows?.length > 0\n ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end\n : 0;\n\n return (\n <TableBody {...tableBodyProps}>\n {enableRowVirtualization && paddingTop > 0 && (\n <tr>\n <td style={{ height: `${paddingTop}px` }} />\n </tr>\n )}\n {/* @ts-ignore */}\n {(enableRowVirtualization ? virtualRows : rows).map(\n (rowOrVirtualRow: any, rowIndex: number) => {\n const row = enableRowVirtualization\n ? (rows[rowOrVirtualRow.index] as MRT_Row)\n : (rowOrVirtualRow as MRT_Row);\n return (\n <MRT_TableBodyRow\n key={row.id}\n row={row}\n rowIndex={\n enableRowVirtualization ? rowOrVirtualRow.index : rowIndex\n }\n instance={instance}\n />\n );\n },\n )}\n {enableRowVirtualization && paddingBottom > 0 && (\n <tr>\n <td style={{ height: `${paddingBottom}px` }} />\n </tr>\n )}\n </TableBody>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, TableCell } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n footer: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ footer, instance }) => {\n const {\n getState,\n options: { muiTableFooterCellProps, enableColumnResizing },\n } = instance;\n\n const { density } = getState();\n\n const { column } = footer;\n\n const { columnDef, columnDefType } = column;\n\n const mTableFooterCellProps =\n muiTableFooterCellProps instanceof Function\n ? muiTableFooterCellProps({ column, instance })\n : muiTableFooterCellProps;\n\n const mcTableFooterCellProps =\n columnDef.muiTableFooterCellProps instanceof Function\n ? columnDef.muiTableFooterCellProps({ column, instance })\n : columnDef.muiTableFooterCellProps;\n\n const tableCellProps = {\n ...mTableFooterCellProps,\n ...mcTableFooterCellProps,\n };\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={footer.colSpan}\n variant=\"head\"\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: theme.palette.background.default,\n backgroundImage: `linear-gradient(${alpha(\n theme.palette.common.white,\n 0.05,\n )},${alpha(theme.palette.common.white, 0.05)})`,\n fontWeight: 'bold',\n maxWidth: `${column.getSize()}px`,\n minWidth: `${column.getSize()}px`,\n p:\n density === 'compact'\n ? '0.5rem'\n : density === 'comfortable'\n ? '1rem'\n : '1.5rem',\n transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`,\n width: column.getSize(),\n verticalAlign: 'text-top',\n ...(tableCellProps?.sx as any),\n })}\n >\n <>\n {footer.isPlaceholder\n ? null\n : (columnDef.Footer instanceof Function\n ? columnDef.Footer?.({\n footer,\n instance,\n })\n : columnDef.Footer) ??\n columnDef.footer ??\n footer.renderFooter() ??\n null}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableRow } from '@mui/material';\nimport { MRT_TableFooterCell } from './MRT_TableFooterCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n footerGroup: MRT_HeaderGroup;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({ footerGroup, instance }) => {\n const {\n options: { muiTableFooterRowProps },\n } = instance;\n\n // if no content in row, skip row\n if (\n !footerGroup.headers?.some(\n (header) =>\n (typeof header.column.columnDef.footer === 'string' &&\n !!header.column.columnDef.footer) ||\n header.column.columnDef.Footer,\n )\n )\n return null;\n\n const tableRowProps =\n muiTableFooterRowProps instanceof Function\n ? muiTableFooterRowProps({ footerGroup, instance })\n : muiTableFooterRowProps;\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell\n footer={footer}\n key={footer.id}\n instance={instance}\n />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableFooter } from '@mui/material';\nimport { MRT_TableFooterRow } from './MRT_TableFooterRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ instance }) => {\n const {\n getFooterGroups,\n\n options: { muiTableFooterProps },\n } = instance;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ instance })\n : muiTableFooterProps;\n\n return (\n <TableFooter {...tableFooterProps}>\n {getFooterGroups().map((footerGroup) => (\n <MRT_TableFooterRow\n footerGroup={footerGroup as any}\n key={footerGroup.id}\n instance={instance}\n />\n ))}\n </TableFooter>\n );\n};\n","import React, { FC, RefObject } from 'react';\nimport { Table } from '@mui/material';\nimport { MRT_TableHead } from '../head/MRT_TableHead';\nimport { MRT_TableBody } from '../body/MRT_TableBody';\nimport { MRT_TableFooter } from '../footer/MRT_TableFooter';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableContainerRef: RefObject<HTMLDivElement>;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ tableContainerRef, instance }) => {\n const {\n getState,\n options: {\n enableColumnResizing,\n enableRowVirtualization,\n enableStickyHeader,\n enableTableFooter,\n enableTableHead,\n muiTableProps,\n },\n } = instance;\n\n const { isFullScreen } = getState();\n\n const tableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ instance })\n : muiTableProps;\n\n return (\n <Table\n stickyHeader={\n enableStickyHeader || enableRowVirtualization || isFullScreen\n }\n {...tableProps}\n sx={{\n tableLayout:\n enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto',\n ...tableProps?.sx,\n }}\n >\n {enableTableHead && <MRT_TableHead instance={instance} />}\n <MRT_TableBody\n tableContainerRef={tableContainerRef}\n instance={instance}\n />\n {enableTableFooter && <MRT_TableFooter instance={instance} />}\n </Table>\n );\n};\n","import React, { FC, useEffect, useLayoutEffect, useState } from 'react';\nimport { TableContainer } from '@mui/material';\nimport { MRT_Table } from './MRT_Table';\nimport type { MRT_TableInstance } from '..';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ instance }) => {\n const {\n getState,\n options: {\n enableStickyHeader,\n enableRowVirtualization,\n muiTableContainerProps,\n tableId,\n },\n } = instance;\n\n const { isFullScreen } = getState();\n\n const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);\n\n const tableContainerProps =\n muiTableContainerProps instanceof Function\n ? muiTableContainerProps({ instance })\n : muiTableContainerProps;\n\n useIsomorphicLayoutEffect(() => {\n const topToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-top`)\n ?.offsetHeight ?? 0\n : 0;\n\n const bottomToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-bottom`)\n ?.offsetHeight ?? 0\n : 0;\n\n setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);\n });\n\n const tableContainerRef = React.useRef<HTMLDivElement>(null);\n\n return (\n <TableContainer\n {...tableContainerProps}\n ref={tableContainerRef}\n sx={{\n maxWidth: '100%',\n maxHeight:\n enableStickyHeader || enableRowVirtualization\n ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`\n : undefined,\n overflow: 'auto',\n ...tableContainerProps?.sx,\n }}\n style={{\n maxHeight: isFullScreen\n ? `calc(100vh - ${totalToolbarHeight}px)`\n : undefined,\n ...tableContainerProps?.style,\n }}\n >\n <MRT_Table tableContainerRef={tableContainerRef} instance={instance} />\n </TableContainer>\n );\n};\n","import React, { FC, useEffect } from 'react';\nimport { Paper } from '@mui/material';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { MRT_ToolbarTop } from '../toolbar/MRT_ToolbarTop';\nimport { MRT_ToolbarBottom } from '../toolbar/MRT_ToolbarBottom';\nimport { MRT_TableContainer } from './MRT_TableContainer';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TablePaper: FC<Props> = ({ instance }) => {\n const {\n getState,\n options: { enableToolbarBottom, enableToolbarTop, muiTablePaperProps },\n } = instance;\n\n const { isFullScreen } = getState();\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n if (isFullScreen) {\n document.body.style.height = '100vh';\n } else {\n document.body.style.height = 'auto';\n }\n }\n }, [isFullScreen]);\n\n const tablePaperProps =\n muiTablePaperProps instanceof Function\n ? muiTablePaperProps({ instance })\n : muiTablePaperProps;\n\n return (\n <DndProvider backend={HTML5Backend}>\n <Paper\n elevation={2}\n {...tablePaperProps}\n sx={{\n transition: 'all 0.2s ease-in-out',\n ...tablePaperProps?.sx,\n }}\n style={{\n ...tablePaperProps?.style,\n height: isFullScreen ? '100vh' : undefined,\n margin: isFullScreen ? '0' : undefined,\n maxHeight: isFullScreen ? '100vh' : undefined,\n maxWidth: isFullScreen ? '100vw' : undefined,\n padding: isFullScreen ? '0' : undefined,\n width: isFullScreen ? '100vw' : undefined,\n }}\n >\n {enableToolbarTop && <MRT_ToolbarTop instance={instance} />}\n <MRT_TableContainer instance={instance} />\n {enableToolbarBottom && <MRT_ToolbarBottom instance={instance} />}\n </Paper>\n </DndProvider>\n );\n};\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n FilterFn,\n ReactTableGenerics,\n Table,\n TableState,\n createTable,\n filterFns,\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useTableInstance,\n sortingFns,\n} from '@tanstack/react-table';\nimport {\n MRT_Cell,\n MRT_ColumnDef,\n MRT_FilterFn,\n MRT_FILTER_OPTION,\n MRT_Row,\n MRT_TableInstance,\n MRT_TableState,\n} from '..';\nimport { MRT_ExpandAllButton } from '../buttons/MRT_ExpandAllButton';\nimport { MRT_ExpandButton } from '../buttons/MRT_ExpandButton';\nimport { MRT_ToggleRowActionMenuButton } from '../buttons/MRT_ToggleRowActionMenuButton';\nimport { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox';\nimport { MaterialReactTableProps } from '../MaterialReactTable';\nimport { MRT_TablePaper } from './MRT_TablePaper';\nimport { Box, Dialog, Grow } from '@mui/material';\nimport {\n createDataColumn,\n createDisplayColumn,\n createGroup,\n getAllLeafColumnDefs,\n getDefaultColumnOrderIds,\n} from '../utils';\nimport { MRT_FilterFns } from '../filtersFns';\nimport { MRT_SortingFns } from '../sortingFns';\n\nexport const MRT_TableRoot = <D extends Record<string, any> = {}>(\n props: MaterialReactTableProps<D>,\n) => {\n const [tableId, setIdPrefix] = useState(props.tableId);\n useEffect(\n () =>\n setIdPrefix(props.tableId ?? Math.random().toString(36).substring(2, 9)),\n [props.tableId],\n );\n\n const initialState: Partial<MRT_TableState<D>> = useMemo(() => {\n const initState = props.initialState ?? {};\n initState.columnOrder =\n initState.columnOrder ?? getDefaultColumnOrderIds(props);\n return initState;\n }, []);\n\n const [columnOrder, setColumnOrder] = useState(\n initialState.columnOrder ?? [],\n );\n const [currentEditingCell, setCurrentEditingCell] =\n useState<MRT_Cell<D> | null>(initialState?.currentEditingCell ?? null);\n const [currentEditingRow, setCurrentEditingRow] = useState<MRT_Row<D> | null>(\n initialState?.currentEditingRow ?? null,\n );\n const [density, setDensity] = useState(\n initialState?.density ?? 'comfortable',\n );\n const [isFullScreen, setIsFullScreen] = useState(\n initialState?.isFullScreen ?? false,\n );\n const [showAlertBanner, setShowAlertBanner] = useState(\n props.initialState?.showAlertBanner ?? false,\n );\n const [showFilters, setShowFilters] = useState(\n initialState?.showFilters ?? false,\n );\n const [showGlobalFilter, setShowGlobalFilter] = useState(\n initialState?.showGlobalFilter ?? false,\n );\n\n const [currentFilterFns, setCurrentFilterFns] = useState<{\n [key: string]: MRT_FilterFn;\n }>(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map((c) => ({\n [c.id as string]:\n c.filterFn ??\n initialState?.currentFilterFns?.[c.id] ??\n (!!c.filterSelectOptions?.length ? 'equals' : 'fuzzy'),\n })),\n ),\n );\n\n const [currentGlobalFilterFn, setCurrentGlobalFilterFn] = useState<\n MRT_FILTER_OPTION | FilterFn<ReactTableGenerics> | string | number | symbol\n >(props.globalFilterFn ?? 'fuzzy');\n\n const table = useMemo(\n () =>\n // @ts-ignore\n createTable().setOptions({\n filterFns: { ...filterFns, ...MRT_FilterFns, ...props.filterFns },\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n sortingFns: { ...sortingFns, ...MRT_SortingFns, ...props.sortingFns },\n }) as Table<D>,\n [],\n );\n\n const displayColumns = useMemo(() => {\n return [\n columnOrder.includes('mrt-row-actions') &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_ToggleRowActionMenuButton\n row={cell.row as any}\n instance={instance}\n />\n ),\n header: props.localization?.actions,\n id: 'mrt-row-actions',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 70,\n }),\n columnOrder.includes('mrt-expand') &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_ExpandButton row={cell.row as any} instance={instance} />\n ),\n Header: () =>\n props.enableExpandAll ? (\n <MRT_ExpandAllButton instance={instance} />\n ) : null,\n header: props.localization?.expand,\n id: 'mrt-expand',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n }),\n columnOrder.includes('mrt-select') &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox row={cell.row as any} instance={instance} />\n ),\n Header: () =>\n props.enableSelectAll ? (\n <MRT_SelectCheckbox selectAll instance={instance} />\n ) : null,\n header: props.localization?.select,\n id: 'mrt-select',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n }),\n columnOrder.includes('mrt-row-numbers') &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => cell.row.index + 1,\n Header: () => props.localization?.rowNumber,\n header: props.localization?.rowNumbers,\n id: 'mrt-row-numbers',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n }),\n ].filter(Boolean) as MRT_ColumnDef<D>[];\n }, [\n columnOrder,\n props.editingMode,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanding,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowNumbers,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n props.muiTableBodyCellProps,\n props.muiTableHeadCellProps,\n props.positionActionsColumn,\n table,\n ]);\n\n const columns = useMemo(\n () => [\n ...displayColumns,\n ...props.columns.map((column) =>\n column.columns\n ? createGroup(table, column as any, currentFilterFns)\n : createDataColumn(table, column as any, currentFilterFns),\n ),\n ],\n [table, props.columns, currentFilterFns],\n );\n\n const data: D[] = useMemo(\n () =>\n (props.state?.isLoading || props.state?.showSkeletons) &&\n !props.data.length\n ? [...Array(10).fill(null)].map(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(\n (c) => ({\n [c.id]: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.state?.isLoading, props.state?.showSkeletons],\n );\n\n //@ts-ignore\n const instance = {\n //@ts-ignore\n ...useTableInstance(table, {\n onColumnOrderChange: setColumnOrder,\n ...props,\n //@ts-ignore\n columns,\n data,\n getSubRows: (row) => (row as MRT_Row)?.subRows,\n //@ts-ignore\n globalFilterFn: currentGlobalFilterFn,\n initialState,\n state: {\n columnOrder,\n currentEditingCell,\n currentEditingRow,\n currentFilterFns,\n currentGlobalFilterFn,\n density,\n isFullScreen,\n showAlertBanner,\n showFilters,\n showGlobalFilter,\n ...props.state,\n } as TableState,\n tableId,\n }),\n setCurrentEditingCell:\n props.onCurrentEditingCellChange ?? setCurrentEditingCell,\n setCurrentEditingRow:\n props.onCurrentEditingRowChange ?? setCurrentEditingRow,\n setCurrentFilterFns: props.onCurrentFilterFnsChange ?? setCurrentFilterFns,\n setCurrentGlobalFilterFn:\n props.onCurrentGlobalFilterFnChange ?? setCurrentGlobalFilterFn,\n setDensity: props.onDensityChange ?? setDensity,\n setIsFullScreen: props.onIsFullScreenChange ?? setIsFullScreen,\n setShowAlertBanner: props.onShowAlertBannerChange ?? setShowAlertBanner,\n setShowFilters: props.onShowFiltersChange ?? setShowFilters,\n setShowGlobalFilter: props.onShowGlobalFilterChange ?? setShowGlobalFilter,\n } as MRT_TableInstance;\n\n return (\n <>\n <Dialog\n PaperComponent={Box}\n TransitionComponent={Grow}\n disablePortal\n fullScreen\n keepMounted={false}\n onClose={() => setIsFullScreen(false)}\n open={isFullScreen}\n transitionDuration={400}\n >\n <MRT_TablePaper instance={instance} />\n </Dialog>\n {!isFullScreen && <MRT_TablePaper instance={instance} />}\n </>\n );\n};\n","import React, {\n ChangeEvent,\n Dispatch,\n FC,\n FocusEvent,\n ReactNode,\n SetStateAction,\n} from 'react';\nimport {\n AlertProps,\n ButtonProps,\n CheckboxProps,\n IconButtonProps,\n LinearProgressProps,\n PaperProps,\n SkeletonProps,\n TableBodyProps,\n TableCellProps,\n TableContainerProps,\n TableFooterProps,\n TableHeadProps,\n TablePaginationProps,\n TableProps,\n TableRowProps,\n TextFieldProps,\n ToolbarProps,\n} from '@mui/material';\nimport {\n Cell,\n Column,\n ColumnDef,\n FilterFn,\n FilterFnOption,\n Header,\n HeaderGroup,\n OnChangeFn,\n Overwrite,\n ReactTableGenerics,\n Row,\n SortingFn,\n SortingFnOption,\n TableGenerics,\n TableInstance,\n TableState,\n UseTableInstanceOptions,\n} from '@tanstack/react-table';\nimport { Options as VirtualizerOptions } from 'react-virtual';\nimport { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';\nimport { MRT_Default_Icons, MRT_Icons } from './icons';\nimport { MRT_TableRoot } from './table/MRT_TableRoot';\n\nexport type MRT_TableOptions<D extends Record<string, any> = {}> = Partial<\n Omit<\n UseTableInstanceOptions<ReactTableGenerics>,\n 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'\n >\n> & {\n columns: MRT_ColumnDef<D>[];\n data: D[];\n expandRowsFn?: (dataRow: D) => D[];\n initialState?: Partial<MRT_TableState<D>>;\n state?: Partial<MRT_TableState<D>>;\n};\n\nexport interface MRT_RowModel<D extends Record<string, any> = {}> {\n flatRows: MRT_Row<D>[];\n rows: MRT_Row<D>[];\n rowsById: { [key: string]: MRT_Row<D> };\n}\n\nexport type MRT_TableInstance<D extends Record<string, any> = {}> = Omit<\n TableInstance<\n Overwrite<\n Partial<TableGenerics>,\n {\n Row: D;\n }\n >\n >,\n | 'getAllColumns'\n | 'getAllFlatColumns'\n | 'getAllLeafColumns'\n | 'getCenterLeafColumns'\n | 'getColumn'\n | 'getExpandedRowModel'\n | 'getFlatHeaders'\n | 'getLeftLeafColumns'\n | 'getPaginationRowModel'\n | 'getPreFilteredRowModel'\n | 'getPrePaginationRowModel'\n | 'getRightLeafColumns'\n | 'getRowModel'\n | 'getSelectedRowModel'\n | 'getState'\n | 'options'\n> & {\n getAllColumns: () => MRT_Column<D>[];\n getAllFlatColumns: () => MRT_Column<D>[];\n getAllLeafColumns: () => MRT_Column<D>[];\n getCenterLeafColumns: () => MRT_Column<D>[];\n getColumn: (columnId: string) => MRT_Column<D>;\n getExpandedRowModel: () => MRT_RowModel<D>;\n getFlatHeaders: () => MRT_Header<D>[];\n getLeftLeafColumns: () => MRT_Column<D>[];\n getPaginationRowModel: () => MRT_RowModel<D>;\n getPreFilteredRowModel: () => MRT_RowModel<D>;\n getPrePaginationRowModel: () => MRT_RowModel<D>;\n getRightLeafColumns: () => MRT_Column<D>[];\n getRowModel: () => MRT_RowModel<D>;\n getSelectedRowModel: () => MRT_RowModel<D>;\n getState: () => MRT_TableState<D>;\n options: MaterialReactTableProps<D> & {\n icons: MRT_Icons;\n tableId: string;\n localization: MRT_Localization;\n };\n setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setCurrentFilterFns: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterFn;\n }>\n >;\n setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterFn>>;\n setDensity: Dispatch<SetStateAction<'comfortable' | 'compact' | 'spacious'>>;\n setIsFullScreen: Dispatch<SetStateAction<boolean>>;\n setShowAlertBanner: Dispatch<SetStateAction<boolean>>;\n setShowFilters: Dispatch<SetStateAction<boolean>>;\n setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;\n};\n\nexport type MRT_TableState<D extends Record<string, any> = {}> = TableState & {\n currentEditingCell: MRT_Cell<D> | null;\n currentEditingRow: MRT_Row<D> | null;\n currentFilterFns: Record<string, string | Function>;\n currentGlobalFilterFn: Record<string, string | Function>;\n density: 'comfortable' | 'compact' | 'spacious';\n isLoading: boolean;\n isFullScreen: boolean;\n showAlertBanner: boolean;\n showFilters: boolean;\n showGlobalFilter: boolean;\n showProgressBars: boolean;\n showSkeletons: boolean;\n};\n\nexport type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<\n ColumnDef<D>,\n | 'accessorFn'\n | 'aggregatedCell'\n | 'cell'\n | 'columns'\n | 'filterFn'\n | 'footer'\n | 'header'\n | 'sortingFn'\n> & {\n AggregatedCell?: ({\n cell,\n instance,\n }: {\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n Cell?: ({\n cell,\n instance,\n }: {\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n Edit?: ({\n cell,\n instance,\n }: {\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n Filter?: ({\n header,\n instance,\n }: {\n header: MRT_Header<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n Footer?:\n | ReactNode\n | (({\n footer,\n instance,\n }: {\n footer: MRT_Header<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode);\n Header?:\n | ReactNode\n | (({\n header,\n instance,\n }: {\n header: MRT_Header<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode);\n accessorFn?: (row: D) => any;\n columns?: MRT_ColumnDef<D>[];\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableEditing?: boolean;\n enabledColumnFilterOptions?: (MRT_FILTER_OPTION | string)[] | null;\n filterFn?: MRT_FilterFn;\n filterSelectOptions?: (string | { text: string; value: string })[];\n footer?: string;\n header: string;\n id: keyof D | string;\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n onCellEditBlur?: ({\n cell,\n event,\n instance,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n instance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n sortingFn?: MRT_SortingFn;\n};\n\nexport type MRT_Column<D extends Record<string, any> = {}> = Omit<\n Column<D>,\n 'header' | 'footer' | 'columns' | 'columnDef'\n> & {\n columns?: MRT_Column<D>[];\n columnDef: MRT_ColumnDef<D>;\n header: string;\n footer: string;\n};\n\nexport type MRT_Header<D extends Record<string, any> = {}> = Omit<\n Header<D>,\n 'column'\n> & {\n column: MRT_Column<D>;\n};\n\nexport type MRT_HeaderGroup<D extends Record<string, any> = {}> = Omit<\n HeaderGroup<D>,\n 'headers'\n> & {\n headers: MRT_Header<D>[];\n};\n\nexport type MRT_Row<D extends Record<string, any> = {}> = Omit<\n Row<D>,\n 'getVisibleCells' | 'getAllCells' | 'subRows' | 'original' | '_valuesCache'\n> & {\n getAllCells: () => MRT_Cell<D>[];\n getVisibleCells: () => MRT_Cell<D>[];\n subRows?: MRT_Row<D>[];\n original: D;\n _valuesCache?: D;\n};\n\nexport type MRT_Cell<D extends Record<string, any> = {}> = Omit<\n Cell<D>,\n 'column' | 'row'\n> & {\n column: MRT_Column<D>;\n row: MRT_Row<D>;\n};\n\nexport type MRT_SortingOption = SortingFnOption<TableGenerics> | 'fuzzy';\n\nexport type MRT_SortingFn = SortingFn<TableGenerics> | MRT_SortingOption;\n\nexport type MRT_FILTER_OPTION =\n | 'between'\n | 'contains'\n | 'empty'\n | 'endsWith'\n | 'equals'\n | 'fuzzy'\n | 'greaterThan'\n | 'greaterThanOrEqual'\n | 'lessThan'\n | 'lessThanOrEqual'\n | 'notEmpty'\n | 'notEquals'\n | 'startsWith'\n | FilterFnOption<TableGenerics>;\n\nexport type MRT_FilterFn = FilterFn<TableGenerics> | MRT_FILTER_OPTION;\n\nexport type MaterialReactTableProps<D extends Record<string, any> = {}> =\n MRT_TableOptions<D> & {\n editingMode?: 'table' | 'row' | 'cell';\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableDensityToggle?: boolean;\n enableEditing?: boolean;\n enableExpandAll?: boolean;\n enableFullScreenToggle?: boolean;\n enableGlobalFilterChangeMode?: boolean;\n enableGlobalFilterRankedResults?: boolean;\n enablePagination?: boolean;\n enableRowActions?: boolean;\n enableRowNumbers?: boolean;\n enableRowVirtualization?: boolean;\n enableSelectAll?: boolean;\n enableStickyHeader?: boolean;\n enableTableFooter?: boolean;\n enableTableHead?: boolean;\n enableToolbarBottom?: boolean;\n enableToolbarInternalActions?: boolean;\n enableToolbarTop?: boolean;\n enabledColumnFilterOptions?: (MRT_FILTER_OPTION | string)[] | null;\n enabledGlobalFilterOptions?: (MRT_FILTER_OPTION | string)[] | null;\n icons?: Partial<MRT_Icons>;\n localization?: Partial<MRT_Localization>;\n muiExpandAllButtonProps?:\n | IconButtonProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => IconButtonProps);\n muiExpandButtonProps?:\n | IconButtonProps\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => IconButtonProps);\n muiLinearProgressProps?:\n | LinearProgressProps\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => LinearProgressProps);\n muiSearchTextFieldProps?:\n | TextFieldProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => TextFieldProps);\n muiSelectAllCheckboxProps?:\n | CheckboxProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => CheckboxProps);\n muiSelectCheckboxProps?:\n | CheckboxProps\n | (({\n instance,\n row,\n }: {\n instance: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => CheckboxProps);\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TableCellProps);\n muiTableBodyCellSkeletonProps?:\n | SkeletonProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => SkeletonProps);\n muiTableBodyProps?:\n | TableBodyProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => TableBodyProps);\n muiTableBodyRowProps?:\n | TableRowProps\n | (({\n instance,\n row,\n }: {\n instance: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => TableRowProps);\n muiTableContainerProps?:\n | TableContainerProps\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => TableContainerProps);\n muiTableDetailPanelProps?:\n | TableCellProps\n | (({\n instance,\n row,\n }: {\n instance: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableFooterProps?:\n | TableFooterProps\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => TableFooterProps);\n muiTableFooterRowProps?:\n | TableRowProps\n | (({\n instance,\n footerGroup,\n }: {\n instance: MRT_TableInstance<D>;\n footerGroup: MRT_HeaderGroup<D>;\n }) => TableRowProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableHeadProps?:\n | TableHeadProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => TableHeadProps);\n muiTableHeadRowProps?:\n | TableRowProps\n | (({\n instance,\n headerGroup,\n }: {\n instance: MRT_TableInstance<D>;\n headerGroup: MRT_HeaderGroup<D>;\n }) => TableRowProps);\n muiTablePaginationProps?:\n | Partial<TablePaginationProps>\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => Partial<TablePaginationProps>);\n muiTablePaperProps?:\n | PaperProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => PaperProps);\n muiTableProps?:\n | TableProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => TableProps);\n muiTableToolbarAlertBannerProps?:\n | AlertProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => AlertProps);\n muiTableToolbarBottomProps?:\n | ToolbarProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => ToolbarProps);\n muiTableToolbarTopProps?:\n | ToolbarProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => ToolbarProps);\n onCellEditBlur?: ({\n cell,\n event,\n instance,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n instance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onCurrentEditingCellChange?: OnChangeFn<MRT_Cell>;\n onCurrentEditingRowChange?: OnChangeFn<MRT_Row>;\n onCurrentFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterFn }>;\n onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterFn>;\n onEditRowSubmit?: ({\n row,\n instance,\n }: {\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => Promise<void> | void;\n onDensityChange?: OnChangeFn<boolean>;\n onIsFullScreenChange?: OnChangeFn<boolean>;\n onShowAlertBannerChange?: OnChangeFn<boolean>;\n onShowFiltersChange?: OnChangeFn<boolean>;\n onShowGlobalFilterChange?: OnChangeFn<boolean>;\n positionActionsColumn?: 'first' | 'last';\n positionGlobalFilter?: 'left' | 'right';\n positionPagination?: 'bottom' | 'top' | 'both';\n positionToolbarAlertBanner?: 'bottom' | 'top';\n renderDetailPanel?: ({\n row,\n instance,\n }: {\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderRowActionMenuItems?: ({\n closeMenu,\n row,\n instance,\n }: {\n closeMenu: () => void;\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode[];\n renderRowActions?: ({\n row,\n instance,\n }: {\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarBottomCustomActions?: ({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarTopCustomActions?: ({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarInternalActions?: ({\n instance,\n MRT_ToggleGlobalFilterButton,\n MRT_ToggleFiltersButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_FullScreenToggleButton,\n }: {\n instance: MRT_TableInstance<D>;\n MRT_ToggleGlobalFilterButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n MRT_ToggleFiltersButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n MRT_ShowHideColumnsButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n MRT_ToggleDensePaddingButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n MRT_FullScreenToggleButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n }) => ReactNode;\n rowCount?: number;\n rowNumberMode?: 'original' | 'static';\n selectAllMode?: 'all' | 'page';\n tableId?: string;\n virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;\n };\n\nexport default <D extends Record<string, any> = {}>({\n autoResetExpanded = false,\n columnResizeMode = 'onEnd',\n defaultColumn = { minSize: 40, maxSize: 1000, size: 180 },\n editingMode = 'row',\n enableColumnActions = true,\n enableColumnFilterChangeMode = true,\n enableColumnFilters = true,\n enableColumnOrdering = false,\n enableColumnResizing = false,\n enableDensityToggle = true,\n enableExpandAll = true,\n enableFilters = true,\n enableFullScreenToggle = true,\n enableGlobalFilter = true,\n enableGlobalFilterChangeMode = true,\n enableGlobalFilterRankedResults = true,\n enableGrouping = false,\n enableHiding = true,\n enableMultiRowSelection = true,\n enableMultiSort = true,\n enablePagination = true,\n enablePinning = false,\n enableRowSelection = false,\n enableSelectAll = true,\n enableSorting = true,\n enableStickyHeader = false,\n enableTableFooter = true,\n enableTableHead = true,\n enableToolbarBottom = true,\n enableToolbarInternalActions = true,\n enableToolbarTop = true,\n icons,\n localization,\n positionActionsColumn = 'first',\n positionGlobalFilter = 'right',\n positionPagination = 'bottom',\n positionToolbarAlertBanner = 'top',\n rowNumberMode = 'original',\n selectAllMode = 'all',\n ...rest\n}: MaterialReactTableProps<D>) => (\n <MRT_TableRoot\n autoResetExpanded={autoResetExpanded}\n columnResizeMode={columnResizeMode}\n defaultColumn={defaultColumn}\n editingMode={editingMode}\n enableColumnActions={enableColumnActions}\n enableColumnFilterChangeMode={enableColumnFilterChangeMode}\n enableColumnFilters={enableColumnFilters}\n enableColumnOrdering={enableColumnOrdering}\n enableColumnResizing={enableColumnResizing}\n enableDensityToggle={enableDensityToggle}\n enableExpandAll={enableExpandAll}\n enableFilters={enableFilters}\n enableFullScreenToggle={enableFullScreenToggle}\n enableGlobalFilter={enableGlobalFilter}\n enableGlobalFilterChangeMode={enableGlobalFilterChangeMode}\n enableGlobalFilterRankedResults={enableGlobalFilterRankedResults}\n enableGrouping={enableGrouping}\n enableHiding={enableHiding}\n enableMultiRowSelection={enableMultiRowSelection}\n enableMultiSort={enableMultiSort}\n enablePagination={enablePagination}\n enablePinning={enablePinning}\n enableRowSelection={enableRowSelection}\n enableSelectAll={enableSelectAll}\n enableSorting={enableSorting}\n enableStickyHeader={enableStickyHeader}\n enableTableFooter={enableTableFooter}\n enableTableHead={enableTableHead}\n enableToolbarBottom={enableToolbarBottom}\n enableToolbarInternalActions={enableToolbarInternalActions}\n enableToolbarTop={enableToolbarTop}\n icons={{ ...MRT_Default_Icons, ...icons }}\n localization={{ ...MRT_DefaultLocalization_EN, ...localization }}\n positionActionsColumn={positionActionsColumn}\n positionGlobalFilter={positionGlobalFilter}\n positionPagination={positionPagination}\n positionToolbarAlertBanner={positionToolbarAlertBanner}\n rowNumberMode={rowNumberMode}\n selectAllMode={selectAllMode}\n {...rest}\n />\n);\n"],"names":["MRT_DefaultLocalization_EN","actions","and","cancel","changeFilterMode","changeSearchMode","clearFilter","clearSearch","clearSort","clickToCopy","columnActions","copiedToClipboard","edit","expand","expandAll","filterBetween","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterFuzzy","filterGreaterThan","filterLessThan","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","grab","groupByColumn","groupedBy","hideAll","hideColumn","max","min","pinToLeft","pinToRight","resetColumnSize","resetOrder","rowActions","rowNumber","rowNumbers","save","search","selectedCountOfRowCountRowsSelected","select","showAll","showAllColumns","showHideColumns","showHideFilters","showHideSearch","sortByColumnAsc","sortByColumnDesc","sortedByColumnAsc","sortedByColumnDesc","thenBy","toggleDensity","toggleFullScreen","toggleSelectAll","toggleSelectRow","toggleVisibility","ungroupByColumn","unpin","unpinAll","unsorted","MRT_Default_Icons","ArrowRightIcon","ArrowRight","CancelIcon","Cancel","CheckBoxIcon","CheckBox","ClearAllIcon","ClearAll","CloseIcon","Close","DensityLargeIcon","DensityLarge","DensityMediumIcon","DensityMedium","DensitySmallIcon","DensitySmall","DragHandleIcon","DragHandle","DynamicFeedIcon","DynamicFeed","EditIcon","Edit","ExpandLessIcon","ExpandLess","ExpandMoreIcon","ExpandMore","FilterAltIcon","FilterAlt","FilterAltOffIcon","FilterAltOff","FilterListIcon","FilterList","FilterListOffIcon","FilterListOff","FullscreenExitIcon","FullscreenExit","FullscreenIcon","Fullscreen","KeyboardDoubleArrowDownIcon","KeyboardDoubleArrowDown","MoreHorizIcon","MoreHoriz","MoreVertIcon","MoreVert","PushPinIcon","PushPin","RestartAltIcon","RestartAlt","SaveIcon","Save","SearchIcon","Search","SearchOffIcon","SearchOff","SortIcon","Sort","ViewColumnIcon","ViewColumn","VisibilityOffIcon","VisibilityOff","MRT_ExpandAllButton","instance","getIsAllRowsExpanded","getIsSomeRowsExpanded","getCanSomeRowsExpand","getState","options","icons","localization","muiExpandAllButtonProps","renderDetailPanel","toggleAllRowsExpanded","density","iconButtonProps","Function","React","Tooltip","arrow","enterDelay","enterNextDelay","title","IconButton","disabled","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","muiExpandButtonProps","handleToggleExpand","toggleExpanded","getCanExpand","getIsExpanded","fuzzy","columnId","filterValue","addMeta","itemRank","rankItem","getValue","threshold","rankings","MATCHES","passed","autoRemove","val","contains","id","toString","toLowerCase","trim","includes","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","lessThan","between","filterValues","undefined","empty","_filterValue","notEmpty","MRT_FilterFns","commonMenuItemStyles","py","my","alignItems","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","enabledColumnFilterOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","column","columnDef","allowedColumnFilterOptions","filterOptions","useMemo","option","label","divider","fn","filter","filterType","handleSelectFilterType","value","prev","setFilterValue","filterOption","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","map","index","MenuItem","key","selected","DndContext","createContext","dragDropManager","invariant","condition","format","args","isProduction","Error","error","argIndex","replace","name","framesToPop","process","env","get","obj","path","defaultValue","split","reduce","a","c","without","items","item","i","isObject","input","xor","itemsA","itemsB","Map","insertItem","set","has","forEach","result","count","push","intersection","t","indexOf","INIT_COORDS","BEGIN_DRAG","PUBLISH_DRAG_SOURCE","HOVER","DROP","END_DRAG","setClientOffset","clientOffset","sourceClientOffset","type","payload","ResetCoordinatesAction","createBeginDrag","manager","beginDrag","sourceIds","publishSource","getSourceClientOffset","monitor","getMonitor","registry","getRegistry","dispatch","verifyInvariants","sourceId","getDraggableSource","verifyGetSourceClientOffsetIsFunction","source","getSource","verifyItemIsObject","pinSource","itemType","getSourceType","isSourcePublic","isDragging","length","canDragSource","createDrop","drop","targetIds","getDroppableTargets","targetId","dropResult","determineDropResult","action","didDrop","target","getTarget","verifyDropResultType","getDropResult","getTargetIds","canDropOnTarget","reverse","createEndDrag","endDrag","verifyIsDragging","getSourceId","unpinSource","matchesType","targetType","draggedItemType","Array","isArray","some","createHover","hover","targetIdsArg","verifyTargetIdsIsArray","slice","getItemType","removeNonMatchingTargetIds","checkInvariants","hoverAllTargets","lastIndexOf","getTargetType","splice","createPublishDragSource","publishDragSource","createDragDropActions","DragDropManagerImpl","backend","getBackend","getActions","store","bindActionCreator","actionCreator","apply","Object","keys","boundActions","isSetUp","handleRefCountChange","shouldSetUp","refCount","setup","teardown","subscribe","add","b","x","y","subtract","state","initialClientOffset","initialSourceClientOffset","getDifferenceFromInitialOffset","NONE","ALL","__IS_NONE__","__IS_ALL__","areDirty","dirtyIds","handlerIds","commonIds","DragDropMonitorImpl","subscribeToStateChange","listener","prevStateId","stateId","handleChange","currentStateId","canSkipListener","dirtyHandlerIds","previousState","dragOffset","nextState","canDrag","canDrop","Boolean","sourceType","isOverTarget","shallow","dragOperation","getItem","getInitialClientOffset","getInitialSourceClientOffset","getClientOffset","scope","global","self","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","makeRequestCallFromTimer","callback","requestCall","timeoutHandle","setTimeout","handleTimer","intervalHandle","setInterval","clearTimeout","clearInterval","makeRequestCallFromMutationObserver","toggle","observer","node","document","createTextNode","observe","characterData","data","makeRequestCall","AsapQueue","task","queue","q","requestFlush","flushing","pendingErrors","capacity","flush","currentIndex","call","scan","newLength","registerPendingError","err","requestErrorThrow","shift","RawTask","onError","release","TaskFactory","tasks","freeTasks","pop","asapQueue","taskFactory","asap","enqueueTask","create","ADD_SOURCE","ADD_TARGET","REMOVE_SOURCE","REMOVE_TARGET","addSource","addTarget","removeSource","removeTarget","validateSourceContract","validateTargetContract","validateType","allowArray","HandlerRole","SOURCE","TARGET","nextUniqueId","getNextUniqueId","getNextHandlerId","role","parseRoleFromHandlerId","handlerId","mapContainsValue","searchValue","entries","isDone","done","next","HandlerRegistryImpl","addHandler","handler","dragSources","dropTargets","includePinned","isSourceId","isPinned","pinnedSourceId","pinnedSource","isTargetId","types","delete","strictEquality","areCoordsEqual","offsetA","offsetB","areArraysEqual","isEqual","_state","prevTargetIds","didChange","prevInnermostTargetId","innermostTargetId","initialState","_objectSpread","createDragDropManager","backendFactory","globalContext","backendOptions","debugMode","makeStoreInstance","receiveBackend","reduxDevTools","window","__REDUX_DEVTOOLS_EXTENSION__","createStore","instanceId","INSTANCE_SYM","Symbol","for","DndProvider","memo","children","props","isGlobalInstance","getDndContextValue","useEffect","context","getGlobalContext","_jsx","Provider","createSingletonDndContext","ctx","useIsomorphicLayoutEffect","useLayoutEffect","useCollector","collect","onUpdate","collected","setCollected","useState","updateCollected","useCallback","nextValue","equal","useMonitorOutput","onCollect","subscribeToMonitorStateChange","getHandlerId","useCollectedProps","collector","connector","reconnect","useOptionalFactory","arg","deps","memoDeps","useConnectDragSource","hooks","dragSource","useConnectDragPreview","dragPreview","isCallingCanDrag","isCallingIsDragging","DragSourceMonitorImpl","internalMonitor","isDraggingSource","subscribeToOffsetChange","isCallingCanDrop","DropTargetMonitorImpl","registerTarget","registerSource","shallowEqual","objA","objB","compare","compareContext","compareResult","keysA","keysB","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","valueA","valueB","isRef","throwIfCompositeComponentElement","element","displayName","wrapHookToRecognizeElement","hook","elementOrNode","isValidElement","ref","cloneWithRef","wrapConnectorHooks","wrappedHooks","wrappedHook","setRef","current","newRef","previousRef","cloneElement","SourceConnector","newHandlerId","connectTarget","dragSourceOptions","dragSourceOptionsInternal","dragPreviewOptions","dragPreviewOptionsInternal","reconnectDragSource","reconnectDragPreview","didHandlerIdChange","didConnectedDragSourceChange","didDragSourceOptionsChange","disconnectDragSource","lastConnectedDragSource","lastConnectedHandlerId","lastConnectedDragSourceOptions","dragSourceUnsubscribe","connectDragSource","forceDidChange","didConnectedDragPreviewChange","didDragPreviewOptionsChange","disconnectDragPreview","lastConnectedDragPreview","lastConnectedDragPreviewOptions","dragPreviewUnsubscribe","connectDragPreview","dragPreviewNode","dragPreviewRef","dragSourceNode","dragSourceRef","clearDragSource","clearDragPreview","TargetConnector","dropTarget","didDropTargetChange","didOptionsChange","disconnectDropTarget","lastConnectedDropTarget","lastConnectedDropTargetOptions","dropTargetOptions","unsubscribeDropTarget","connectDropTarget","dropTargetOptionsInternal","dropTargetNode","dropTargetRef","clearDropTarget","useDragDropManager","useContext","useDragSourceConnector","useDragSourceMonitor","DragSourceImpl","spec","globalMonitor","end","useDragSource","useDragType","useRegisteredDragSource","registerDragSource","unregister","receiveHandlerId","useDrag","specArg","begin","previewOptions","useConnectDropTarget","useDropTargetConnector","useDropTargetMonitor","useAccept","accept","DropTargetImpl","useDropTarget","useRegisteredDropTarget","registerDropTarget","join","useDrop","MRT_ColumnPinningButtons","handlePinColumn","pinDirection","pin","Box","minWidth","textAlign","getIsPinned","size","MRT_GrabHandleButton","forwardRef","placement","disableRipple","cursor","m","opacity","p","backgroundColor","getAllLeafColumnDefs","columns","lowestLevelColumns","currentCols","col","nextCols","flat","every","createGroup","table","createDataColumn","filterFn","createDisplayColumn","reorderColumn","movingColumn","receivingColumn","columnOrder","getCanPin","getLeadingDisplayColumnIds","positionActionsColumn","enableRowActions","enableEditing","editingMode","enableExpanding","enableGrouping","enableRowSelection","enableRowNumbers","getTrailingDisplayColumnIds","getDefaultColumnOrderIds","MRT_ShowHideColumnsMenuItems","allColumns","isSubMenu","enableColumnOrdering","enableHiding","enablePinning","setColumnOrder","columnDefType","newColumnOrder","dropRef","dragRef","previewRef","switchChecked","getIsVisible","getLeafColumns","handleToggleColumnHidden","childColumn","justifyContent","pl","depth","display","flexWrap","gap","FormControlLabel","componentsProps","typography","mb","checked","control","Switch","getCanHide","getIsGrouped","onChange","Typography","alignSelf","MRT_ShowHideColumnsMenu","getAllColumns","getAllLeafColumns","getCenterLeafColumns","getIsAllColumnsVisible","getIsSomeColumnsPinned","getIsSomeColumnsVisible","getLeftLeafColumns","getRightLeafColumns","toggleAllColumnsVisible","columnPinning","hideAllColumns","from","Set","colId","find","pt","Button","resetColumnPinning","Divider","commonListItemStyles","MRT_ColumnActionMenu","enableColumnFilterChangeMode","enableColumnFilters","enableColumnResizing","enableSorting","tableId","setShowFilters","columnSizing","columnVisibility","filterMenuAnchorEl","setFilterMenuAnchorEl","showHideColumnsMenuAnchorEl","setShowHideColumnsMenuAnchorEl","handleClearSort","clearSorting","handleSortAsc","toggleSorting","handleSortDesc","handleResetColumnSize","resetSize","handleHideColumn","handleGroupByColumn","toggleGrouping","old","handleClearFilter","handleFilterByColumn","getElementById","muiTableHeadCellFilterTextFieldProps","focus","handleShowAllColumns","handleOpenFilterModeMenu","event","stopPropagation","currentTarget","handleOpenShowHideColumnsMenu","isSelectFilter","filterSelectOptions","showFilterModeSubMenu","getCanSort","getIsSorted","ListItemIcon","String","getCanFilter","getFilterValue","onMouseEnter","getCanGroup","getCanResize","values","visible","MRT_RowActionMenu","handleEdit","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditRowSubmit","setCurrentEditingRow","currentEditingRow","handleCancel","_valuesCache","original","handleSave","color","commonIconButtonStyles","ml","MRT_ToggleRowActionMenuButton","renderRowActions","handleOpenRowActionMenu","preventDefault","handleStartEditMode","MRT_SelectCheckbox","selectAll","muiSelectCheckboxProps","muiSelectAllCheckboxProps","selectAllMode","handleSelectChange","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","getToggleSelectedHandler","checkboxProps","Checkbox","getIsAllRowsSelected","getIsSelected","indeterminate","getIsSomeRowsSelected","getIsSomeSelected","inputProps","memoize","memoized","union","EnterLeaveCounter","enteringNode","previousLength","entered","isNodeEntered","isNodeInDocument","leavingNode","reset","NativeDragSource","initializeExposedProperties","config","exposeProperties","property","defineProperty","configurable","enumerable","console","warn","dataTransfer","newProperties","propertyFn","matchesTypes","defineProperties","handle","FILE","URL","TEXT","HTML","getDataFromDataTransfer","typesToTry","resultSoFar","typeToTry","getData","nativeTypesConfig","NativeTypes","files","html","urls","text","createNativeDragSource","loadDataTransfer","matchNativeItemType","dataTransferTypes","nativeItemType","typeConfig","isFirefox","test","navigator","userAgent","isSafari","safari","MonotonicInterpolant","xs","ys","c1s","c2s","c3s","low","high","mid","Math","floor","xHere","diff","diffSq","dxs","ms","dx","dy","m2","mNext","dxNext","common","c1","invDx","ELEMENT_NODE","getNodeClientOffset","el","nodeType","parentElement","top","left","getBoundingClientRect","getEventClientOffset","e","clientX","clientY","isImageNode","nodeName","documentElement","getDragPreviewSize","isImage","sourceWidth","sourceHeight","dragPreviewWidth","dragPreviewHeight","devicePixelRatio","getDragPreviewOffset","sourceNode","anchorPoint","offsetPoint","dragPreviewNodeOffsetFromClient","offsetFromDragPreview","offsetWidth","offsetHeight","anchorX","anchorY","calculateYOffset","interpolantY","interpolate","calculateXOffset","interpolantX","offsetX","offsetY","isManualOffsetX","isManualOffsetY","OptionsReader","rootElement","optionsArgs","ownerDocument","HTML5BackendImpl","profile","sourcePreviewNodes","sourcePreviewNodeOptions","sourceNodeOptions","sourceNodes","dragStartSourceIds","dropTargetIds","dragEnterTargetIds","dragOverTargetIds","root","__isReactDndBackendSetUp","addEventListeners","removeEventListeners","clearCurrentDragSourceNode","asyncEndDragFrameId","cancelAnimationFrame","handleDragStart","handleSelectStart","setAttribute","addEventListener","removeEventListener","handleDragEnter","handleDragOver","handleDrop","handleTopDragStart","handleTopDragStartCapture","handleTopDragEndCapture","handleTopDragEnter","handleTopDragEnterCapture","handleTopDragLeaveCapture","handleTopDragOver","handleTopDragOverCapture","handleTopDrop","handleTopDropCapture","getCurrentSourceNodeOptions","dropEffect","altKeyPressed","getCurrentDropEffect","isDraggingNativeItem","getCurrentSourcePreviewNodeOptions","captureDraggingState","beginDragNativeItem","currentNativeSource","currentNativeHandle","currentDragSourceNode","MOUSE_MOVE_TIMEOUT","mouseMoveTimeoutTimer","endDragIfSourceWasRemovedFromDOM","defaultPrevented","unshift","_e","lastClientOffset","hoverRafId","endDragNativeItem","body","cancelHover","scheduleHover","requestAnimationFrame","nativeType","setDragImage","dragPreviewOffset","setData","setCurrentDragSourceNode","hasAttribute","isFirstEnter","enterLeaveCounter","enter","altKey","isLastLeave","leave","dragDrop","tagName","isContentEditable","HTML5Backend","createBackend","MRT_FullScreenToggleButton","rest","setIsFullScreen","isFullScreen","handleToggleFullScreen","MRT_ShowHideColumnsButton","handleClick","MRT_ToggleDensePaddingButton","setDensity","handleToggleDensePadding","nextDensity","MRT_ToggleFiltersButton","showFilters","handleToggleShowFilters","MRT_ToggleGlobalFilterButton","muiSearchTextFieldProps","setShowGlobalFilter","showGlobalFilter","textFieldProps","handleToggleSearch","MRT_GlobalFilterTextField","setGlobalFilter","enableGlobalFilterChangeMode","globalFilter","setSearchValue","handleChangeDebounced","debounce","handleGlobalFilterMenuOpen","handleClear","Collapse","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","MRT_ToolbarInternalButtons","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","positionGlobalFilter","renderToolbarInternalActions","zIndex","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","enableToolbarInternalActions","rowCount","pagination","pageSize","pageIndex","tablePaginationProps","handleChangeRowsPerPage","totalRowCount","rows","showFirstLastPageButtons","TablePagination","SelectProps","MenuProps","disablePadding","component","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","mt","MRT_ToolbarAlertBanner","stackAlertBanner","getSelectedRowModel","muiTableToolbarAlertBannerProps","grouping","showAlertBanner","alertProps","selectMessage","groupedByMessage","Fragment","Chip","getColumn","onDelete","timeout","Alert","icon","borderRadius","fontSize","right","AlertTitle","MRT_LinearProgressBar","alignTo","muiLinearProgressProps","isLoading","showProgressBars","linearProgressProps","mountOnEnter","unmountOnExit","bottom","LinearProgress","commonToolbarStyles","theme","lighten","palette","background","backgroundImage","minHeight","overflow","MRT_ToolbarTop","enablePagination","muiTableToolbarTopProps","positionPagination","positionToolbarAlertBanner","renderToolbarTopCustomActions","isMobile","useMediaQuery","toolbarProps","Toolbar","boxSizing","MRT_ToolbarBottom","muiTableToolbarBottomProps","renderToolbarBottomCustomActions","boxShadow","alpha","black","MRT_FilterTextField","inputIndex","mTableHeadCellFilterTextFieldProps","mcTableHeadCellFilterTextFieldProps","newFilterValues","handleFilterMenuOpen","handleClearFilterChip","Filter","filterId","filterChipLabel","charAt","toUpperCase","filterPlaceholder","showChangeModeButton","fullWidth","textOverflow","helperText","htmlFor","FormHelperTextProps","lineHeight","whiteSpace","margin","disableHoverListener","mr","MRT_FilterRangeFields","gridTemplateColumns","MRT_TableHeadCellFilterContainer","MRT_TableHeadCellFilterLabel","filterTooltip","Grow","MRT_TableHeadCellResizeHandle","flexItem","onDoubleClick","borderRightWidth","touchAction","getIsResizing","userSelect","info","main","onMouseDown","getResizeHandler","onTouchStart","columnSizingInfo","deltaOffset","MRT_TableHeadCellSortLabel","sortTooltip","TableSortLabel","active","direction","MRT_TableHeadCellColumnActionsButton","muiTableHeadCellColumnActionsButtonProps","mTableHeadCellColumnActionsButtonProps","mcTableHeadCellColumnActionsButtonProps","MRT_TableHeadCell","enableColumnActions","enableMultiSort","muiTableHeadCellProps","mTableHeadCellProps","mcTableHeadCellProps","tableCellProps","headerElement","Header","renderHeader","getIsLastLeftPinnedColumn","getLeftLeafHeaders","getPinnedIndex","getIsFirstRightPinnedColumn","getTotalRight","getRightLeafHeaders","TableCell","align","colSpan","fontWeight","getStart","pb","verticalAlign","maxWidth","getSize","minSize","isPlaceholder","getToggleSortingHandler","MRT_DraggableTableHeadCell","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","tableRowProps","TableRow","headers","MRT_TableHead","getHeaderGroups","muiTableHeadProps","tableHeadProps","TableHead","rectChanged","observedNodes","run","changedStates","newRect","rafId","observeRect","cb","wasEmpty","rect","hasRectChanged","callbacks","unobserve","useRect","nodeRef","initialRect","setElement","useReducer","rectReducer","initialRectSet","useRef","defaultEstimateSize","defaultKeyExtractor","defaultMeasureSize","defaultRangeExtractor","range","start","overscan","arr","useVirtual","estimateSize","paddingStart","paddingEnd","parentRef","scrollToFn","useObserver","onScrollElement","scrollOffsetFn","keyExtractor","measureSize","rangeExtractor","sizeKey","scrollKey","latestRef","scrollOffset","measurements","setScrollOffset","useMeasureParent","outerSize","defaultScrollToFn","offset","resolvedScrollToFn","measuredCache","setMeasuredCache","measure","pendingMeasuredCacheIndexesRef","measuredSize","totalSize","scrollOffsetFnRef","onScroll","capture","passive","calculateRange","indexes","measureSizeRef","virtualItems","k","len","measurement","measureRef","mountedRef","scrollToOffset","toOffset","tryScrollToIndex","scrollToIndex","findNearestBinarySearch","getCurrentValue","middle","currentValue","getOffset","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","handleBlur","mTableBodyCellEditTextFieldProps","mcTableBodyCellEditTextFieldProps","onBlur","MRT_CopyButton","muiTableBodyCellCopyButtonProps","copied","setCopied","handleCopy","clipboard","writeText","mTableBodyCellCopyButtonProps","mcTableBodyCellCopyButtonProps","buttonProps","border","fontFamily","letterSpacing","textTransform","MRT_TableBodyCell","enableHover","rowIndex","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","rowNumberMode","currentEditingCell","showSkeletons","mTableCellBodyProps","mcTableCellBodyProps","skeletonWidth","random","isEditable","isEditing","handleDoubleClick","_event","textField","mode","darken","Skeleton","animation","Cell","getIsPlaceholder","groupingColumnId","getIsAggregated","AggregatedCell","renderAggregatedCell","renderCell","subRows","MRT_TableDetailPanel","getVisibleLeafColumns","muiTableBodyRowProps","muiTableDetailPanelProps","borderBottom","getTotalSize","MRT_TableBodyRow","getVisibleCells","rowA","rowB","dir","columnFiltersMeta","compareItems","sortingFns","alphanumeric","MRT_SortingFns","rankGlobalFuzzy","v","rank","MRT_TableBody","tableContainerRef","getRowModel","enableGlobalFilterRankedResults","enableRowVirtualization","muiTableBodyProps","virtualizerProps","sorting","tableBodyProps","getIsSomeColumnsSorted","rankedRows","sort","rowVirtualizer","virtualRows","paddingTop","paddingBottom","TableBody","rowOrVirtualRow","MRT_TableFooterCell","footer","muiTableFooterCellProps","mTableFooterCellProps","mcTableFooterCellProps","white","Footer","renderFooter","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","MRT_TableFooter","getFooterGroups","muiTableFooterProps","tableFooterProps","TableFooter","MRT_Table","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","tableProps","Table","stickyHeader","tableLayout","MRT_TableContainer","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","topToolbarHeight","bottomToolbarHeight","TableContainer","maxHeight","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","tablePaperProps","Paper","elevation","padding","MRT_TableRoot","setIdPrefix","substring","initState","setShowAlertBanner","assign","globalFilterFn","createTable","setOptions","filterFns","getCoreRowModel","getExpandedRowModel","getFacetedRowModel","getFilteredRowModel","getGroupedRowModel","getPaginationRowModel","getSortedRowModel","displayColumns","enableExpandAll","enableSelectAll","fill","useTableInstance","onColumnOrderChange","getSubRows","onCurrentEditingCellChange","onCurrentEditingRowChange","onCurrentFilterFnsChange","onCurrentGlobalFilterFnChange","onDensityChange","onIsFullScreenChange","onShowAlertBannerChange","onShowFiltersChange","onShowGlobalFilterChange","Dialog","PaperComponent","TransitionComponent","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","columnResizeMode","defaultColumn","maxSize","enableMultiRowSelection"],"mappings":"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"}