@coreui/data-grid 0.1.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +3 -0
- package/README.md +37 -0
- package/dist/css/data-grid.css +444 -0
- package/dist/css/data-grid.css.map +1 -0
- package/dist/css/data-grid.min.css +5 -0
- package/dist/css/data-grid.min.css.map +1 -0
- package/dist/js/csv.cjs +68 -0
- package/dist/js/csv.cjs.map +1 -0
- package/dist/js/csv.mjs +63 -0
- package/dist/js/csv.mjs.map +1 -0
- package/dist/js/data-grid.esm.js +9618 -0
- package/dist/js/data-grid.esm.js.map +1 -0
- package/dist/js/data-grid.esm.min.js +8 -0
- package/dist/js/data-grid.esm.min.js.map +1 -0
- package/dist/js/data-grid.js +9635 -0
- package/dist/js/data-grid.js.map +1 -0
- package/dist/js/data-grid.min.js +8 -0
- package/dist/js/data-grid.min.js.map +1 -0
- package/dist/js/data-grid.mjs +9618 -0
- package/dist/js/data-grid.mjs.map +1 -0
- package/dist/js/filters.cjs +143 -0
- package/dist/js/filters.cjs.map +1 -0
- package/dist/js/filters.mjs +137 -0
- package/dist/js/filters.mjs.map +1 -0
- package/dist/js/labels.cjs +76 -0
- package/dist/js/labels.cjs.map +1 -0
- package/dist/js/labels.mjs +71 -0
- package/dist/js/labels.mjs.map +1 -0
- package/dist/types/base-component.d.ts +19 -0
- package/dist/types/data-grid.d.ts +128 -0
- package/dist/types/dom/event-handler.d.ts +11 -0
- package/dist/types/dom/manipulator.d.ts +9 -0
- package/dist/types/engine/active-cell.d.ts +32 -0
- package/dist/types/engine/data-source.d.ts +19 -0
- package/dist/types/engine/scheduler.d.ts +11 -0
- package/dist/types/engine/table.d.ts +9 -0
- package/dist/types/engine/virtualizer.d.ts +21 -0
- package/dist/types/filters.d.mts +1 -0
- package/dist/types/filters.d.ts +13 -0
- package/dist/types/icons.d.ts +21 -0
- package/dist/types/index.d.mts +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/labels.d.mts +1 -0
- package/dist/types/labels.d.ts +9 -0
- package/dist/types/types.d.ts +262 -0
- package/dist/types/ui/body.d.ts +34 -0
- package/dist/types/ui/column-chooser.d.ts +27 -0
- package/dist/types/ui/editor.d.ts +8 -0
- package/dist/types/ui/filter-menu.d.ts +21 -0
- package/dist/types/ui/header.d.ts +50 -0
- package/dist/types/ui/loading.d.ts +12 -0
- package/dist/types/ui/menu.d.ts +17 -0
- package/dist/types/ui/pagination.d.ts +17 -0
- package/dist/types/ui/pinning.d.ts +17 -0
- package/dist/types/ui/toolbar.d.ts +34 -0
- package/dist/types/ui/tooltip.d.ts +10 -0
- package/dist/types/util/config.d.ts +11 -0
- package/dist/types/util/csv.d.mts +1 -0
- package/dist/types/util/csv.d.ts +19 -0
- package/dist/types/util/debounce.d.ts +7 -0
- package/dist/types/util/index.d.ts +10 -0
- package/dist/types/util/sanitizer.d.ts +11 -0
- package/package.json +147 -0
- package/scss/data-grid.scss +559 -0
- package/src/base-component.d.ts +19 -0
- package/src/base-component.js +90 -0
- package/src/data-grid.ts +2208 -0
- package/src/dom/data.js +59 -0
- package/src/dom/event-handler.d.ts +11 -0
- package/src/dom/event-handler.js +331 -0
- package/src/dom/manipulator.d.ts +9 -0
- package/src/dom/manipulator.js +75 -0
- package/src/engine/active-cell.ts +195 -0
- package/src/engine/data-source.ts +63 -0
- package/src/engine/scheduler.ts +42 -0
- package/src/engine/table.ts +122 -0
- package/src/engine/virtualizer.ts +57 -0
- package/src/filters.ts +176 -0
- package/src/icons.ts +60 -0
- package/src/index.ts +56 -0
- package/src/labels.ts +70 -0
- package/src/types.ts +334 -0
- package/src/ui/body.ts +348 -0
- package/src/ui/column-chooser.ts +183 -0
- package/src/ui/editor.ts +98 -0
- package/src/ui/filter-menu.ts +398 -0
- package/src/ui/header.ts +441 -0
- package/src/ui/loading.ts +39 -0
- package/src/ui/menu.ts +218 -0
- package/src/ui/pagination.ts +150 -0
- package/src/ui/pinning.ts +53 -0
- package/src/ui/toolbar.ts +144 -0
- package/src/ui/tooltip.ts +113 -0
- package/src/util/config.d.ts +11 -0
- package/src/util/config.js +69 -0
- package/src/util/csv.ts +85 -0
- package/src/util/debounce.ts +18 -0
- package/src/util/index.d.ts +10 -0
- package/src/util/index.js +310 -0
- package/src/util/sanitizer.d.ts +11 -0
- package/src/util/sanitizer.js +162 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["elementMap","Map","Data","set","element","key","instance","has","instanceMap","get","size","console","error","Array","from","keys","remove","delete","TRANSITION_END","toType","object","Object","prototype","toString","call","match","toLowerCase","isElement","jquery","nodeType","getElement","length","document","querySelector","selector","window","CSS","escape","replace","id","getjQuery","jQuery","body","hasAttribute","DOMContentLoadedCallbacks","execute","possibleCallback","args","defaultValue","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","findHandler","events","callable","delegationSelector","values","find","event","normalizeParameters","originalTypeEvent","handler","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","oneOff","wrapFunction","fn","relatedTarget","delegateTarget","contains","this","handlers","previousFunction","domElements","querySelectorAll","target","parentNode","domElement","hydrateObj","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","includes","on","one","inNamespace","isNamespace","startsWith","elementEvent","slice","keyHandlers","trigger","$","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","Event","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","evt","cancelable","preventDefault","dispatchEvent","obj","meta","value","defineProperty","configurable","normalizeData","Number","JSON","parse","decodeURIComponent","normalizeDataKey","chr","Manipulator","setDataAttribute","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","coreuiKeys","dataset","filter","pureKey","charAt","getDataAttribute","getAttribute","Config","Default","DefaultType","NAME","Error","_getConfig","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","constructor","configTypes","property","expectedTypes","valueType","RegExp","test","TypeError","toUpperCase","BaseComponent","super","_element","_config","DATA_KEY","dispose","EVENT_KEY","propertyName","getOwnPropertyNames","_queueCallback","callback","isAnimated","transitionElement","waitForTransition","emulatedDuration","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","split","getTransitionDurationFromElement","called","setTimeout","executeAfterTransition","getInstance","getOrCreateInstance","VERSION","eventName","name","functionalUpdate","updater","input","makeStateUpdater","setState","old","isFunction","d","Function","memo","getDeps","opts","result","deps","depArgs","depTime","debug","Date","now","newDeps","some","dep","index","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","info","max","min","getMemoOptions","tableOptions","debugLevel","_tableOptions$debugAl","debugAll","createHeader","table","column","options","_options$id","header","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","map","push","getContext","_features","forEach","feature","Headers","createTable","getHeaderGroups","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","leafColumns","_left$map$filter","_right$map$filter","leftColumns","columnId","rightColumns","buildHeaderGroups","getCenterHeaderGroups","getLeftHeaderGroups","_left$map$filter2","getRightHeaderGroups","_right$map$filter2","getFooterGroups","headerGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","_header$subHeaders","getLeftLeafHeaders","_header$subHeaders2","getRightLeafHeaders","_header$subHeaders3","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","columns","getIsVisible","_column$columns","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","childRowSpans","_ref","childColSpan","childRowSpan","createRow","original","rowIndex","subRows","parentId","row","_valuesCache","_uniqueValuesCache","getValue","hasOwnProperty","getColumn","accessorFn","getUniqueValues","columnDef","renderValue","_row$getValue","renderFallbackValue","getLeafRows","arr","recurse","subArr","item","children","flattenBy","getParentRow","getRow","getParentRows","parentRows","currentRow","parentRow","getAllCells","getAllLeafColumns","cell","_cell$getValue","createCell","_getAllCellsByColumnId","allCells","reduce","acc","i","ColumnFaceting","createColumn","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","_getFacetedMinMaxValues","getFacetedMinMaxValues","includesString","filterValue","_filterValue$toString","search","autoRemove","val","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","arrIncludes","_row$getValue4","arrIncludesAll","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parsedMax","isNaN","Infinity","temp","filterFns","ColumnFiltering","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","getDefaultOptions","onColumnFiltersChange","filterFromLeafRows","maxLeafRowFilterDepth","getAutoFilterFn","firstRow","getCoreRowModel","flatRows","isArray","getFilterFn","_table$options$filter","_table$options$filter2","getCanFilter","_column$columnDef$ena","_table$options$enable","_table$options$enable2","enableColumnFilter","enableColumnFilters","enableFilters","getIsFiltered","getFilterIndex","getFilterValue","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","findIndex","setFilterValue","setColumnFilters","previousFilter","newFilter","_old$filter","shouldAutoRemoveFilter","newFilterObj","_old$map","_table","columnFiltersMeta","_functionalUpdate","resetColumnFilters","defaultState","_table$initialState$c","_table$initialState","initialState","getFilteredRowModel","_getFilteredRowModel","manualFiltering","aggregationFns","sum","_leafRows","childRows","next","nextValue","extent","mean","leafRows","count","median","every","mid","floor","nums","sort","a","b","unique","uniqueCount","_columnId","ColumnGrouping","aggregatedCell","props","_toString","_props$getValue","aggregationFn","grouping","onGroupingChange","groupedColumnMode","toggleGrouping","setGrouping","getCanGroup","enableGrouping","getGroupingValue","getIsGrouped","_table$getState$group","getGroupedIndex","_table$getState$group2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","getAggregationFn","_table$options$aggreg","_table$options$aggreg2","resetGrouping","_table$initialState$g","getPreGroupedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","groupingColumnId","_groupingValuesCache","getIsPlaceholder","getIsAggregated","_row$subRows","ColumnOrdering","columnOrder","onColumnOrderChange","getIndex","position","_getVisibleLeafColumns","getIsFirstColumn","_columns$","getIsLastColumn","_columns","setColumnOrder","resetColumnOrder","_getOrderColumnsFn","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","splice","nonGroupingColumns","col","g","orderColumns","ColumnPinning","onColumnPinningChange","pin","columnIds","getLeafColumns","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$columnDef$enablePi","enablePinning","enableColumnPinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","getCenterVisibleCells","_getAllVisibleCells","leftAndRight","getLeftVisibleCells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","defaultColumnSizing","minSize","maxSize","MAX_SAFE_INTEGER","ColumnSizing","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","columnResizeMode","columnResizeDirection","onColumnSizingChange","onColumnSizingInfoChange","getSize","_column$columnDef$min","_column$columnDef$max","columnSize","getStart","getAfter","resetSize","setColumnSizing","_ref2","_","rest","getCanResize","enableResizing","enableColumnResizing","getIsResizing","_header$column$getSiz","prevSiblingHeader","getResizeHandler","_contextDocument","canResize","e","persist","isTouchStartEvent","touches","clientX","newColumnSizing","updateOffset","eventType","clientXPos","setColumnSizingInfo","_old$startOffset","_old$startSize","deltaDirection","_ref3","headerSize","onMove","onEnd","contextDocument","mouseEvents","moveHandler","upHandler","touchEvents","stopPropagation","_e$touches$","passiveIfSupported","passiveSupported","supported","passive","noop","err","passiveEventSupported","resetColumnSizing","resetHeaderSizeInfo","_table$initialState$c2","getTotalSize","_table$getHeaderGroup","_table$getHeaderGroup2","getLeftTotalSize","_table$getLeftHeaderG","_table$getLeftHeaderG2","getCenterTotalSize","_table$getCenterHeade","_table$getCenterHeade2","getRightTotalSize","_table$getRightHeader","_table$getRightHeader2","getCenterVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","_table$initialState$r","toggleAllRowsSelected","getIsAllRowsSelected","preGroupedFlatRows","getCanSelect","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getSelectedRowModel","rowModel","selectRowsFn","rowsById","getFilteredSelectedRowModel","getGroupedSelectedRowModel","getSortedRowModel","isAllRowsSelected","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","_table$getState$rowSe","totalSelected","getIsSomePageRowsSelected","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","checked","getToggleAllPageRowsSelectedHandler","toggleSelected","isSelected","_opts$selectChildren","selectedRowIds","selectChildren","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","_table$options$enable3","getToggleSelectedHandler","canSelect","_target","includeChildren","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","_selection$row$id","_row$subRows3","allChildrenSelected","someSelected","subRow","subRowChildrenSelected","reSplitAlphaNumeric","compareBasic","compareAlphanumeric","aStr","bStr","aa","bb","an","parseInt","bn","combo","sortingFns","alphanumeric","rowA","rowB","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","builtInFeatures","columnVisibility","onColumnVisibilityChange","toggleVisibility","getCanHide","setColumnVisibility","childColumns","c","enableHiding","getToggleVisibilityHandler","cells","getVisibleCells","makeVisibleColumnsMethod","getColumns","getVisibleFlatColumns","getAllFlatColumns","resetColumnVisibility","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","globalFilter","onGlobalFilterChange","globalFilterFn","getColumnCanGlobalFilter","_table$getCoreRowMode","getCanGlobalFilter","_table$options$getCol","enableGlobalFilter","getGlobalAutoFilterFn","getGlobalFilterFn","setGlobalFilter","resetGlobalFilter","sorting","sortingFn","sortUndefined","onSortingChange","isMultiSortEvent","shiftKey","getAutoSortingFn","firstRows","isString","getAutoSortDir","getSortingFn","_table$options$sortin","_table$options$sortin2","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","existingSorting","existingIndex","sortAction","newSorting","nextDesc","_table$options$maxMul","getCanMultiSort","maxMultiSortColCount","getFirstSortDir","_column$columnDef$sor","sortDescFirst","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","enableSorting","_column$columnDef$ena2","enableMultiSort","_table$getState$sorti","columnSort","getSortIndex","_table$getState$sorti2","_table$getState$sorti3","clearSorting","getToggleSortingHandler","canSort","resetSorting","_table$initialState$s","getPreSortedRowModel","_getSortedRowModel","manualSorting","expanded","onExpandedChange","paginateExpandedRows","registered","queued","_autoResetExpanded","_table$options$autoRe","autoResetAll","autoResetExpanded","manualExpanding","_queue","resetExpanded","setExpanded","toggleAllRowsExpanded","getIsAllRowsExpanded","_table$initialState$e","getCanSomeRowsExpand","getPrePaginationRowModel","getCanExpand","getToggleAllRowsExpandedHandler","getIsSomeRowsExpanded","getIsExpanded","getExpandedDepth","splitId","getPreExpandedRowModel","getExpandedRowModel","_getExpandedRowModel","toggleExpanded","_expanded","exists","oldExpanded","rowId","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","getRowCanExpand","enableExpanding","getIsAllParentsExpanded","isFullyExpanded","getToggleExpandedHandler","canExpand","pagination","pageIndex","pageSize","onPaginationChange","_autoResetPageIndex","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","resetPagination","_table$initialState$p","setPageIndex","maxPageIndex","pageCount","_table$initialState$p2","resetPageSize","_table$initialState$p3","_table$initialState2","setPageSize","topRowIndex","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","getPageCount","pageOptions","fill","getCanPreviousPage","getCanNextPage","previousPage","nextPage","firstPage","lastPage","_getPaginationRowModel","_table$options$pageCo2","ceil","getRowCount","_table$options$rowCou","rowCount","rowPinning","top","bottom","onRowPinningChange","includeLeafRows","includeParentRows","leafRowIds","parentRowIds","rowIds","setRowPinning","_old$top3","_old$bottom3","_old$top","_old$bottom","_old$top2","_old$bottom2","enableRowPinning","isTop","isBottom","_ref4","_visiblePinnedRowIds$","visiblePinnedRowIds","getTopRows","getBottomRows","_ref5","resetRowPinning","getIsSomeRowsPinned","_pinningState$top","_pinningState$bottom","_getPinnedRows","visibleRows","pinnedRowIds","_table$options$keepPi","keepPinnedRows","allRows","topPinnedRowIds","bottomPinnedRowIds","getCenterRows","topAndBottom","filterRows","filterRowImpl","rowsToFilter","filterRow","_table$options$maxLea","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","newRow","filterRowModelFromLeafs","_table$options$maxLea2","filterRowModelFromRoot","FILTER_OPERATORS","number","date","VALUELESS_OPERATORS","isBlank","trim","toComparable","filterType","time","getTime","numeric","isFinite","evaluateColumnFilter","cellValue","results","conditions","condition","operator","bound","upper","value2","needle","endsWith","evaluateCondition","candidate","resolveToolbar","toolbar","export","exportOptions","history","exportOption","_a","_b","_c","_d","isGlobalFilterEnabled","createActionButton","icon","label","dataAttribute","button","createElement","classList","add","innerHTML","textContent","append","toTanStackFilterFn","initialDeps","isInitial","memoizedFunction","skipInitialOnChange","updateDeps","notUndefined","msg","debounce","targetWindow","ms","timeoutId","clearTimeout","_isIOSResult","isIOSWebKit","navigator","userAgent","mtp","maxTouchPoints","platform","getRect","offsetWidth","offsetHeight","width","height","defaultKeyExtractor","defaultRangeExtractor","range","start","startIndex","overscan","len","endIndex","observeElementRect","cb","scrollElement","rect","ResizeObserver","observer","run","entry","borderBoxSize","box","inlineSize","blockSize","useAnimationFrameWithResizeObserver","requestAnimationFrame","observe","unobserve","addEventListenerOptions","supportsScrollend","observeElementOffset","readOffset","registerScrollendEvent","useScrollendEvent","offset","fallback","isScrollingResetDelay","createHandler","isScrolling","endHandler","observeOffset","el","horizontal","isRtl","scrollLeft","scrollTop","measureElement","useCachedMeasurements","indexFromElement","getItemKey","itemSizeCache","estimateSize","cachedSize","elementScroll","adjustments","behavior","scrollTo","Virtualizer","unsubs","scrollState","measurementsCache","_flatMeasurements","itemSizeCacheVersion","laneAssignments","pendingMin","prevLanes","lanesChangedFlag","lanesSettling","pendingScrollAnchor","scrollRect","scrollOffset","scrollDirection","scrollAdjustments","_iosDeferredAdjustment","_iosTouching","_iosJustTouchEnded","_iosTouchEndTimerId","_intendedScrollOffset","elementsCache","performance","_ro","node","isConnected","shouldMeasureDuringScroll","resizeItem","cacheKey","cachedNode","disconnect","setOptions","opts2","merged","initialOffset","paddingStart","paddingEnd","scrollPaddingStart","scrollPaddingEnd","rangeExtractor","initialRect","scrollMargin","gap","indexAttribute","initialMeasurementsCache","lanes","anchorTo","followOnAppend","scrollEndThreshold","enabled","laneAssignmentMode","v","prevOptions","anchor","edgeKeysChanged","prevCount","nextCount","measurements","getMeasurements","prevFirstKey","prevLastKey","getVirtualItemForOffset","getScrollOffset","isAtEnd","anchorResolved","anchorDelta","anchorKey","anchorOffset","newMeasurements","idx","anchorItem","newOffset","notify","sync","maybeNotify","calculateRange","cleanup","rafId","cancelAnimationFrame","_didMount","_willUpdate","getScrollElement","ownerDocument","defaultView","cached","abs","prevOffset","_flushIosDeferredIfReady","scheduleScrollReconcile","scrollEl","onTouchStart","onTouchEnd","_scrollToOffset","_offset","scrollToEnd","cur","getMaxScrollOffset","delta","getMeasurementOptions","_itemSizeCacheVersion","clear","need","runningStart","Float64Array","subarray","prevIdx","measuredSize","view","cache","Proxy","prop","receiver","charCodeAt","isInteger","s","end","lane","Reflect","createLazyMeasurementsView","laneLastIndex","laneEnds","filledLanes","m","cachedLane","shouldCacheLane","prevIndex","prevInLane","bestLane","bestEnd","bestIdx","l","outerSize","lastIndex","startIndex2","high","low","middle","currentValue","findNearestBinarySearchFlat","endIndex2","limit","findNearestBinarySearch","endPerLane","pos","startPerLane","calculateRangeImpl","getVirtualIndexes","attributeName","indexStr","warn","scrollIndex","lastTargetOffset","bufferSize","minIndex","maxIndex","key2","prevNode","itemStart","wasAtEnd","getVirtualDistanceFromEnd","prevTotalSize","shouldAdjustScroll","shouldAdjustScrollPositionOnItemSizeChange","applyScrollAdjustment","getVirtualItems","indexes","virtualItems","k","measurement","useFlat","scrollWidth","clientWidth","scrollHeight","clientHeight","doc","documentElement","innerWidth","innerHeight","getDistanceFromEnd","threshold","getOffsetForAlignment","toOffset","align","itemSize","maxOffset","getOffsetForIndex","scrollToOffset","startedAt","stableFrames","scrollToIndex","initialAlign","offsetInfo","scrollBy","lastIdx","endByLane","takeSnapshot","snapshot","scrollToFn","measure","reconcileScroll","targetOffset","targetChanged","viewport","distance","keepSmooth","getCurrentValue","PIN_PATH","SVG_512","DEFAULT_PIN_LEFT_ICON","DEFAULT_PIN_RIGHT_ICON","DEFAULT_LABELS","addCondition","applyFilter","clearFilter","clearSort","columnMenu","filterAction","filterColumn","globalFilterLabel","globalFilterPlaceholder","hideColumn","itemsInfo","joinAnd","joinOr","loadError","loading","moveLeft","moveRight","operatorBetween","operatorBlank","operatorContains","operatorEndsWith","operatorEquals","operatorGreaterThan","operatorGreaterThanOrEqual","operatorLessThan","operatorLessThanOrEqual","operatorNotBlank","operatorNotContains","operatorNotEquals","operatorStartsWith","pageSizeLabel","paginationLabel","pinLeft","pinRight","redoneAnnouncement","resetColumns","resultsAnnouncement","searchValues","selectAllRows","selectAllValues","selectRow","showAllColumns","sortAscending","sortDescending","toolbarColumns","toolbarExport","toolbarRedo","toolbarUndo","undoneAnnouncement","unpin","interpolate","template","tokens","token","CLASS_LEFT","CLASS_RIGHT","CLASS_LEFT_LAST","CLASS_RIGHT_FIRST","applyPinnedCell","style","side","edge","afterSelect","setCellContent","cellElement","content","sanitizeContent","childNodes","firstChild","replaceChildren","CLASS_NAME_EDITOR","sortDirection","iconForDirection","direction","icons","sortNeutral","createResizer","resizer","coreuiResizer","context","resizers","sortIcons","filterCells","filterSlots","movableColumns","movable","selectAllInput","selectCell","cellNavigation","selectAll","labels","coreuiSelectAll","createSelectAllCell","tabIndex","coreuiColumn","assign","isSortable","coreuiSort","hasFilterMenu","coreuiFilter","filterLabel","hasMenu","coreuiMenu","menuLabel","resizable","isResizable","createLabelRow","filterRowElement","filterSelectCell","tableColumn","isFilterable","slot","createFilterRow","orderSignature","update","signature","order","visible","reorderRow","rowElement","cellMap","leading","ordered","applyOrder","sortIcon","sizes","pinning","draggable","regionOf","movablePerRegion","region","coreuiDraggable","toggle","resizingColumn","filteredColumns","_e","select","indeterminate","_f","OPERATOR_LABEL_KEYS","notContains","notEquals","blank","notBlank","greaterThan","greaterThanOrEqual","lessThan","lessThanOrEqual","between","filterMenuCount","inputTypeFor","createFilterMenu","close","refocus","focus","onOutsidePointerDown","onWindowChange","Node","onKeydown","buildConditionRow","option","coreuiFilterValue","coreuiFilterValue2","syncVisibility","hidden","buildFooter","onApply","columnKey","footer","open","getFacetedValues","current","selected","list","checkboxes","rowFor","labelText","coreuiSelectAllValues","coreuiFilterOption","syncSelectAll","placeholder","closest","buildSelectContent","joinRow","joinName","radio","addButton","showSecond","before","collected","readCondition","joinValue","buildConditionsContent","root","rootRect","getBoundingClientRect","buttonRect","CLASS_NAME_MENU_ITEM","menuCount","createPageItem","page","active","disabled","coreuiPage","ariaLabel","columnChooserCount","ATTRIBUTE","SELECTOR","exportCsv","delimiter","process","field","escapeField","sanitize","line","fields","scope","rowsFor","formatter","csv","bom","downloadCsv","blob","Blob","url","URL","createObjectURL","href","download","filename","display","click","revokeObjectURL","delay","timeout","DefaultAllowlist","area","br","code","dd","div","dl","dt","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","small","span","sub","sup","strong","u","ul","SVGAllowlist","svg","path","circle","ellipse","polygon","polyline","tspan","defs","symbol","use","image","pattern","lineargradient","radialgradient","mask","clippath","marker","title","uriAttributes","SAFE_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","nodeName","nodeValue","attributeRegex","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","createdDocument","DOMParser","parseFromString","elements","concat","elementName","attributeList","allowedAttributes","EVENT_CHANGE","EVENT_CLICK","EVENT_DATA_ERROR","EVENT_DATA_LOAD","EVENT_DBLCLICK","EVENT_EDIT_CANCEL","EVENT_EDIT_COMMIT","EVENT_EDIT_START","EVENT_FILTER_CHANGE","EVENT_INPUT","EVENT_ORDER_CHANGE","EVENT_PAGINATION_CHANGE","EVENT_PINNING_CHANGE","EVENT_SELECTION_CHANGE","EVENT_SIZING_CHANGE","EVENT_SORTING_CHANGE","EVENT_VISIBILITY_CHANGE","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_KEYDOWN","EVENT_DRAGEND","EVENT_DRAGLEAVE","EVENT_DRAGOVER","EVENT_DRAGSTART","EVENT_DROP","EVENT_MOUSEDOWN","EVENT_POINTERDOWN","EVENT_TOUCHSTART","CLASS_NAME_DATA_GRID","CLASS_NAME_DRAGGING","CLASS_NAME_DROP_TARGET","SELECTOR_DRAGGABLE","SELECTOR_GLOBAL_FILTER","SELECTOR_RESIZER","SELECTOR_TOOLBAR_REDO","SELECTOR_TOOLBAR_UNDO","DEFAULT_PAGE_SIZE_OPTIONS","editorErrorCount","FOCUSABLE_SELECTOR","applyTabIndex","isTabbable","columnMenuIcon","dataProvider","editing","empty","filterIcon","hideColumnIcon","itemKey","items","moveLeftIcon","moveRightIcon","pinLeftIcon","pinRightIcon","rowHeight","sanitizeFn","slots","sortAscendingIcon","sortDescendingIcon","sortNeutralIcon","sorterVisibility","stateKey","toolbarColumnsIcon","toolbarExportIcon","toolbarRedoIcon","toolbarUndoIcon","unpinIcon","virtualization","DataGrid","_virtualizer","_toolbar","_paginations","_emptySlot","_dataSource","_loading","_loadFailed","_dataVersion","_liveRegion","_selectionAnchorIndex","_activeCell","_containsFocus","_editingCell","_undoStack","_redoStack","_persistState","_editor","_editorPointerdownHandler","_editorPopup","_editorErrorElement","_editorFocusPending","_columnsByKey","_dragColumn","_menu","_tooltip","_filterMenu","_columnChooser","_toolbarConfig","_labels","_scheduler","flush","scheduled","disposed","schedule","createScheduler","_update","_createTable","_render","_addEventListeners","className","showTimer","anchorFrom","element_","Element","HTMLElement","show","visibility","above","hide","onPointerOver","onPointerOut","onFocusIn","createTooltip","_restorePersistedState","_initDataSource","getSelectedItems","getCsv","restoreState","previous","undo","_applyHistoryEntry","redo","to","inverted","pop","previousValue","_announce","_updateHistoryButtons","setItems","_stopEditing","commit","data","_teardownUi","onStateChange","sortingOptions","sizingOptions","paginationOptions","serverSide","sizingEnabled","pinningEnabled","widthsEnabled","paginated","_options$_features","_options$initialState","defaultOptions","_feature$getInitialSt","queuedTimeout","coreInstance","Promise","resolve","then","catch","reset","newOptions","mergeOptions","_getRowId","getRowId","_getCoreRowModel","searchAll","_getDefaultColumnDef","defaultColumn","_defaultColumn","resolvedColumnDef","accessorKey","_props$renderValue$to","_props$renderValue","_getColumnDefs","columnDefs","recurseColumns","_resolvedColumnDef$id","replaceAll","originalRow","_result","getFlatColumns","flatMap","_column$columns2","groupingColumnDef","_getAllFlatColumnsById","flatColumns","filterable","hideable","sortable","mode","multiple","resetable","accessRows","originalRows","_row$originalSubRows","getSubRows","originalSubRows","preRowModel","filterableIds","_table$getColumn","facetedRowModel","facetedUniqueValues","j","_facetedUniqueValues$","resolvedColumnFilters","resolvedGlobalFilters","_filterFn$resolveFilt","globallyFilterableColumns","currentColumnFilter","currentGlobalFilter","_globalFilterFn$resol","filterMeta","__global__","sortingState","sortedFlatRows","availableSorting","columnInfoById","sortEntry","invertSorting","sortData","sortedData","_sortEntry$desc","columnInfo","isDesc","sortInt","aUndefined","bUndefined","pageStart","pageEnd","paginatedRowModel","expandedRows","handleRow","expandRows","previousState","createGridTable","_notifyStateChange","_header","destroy","_viewportElement","_slotContext","_isColumnSortable","_isColumnFilterable","_isColumnResizable","_sanitizeIcon","_hasColumnMenu","_getMenuActions","_renderToolbar","toolbarConfig","actions","undoButton","redoButton","coreuiGlobalFilter","createToolbar","buildContent","coreuiColumnChooserOption","canHide","showAll","coreuiColumnChooserShowAll","coreuiColumnChooserReset","createDocumentFragment","createColumnChooser","_chooserColumns","focusRequested","changed","clamp","clampColumn","maxRow","clampActiveCell","consumeFocusRequest","createActiveCellManager","selectionEnabled","selectionOptions","paginationEnabled","onMenuKeydown","activeIndex","activeElement","getActions","nodes","action","group","divider","previousTrigger","createMenu","_body","currentColumns","getVisibleColumns","layoutSignature","cellCount","buildRowCells","coreuiRowSelect","coreuiLayout","createRowElement","updateRowElement","coreuiRow","firstElementChild","rowKey","getDataVersion","coreuiIndex","editingCell","getEditingCell","cellIndex","editorElement","getEditorElement","render","focusable","updateRowCells","headerRowCount","getRowIndexOffset","currentPinning","createSpacer","setSpacerHeight","spacerElement","topSpacer","bottomSpacer","spacersAttached","emptyElement","rowElements","rowPool","editingSignature","getRows","getPinning","nextEditingSignature","renderEmpty","virtualizer","getVirtualizer","totalSize","paddingTop","paddingBottom","virtualItem","renderWindow","renderAll","createBody","popup","_getPinning","_visibleColumns","html","_tableElement","spinner","setVisible","createLoading","paginationSlot","createInstance","refresh","nav","coreuiPageSize","pageSizeOptions","lastPageIndex","windowStart","PAGE_WINDOW","windowEnd","first","totalRows","last","total","insertBefore","createPagination","_paginationState","unmount","setCount","createGridVirtualizer","_onCellNavigationKeydown","_onCellFocusIn","related","found","_navigableCellFromTarget","_startEditing","_toggleColumnSorting","applyColumnFilter","coreuiColumnFilter","applyGlobalFilter","_onColumnDragStart","targetKey","source","targetColumn","_onColumnDrop","_endColumnDrag","_startColumnResize","_toggleRowSelection","parentElement","ctrlKey","metaKey","matches","_editScopeContains","_cancelEdit","_moveEditing","_setActiveCell","preventScroll","_isColumnEditable","_descendIntoCell","pageStep","columnIndex","lastRow","lastColumn","pageDelta","resolveNavigation","_activeCellContext","editor","editable","force","committed","_commitEdit","cancel","step","createNumberEditor","optionElement","createSelectEditor","createTextEditor","createBuiltInEditor","_mountEditorPopup","domEvent","_cellElementFor","cellRect","minWidth","validate","editValidate","_showEditorInvalid","_teardownEditor","message","viewportRows","_visibleLeafColumns","_applyCellNavigation","tabbable","isActiveRow","sorted","pinned","_moveColumn","builder","defaultActions","_orderedLeafIds","allIds","known","seen","ids","regionIds","neighbor","dataTransfer","effectAllowed","setData","sourceKey","requestId","load","async","onLoadingChange","response","provider","getRequest","onLoad","onError","createDataSource","request","_announceResults","_getColumnSizes","_getFilteredColumns","selectPinned","_storageKey","raw","localStorage","getItem","_getTotalRows","setItem","stringify","filtersChanged","selectedItems","refetchNeeded","jQueryInterface","each","methods","plugin","JQUERY_NO_CONFLICT","Constructor","noConflict","readyState"],"sources":["../../src/dom/data.js","../../src/util/index.js","../../src/dom/event-handler.js","../../src/dom/manipulator.js","../../src/util/config.js","../../src/base-component.js","../../../../node_modules/@tanstack/table-core/build/lib/index.mjs","../../src/filters.ts","../../src/ui/toolbar.ts","../../src/engine/table.ts","../../../../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../../../../node_modules/@tanstack/virtual-core/dist/esm/index.js","../../../../node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js","../../src/icons.ts","../../src/labels.ts","../../src/ui/pinning.ts","../../src/ui/body.ts","../../src/ui/editor.ts","../../src/ui/header.ts","../../src/ui/filter-menu.ts","../../src/ui/menu.ts","../../src/ui/pagination.ts","../../src/ui/column-chooser.ts","../../src/ui/tooltip.ts","../../src/util/csv.ts","../../src/util/debounce.ts","../../src/util/sanitizer.js","../../src/data-grid.ts","../../src/engine/scheduler.ts","../../src/engine/active-cell.ts","../../src/ui/loading.ts","../../src/engine/virtualizer.ts","../../src/engine/data-source.ts"],"sourcesContent":["// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/dom/data.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI dom/data.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/util/index.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI util/index.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0]\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-coreui-no-jquery')) {\n return window.jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n defineJQueryPlugin,\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getjQuery,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/dom/event-handler.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI dom/event-handler.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index.js'\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n // Local addition over the coreui-pro source: HTML5 drag & drop events used\n // by the data grid's column reordering.\n 'drag',\n 'dragstart',\n 'dragend',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'drop',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'input',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.coreui.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n\n let jQueryEvent = null\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n const evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/dom/manipulator.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI dom/manipulator.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-coreui-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-coreui-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const coreuiKeys = Object.keys(element.dataset).filter(key => key.startsWith('coreui') && !key.startsWith('coreuiConfig'))\n\n for (const key of coreuiKeys) {\n let pureKey = key.replace(/^coreui/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-coreui-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/util/config.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI util/config.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/base-component.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI base-component.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This component is a modified version of the Bootstrap's base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '0.1.0'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n // Private\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `coreui.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nfunction createColumnHelper() {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function' ? {\n ...column,\n accessorFn: accessor\n } : {\n ...column,\n accessorKey: accessor\n };\n },\n display: column => column,\n group: column => column\n };\n}\n\n// Is this type a tuple?\n\n// If this type is a tuple, what indices are allowed?\n\n///\n\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {\n //\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return {\n ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction isNumberArray(d) {\n return Array.isArray(d) && d.every(val => typeof val === 'number');\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return depArgs => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\nfunction getMemoOptions(tableOptions, debugLevel, key, onChange) {\n return {\n debug: () => {\n var _tableOptions$debugAl;\n return (_tableOptions$debugAl = tableOptions == null ? void 0 : tableOptions.debugAll) != null ? _tableOptions$debugAl : tableOptions[debugLevel];\n },\n key: process.env.NODE_ENV === 'development' && key,\n onChange\n };\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n const cell = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(() => [table, column, row, cell], (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n }), getMemoOptions(table.options, 'debugCells', 'cell.getContext'))\n };\n table._features.forEach(feature => {\n feature.createCell == null || feature.createCell(cell, column, row, table);\n }, {});\n return cell;\n}\n\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n const defaultColumn = table._getDefaultColumnDef();\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef\n };\n const accessorKey = resolvedColumnDef.accessorKey;\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? typeof String.prototype.replaceAll === 'function' ? accessorKey.replaceAll('.', '_') : accessorKey.replace(/\\./g, '_') : undefined) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = originalRow => {\n let result = originalRow;\n for (const key of accessorKey.split('.')) {\n var _result;\n result = (_result = result) == null ? void 0 : _result[key];\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n }\n }\n return result;\n };\n } else {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n }\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);\n }\n throw new Error();\n }\n let column = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getFlatColumns')),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n return [column];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getLeafColumns'))\n };\n for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\n\n // Yes, we have to convert table to unknown, because we know more than the compiler here.\n return column;\n}\n\nconst debug = 'debugHeaders';\n//\n\nfunction createHeader(table, column, options) {\n var _options$id;\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n leafHeaders.push(h);\n };\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n table._features.forEach(feature => {\n feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, getMemoOptions(table.options, debug, 'getHeaderGroups'));\n table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, getMemoOptions(table.options, debug, 'getCenterHeaderGroups'));\n table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, getMemoOptions(table.options, debug, 'getLeftHeaderGroups'));\n table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, getMemoOptions(table.options, debug, 'getRightHeaderGroups'));\n\n // Footer Groups\n\n table.getFooterGroups = memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getFooterGroups'));\n table.getLeftFooterGroups = memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getLeftFooterGroups'));\n table.getCenterFooterGroups = memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getCenterFooterGroups'));\n table.getRightFooterGroups = memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getRightFooterGroups'));\n\n // Flat Headers\n\n table.getFlatHeaders = memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getFlatHeaders'));\n table.getLeftFlatHeaders = memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeftFlatHeaders'));\n table.getCenterFlatHeaders = memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getCenterFlatHeaders'));\n table.getRightFlatHeaders = memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getRightFlatHeaders'));\n\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, getMemoOptions(table.options, debug, 'getCenterLeafHeaders'));\n table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, getMemoOptions(table.options, debug, 'getLeftLeafHeaders'));\n table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, getMemoOptions(table.options, debug, 'getRightLeafHeaders'));\n table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeafHeaders'));\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0;\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n findMaxDepth(allColumns);\n let headerGroups = [];\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: []\n };\n\n // The parent columns we're going to scan next\n const pendingParentHeaders = [];\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,\n depth,\n index: pendingParentHeaders.length\n });\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup);\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header);\n }\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse();\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n return row._uniqueValuesCache[columnId];\n }\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);\n return row._uniqueValuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, getMemoOptions(table.options, 'debugRows', 'getAllCells')),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, getMemoOptions(table.options, 'debugRows', 'getAllCellsByColumnId'))\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n feature == null || feature.createRow == null || feature.createRow(row, table);\n }\n return row;\n};\n\n//\n\nconst ColumnFaceting = {\n createColumn: (column, table) => {\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _filterValue$toString, _row$getValue;\n const search = filterValue == null || (_filterValue$toString = filterValue.toString()) == null ? void 0 : _filterValue$toString.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val);\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\nequals.autoRemove = val => testFalsey(val);\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\nweakEquals.autoRemove = val => testFalsey(val);\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n return [min, max];\n};\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);\n\n// Export\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n// Utils\n\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\n\nconst ColumnFiltering = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : // @ts-ignore\n (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n };\n column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) != null ? _table$getState$colum2 : -1;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousFilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousFilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n },\n createRow: (row, _table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n const values = leafRows.map(row => row.getValue(columnId));\n if (!isNumberArray(values)) {\n return;\n }\n if (values.length === 1) {\n return values[0];\n }\n const mid = Math.floor(values.length / 2);\n const nums = values.sort((a, b) => a - b);\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;\n};\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\n\nconst ColumnGrouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGrouping) != null ? _table$options$enable : true) && (!!column.accessorFn || !!column.columnDef.getGroupingValue);\n };\n column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst ColumnOrdering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createColumn: (column, table) => {\n column.getIndex = memo(position => [_getVisibleLeafColumns(table, position)], columns => columns.findIndex(d => d.id === column.id), getMemoOptions(table.options, 'debugColumns', 'getIndex'));\n column.getIsFirstColumn = position => {\n var _columns$;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;\n };\n column.getIsLastColumn = position => {\n var _columns;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;\n };\n },\n createTable: table => {\n table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn'));\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst ColumnPinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n };\n },\n createRow: (row, table) => {\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells'));\n row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells'));\n row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells'));\n },\n createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns'));\n table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns'));\n table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns'));\n }\n};\n\nfunction safelyAccessDocument(_document) {\n return _document || (typeof document !== 'undefined' ? document : null);\n}\n\n//\n\n//\n\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n };\n column.getStart = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(0, column.getIndex(position)).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getStart'));\n column.getAfter = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(column.getIndex(position) + 1).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getAfter'));\n column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = _contextDocument => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const contextDocument = safelyAccessDocument(_contextDocument);\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n contextDocument == null || contextDocument.removeEventListener('mousemove', mouseEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n contextDocument == null || contextDocument.removeEventListener('touchmove', touchEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n contextDocument == null || contextDocument.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n contextDocument == null || contextDocument.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n };\n },\n createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst ColumnVisibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _ref, _table$getState$colum;\n const childColumns = column.columns;\n return (_ref = childColumns.length ? childColumns.some(c => c.getIsVisible()) : (_table$getState$colum = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum[column.id]) != null ? _ref : true;\n };\n column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, getMemoOptions(table.options, 'debugRows', '_getAllVisibleCells'));\n row.getVisibleCells = memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], getMemoOptions(table.options, 'debugRows', 'getVisibleCells'));\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, getMemoOptions(table.options, 'debugColumns', key));\n };\n table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nfunction _getVisibleLeafColumns(table, position) {\n return !position ? table.getVisibleLeafColumns() : position === 'center' ? table.getCenterVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n}\n\n//\n\nconst GlobalFaceting = {\n createTable: table => {\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\n\n//\n\nconst GlobalFiltering = {\n getInitialState: state => {\n return {\n globalFilter: undefined,\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getCanGlobalFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2, _table$options$getCol;\n return ((_column$columnDef$ena = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGlobalFilter) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n };\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.getGlobalFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[globalFilterFn]) != null ? _table$options$filter : filterFns[globalFilterFn];\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n }\n};\n\n//\n\nconst RowExpanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst RowPagination = {\n getInitialState: state => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n //deprecated\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, getMemoOptions(table.options, 'debugTable', 'getPageOptions'));\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.firstPage = () => {\n return table.setPageIndex(0);\n };\n table.lastPage = () => {\n return table.setPageIndex(table.getPageCount() - 1);\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getRowCount() / table.getState().pagination.pageSize);\n };\n table.getRowCount = () => {\n var _table$options$rowCou;\n return (_table$options$rowCou = table.options.rowCount) != null ? _table$options$rowCou : table.getPrePaginationRowModel().rows.length;\n };\n }\n};\n\n//\n\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst RowPinning = {\n getInitialState: state => {\n return {\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref => {\n let {\n id\n } = _ref;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref3;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref3 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref3 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _ref4, _visiblePinnedRowIds$;\n const position = row.getIsPinned();\n if (!position) return -1;\n const visiblePinnedRowIds = (_ref4 = position === 'top' ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map(_ref5 => {\n let {\n id\n } = _ref5;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n },\n createTable: table => {\n table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n };\n table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, 'top'), getMemoOptions(table.options, 'debugRows', 'getTopRows'));\n table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, 'bottom'), getMemoOptions(table.options, 'debugRows', 'getBottomRows'));\n table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);\n return allRows.filter(d => !topAndBottom.has(d.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterRows'));\n }\n};\n\n//\n\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n };\n },\n createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getSelectedRowModel'));\n table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredSelectedRowModel'));\n table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedSelectedRowModel'));\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId);\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0;\n};\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n};\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n return String(a);\n }\n if (typeof a === 'string') {\n return a;\n }\n return '';\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);\n\n // While\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort();\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n if (bb > aa) {\n return -1;\n }\n continue;\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n }\n\n // Both are numbers\n if (an > bn) {\n return 1;\n }\n if (bn > an) {\n return -1;\n }\n }\n return a.length - b.length;\n}\n\n// Exports\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\n\nconst RowSorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\n\nconst builtInFeatures = [Headers, ColumnVisibility, ColumnOrdering, ColumnPinning, ColumnFaceting, ColumnFiltering, GlobalFaceting,\n//depends on ColumnFaceting\nGlobalFiltering,\n//depends on ColumnFiltering\nRowSorting, ColumnGrouping,\n//depends on RowSorting\nRowExpanding, RowPagination, RowPinning, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$_features, _options$initialState;\n if (process.env.NODE_ENV !== 'production' && (options.debugAll || options.debugTable)) {\n console.info('Creating Table Instance...');\n }\n const _features = [...builtInFeatures, ...((_options$_features = options._features) != null ? _options$_features : [])];\n let table = {\n _features\n };\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n return {\n ...defaultOptions,\n ...options\n };\n };\n const coreInitialState = {};\n let initialState = {\n ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features,\n options: {\n ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n if (!queuedTimeout) {\n queuedTimeout = true;\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, getMemoOptions(options, 'debugColumns', '_getDefaultColumnDef')),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n const groupingColumnDef = columnDef;\n column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n return recurseColumns(columnDefs);\n }, getMemoOptions(options, 'debugColumns', 'getAllColumns')),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumns')),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumnsById')),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, getMemoOptions(options, 'debugColumns', 'getAllLeafColumns')),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`);\n }\n return column;\n }\n };\n Object.assign(table, coreInstance);\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n const accessRows = function (originalRows, depth, parentRow) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row);\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row;\n // Push table row into parent\n rows.push(row);\n\n // Get the original subrows\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n row.originalSubRows = table.options.getSubRows(originalRows[i], i);\n\n // Then recursively access them\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n return rows;\n };\n rowModel.rows = accessRows(data);\n return rowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel;\n }\n return expandRows(rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel'));\n}\nfunction expandRows(rowModel) {\n const expandedRows = [];\n const handleRow = row => {\n var _row$subRows;\n expandedRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return undefined;\n const uniqueValues = facetedRowModel.flatRows.flatMap(flatRow => {\n var _flatRow$getUniqueVal;\n return (_flatRow$getUniqueVal = flatRow.getUniqueValues(columnId)) != null ? _flatRow$getUniqueVal : [];\n }).map(Number).filter(value => !Number.isNaN(value));\n if (!uniqueValues.length) return;\n let facetedMinValue = uniqueValues[0];\n let facetedMaxValue = uniqueValues[uniqueValues.length - 1];\n for (const value of uniqueValues) {\n if (value < facetedMinValue) facetedMinValue = value;else if (value > facetedMaxValue) facetedMaxValue = value;\n }\n return [facetedMinValue, facetedMaxValue];\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedMinMaxValues'));\n}\n\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n var _table$options$maxLea;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n let row = rowsToFilter[i];\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.columnFilters = row.columnFilters;\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedRowModel'));\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return new Map();\n let facetedUniqueValues = new Map();\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n }\n return facetedUniqueValues;\n }, getMemoOptions(table.options, 'debugTable', `getFacetedUniqueValues_${columnId}`));\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n return rowModel;\n }\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n const column = table.getColumn(d.id);\n if (!column) {\n return;\n }\n const filterFn = column.getFilterFn();\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);\n }\n return;\n }\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = (columnFilters != null ? columnFilters : []).map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n let currentColumnFilter;\n let currentGlobalFilter;\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id;\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id;\n // Tag the row with the first truthy global filter state\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n rowModel.rows.forEach(row => {\n row.depth = 0;\n row.parentId = undefined;\n });\n return rowModel;\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {};\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);\n }\n return row;\n });\n }\n const columnId = existingGrouping[depth];\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId);\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = `${columnId}:${groupingValue}`;\n id = parentId ? `${parentId}>${id}` : id;\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id);\n subRows.forEach(subRow => {\n subRow.parentId = id;\n });\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n return row._valuesCache[columnId];\n }\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId);\n const aggregateFn = column == null ? void 0 : column.getAggregationFn();\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }));\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`;\n const previous = map.get(resKey);\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n previous.push(row);\n }\n return map;\n }, groupMap);\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n paginatedRowModel.flatRows = [];\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel'));\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n const sortingState = table.getState().sorting;\n const sortedFlatRows = [];\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort => {\n var _table$getColumn;\n return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();\n });\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n if (!column) return;\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const sortUndefined = columnInfo.sortUndefined;\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1;\n if (sortUndefined === 'last') return aUndefined ? 1 : -1;\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));\n}\n\nexport { ColumnFaceting, ColumnFiltering, ColumnGrouping, ColumnOrdering, ColumnPinning, ColumnSizing, ColumnVisibility, GlobalFaceting, GlobalFiltering, Headers, RowExpanding, RowPagination, RowPinning, RowSelection, RowSorting, _getVisibleLeafColumns, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getMemoOptions, getPaginationRowModel, getSortedRowModel, isFunction, isNumberArray, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.mjs.map\n",null,null,null,"function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a;\n const debugEnabled = process.env.NODE_ENV !== \"production\" && !!opts.key && !!((_a = opts.debug) == null ? void 0 : _a.call(opts));\n let depTime = 0;\n if (debugEnabled) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime = 0;\n if (debugEnabled) resultTime = Date.now();\n result = fn(...newDeps);\n if (debugEnabled) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { createLazyMeasurementsView } from \"./lazy-measurements.js\";\nimport { memo, notUndefined, approxEqual, debounce } from \"./utils.js\";\nlet _isIOSResult;\nconst isIOSWebKit = () => {\n if (_isIOSResult !== void 0) return _isIOSResult;\n if (typeof navigator === \"undefined\") return _isIOSResult = false;\n if (/iP(hone|od|ad)/.test(navigator.userAgent)) return _isIOSResult = true;\n const mtp = navigator.maxTouchPoints;\n return _isIOSResult = navigator.platform === \"MacIntel\" && mtp !== void 0 && mtp > 0;\n};\nconst _resetIOSDetectionForTests = () => {\n _isIOSResult = void 0;\n};\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const len = end - start + 1;\n const arr = new Array(len);\n for (let i = 0; i < len; i++) {\n arr[i] = start + i;\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeOffset = (instance, cb, readOffset) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n let offset = 0;\n const fallback = registerScrollendEvent ? null : debounce(\n targetWindow,\n () => cb(offset, false),\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = readOffset(element);\n fallback == null ? void 0 : fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeElementOffset = (instance, cb) => observeOffset(instance, cb, (el) => {\n const { horizontal, isRtl } = instance.options;\n return horizontal ? el.scrollLeft * (isRtl && -1 || 1) : el.scrollTop;\n});\nconst observeWindowOffset = (instance, cb) => observeOffset(\n instance,\n cb,\n (win) => instance.options.horizontal ? win.scrollX : win.scrollY\n);\nconst measureElement = (element, entry, instance) => {\n if (instance.options.useCachedMeasurements) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n return instance.itemSizeCache.get(key) ?? instance.options.estimateSize(index);\n }\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n if (!entry) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n const cachedSize = instance.itemSizeCache.get(key);\n if (cachedSize !== void 0) {\n return cachedSize;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst scrollWithAdjustments = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: offset + adjustments,\n behavior\n });\n};\nconst windowScroll = scrollWithAdjustments;\nconst elementScroll = scrollWithAdjustments;\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollState = null;\n this.measurementsCache = [];\n this._flatMeasurements = null;\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.itemSizeCacheVersion = 0;\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMin = null;\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.pendingScrollAnchor = null;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this._iosDeferredAdjustment = 0;\n this._iosTouching = false;\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._intendedScrollOffset = null;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.now = () => {\n var _a, _b, _c;\n return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now();\n };\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n const node = entry.target;\n const index = this.indexFromElement(node);\n if (!node.isConnected) {\n this.observer.unobserve(node);\n for (const [cacheKey, cachedNode] of this.elementsCache) {\n if (cachedNode === node) {\n this.elementsCache.delete(cacheKey);\n break;\n }\n }\n return;\n }\n if (this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(\n index,\n this.options.measureElement(node, entry, this)\n );\n }\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n var _a, _b;\n const merged = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n anchorTo: \"start\",\n followOnAppend: false,\n scrollEndThreshold: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n laneAssignmentMode: \"estimate\",\n useCachedMeasurements: false\n };\n for (const key in opts2) {\n const v = opts2[key];\n if (v !== void 0) merged[key] = v;\n }\n const prevOptions = this.options;\n let anchor = null;\n let followOnAppend = null;\n let edgeKeysChanged = false;\n if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === \"end\" && this.scrollElement !== null) {\n const prevCount = prevOptions.count;\n const nextCount = merged.count;\n const measurements = this.getMeasurements();\n const prevFirstKey = prevCount > 0 ? ((_a = measurements[0]) == null ? void 0 : _a.key) ?? prevOptions.getItemKey(0) : null;\n const prevLastKey = prevCount > 0 ? ((_b = measurements[prevCount - 1]) == null ? void 0 : _b.key) ?? prevOptions.getItemKey(prevCount - 1) : null;\n const didCountChange = nextCount !== prevCount;\n const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);\n if (didEdgeKeysChange) {\n edgeKeysChanged = true;\n const item = prevCount > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? measurements[0] : null;\n if (item) {\n anchor = [item.key, this.getScrollOffset() - item.start];\n }\n const behavior = merged.followOnAppend === true ? \"auto\" : merged.followOnAppend || null;\n if (behavior && nextCount > prevCount && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {\n followOnAppend = behavior;\n }\n }\n }\n this.options = merged;\n if (edgeKeysChanged) {\n this.pendingMin = 0;\n this.itemSizeCacheVersion++;\n }\n let anchorResolved = false;\n let anchorDelta = 0;\n if (anchor && this.scrollOffset !== null) {\n const [anchorKey, anchorOffset] = anchor;\n const newMeasurements = this.getMeasurements();\n const { count, getItemKey } = this.options;\n let idx = 0;\n while (idx < count && getItemKey(idx) !== anchorKey) {\n idx++;\n }\n if (idx < count) {\n const anchorItem = newMeasurements[idx];\n if (anchorItem) {\n const newOffset = anchorItem.start + anchorOffset;\n if (newOffset !== this.scrollOffset) {\n anchorDelta = newOffset - this.scrollOffset;\n this.scrollOffset = newOffset;\n anchorResolved = true;\n }\n }\n }\n }\n if (anchorResolved || followOnAppend) {\n this.pendingScrollAnchor = [\n anchorResolved ? anchor[0] : null,\n anchorResolved ? anchor[1] : 0,\n followOnAppend,\n anchorDelta\n ];\n }\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n if (this.rafId != null && this.targetWindow) {\n this.targetWindow.cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.scrollState = null;\n this._iosDeferredAdjustment = 0;\n this._iosTouching = false;\n this._iosJustTouchEnded = false;\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n if (isScrolling && this._intendedScrollOffset === null && offset === this.scrollOffset) {\n return;\n }\n if (this._intendedScrollOffset !== null && Math.abs(offset - this._intendedScrollOffset) < 1.5) {\n offset = this._intendedScrollOffset;\n }\n this._intendedScrollOffset = null;\n this.scrollAdjustments = 0;\n const prevOffset = this.getScrollOffset();\n this.scrollDirection = isScrolling ? prevOffset === offset ? this.scrollDirection : prevOffset < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this._flushIosDeferredIfReady();\n if (this.scrollState) {\n this.scheduleScrollReconcile();\n }\n this.maybeNotify();\n })\n );\n if (\"addEventListener\" in this.scrollElement) {\n const scrollEl = this.scrollElement;\n const onTouchStart = () => {\n this._iosTouching = true;\n this._iosJustTouchEnded = false;\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n };\n const onTouchEnd = () => {\n this._iosTouching = false;\n if (!isIOSWebKit() || this.targetWindow == null) {\n return;\n }\n this._iosJustTouchEnded = true;\n this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => {\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._flushIosDeferredIfReady();\n }, 150);\n };\n scrollEl.addEventListener(\n \"touchstart\",\n onTouchStart,\n addEventListenerOptions\n );\n scrollEl.addEventListener(\n \"touchend\",\n onTouchEnd,\n addEventListenerOptions\n );\n this.unsubs.push(() => {\n scrollEl.removeEventListener(\"touchstart\", onTouchStart);\n scrollEl.removeEventListener(\"touchend\", onTouchEnd);\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n });\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n const anchor = this.pendingScrollAnchor;\n this.pendingScrollAnchor = null;\n if (anchor && this.scrollElement && this.options.enabled) {\n const [key, _offset, followOnAppend, anchorDelta] = anchor;\n if (key !== null && !followOnAppend) {\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n if (anchorDelta !== 0) {\n this._iosDeferredAdjustment += anchorDelta;\n }\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n }\n if (followOnAppend) {\n this.scrollToEnd({ behavior: followOnAppend });\n }\n }\n };\n this._flushIosDeferredIfReady = () => {\n if (this._iosDeferredAdjustment === 0) return;\n if (this.isScrolling) return;\n if (this._iosTouching) return;\n if (this._iosJustTouchEnded) return;\n const cur = this.getScrollOffset();\n const max = this.getMaxScrollOffset();\n if (cur < 0 || cur > max) return;\n const delta = this._iosDeferredAdjustment;\n this._iosDeferredAdjustment = 0;\n this._scrollToOffset(cur, {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n };\n this.rafId = null;\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes,\n this.options.laneAssignmentMode,\n this.options.gap\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode, gap) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMin = null;\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode,\n gap\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCacheVersion],\n ({\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode,\n gap\n }, _itemSizeCacheVersion) => {\n const itemSizeCache = this.itemSizeCache;\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMin = null;\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMin ?? 0;\n this.pendingMin = null;\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n if (lanes === 1) {\n const need = count * 2;\n let flat = this._flatMeasurements;\n if (!flat || flat.length < need) {\n const next = new Float64Array(need);\n if (flat && min > 0) next.set(flat.subarray(0, min * 2));\n flat = next;\n this._flatMeasurements = flat;\n }\n let runningStart;\n if (min === 0) {\n runningStart = paddingStart + scrollMargin;\n } else {\n const prevIdx = min - 1;\n runningStart = flat[prevIdx * 2] + flat[prevIdx * 2 + 1] + gap;\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n flat[i * 2] = runningStart;\n flat[i * 2 + 1] = size;\n runningStart += size + gap;\n }\n const view = createLazyMeasurementsView(count, flat, getItemKey);\n this.measurementsCache = view;\n return view;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n const laneEnds = new Float64Array(lanes);\n let filledLanes = 0;\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n if (laneLastIndex[item.lane] === void 0) filledLanes++;\n laneLastIndex[item.lane] = m;\n laneEnds[item.lane] = item.end;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n const shouldCacheLane = laneAssignmentMode === \"estimate\" || itemSizeCache.has(key);\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + gap : paddingStart + scrollMargin;\n } else if (filledLanes === lanes) {\n let bestLane = 0;\n let bestEnd = laneEnds[0];\n let bestIdx = laneLastIndex[0];\n for (let l = 1; l < lanes; l++) {\n const e = laneEnds[l];\n if (e < bestEnd || e === bestEnd && laneLastIndex[l] < bestIdx) {\n bestLane = l;\n bestEnd = e;\n bestIdx = laneLastIndex[l];\n }\n }\n lane = bestLane;\n start = bestEnd + gap;\n if (shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n } else {\n lane = i % this.options.lanes;\n start = paddingStart + scrollMargin;\n if (shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n if (laneLastIndex[lane] === void 0) filledLanes++;\n laneLastIndex[lane] = i;\n laneEnds[lane] = end;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n if (measurements.length === 0 || outerSize === 0) {\n this.range = null;\n return null;\n }\n this.range = calculateRangeImpl(\n measurements,\n outerSize,\n scrollOffset,\n lanes,\n // Pass the typed array so binary search + forward-walk can read\n // start/end directly from Float64Array, skipping the Proxy traps.\n lanes === 1 && this._flatMeasurements != null ? this._flatMeasurements : null\n );\n return this.range;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this.shouldMeasureDuringScroll = (index) => {\n var _a;\n if (!this.scrollState || this.scrollState.behavior !== \"smooth\") {\n return true;\n }\n const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index);\n if (scrollIndex !== void 0 && this.range) {\n const bufferSize = Math.max(\n this.options.overscan,\n Math.ceil((this.range.endIndex - this.range.startIndex) / 2)\n );\n const minIndex = Math.max(0, scrollIndex - bufferSize);\n const maxIndex = Math.min(\n this.options.count - 1,\n scrollIndex + bufferSize\n );\n return index >= minIndex && index <= maxIndex;\n }\n return true;\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key2) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key2);\n }\n });\n return;\n }\n const index = this.indexFromElement(node);\n const key = this.options.getItemKey(index);\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(index, this.options.measureElement(node, void 0, this));\n }\n };\n this.resizeItem = (index, size) => {\n var _a, _b;\n if (index < 0 || index >= this.options.count) return;\n let cachedSize;\n let itemStart;\n let key;\n const flat = this._flatMeasurements;\n if (this.options.lanes === 1 && flat !== null) {\n key = this.options.getItemKey(index);\n itemStart = flat[index * 2];\n cachedSize = flat[index * 2 + 1];\n } else {\n const item = this.measurementsCache[index];\n if (!item) return;\n key = item.key;\n itemStart = item.start;\n cachedSize = item.size;\n }\n const itemSize = this.itemSizeCache.get(key) ?? cachedSize;\n const delta = size - itemSize;\n if (delta !== 0) {\n const wasAtEnd = this.options.anchorTo === \"end\" && ((_a = this.scrollState) == null ? void 0 : _a.behavior) !== \"smooth\" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;\n const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0;\n const shouldAdjustScroll = ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== \"smooth\" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(\n // The callback expects a VirtualItem; build one lazily only\n // when the consumer actually supplied a custom predicate.\n this.measurementsCache[index] ?? {\n index,\n key,\n start: itemStart,\n size: cachedSize,\n end: itemStart + cachedSize,\n lane: 0\n },\n delta,\n this\n ) : (\n // Default: adjust when the resize is an above-viewport item.\n // First measurement (!has(key)): always adjust — the item\n // has never been sized, so the estimate→actual delta must\n // be compensated regardless of scroll direction.\n // Re-measurement (has(key)): skip during backward scroll\n // to avoid the \"items jump while scrolling up\" cascade.\n itemStart < this.getScrollOffset() + this.scrollAdjustments && (!this.itemSizeCache.has(key) || this.scrollDirection !== \"backward\")\n ));\n if (this.pendingMin === null || index < this.pendingMin) {\n this.pendingMin = index;\n }\n this.itemSizeCache.set(key, size);\n this.itemSizeCacheVersion++;\n if (wasAtEnd) {\n this.applyScrollAdjustment(this.getTotalSize() - prevTotalSize);\n } else if (shouldAdjustScroll) {\n this.applyScrollAdjustment(delta);\n }\n this.notify(false);\n }\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n const flat = this._flatMeasurements;\n const useFlat = this.options.lanes === 1 && flat != null;\n const idx = findNearestBinarySearch(\n 0,\n measurements.length - 1,\n useFlat ? (i) => flat[i * 2] : (i) => notUndefined(measurements[i]).start,\n offset\n );\n return notUndefined(measurements[idx]);\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getVirtualDistanceFromEnd = () => {\n return Math.max(\n this.getTotalSize() - this.getSize() - this.getScrollOffset(),\n 0\n );\n };\n this.getDistanceFromEnd = () => {\n return Math.max(this.getMaxScrollOffset() - this.getScrollOffset(), 0);\n };\n this.isAtEnd = (threshold = this.options.scrollEndThreshold) => {\n return this.getDistanceFromEnd() <= threshold;\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n const item = this.measurementsCache[index];\n if (!item) return;\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior = \"auto\" } = {}) => {\n const offset = this.getOffsetForAlignment(toOffset, align);\n const now = this.now();\n this.scrollState = {\n index: null,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToIndex = (index, {\n align: initialAlign = \"auto\",\n behavior = \"auto\"\n } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const offsetInfo = this.getOffsetForIndex(index, initialAlign);\n if (!offsetInfo) {\n return;\n }\n const [offset, align] = offsetInfo;\n const now = this.now();\n this.scrollState = {\n index,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollBy = (delta, { behavior = \"auto\" } = {}) => {\n const offset = this.getScrollOffset() + delta;\n const now = this.now();\n this.scrollState = {\n index: null,\n align: \"start\",\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToEnd = ({ behavior = \"auto\" } = {}) => {\n if (this.options.count > 0) {\n this.scrollToIndex(this.options.count - 1, {\n align: \"end\",\n behavior\n });\n return;\n }\n this.scrollToOffset(Math.max(this.getTotalSize() - this.getSize(), 0), {\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n const lastIdx = measurements.length - 1;\n const flat = this._flatMeasurements;\n if (flat != null) {\n end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1];\n } else {\n end = ((_a = measurements[lastIdx]) == null ? void 0 : _a.end) ?? 0;\n }\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this.takeSnapshot = () => {\n const snapshot = [];\n if (this.itemSizeCache.size === 0) return snapshot;\n const m = this.getMeasurements();\n for (const item of m) {\n if (item && this.itemSizeCache.has(item.key)) {\n snapshot.push({\n index: item.index,\n key: item.key,\n start: item.start,\n size: item.size,\n end: item.end,\n lane: item.lane\n });\n }\n }\n return snapshot;\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this._intendedScrollOffset = offset + (adjustments ?? 0);\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.pendingMin = null;\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.itemSizeCacheVersion++;\n this.notify(false);\n };\n this.setOptions(opts);\n }\n applyScrollAdjustment(delta, behavior) {\n if (delta === 0) return;\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n this._iosDeferredAdjustment += delta;\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior\n });\n if (this.scrollOffset !== null) {\n this.scrollOffset += this.scrollAdjustments;\n this.scrollAdjustments = 0;\n }\n }\n }\n scheduleScrollReconcile() {\n if (!this.targetWindow) {\n this.scrollState = null;\n return;\n }\n if (this.rafId != null) return;\n this.rafId = this.targetWindow.requestAnimationFrame(() => {\n this.rafId = null;\n this.reconcileScroll();\n });\n }\n reconcileScroll() {\n if (!this.scrollState) return;\n const el = this.scrollElement;\n if (!el) return;\n const MAX_RECONCILE_MS = 5e3;\n if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {\n this.scrollState = null;\n return;\n }\n const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;\n const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;\n const STABLE_FRAMES = 1;\n const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;\n if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {\n this.scrollState.stableFrames++;\n if (this.scrollState.stableFrames >= STABLE_FRAMES) {\n if (this.getScrollOffset() !== targetOffset) {\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: \"auto\"\n });\n }\n this.scrollState = null;\n return;\n }\n } else {\n this.scrollState.stableFrames = 0;\n if (targetChanged) {\n const viewport = this.getSize() || 600;\n const distance = Math.abs(targetOffset - this.getScrollOffset());\n const keepSmooth = this.scrollState.behavior === \"smooth\" && distance > viewport;\n this.scrollState.lastTargetOffset = targetOffset;\n if (!keepSmooth) {\n this.scrollState.behavior = \"auto\";\n }\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: keepSmooth ? \"smooth\" : \"auto\"\n });\n }\n }\n this.scheduleScrollReconcile();\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction findNearestBinarySearchFlat(flat, high, value) {\n let low = 0;\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = flat[middle * 2];\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n return low > 0 ? low - 1 : 0;\n}\nfunction calculateRangeImpl(measurements, outerSize, scrollOffset, lanes, flat) {\n const lastIndex = measurements.length - 1;\n if (measurements.length <= lanes) {\n return { startIndex: 0, endIndex: lastIndex };\n }\n if (lanes === 1 && flat !== null) {\n const startIndex2 = findNearestBinarySearchFlat(\n flat,\n lastIndex,\n scrollOffset\n );\n let endIndex2 = startIndex2;\n const limit = scrollOffset + outerSize;\n while (endIndex2 < lastIndex && flat[endIndex2 * 2] + flat[endIndex2 * 2 + 1] < limit) {\n endIndex2++;\n }\n return { startIndex: startIndex2, endIndex: endIndex2 };\n }\n const getStart = (index) => measurements[index].start;\n let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset);\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n _resetIOSDetectionForTests,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","function createLazyMeasurementsView(count, flat, getItemKey) {\n const cache = new Array(count);\n return new Proxy(cache, {\n get(target, prop, receiver) {\n if (typeof prop === \"string\") {\n const c = prop.charCodeAt(0);\n if (c >= 48 && c <= 57) {\n const i = +prop;\n if (Number.isInteger(i) && i >= 0 && i < count) {\n let v = target[i];\n if (!v) {\n const s = flat[i * 2];\n v = target[i] = {\n index: i,\n key: getItemKey(i),\n start: s,\n size: flat[i * 2 + 1],\n end: s + flat[i * 2 + 1],\n lane: 0\n };\n }\n return v;\n }\n }\n if (prop === \"length\") return count;\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nexport {\n createLazyMeasurementsView\n};\n//# sourceMappingURL=lazy-measurements.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,"// Vendored from https://github.com/coreui/coreui-pro/blob/bc4daf1cd79d527bf665d615c0a31f53ab0c3d4e/js/src/util/sanitizer.js — sync manually\n/**\n * --------------------------------------------------------------------------\n * CoreUI util/sanitizer.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\n// js-docs-start svg-allow-list\nexport const SVGAllowlist = {\n ...DefaultAllowlist,\n svg: ['xmlns', 'version', 'baseprofile', 'width', 'height', 'viewbox', 'preserveaspectratio', 'aria-hidden', 'role', 'focusable', 'fill', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin'],\n g: ['id', 'class', 'transform', 'style'],\n path: ['id', 'class', 'd', 'fill', 'fill-opacity', 'fill-rule', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-opacity'],\n circle: ['id', 'class', 'cx', 'cy', 'r', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n rect: ['id', 'class', 'x', 'y', 'width', 'height', 'rx', 'ry', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n ellipse: ['id', 'class', 'cx', 'cy', 'rx', 'ry', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n line: ['id', 'class', 'x1', 'y1', 'x2', 'y2', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-opacity'],\n polygon: ['id', 'class', 'points', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n polyline: ['id', 'class', 'points', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n text: ['id', 'class', 'x', 'y', 'dx', 'dy', 'text-anchor', 'font-family', 'font-size', 'font-weight', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n tspan: ['id', 'class', 'x', 'y', 'dx', 'dy', 'text-anchor', 'font-family', 'font-size', 'font-weight', 'fill', 'fill-opacity', 'stroke', 'stroke-width', 'stroke-opacity'],\n defs: [],\n symbol: ['id', 'class', 'viewbox', 'preserveaspectratio'],\n use: ['id', 'class', 'x', 'y', 'width', 'height', 'href'],\n image: ['id', 'class', 'x', 'y', 'width', 'height', 'href', 'preserveaspectratio', 'xlink:href'],\n pattern: ['id', 'class', 'x', 'y', 'width', 'height', 'patternunits', 'patterncontentunits', 'patterntransform', 'preserveaspectratio'],\n lineargradient: ['id', 'class', 'gradientunits', 'x1', 'y1', 'x2', 'y2', 'spreadmethod', 'gradienttransform'],\n radialgradient: ['id', 'class', 'gradientunits', 'cx', 'cy', 'r', 'fx', 'fy', 'spreadmethod', 'gradienttransform'],\n mask: ['id', 'class', 'x', 'y', 'width', 'height', 'maskunits', 'maskcontentunits', 'masktransform'],\n clippath: ['id', 'class', 'clippathunits'],\n marker: ['id', 'class', 'markerunits', 'markerwidth', 'markerheight', 'orient', 'preserveaspectratio', 'viewbox', 'refx', 'refy'],\n title: [],\n desc: []\n}\n// js-docs-end svg-allow-list\n\nconst ESCAPE_HTML_MAP = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n}\n\nexport function escapeHtml(unsafeText) {\n return String(unsafeText).replace(/[&<>\"']/g, character => ESCAPE_HTML_MAP[character])\n}\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n\n continue\n }\n\n const attributeList = [].concat(...element.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || [])\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n",null,null,null,null,null,null],"mappings":"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","ignoreList":[]}
|