@tanstack/table-core 9.0.0-alpha.49 → 9.0.0-alpha.52

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.
Files changed (149) hide show
  1. package/dist/core/cells/constructCell.cjs.map +1 -1
  2. package/dist/core/cells/constructCell.js.map +1 -1
  3. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  4. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  5. package/dist/core/cells/coreCellsFeature.utils.cjs.map +1 -1
  6. package/dist/core/cells/coreCellsFeature.utils.js.map +1 -1
  7. package/dist/core/columns/constructColumn.cjs.map +1 -1
  8. package/dist/core/columns/constructColumn.js.map +1 -1
  9. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  10. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  11. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  12. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  13. package/dist/core/coreFeatures.cjs.map +1 -1
  14. package/dist/core/coreFeatures.js.map +1 -1
  15. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  16. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  17. package/dist/core/headers/constructHeader.cjs.map +1 -1
  18. package/dist/core/headers/constructHeader.js.map +1 -1
  19. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  20. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  21. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  22. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  23. package/dist/core/reactivity/coreReactivityFeature.utils.cjs.map +1 -1
  24. package/dist/core/reactivity/coreReactivityFeature.utils.js.map +1 -1
  25. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  26. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  27. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  28. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  29. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  30. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  31. package/dist/core/rows/constructRow.cjs.map +1 -1
  32. package/dist/core/rows/constructRow.js.map +1 -1
  33. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  34. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  35. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  36. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  37. package/dist/core/table/constructTable.cjs.map +1 -1
  38. package/dist/core/table/constructTable.js.map +1 -1
  39. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  40. package/dist/core/table/coreTablesFeature.js.map +1 -1
  41. package/dist/core/table/coreTablesFeature.types.d.cts +7 -0
  42. package/dist/core/table/coreTablesFeature.types.d.ts +7 -0
  43. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  44. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  45. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  46. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  47. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  48. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  49. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  50. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  51. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  52. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  53. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  54. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  55. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  56. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  57. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  58. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  59. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  60. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  61. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
  62. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
  63. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  64. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  65. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +1 -2
  66. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  67. package/dist/features/column-grouping/columnGroupingFeature.utils.js +1 -2
  68. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  69. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  70. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  71. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  72. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  73. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  74. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  75. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  76. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  77. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  78. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  79. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  80. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  81. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +1 -2
  82. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  83. package/dist/features/column-resizing/columnResizingFeature.utils.js +1 -2
  84. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  85. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  86. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  87. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  88. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  89. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  90. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  91. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  92. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  93. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  94. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  95. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  96. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  97. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  98. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  99. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  100. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  101. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  102. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  103. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  104. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  105. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  106. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  107. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
  108. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
  109. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  110. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  111. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  112. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  113. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  114. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  115. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  116. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  117. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  118. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  119. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  120. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  121. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  122. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  123. package/dist/features/stockFeatures.cjs.map +1 -1
  124. package/dist/features/stockFeatures.js.map +1 -1
  125. package/dist/flex-render.cjs.map +1 -1
  126. package/dist/flex-render.js.map +1 -1
  127. package/dist/fns/aggregationFns.cjs.map +1 -1
  128. package/dist/fns/aggregationFns.js.map +1 -1
  129. package/dist/fns/filterFns.cjs.map +1 -1
  130. package/dist/fns/filterFns.js.map +1 -1
  131. package/dist/fns/sortFns.cjs.map +1 -1
  132. package/dist/fns/sortFns.js.map +1 -1
  133. package/dist/helpers/columnHelper.cjs.map +1 -1
  134. package/dist/helpers/columnHelper.js.map +1 -1
  135. package/dist/helpers/tableFeatures.cjs.map +1 -1
  136. package/dist/helpers/tableFeatures.js.map +1 -1
  137. package/dist/helpers/tableOptions.cjs.map +1 -1
  138. package/dist/helpers/tableOptions.js.map +1 -1
  139. package/dist/store-reactivity-bindings.cjs.map +1 -1
  140. package/dist/store-reactivity-bindings.js.map +1 -1
  141. package/dist/utils.cjs +2 -1
  142. package/dist/utils.cjs.map +1 -1
  143. package/dist/utils.js +2 -1
  144. package/dist/utils.js.map +1 -1
  145. package/package.json +1 -1
  146. package/src/core/table/coreTablesFeature.types.ts +7 -0
  147. package/src/features/column-grouping/columnGroupingFeature.utils.ts +1 -2
  148. package/src/features/column-resizing/columnResizingFeature.utils.ts +1 -2
  149. package/src/utils.ts +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"columnVisibilityFeature.utils.js","names":[],"sources":["../../../src/features/column-visibility/columnVisibilityFeature.utils.ts"],"sourcesContent":["import { callMemoOrStaticFn, cloneState } from '../../utils'\nimport { getDefaultColumnPinningState } from '../column-pinning/columnPinningFeature.utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Cell } from '../../types/Cell'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnVisibilityState } from './columnVisibilityFeature.types'\nimport type { Row } from '../../types/Row'\n\n/**\n * Creates the default column visibility state.\n *\n * The feature default is an empty object, where missing column ids are treated\n * as visible. Reset APIs use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const visibility = getDefaultColumnVisibilityState()\n * ```\n */\nexport function getDefaultColumnVisibilityState(): ColumnVisibilityState {\n return {}\n}\n\n/**\n * Updates this column's visibility when hiding is allowed.\n *\n * Passing `visible` stores that value. Omitting it flips the column's current\n * visibility state. Columns that cannot hide are left unchanged.\n *\n * @example\n * ```ts\n * column_toggleVisibility(column)\n * ```\n */\nexport function column_toggleVisibility<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>, visible?: boolean): void {\n if (column_getCanHide(column)) {\n table_setColumnVisibility(column.table, (old) => ({\n ...old,\n [column.id]:\n visible ??\n !callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n }))\n }\n}\n\n/**\n * Checks whether this column is visible.\n *\n * Leaf columns read `state.columnVisibility[column.id]`, where missing entries\n * default to visible. Parent columns are visible when at least one child column\n * is visible.\n *\n * @example\n * ```ts\n * const visible = column_getIsVisible(column)\n * ```\n */\nexport function column_getIsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n const childColumns = column.columns\n return (\n (childColumns.length\n ? childColumns.some((childColumn) =>\n callMemoOrStaticFn(childColumn, 'getIsVisible', column_getIsVisible),\n )\n : column.table.atoms.columnVisibility?.get()?.[column.id]) ?? true\n )\n}\n\n/**\n * Checks whether this column is allowed to be hidden.\n *\n * Both `columnDef.enableHiding` and table `enableHiding` default to `true`.\n *\n * @example\n * ```ts\n * const canHide = column_getCanHide(column)\n * ```\n */\nexport function column_getCanHide<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableHiding ?? true) &&\n (column.table.options.enableHiding ?? true)\n )\n}\n\n/**\n * Creates a checkbox-style handler that writes this column's visibility.\n *\n * The handler reads `event.target.checked`, so it is intended for visibility\n * controls whose checked state means \"visible\".\n *\n * @example\n * ```ts\n * const onChange = column_getToggleVisibilityHandler(column)\n * ```\n */\nexport function column_getToggleVisibilityHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (e: unknown) => {\n column_toggleVisibility(\n column,\n ((e as MouseEvent).target as HTMLInputElement).checked,\n )\n }\n}\n\n/**\n * Collects the cells from this row whose columns are visible.\n *\n * When column pinning is active, the result is ordered as left-pinned cells,\n * center cells, then right-pinned cells.\n *\n * @example\n * ```ts\n * const visibleCells = row_getVisibleCells(row)\n * ```\n */\nexport function row_getVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const allCells = row.getAllCells()\n const visibleCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < allCells.length; i++) {\n const cell = allCells[i]!\n if (callMemoOrStaticFn(cell.column, 'getIsVisible', column_getIsVisible)) {\n visibleCells.push(cell)\n }\n }\n\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!left.length && !right.length) return visibleCells // no pinning, return early\n\n const visibleCellsByColumnId = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n\n const leftCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < left.length; i++) {\n const cell = visibleCellsByColumnId[left[i]!]\n if (cell) leftCells.push(cell)\n }\n\n const rightCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < right.length; i++) {\n const cell = visibleCellsByColumnId[right[i]!]\n if (cell) rightCells.push(cell)\n }\n\n // Center cells: visible cells in natural column order, minus pinned ones.\n const centerCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < visibleCells.length; i++) {\n const cell = visibleCells[i]!\n const id = cell.column.id\n if (!left.includes(id) && !right.includes(id)) centerCells.push(cell)\n }\n\n return [...leftCells, ...centerCells, ...rightCells]\n}\n\n/**\n * Builds a lookup map of this row's visible cells keyed by column id.\n *\n * Hidden columns are omitted from the map.\n *\n * @example\n * ```ts\n * const visibleCellsById = row_getVisibleCellsByColumnId(row)\n * ```\n */\nexport function row_getVisibleCellsByColumnId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Record<string, Cell<TFeatures, TData, unknown>> {\n const result: Record<string, Cell<TFeatures, TData, unknown>> = {}\n const allCells = row.getAllCells()\n for (let i = 0; i < allCells.length; i++) {\n const cell = allCells[i]!\n if (callMemoOrStaticFn(cell.column, 'getIsVisible', column_getIsVisible)) {\n result[cell.column.id] = cell\n }\n }\n return result\n}\n\n/**\n * Filters the flat column list down to visible columns.\n *\n * Parent/group columns are included when `column_getIsVisible` considers them\n * visible.\n *\n * @example\n * ```ts\n * const columns = table_getVisibleFlatColumns(table)\n * ```\n */\nexport function table_getVisibleFlatColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getAllFlatColumns()\n .filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Filters leaf columns down to those currently visible.\n *\n * This is the column list most row rendering code uses before pinning-specific\n * partitioning.\n *\n * @example\n * ```ts\n * const columns = table_getVisibleLeafColumns(table)\n * ```\n */\nexport function table_getVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getAllLeafColumns()\n .filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Routes a column visibility updater through the table's visibility change handler.\n *\n * The updater may be a next visibility map or a function of the previous map,\n * matching the instance `table.setColumnVisibility` behavior.\n *\n * @example\n * ```ts\n * table_setColumnVisibility(table, (old) => ({ ...old, age: false }))\n * ```\n */\nexport function table_setColumnVisibility<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnVisibilityState>,\n) {\n table.options.onColumnVisibilityChange?.(updater)\n}\n\n/**\n * Resets `columnVisibility` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnVisibility` when\n * it exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetColumnVisibility(table)\n * table_resetColumnVisibility(table, true)\n * ```\n */\nexport function table_resetColumnVisibility<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnVisibility(\n table,\n defaultState ? {} : cloneState(table.initialState.columnVisibility ?? {}),\n )\n}\n\n/**\n * Shows or hides every hideable leaf column.\n *\n * Columns that cannot hide stay visible when toggling all columns off.\n *\n * @example\n * ```ts\n * table_toggleAllColumnsVisible(table)\n * ```\n */\nexport function table_toggleAllColumnsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, value?: boolean) {\n value = value ?? !table_getIsAllColumnsVisible(table)\n\n const visibility: Record<string, boolean> = {}\n const leafColumns = table.getAllLeafColumns()\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]!\n visibility[column.id] = !value ? !column_getCanHide(column) : value\n }\n\n table_setColumnVisibility(table, visibility)\n}\n\n/**\n * Checks whether every leaf column is currently visible.\n *\n * Non-hideable columns are naturally visible because missing visibility entries\n * default to `true`.\n *\n * @example\n * ```ts\n * const allVisible = table_getIsAllColumnsVisible(table)\n * ```\n */\nexport function table_getIsAllColumnsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return !table\n .getAllLeafColumns()\n .some(\n (column) =>\n !callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Checks whether at least one leaf column is currently visible.\n *\n * This is useful for tri-state \"show all columns\" controls.\n *\n * @example\n * ```ts\n * const someVisible = table_getIsSomeColumnsVisible(table)\n * ```\n */\nexport function table_getIsSomeColumnsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getAllLeafColumns()\n .some((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Creates a checkbox-style handler that shows or hides all columns.\n *\n * The handler reads `event.target.checked`, so it is intended for controls whose\n * checked state means \"all columns visible\".\n *\n * @example\n * ```ts\n * const onChange = table_getToggleAllColumnsVisibilityHandler(table)\n * ```\n */\nexport function table_getToggleAllColumnsVisibilityHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n table_toggleAllColumnsVisible(\n table,\n ((e as MouseEvent).target as HTMLInputElement).checked,\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"columnVisibilityFeature.utils.js","names":[],"sources":["../../../src/features/column-visibility/columnVisibilityFeature.utils.ts"],"sourcesContent":["import { callMemoOrStaticFn, cloneState } from '../../utils'\nimport { getDefaultColumnPinningState } from '../column-pinning/columnPinningFeature.utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Cell } from '../../types/Cell'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnVisibilityState } from './columnVisibilityFeature.types'\nimport type { Row } from '../../types/Row'\n\n/**\n * Creates the default column visibility state.\n *\n * The feature default is an empty object, where missing column ids are treated\n * as visible. Reset APIs use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const visibility = getDefaultColumnVisibilityState()\n * ```\n */\nexport function getDefaultColumnVisibilityState(): ColumnVisibilityState {\n return {}\n}\n\n/**\n * Updates this column's visibility when hiding is allowed.\n *\n * Passing `visible` stores that value. Omitting it flips the column's current\n * visibility state. Columns that cannot hide are left unchanged.\n *\n * @example\n * ```ts\n * column_toggleVisibility(column)\n * ```\n */\nexport function column_toggleVisibility<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>, visible?: boolean): void {\n if (column_getCanHide(column)) {\n table_setColumnVisibility(column.table, (old) => ({\n ...old,\n [column.id]:\n visible ??\n !callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n }))\n }\n}\n\n/**\n * Checks whether this column is visible.\n *\n * Leaf columns read `state.columnVisibility[column.id]`, where missing entries\n * default to visible. Parent columns are visible when at least one child column\n * is visible.\n *\n * @example\n * ```ts\n * const visible = column_getIsVisible(column)\n * ```\n */\nexport function column_getIsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n const childColumns = column.columns\n return (\n (childColumns.length\n ? childColumns.some((childColumn) =>\n callMemoOrStaticFn(childColumn, 'getIsVisible', column_getIsVisible),\n )\n : column.table.atoms.columnVisibility?.get()?.[column.id]) ?? true\n )\n}\n\n/**\n * Checks whether this column is allowed to be hidden.\n *\n * Both `columnDef.enableHiding` and table `enableHiding` default to `true`.\n *\n * @example\n * ```ts\n * const canHide = column_getCanHide(column)\n * ```\n */\nexport function column_getCanHide<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableHiding ?? true) &&\n (column.table.options.enableHiding ?? true)\n )\n}\n\n/**\n * Creates a checkbox-style handler that writes this column's visibility.\n *\n * The handler reads `event.target.checked`, so it is intended for visibility\n * controls whose checked state means \"visible\".\n *\n * @example\n * ```ts\n * const onChange = column_getToggleVisibilityHandler(column)\n * ```\n */\nexport function column_getToggleVisibilityHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (e: unknown) => {\n column_toggleVisibility(\n column,\n ((e as MouseEvent).target as HTMLInputElement).checked,\n )\n }\n}\n\n/**\n * Collects the cells from this row whose columns are visible.\n *\n * When column pinning is active, the result is ordered as left-pinned cells,\n * center cells, then right-pinned cells.\n *\n * @example\n * ```ts\n * const visibleCells = row_getVisibleCells(row)\n * ```\n */\nexport function row_getVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const allCells = row.getAllCells()\n const visibleCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < allCells.length; i++) {\n const cell = allCells[i]!\n if (callMemoOrStaticFn(cell.column, 'getIsVisible', column_getIsVisible)) {\n visibleCells.push(cell)\n }\n }\n\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!left.length && !right.length) return visibleCells // no pinning, return early\n\n const visibleCellsByColumnId = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n\n const leftCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < left.length; i++) {\n const cell = visibleCellsByColumnId[left[i]!]\n if (cell) leftCells.push(cell)\n }\n\n const rightCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < right.length; i++) {\n const cell = visibleCellsByColumnId[right[i]!]\n if (cell) rightCells.push(cell)\n }\n\n // Center cells: visible cells in natural column order, minus pinned ones.\n const centerCells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < visibleCells.length; i++) {\n const cell = visibleCells[i]!\n const id = cell.column.id\n if (!left.includes(id) && !right.includes(id)) centerCells.push(cell)\n }\n\n return [...leftCells, ...centerCells, ...rightCells]\n}\n\n/**\n * Builds a lookup map of this row's visible cells keyed by column id.\n *\n * Hidden columns are omitted from the map.\n *\n * @example\n * ```ts\n * const visibleCellsById = row_getVisibleCellsByColumnId(row)\n * ```\n */\nexport function row_getVisibleCellsByColumnId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Record<string, Cell<TFeatures, TData, unknown>> {\n const result: Record<string, Cell<TFeatures, TData, unknown>> = {}\n const allCells = row.getAllCells()\n for (let i = 0; i < allCells.length; i++) {\n const cell = allCells[i]!\n if (callMemoOrStaticFn(cell.column, 'getIsVisible', column_getIsVisible)) {\n result[cell.column.id] = cell\n }\n }\n return result\n}\n\n/**\n * Filters the flat column list down to visible columns.\n *\n * Parent/group columns are included when `column_getIsVisible` considers them\n * visible.\n *\n * @example\n * ```ts\n * const columns = table_getVisibleFlatColumns(table)\n * ```\n */\nexport function table_getVisibleFlatColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getAllFlatColumns()\n .filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Filters leaf columns down to those currently visible.\n *\n * This is the column list most row rendering code uses before pinning-specific\n * partitioning.\n *\n * @example\n * ```ts\n * const columns = table_getVisibleLeafColumns(table)\n * ```\n */\nexport function table_getVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getAllLeafColumns()\n .filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Routes a column visibility updater through the table's visibility change handler.\n *\n * The updater may be a next visibility map or a function of the previous map,\n * matching the instance `table.setColumnVisibility` behavior.\n *\n * @example\n * ```ts\n * table_setColumnVisibility(table, (old) => ({ ...old, age: false }))\n * ```\n */\nexport function table_setColumnVisibility<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnVisibilityState>,\n) {\n table.options.onColumnVisibilityChange?.(updater)\n}\n\n/**\n * Resets `columnVisibility` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnVisibility` when\n * it exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetColumnVisibility(table)\n * table_resetColumnVisibility(table, true)\n * ```\n */\nexport function table_resetColumnVisibility<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnVisibility(\n table,\n defaultState ? {} : cloneState(table.initialState.columnVisibility ?? {}),\n )\n}\n\n/**\n * Shows or hides every hideable leaf column.\n *\n * Columns that cannot hide stay visible when toggling all columns off.\n *\n * @example\n * ```ts\n * table_toggleAllColumnsVisible(table)\n * ```\n */\nexport function table_toggleAllColumnsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, value?: boolean) {\n value = value ?? !table_getIsAllColumnsVisible(table)\n\n const visibility: Record<string, boolean> = {}\n const leafColumns = table.getAllLeafColumns()\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]!\n visibility[column.id] = !value ? !column_getCanHide(column) : value\n }\n\n table_setColumnVisibility(table, visibility)\n}\n\n/**\n * Checks whether every leaf column is currently visible.\n *\n * Non-hideable columns are naturally visible because missing visibility entries\n * default to `true`.\n *\n * @example\n * ```ts\n * const allVisible = table_getIsAllColumnsVisible(table)\n * ```\n */\nexport function table_getIsAllColumnsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return !table\n .getAllLeafColumns()\n .some(\n (column) =>\n !callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Checks whether at least one leaf column is currently visible.\n *\n * This is useful for tri-state \"show all columns\" controls.\n *\n * @example\n * ```ts\n * const someVisible = table_getIsSomeColumnsVisible(table)\n * ```\n */\nexport function table_getIsSomeColumnsVisible<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getAllLeafColumns()\n .some((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Creates a checkbox-style handler that shows or hides all columns.\n *\n * The handler reads `event.target.checked`, so it is intended for controls whose\n * checked state means \"all columns visible\".\n *\n * @example\n * ```ts\n * const onChange = table_getToggleAllColumnsVisibilityHandler(table)\n * ```\n */\nexport function table_getToggleAllColumnsVisibilityHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n table_toggleAllColumnsVisible(\n table,\n ((e as MouseEvent).target as HTMLInputElement).checked,\n )\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAqBA,SAAgB,kCAAyD;CACvE,OAAO,CAAC;AACV;;;;;;;;;;;;AAaA,SAAgB,wBAId,QAAmD,SAAyB;CAC5E,IAAI,kBAAkB,MAAM,GAC1B,0BAA0B,OAAO,QAAQ,SAAS;EAChD,GAAG;GACF,OAAO,KACN,WACA,CAAC,mBAAmB,QAAQ,gBAAgB,mBAAmB;CACnE,EAAE;AAEN;;;;;;;;;;;;;AAcA,SAAgB,oBAId,QAA4D;;CAC5D,MAAM,eAAe,OAAO;CAC5B,QACG,aAAa,SACV,aAAa,MAAM,gBACjB,mBAAmB,aAAa,gBAAgB,mBAAmB,CACrE,6BACA,OAAO,MAAM,MAAM,iHAAkB,IAAI,iFAAI,OAAO,QAAQ;AAEpE;;;;;;;;;;;AAYA,SAAgB,kBAId,QAAmD;CACnD,QACG,OAAO,UAAU,gBAAgB,UACjC,OAAO,MAAM,QAAQ,gBAAgB;AAE1C;;;;;;;;;;;;AAaA,SAAgB,kCAId,QAAmD;CACnD,QAAQ,MAAe;EACrB,wBACE,QACE,EAAiB,OAA4B,OACjD;CACF;AACF;;;;;;;;;;;;AAaA,SAAgB,oBAGd,KAAoE;;CACpE,MAAM,WAAW,IAAI,YAAY;CACjC,MAAM,eAAuD,CAAC;CAC9D,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;EACxC,MAAM,OAAO,SAAS;EACtB,IAAI,mBAAmB,KAAK,QAAQ,gBAAgB,mBAAmB,GACrE,aAAa,KAAK,IAAI;CAE1B;CAEA,MAAM,EAAE,MAAM,oCACZ,IAAI,MAAM,MAAM,6FAAe,IAAI,MAAK,6BAA6B;CACvE,IAAI,CAAC,KAAK,UAAU,CAAC,MAAM,QAAQ,OAAO;CAE1C,MAAM,yBAAyB,mBAC7B,KACA,6BACA,6BACF;CAEA,MAAM,YAAoD,CAAC;CAC3D,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,MAAM,OAAO,uBAAuB,KAAK;EACzC,IAAI,MAAM,UAAU,KAAK,IAAI;CAC/B;CAEA,MAAM,aAAqD,CAAC;CAC5D,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;EACrC,MAAM,OAAO,uBAAuB,MAAM;EAC1C,IAAI,MAAM,WAAW,KAAK,IAAI;CAChC;CAGA,MAAM,cAAsD,CAAC;CAC7D,KAAK,IAAI,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;EAC5C,MAAM,OAAO,aAAa;EAC1B,MAAM,KAAK,KAAK,OAAO;EACvB,IAAI,CAAC,KAAK,SAAS,EAAE,KAAK,CAAC,MAAM,SAAS,EAAE,GAAG,YAAY,KAAK,IAAI;CACtE;CAEA,OAAO;EAAC,GAAG;EAAW,GAAG;EAAa,GAAG;CAAU;AACrD;;;;;;;;;;;AAYA,SAAgB,8BAGd,KAA6E;CAC7E,MAAM,SAA0D,CAAC;CACjE,MAAM,WAAW,IAAI,YAAY;CACjC,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;EACxC,MAAM,OAAO,SAAS;EACtB,IAAI,mBAAmB,KAAK,QAAQ,gBAAgB,mBAAmB,GACrE,OAAO,KAAK,OAAO,MAAM;CAE7B;CACA,OAAO;AACT;;;;;;;;;;;;AAaA,SAAgB,4BAGd,OAAyC;CACzC,OAAO,MACJ,kBAAkB,EAClB,QAAQ,WACP,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAChE;AACJ;;;;;;;;;;;;AAaA,SAAgB,4BAGd,OAAyC;CACzC,OAAO,MACJ,kBAAkB,EAClB,QAAQ,WACP,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAChE;AACJ;;;;;;;;;;;;AAaA,SAAgB,0BAId,OACA,SACA;;CACA,iDAAM,SAAQ,qHAA2B,OAAO;AAClD;;;;;;;;;;;;;AAcA,SAAgB,4BAGd,OAAyC,cAAwB;CACjE,0BACE,OACA,eAAe,CAAC,IAAI,WAAW,MAAM,aAAa,oBAAoB,CAAC,CAAC,CAC1E;AACF;;;;;;;;;;;AAYA,SAAgB,8BAGd,OAAyC,OAAiB;CAC1D,QAAQ,SAAS,CAAC,6BAA6B,KAAK;CAEpD,MAAM,aAAsC,CAAC;CAC7C,MAAM,cAAc,MAAM,kBAAkB;CAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;EAC3C,MAAM,SAAS,YAAY;EAC3B,WAAW,OAAO,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,IAAI;CAChE;CAEA,0BAA0B,OAAO,UAAU;AAC7C;;;;;;;;;;;;AAaA,SAAgB,6BAGd,OAAyC;CACzC,OAAO,CAAC,MACL,kBAAkB,EAClB,MACE,WACC,CAAC,mBAAmB,QAAQ,gBAAgB,mBAAmB,CACnE;AACJ;;;;;;;;;;;AAYA,SAAgB,8BAGd,OAAyC;CACzC,OAAO,MACJ,kBAAkB,EAClB,MAAM,WACL,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAChE;AACJ;;;;;;;;;;;;AAaA,SAAgB,2CAGd,OAAyC;CACzC,QAAQ,MAAe;EACrB,8BACE,OACE,EAAiB,OAA4B,OACjD;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"globalFilteringFeature.cjs","names":["makeStateUpdater","column_getCanGlobalFilter","table_getGlobalAutoFilterFn","table_getGlobalFilterFn","table_setGlobalFilter","table_resetGlobalFilter"],"sources":["../../../src/features/global-filtering/globalFilteringFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanGlobalFilter,\n table_getGlobalAutoFilterFn,\n table_getGlobalFilterFn,\n table_resetGlobalFilter,\n table_setGlobalFilter,\n} from './globalFilteringFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// ColumnDef_GlobalFiltering,\n// Column_GlobalFiltering,\n// TableOptions_GlobalFiltering,\n// TableState_GlobalFiltering,\n// Table_GlobalFiltering,\n// } from './globalFilteringFeature.types'\n\nexport interface GlobalFilteringFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Column: Column_GlobalFiltering\n // ColumnDef: ColumnDef_GlobalFiltering\n // Table: Table_GlobalFiltering<TFeatures, TData>\n // TableOptions: TableOptions_GlobalFiltering<TFeatures, TData>\n // TableState: TableState_GlobalFiltering\n}\n\n/**\n * Creates the stock global filtering feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructGlobalFilteringFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<GlobalFilteringFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n globalFilter: undefined,\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: (column) => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?.getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('globalFilteringFeature', prototype, table, {\n column_getCanGlobalFilter: {\n fn: (column) => column_getCanGlobalFilter(column),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('globalFilteringFeature', table, {\n table_getGlobalAutoFilterFn: {\n fn: () => table_getGlobalAutoFilterFn(),\n },\n table_getGlobalFilterFn: {\n fn: () => table_getGlobalFilterFn(table),\n },\n table_setGlobalFilter: {\n fn: (updater) => table_setGlobalFilter(table, updater),\n },\n table_resetGlobalFilter: {\n fn: (defaultState) => table_resetGlobalFilter(table, defaultState),\n },\n })\n },\n }\n}\n\n/**\n * The stock global filtering feature.\n *\n * Register this feature with column filtering support to add global filter\n * state, global filter function resolution, and column eligibility APIs.\n */\nexport const globalFilteringFeature = constructGlobalFilteringFeature()\n"],"mappings":";;;;;;;;;AAsCA,SAAgB,kCAGwD;CACtE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,cAAc;IACd,GAAG;IACJ;;EAGH,yBAAyB,UAAU;GACjC,OAAO;IACL,sBAAsBA,+BAAiB,gBAAgB,MAAM;IAC7D,gBAAgB;IAChB,2BAA2B,WAAW;;KACpC,MAAM,iCAAQ,MACX,iBAAiB,CACjB,SAAS,mGAAI,uBAAuB,CACpC,OAAO,mFAAK,UAAU;KAEzB,OAAO,OAAO,UAAU,YAAY,OAAO,UAAU;;IAExD;;EAGH,wBAAwB,WAAW,UAAU;GAC3C,kCAAoB,0BAA0B,WAAW,OAAO,EAC9D,2BAA2B,EACzB,KAAK,WAAWC,+DAA0B,OAAO,EAClD,EACF,CAAC;;EAGJ,qBAAqB,UAAU;GAC7B,8BAAgB,0BAA0B,OAAO;IAC/C,6BAA6B,EAC3B,UAAUC,kEAA6B,EACxC;IACD,yBAAyB,EACvB,UAAUC,6DAAwB,MAAM,EACzC;IACD,uBAAuB,EACrB,KAAK,YAAYC,2DAAsB,OAAO,QAAQ,EACvD;IACD,yBAAyB,EACvB,KAAK,iBAAiBC,6DAAwB,OAAO,aAAa,EACnE;IACF,CAAC;;EAEL;;;;;;;;AASH,MAAa,yBAAyB,iCAAiC"}
1
+ {"version":3,"file":"globalFilteringFeature.cjs","names":["makeStateUpdater","column_getCanGlobalFilter","table_getGlobalAutoFilterFn","table_getGlobalFilterFn","table_setGlobalFilter","table_resetGlobalFilter"],"sources":["../../../src/features/global-filtering/globalFilteringFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanGlobalFilter,\n table_getGlobalAutoFilterFn,\n table_getGlobalFilterFn,\n table_resetGlobalFilter,\n table_setGlobalFilter,\n} from './globalFilteringFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// ColumnDef_GlobalFiltering,\n// Column_GlobalFiltering,\n// TableOptions_GlobalFiltering,\n// TableState_GlobalFiltering,\n// Table_GlobalFiltering,\n// } from './globalFilteringFeature.types'\n\nexport interface GlobalFilteringFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Column: Column_GlobalFiltering\n // ColumnDef: ColumnDef_GlobalFiltering\n // Table: Table_GlobalFiltering<TFeatures, TData>\n // TableOptions: TableOptions_GlobalFiltering<TFeatures, TData>\n // TableState: TableState_GlobalFiltering\n}\n\n/**\n * Creates the stock global filtering feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructGlobalFilteringFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<GlobalFilteringFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n globalFilter: undefined,\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: (column) => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?.getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('globalFilteringFeature', prototype, table, {\n column_getCanGlobalFilter: {\n fn: (column) => column_getCanGlobalFilter(column),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('globalFilteringFeature', table, {\n table_getGlobalAutoFilterFn: {\n fn: () => table_getGlobalAutoFilterFn(),\n },\n table_getGlobalFilterFn: {\n fn: () => table_getGlobalFilterFn(table),\n },\n table_setGlobalFilter: {\n fn: (updater) => table_setGlobalFilter(table, updater),\n },\n table_resetGlobalFilter: {\n fn: (defaultState) => table_resetGlobalFilter(table, defaultState),\n },\n })\n },\n }\n}\n\n/**\n * The stock global filtering feature.\n *\n * Register this feature with column filtering support to add global filter\n * state, global filter function resolution, and column eligibility APIs.\n */\nexport const globalFilteringFeature = constructGlobalFilteringFeature()\n"],"mappings":";;;;;;;;;AAsCA,SAAgB,kCAGwD;CACtE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,cAAc;IACd,GAAG;GACL;EACF;EAEA,yBAAyB,UAAU;GACjC,OAAO;IACL,sBAAsBA,+BAAiB,gBAAgB,KAAK;IAC5D,gBAAgB;IAChB,2BAA2B,WAAW;;KACpC,MAAM,iCAAQ,MACX,gBAAgB,EAChB,SAAS,mGAAI,sBAAsB,EACnC,OAAO,mFAAK,SAAS;KAExB,OAAO,OAAO,UAAU,YAAY,OAAO,UAAU;IACvD;GACF;EACF;EAEA,wBAAwB,WAAW,UAAU;GAC3C,kCAAoB,0BAA0B,WAAW,OAAO,EAC9D,2BAA2B,EACzB,KAAK,WAAWC,+DAA0B,MAAM,EAClD,EACF,CAAC;EACH;EAEA,qBAAqB,UAAU;GAC7B,8BAAgB,0BAA0B,OAAO;IAC/C,6BAA6B,EAC3B,UAAUC,iEAA4B,EACxC;IACA,yBAAyB,EACvB,UAAUC,6DAAwB,KAAK,EACzC;IACA,uBAAuB,EACrB,KAAK,YAAYC,2DAAsB,OAAO,OAAO,EACvD;IACA,yBAAyB,EACvB,KAAK,iBAAiBC,6DAAwB,OAAO,YAAY,EACnE;GACF,CAAC;EACH;CACF;AACF;;;;;;;AAQA,MAAa,yBAAyB,gCAAgC"}
@@ -1 +1 @@
1
- {"version":3,"file":"globalFilteringFeature.js","names":[],"sources":["../../../src/features/global-filtering/globalFilteringFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanGlobalFilter,\n table_getGlobalAutoFilterFn,\n table_getGlobalFilterFn,\n table_resetGlobalFilter,\n table_setGlobalFilter,\n} from './globalFilteringFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// ColumnDef_GlobalFiltering,\n// Column_GlobalFiltering,\n// TableOptions_GlobalFiltering,\n// TableState_GlobalFiltering,\n// Table_GlobalFiltering,\n// } from './globalFilteringFeature.types'\n\nexport interface GlobalFilteringFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Column: Column_GlobalFiltering\n // ColumnDef: ColumnDef_GlobalFiltering\n // Table: Table_GlobalFiltering<TFeatures, TData>\n // TableOptions: TableOptions_GlobalFiltering<TFeatures, TData>\n // TableState: TableState_GlobalFiltering\n}\n\n/**\n * Creates the stock global filtering feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructGlobalFilteringFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<GlobalFilteringFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n globalFilter: undefined,\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: (column) => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?.getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('globalFilteringFeature', prototype, table, {\n column_getCanGlobalFilter: {\n fn: (column) => column_getCanGlobalFilter(column),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('globalFilteringFeature', table, {\n table_getGlobalAutoFilterFn: {\n fn: () => table_getGlobalAutoFilterFn(),\n },\n table_getGlobalFilterFn: {\n fn: () => table_getGlobalFilterFn(table),\n },\n table_setGlobalFilter: {\n fn: (updater) => table_setGlobalFilter(table, updater),\n },\n table_resetGlobalFilter: {\n fn: (defaultState) => table_resetGlobalFilter(table, defaultState),\n },\n })\n },\n }\n}\n\n/**\n * The stock global filtering feature.\n *\n * Register this feature with column filtering support to add global filter\n * state, global filter function resolution, and column eligibility APIs.\n */\nexport const globalFilteringFeature = constructGlobalFilteringFeature()\n"],"mappings":";;;;;;;;;AAsCA,SAAgB,kCAGwD;CACtE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,cAAc;IACd,GAAG;IACJ;;EAGH,yBAAyB,UAAU;GACjC,OAAO;IACL,sBAAsB,iBAAiB,gBAAgB,MAAM;IAC7D,gBAAgB;IAChB,2BAA2B,WAAW;;KACpC,MAAM,iCAAQ,MACX,iBAAiB,CACjB,SAAS,mGAAI,uBAAuB,CACpC,OAAO,mFAAK,UAAU;KAEzB,OAAO,OAAO,UAAU,YAAY,OAAO,UAAU;;IAExD;;EAGH,wBAAwB,WAAW,UAAU;GAC3C,oBAAoB,0BAA0B,WAAW,OAAO,EAC9D,2BAA2B,EACzB,KAAK,WAAW,0BAA0B,OAAO,EAClD,EACF,CAAC;;EAGJ,qBAAqB,UAAU;GAC7B,gBAAgB,0BAA0B,OAAO;IAC/C,6BAA6B,EAC3B,UAAU,6BAA6B,EACxC;IACD,yBAAyB,EACvB,UAAU,wBAAwB,MAAM,EACzC;IACD,uBAAuB,EACrB,KAAK,YAAY,sBAAsB,OAAO,QAAQ,EACvD;IACD,yBAAyB,EACvB,KAAK,iBAAiB,wBAAwB,OAAO,aAAa,EACnE;IACF,CAAC;;EAEL;;;;;;;;AASH,MAAa,yBAAyB,iCAAiC"}
1
+ {"version":3,"file":"globalFilteringFeature.js","names":[],"sources":["../../../src/features/global-filtering/globalFilteringFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n column_getCanGlobalFilter,\n table_getGlobalAutoFilterFn,\n table_getGlobalFilterFn,\n table_resetGlobalFilter,\n table_setGlobalFilter,\n} from './globalFilteringFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// ColumnDef_GlobalFiltering,\n// Column_GlobalFiltering,\n// TableOptions_GlobalFiltering,\n// TableState_GlobalFiltering,\n// Table_GlobalFiltering,\n// } from './globalFilteringFeature.types'\n\nexport interface GlobalFilteringFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Column: Column_GlobalFiltering\n // ColumnDef: ColumnDef_GlobalFiltering\n // Table: Table_GlobalFiltering<TFeatures, TData>\n // TableOptions: TableOptions_GlobalFiltering<TFeatures, TData>\n // TableState: TableState_GlobalFiltering\n}\n\n/**\n * Creates the stock global filtering feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructGlobalFilteringFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<GlobalFilteringFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n globalFilter: undefined,\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: (column) => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?.getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('globalFilteringFeature', prototype, table, {\n column_getCanGlobalFilter: {\n fn: (column) => column_getCanGlobalFilter(column),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('globalFilteringFeature', table, {\n table_getGlobalAutoFilterFn: {\n fn: () => table_getGlobalAutoFilterFn(),\n },\n table_getGlobalFilterFn: {\n fn: () => table_getGlobalFilterFn(table),\n },\n table_setGlobalFilter: {\n fn: (updater) => table_setGlobalFilter(table, updater),\n },\n table_resetGlobalFilter: {\n fn: (defaultState) => table_resetGlobalFilter(table, defaultState),\n },\n })\n },\n }\n}\n\n/**\n * The stock global filtering feature.\n *\n * Register this feature with column filtering support to add global filter\n * state, global filter function resolution, and column eligibility APIs.\n */\nexport const globalFilteringFeature = constructGlobalFilteringFeature()\n"],"mappings":";;;;;;;;;AAsCA,SAAgB,kCAGwD;CACtE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,cAAc;IACd,GAAG;GACL;EACF;EAEA,yBAAyB,UAAU;GACjC,OAAO;IACL,sBAAsB,iBAAiB,gBAAgB,KAAK;IAC5D,gBAAgB;IAChB,2BAA2B,WAAW;;KACpC,MAAM,iCAAQ,MACX,gBAAgB,EAChB,SAAS,mGAAI,sBAAsB,EACnC,OAAO,mFAAK,SAAS;KAExB,OAAO,OAAO,UAAU,YAAY,OAAO,UAAU;IACvD;GACF;EACF;EAEA,wBAAwB,WAAW,UAAU;GAC3C,oBAAoB,0BAA0B,WAAW,OAAO,EAC9D,2BAA2B,EACzB,KAAK,WAAW,0BAA0B,MAAM,EAClD,EACF,CAAC;EACH;EAEA,qBAAqB,UAAU;GAC7B,gBAAgB,0BAA0B,OAAO;IAC/C,6BAA6B,EAC3B,UAAU,4BAA4B,EACxC;IACA,yBAAyB,EACvB,UAAU,wBAAwB,KAAK,EACzC;IACA,uBAAuB,EACrB,KAAK,YAAY,sBAAsB,OAAO,OAAO,EACvD;IACA,yBAAyB,EACvB,KAAK,iBAAiB,wBAAwB,OAAO,YAAY,EACnE;GACF,CAAC;EACH;CACF;AACF;;;;;;;AAQA,MAAa,yBAAyB,gCAAgC"}
@@ -1 +1 @@
1
- {"version":3,"file":"globalFilteringFeature.utils.cjs","names":["filterFn_includesString","isFunction","cloneState"],"sources":["../../../src/features/global-filtering/globalFilteringFeature.utils.ts"],"sourcesContent":["import { filterFn_includesString } from '../../fns/filterFns'\nimport { cloneState, isFunction } from '../../utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { FilterFn } from '../column-filtering/columnFilteringFeature.types'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\n\n/**\n * Checks whether this accessor column participates in global filtering.\n *\n * The column must have an accessor and pass column-level, table-level, and\n * optional `getColumnCanGlobalFilter` checks.\n *\n * @example\n * ```ts\n * const canGlobalFilter = column_getCanGlobalFilter(column)\n * ```\n */\nexport function column_getCanGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (column.table.options.enableGlobalFilter ?? true) &&\n (column.table.options.enableFilters ?? true) &&\n (column.table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n}\n\n/**\n * Provides the built-in automatic global filter function.\n *\n * Global filtering defaults to `includesString`, which gives search-box style\n * matching across globally filterable columns.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalAutoFilterFn()\n * ```\n */\nexport function table_getGlobalAutoFilterFn() {\n return filterFn_includesString\n}\n\n/**\n * Resolves the filter function used for global filtering.\n *\n * Function-valued `options.globalFilterFn` is returned directly, `'auto'`\n * delegates to `table_getGlobalAutoFilterFn`, and string values are looked up in\n * the table's filter function registry.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalFilterFn(table)\n * ```\n */\nexport function table_getGlobalFilterFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): FilterFn<TFeatures, TData> | FilterFn<TFeatures, TData> | undefined {\n const { globalFilterFn: globalFilterFn } = table.options\n const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =\n table._rowModelFns.filterFns\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table_getGlobalAutoFilterFn()\n : filterFns?.[globalFilterFn as string]\n}\n\n/**\n * Routes a global filter updater through the table's global filter handler.\n *\n * The updater may be a next value or a function of the previous value, matching\n * the instance `table.setGlobalFilter` behavior.\n *\n * @example\n * ```ts\n * table_setGlobalFilter(table, 'search text')\n * ```\n */\nexport function table_setGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: any) {\n table.options.onGlobalFilterChange?.(updater)\n}\n\n/**\n * Resets `globalFilter` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.globalFilter`. Passing\n * `true` ignores initial state and resets to `undefined`.\n *\n * @example\n * ```ts\n * table_resetGlobalFilter(table)\n * table_resetGlobalFilter(table, true)\n * ```\n */\nexport function table_resetGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setGlobalFilter(\n table,\n defaultState ? undefined : cloneState(table.initialState.globalFilter),\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAgB,0BAId,QAA4D;;CAC5D,QACG,OAAO,UAAU,sBAAsB,UACvC,OAAO,MAAM,QAAQ,sBAAsB,UAC3C,OAAO,MAAM,QAAQ,iBAAiB,8DACtC,OAAO,MAAM,SAAQ,qIAA2B,OAAO,KAAI,SAC5D,CAAC,CAAC,OAAO;;;;;;;;;;;;;AAeb,SAAgB,8BAA8B;CAC5C,OAAOA;;;;;;;;;;;;;;AAeT,SAAgB,wBAId,OACqE;CACrE,MAAM,EAAkB,mBAAmB,MAAM;CACjD,MAAM,YACJ,MAAM,aAAa;CAErB,OAAOC,yBAAW,eAAe,GAC7B,iBACA,mBAAmB,SACjB,6BAA6B,yDAC7B,UAAY;;;;;;;;;;;;;AAcpB,SAAgB,sBAGd,OAAyC,SAAc;;CACvD,iDAAM,SAAQ,iHAAuB,QAAQ;;;;;;;;;;;;;;AAe/C,SAAgB,wBAGd,OAAyC,cAAwB;CACjE,sBACE,OACA,eAAe,SAAYC,yBAAW,MAAM,aAAa,aAAa,CACvE"}
1
+ {"version":3,"file":"globalFilteringFeature.utils.cjs","names":["filterFn_includesString","isFunction","cloneState"],"sources":["../../../src/features/global-filtering/globalFilteringFeature.utils.ts"],"sourcesContent":["import { filterFn_includesString } from '../../fns/filterFns'\nimport { cloneState, isFunction } from '../../utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { FilterFn } from '../column-filtering/columnFilteringFeature.types'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\n\n/**\n * Checks whether this accessor column participates in global filtering.\n *\n * The column must have an accessor and pass column-level, table-level, and\n * optional `getColumnCanGlobalFilter` checks.\n *\n * @example\n * ```ts\n * const canGlobalFilter = column_getCanGlobalFilter(column)\n * ```\n */\nexport function column_getCanGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (column.table.options.enableGlobalFilter ?? true) &&\n (column.table.options.enableFilters ?? true) &&\n (column.table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n}\n\n/**\n * Provides the built-in automatic global filter function.\n *\n * Global filtering defaults to `includesString`, which gives search-box style\n * matching across globally filterable columns.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalAutoFilterFn()\n * ```\n */\nexport function table_getGlobalAutoFilterFn() {\n return filterFn_includesString\n}\n\n/**\n * Resolves the filter function used for global filtering.\n *\n * Function-valued `options.globalFilterFn` is returned directly, `'auto'`\n * delegates to `table_getGlobalAutoFilterFn`, and string values are looked up in\n * the table's filter function registry.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalFilterFn(table)\n * ```\n */\nexport function table_getGlobalFilterFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): FilterFn<TFeatures, TData> | FilterFn<TFeatures, TData> | undefined {\n const { globalFilterFn: globalFilterFn } = table.options\n const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =\n table._rowModelFns.filterFns\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table_getGlobalAutoFilterFn()\n : filterFns?.[globalFilterFn as string]\n}\n\n/**\n * Routes a global filter updater through the table's global filter handler.\n *\n * The updater may be a next value or a function of the previous value, matching\n * the instance `table.setGlobalFilter` behavior.\n *\n * @example\n * ```ts\n * table_setGlobalFilter(table, 'search text')\n * ```\n */\nexport function table_setGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: any) {\n table.options.onGlobalFilterChange?.(updater)\n}\n\n/**\n * Resets `globalFilter` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.globalFilter`. Passing\n * `true` ignores initial state and resets to `undefined`.\n *\n * @example\n * ```ts\n * table_resetGlobalFilter(table)\n * table_resetGlobalFilter(table, true)\n * ```\n */\nexport function table_resetGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setGlobalFilter(\n table,\n defaultState ? undefined : cloneState(table.initialState.globalFilter),\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAgB,0BAId,QAA4D;;CAC5D,QACG,OAAO,UAAU,sBAAsB,UACvC,OAAO,MAAM,QAAQ,sBAAsB,UAC3C,OAAO,MAAM,QAAQ,iBAAiB,8DACtC,OAAO,MAAM,SAAQ,qIAA2B,MAAM,MAAK,SAC5D,CAAC,CAAC,OAAO;AAEb;;;;;;;;;;;;AAaA,SAAgB,8BAA8B;CAC5C,OAAOA;AACT;;;;;;;;;;;;;AAcA,SAAgB,wBAId,OACqE;CACrE,MAAM,EAAkB,mBAAmB,MAAM;CACjD,MAAM,YACJ,MAAM,aAAa;CAErB,OAAOC,yBAAW,cAAc,IAC5B,iBACA,mBAAmB,SACjB,4BAA4B,0DAC5B,UAAY;AACpB;;;;;;;;;;;;AAaA,SAAgB,sBAGd,OAAyC,SAAc;;CACvD,iDAAM,SAAQ,iHAAuB,OAAO;AAC9C;;;;;;;;;;;;;AAcA,SAAgB,wBAGd,OAAyC,cAAwB;CACjE,sBACE,OACA,eAAe,SAAYC,yBAAW,MAAM,aAAa,YAAY,CACvE;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"globalFilteringFeature.utils.js","names":[],"sources":["../../../src/features/global-filtering/globalFilteringFeature.utils.ts"],"sourcesContent":["import { filterFn_includesString } from '../../fns/filterFns'\nimport { cloneState, isFunction } from '../../utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { FilterFn } from '../column-filtering/columnFilteringFeature.types'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\n\n/**\n * Checks whether this accessor column participates in global filtering.\n *\n * The column must have an accessor and pass column-level, table-level, and\n * optional `getColumnCanGlobalFilter` checks.\n *\n * @example\n * ```ts\n * const canGlobalFilter = column_getCanGlobalFilter(column)\n * ```\n */\nexport function column_getCanGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (column.table.options.enableGlobalFilter ?? true) &&\n (column.table.options.enableFilters ?? true) &&\n (column.table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n}\n\n/**\n * Provides the built-in automatic global filter function.\n *\n * Global filtering defaults to `includesString`, which gives search-box style\n * matching across globally filterable columns.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalAutoFilterFn()\n * ```\n */\nexport function table_getGlobalAutoFilterFn() {\n return filterFn_includesString\n}\n\n/**\n * Resolves the filter function used for global filtering.\n *\n * Function-valued `options.globalFilterFn` is returned directly, `'auto'`\n * delegates to `table_getGlobalAutoFilterFn`, and string values are looked up in\n * the table's filter function registry.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalFilterFn(table)\n * ```\n */\nexport function table_getGlobalFilterFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): FilterFn<TFeatures, TData> | FilterFn<TFeatures, TData> | undefined {\n const { globalFilterFn: globalFilterFn } = table.options\n const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =\n table._rowModelFns.filterFns\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table_getGlobalAutoFilterFn()\n : filterFns?.[globalFilterFn as string]\n}\n\n/**\n * Routes a global filter updater through the table's global filter handler.\n *\n * The updater may be a next value or a function of the previous value, matching\n * the instance `table.setGlobalFilter` behavior.\n *\n * @example\n * ```ts\n * table_setGlobalFilter(table, 'search text')\n * ```\n */\nexport function table_setGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: any) {\n table.options.onGlobalFilterChange?.(updater)\n}\n\n/**\n * Resets `globalFilter` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.globalFilter`. Passing\n * `true` ignores initial state and resets to `undefined`.\n *\n * @example\n * ```ts\n * table_resetGlobalFilter(table)\n * table_resetGlobalFilter(table, true)\n * ```\n */\nexport function table_resetGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setGlobalFilter(\n table,\n defaultState ? undefined : cloneState(table.initialState.globalFilter),\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAgB,0BAId,QAA4D;;CAC5D,QACG,OAAO,UAAU,sBAAsB,UACvC,OAAO,MAAM,QAAQ,sBAAsB,UAC3C,OAAO,MAAM,QAAQ,iBAAiB,8DACtC,OAAO,MAAM,SAAQ,qIAA2B,OAAO,KAAI,SAC5D,CAAC,CAAC,OAAO;;;;;;;;;;;;;AAeb,SAAgB,8BAA8B;CAC5C,OAAO;;;;;;;;;;;;;;AAeT,SAAgB,wBAId,OACqE;CACrE,MAAM,EAAkB,mBAAmB,MAAM;CACjD,MAAM,YACJ,MAAM,aAAa;CAErB,OAAO,WAAW,eAAe,GAC7B,iBACA,mBAAmB,SACjB,6BAA6B,yDAC7B,UAAY;;;;;;;;;;;;;AAcpB,SAAgB,sBAGd,OAAyC,SAAc;;CACvD,iDAAM,SAAQ,iHAAuB,QAAQ;;;;;;;;;;;;;;AAe/C,SAAgB,wBAGd,OAAyC,cAAwB;CACjE,sBACE,OACA,eAAe,SAAY,WAAW,MAAM,aAAa,aAAa,CACvE"}
1
+ {"version":3,"file":"globalFilteringFeature.utils.js","names":[],"sources":["../../../src/features/global-filtering/globalFilteringFeature.utils.ts"],"sourcesContent":["import { filterFn_includesString } from '../../fns/filterFns'\nimport { cloneState, isFunction } from '../../utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { FilterFn } from '../column-filtering/columnFilteringFeature.types'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\n\n/**\n * Checks whether this accessor column participates in global filtering.\n *\n * The column must have an accessor and pass column-level, table-level, and\n * optional `getColumnCanGlobalFilter` checks.\n *\n * @example\n * ```ts\n * const canGlobalFilter = column_getCanGlobalFilter(column)\n * ```\n */\nexport function column_getCanGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (column.table.options.enableGlobalFilter ?? true) &&\n (column.table.options.enableFilters ?? true) &&\n (column.table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n}\n\n/**\n * Provides the built-in automatic global filter function.\n *\n * Global filtering defaults to `includesString`, which gives search-box style\n * matching across globally filterable columns.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalAutoFilterFn()\n * ```\n */\nexport function table_getGlobalAutoFilterFn() {\n return filterFn_includesString\n}\n\n/**\n * Resolves the filter function used for global filtering.\n *\n * Function-valued `options.globalFilterFn` is returned directly, `'auto'`\n * delegates to `table_getGlobalAutoFilterFn`, and string values are looked up in\n * the table's filter function registry.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalFilterFn(table)\n * ```\n */\nexport function table_getGlobalFilterFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): FilterFn<TFeatures, TData> | FilterFn<TFeatures, TData> | undefined {\n const { globalFilterFn: globalFilterFn } = table.options\n const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =\n table._rowModelFns.filterFns\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table_getGlobalAutoFilterFn()\n : filterFns?.[globalFilterFn as string]\n}\n\n/**\n * Routes a global filter updater through the table's global filter handler.\n *\n * The updater may be a next value or a function of the previous value, matching\n * the instance `table.setGlobalFilter` behavior.\n *\n * @example\n * ```ts\n * table_setGlobalFilter(table, 'search text')\n * ```\n */\nexport function table_setGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: any) {\n table.options.onGlobalFilterChange?.(updater)\n}\n\n/**\n * Resets `globalFilter` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.globalFilter`. Passing\n * `true` ignores initial state and resets to `undefined`.\n *\n * @example\n * ```ts\n * table_resetGlobalFilter(table)\n * table_resetGlobalFilter(table, true)\n * ```\n */\nexport function table_resetGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setGlobalFilter(\n table,\n defaultState ? undefined : cloneState(table.initialState.globalFilter),\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAgB,0BAId,QAA4D;;CAC5D,QACG,OAAO,UAAU,sBAAsB,UACvC,OAAO,MAAM,QAAQ,sBAAsB,UAC3C,OAAO,MAAM,QAAQ,iBAAiB,8DACtC,OAAO,MAAM,SAAQ,qIAA2B,MAAM,MAAK,SAC5D,CAAC,CAAC,OAAO;AAEb;;;;;;;;;;;;AAaA,SAAgB,8BAA8B;CAC5C,OAAO;AACT;;;;;;;;;;;;;AAcA,SAAgB,wBAId,OACqE;CACrE,MAAM,EAAkB,mBAAmB,MAAM;CACjD,MAAM,YACJ,MAAM,aAAa;CAErB,OAAO,WAAW,cAAc,IAC5B,iBACA,mBAAmB,SACjB,4BAA4B,0DAC5B,UAAY;AACpB;;;;;;;;;;;;AAaA,SAAgB,sBAGd,OAAyC,SAAc;;CACvD,iDAAM,SAAQ,iHAAuB,OAAO;AAC9C;;;;;;;;;;;;;AAcA,SAAgB,wBAGd,OAAyC,cAAwB;CACjE,sBACE,OACA,eAAe,SAAY,WAAW,MAAM,aAAa,YAAY,CACvE;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"createExpandedRowModel.cjs","names":["tableMemo","row_getIsExpanded"],"sources":["../../../src/features/row-expanding/createExpandedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { row_getIsExpanded } from './rowExpandingFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized expanded row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createExpandedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table: Table_Internal<TFeatures, TData> = _table\n return tableMemo({\n feature: 'rowExpandingFeature',\n table,\n fnName: 'table.getExpandedRowModel',\n memoDeps: () => [\n table.atoms.expanded?.get(),\n table.getPreExpandedRowModel(),\n table.options.paginateExpandedRows,\n ],\n fn: () => _createExpandedRowModel(table),\n })\n }\n}\n\nfunction _createExpandedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const rowModel = table.getPreExpandedRowModel()\n const expanded = table.atoms.expanded?.get()\n\n if (\n !rowModel.rows.length ||\n (expanded !== true && !Object.keys(expanded ?? {}).length)\n ) {\n return rowModel\n }\n\n if (!table.options.paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel\n }\n\n return expandRows(rowModel)\n}\n\n/**\n * Expands a row model according to the current expanded row state.\n *\n * Expanded sub-rows are inserted into the flattened row order while preserving the original row hierarchy.\n */\nexport function expandRows<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(rowModel: RowModel<TFeatures, TData>): RowModel<TFeatures, TData> {\n const expandedRows: Array<Row<TFeatures, TData>> = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n expandedRows.push(row)\n\n if (row.subRows.length && row_getIsExpanded(row)) {\n row.subRows.forEach(handleRow)\n }\n }\n\n rowModel.rows.forEach(handleRow)\n\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById,\n }\n}\n"],"mappings":";;;;;;;;;AAaA,SAAgB,yBAG0D;CACxE,QAAQ,WAAW;EACjB,MAAM,QAA0C;EAChD,OAAOA,wBAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;;8BACd,MAAM,MAAM,wFAAU,KAAK;KAC3B,MAAM,wBAAwB;KAC9B,MAAM,QAAQ;KACf;;GACD,UAAU,wBAAwB,MAAM;GACzC,CAAC;;;AAIN,SAAS,wBAGP,OAAqE;;CACrE,MAAM,WAAW,MAAM,wBAAwB;CAC/C,MAAM,qCAAW,MAAM,MAAM,0FAAU,KAAK;CAE5C,IACE,CAAC,SAAS,KAAK,UACd,aAAa,QAAQ,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC,CAAC,QAEnD,OAAO;CAGT,IAAI,CAAC,MAAM,QAAQ,sBAEjB,OAAO;CAGT,OAAO,WAAW,SAAS;;;;;;;AAQ7B,SAAgB,WAGd,UAAkE;CAClE,MAAM,eAA6C,EAAE;CAErD,MAAM,aAAa,QAA+B;EAChD,aAAa,KAAK,IAAI;EAEtB,IAAI,IAAI,QAAQ,UAAUC,oDAAkB,IAAI,EAC9C,IAAI,QAAQ,QAAQ,UAAU;;CAIlC,SAAS,KAAK,QAAQ,UAAU;CAEhC,OAAO;EACL,MAAM;EACN,UAAU,SAAS;EACnB,UAAU,SAAS;EACpB"}
1
+ {"version":3,"file":"createExpandedRowModel.cjs","names":["tableMemo","row_getIsExpanded"],"sources":["../../../src/features/row-expanding/createExpandedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { row_getIsExpanded } from './rowExpandingFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized expanded row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createExpandedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table: Table_Internal<TFeatures, TData> = _table\n return tableMemo({\n feature: 'rowExpandingFeature',\n table,\n fnName: 'table.getExpandedRowModel',\n memoDeps: () => [\n table.atoms.expanded?.get(),\n table.getPreExpandedRowModel(),\n table.options.paginateExpandedRows,\n ],\n fn: () => _createExpandedRowModel(table),\n })\n }\n}\n\nfunction _createExpandedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const rowModel = table.getPreExpandedRowModel()\n const expanded = table.atoms.expanded?.get()\n\n if (\n !rowModel.rows.length ||\n (expanded !== true && !Object.keys(expanded ?? {}).length)\n ) {\n return rowModel\n }\n\n if (!table.options.paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel\n }\n\n return expandRows(rowModel)\n}\n\n/**\n * Expands a row model according to the current expanded row state.\n *\n * Expanded sub-rows are inserted into the flattened row order while preserving the original row hierarchy.\n */\nexport function expandRows<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(rowModel: RowModel<TFeatures, TData>): RowModel<TFeatures, TData> {\n const expandedRows: Array<Row<TFeatures, TData>> = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n expandedRows.push(row)\n\n if (row.subRows.length && row_getIsExpanded(row)) {\n row.subRows.forEach(handleRow)\n }\n }\n\n rowModel.rows.forEach(handleRow)\n\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById,\n }\n}\n"],"mappings":";;;;;;;;;AAaA,SAAgB,yBAG0D;CACxE,QAAQ,WAAW;EACjB,MAAM,QAA0C;EAChD,OAAOA,wBAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;;8BACd,MAAM,MAAM,wFAAU,IAAI;KAC1B,MAAM,uBAAuB;KAC7B,MAAM,QAAQ;IAChB;;GACA,UAAU,wBAAwB,KAAK;EACzC,CAAC;CACH;AACF;AAEA,SAAS,wBAGP,OAAqE;;CACrE,MAAM,WAAW,MAAM,uBAAuB;CAC9C,MAAM,qCAAW,MAAM,MAAM,0FAAU,IAAI;CAE3C,IACE,CAAC,SAAS,KAAK,UACd,aAAa,QAAQ,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,EAAE,QAEnD,OAAO;CAGT,IAAI,CAAC,MAAM,QAAQ,sBAEjB,OAAO;CAGT,OAAO,WAAW,QAAQ;AAC5B;;;;;;AAOA,SAAgB,WAGd,UAAkE;CAClE,MAAM,eAA6C,CAAC;CAEpD,MAAM,aAAa,QAA+B;EAChD,aAAa,KAAK,GAAG;EAErB,IAAI,IAAI,QAAQ,UAAUC,oDAAkB,GAAG,GAC7C,IAAI,QAAQ,QAAQ,SAAS;CAEjC;CAEA,SAAS,KAAK,QAAQ,SAAS;CAE/B,OAAO;EACL,MAAM;EACN,UAAU,SAAS;EACnB,UAAU,SAAS;CACrB;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"createExpandedRowModel.js","names":[],"sources":["../../../src/features/row-expanding/createExpandedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { row_getIsExpanded } from './rowExpandingFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized expanded row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createExpandedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table: Table_Internal<TFeatures, TData> = _table\n return tableMemo({\n feature: 'rowExpandingFeature',\n table,\n fnName: 'table.getExpandedRowModel',\n memoDeps: () => [\n table.atoms.expanded?.get(),\n table.getPreExpandedRowModel(),\n table.options.paginateExpandedRows,\n ],\n fn: () => _createExpandedRowModel(table),\n })\n }\n}\n\nfunction _createExpandedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const rowModel = table.getPreExpandedRowModel()\n const expanded = table.atoms.expanded?.get()\n\n if (\n !rowModel.rows.length ||\n (expanded !== true && !Object.keys(expanded ?? {}).length)\n ) {\n return rowModel\n }\n\n if (!table.options.paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel\n }\n\n return expandRows(rowModel)\n}\n\n/**\n * Expands a row model according to the current expanded row state.\n *\n * Expanded sub-rows are inserted into the flattened row order while preserving the original row hierarchy.\n */\nexport function expandRows<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(rowModel: RowModel<TFeatures, TData>): RowModel<TFeatures, TData> {\n const expandedRows: Array<Row<TFeatures, TData>> = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n expandedRows.push(row)\n\n if (row.subRows.length && row_getIsExpanded(row)) {\n row.subRows.forEach(handleRow)\n }\n }\n\n rowModel.rows.forEach(handleRow)\n\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById,\n }\n}\n"],"mappings":";;;;;;;;;AAaA,SAAgB,yBAG0D;CACxE,QAAQ,WAAW;EACjB,MAAM,QAA0C;EAChD,OAAO,UAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;;8BACd,MAAM,MAAM,wFAAU,KAAK;KAC3B,MAAM,wBAAwB;KAC9B,MAAM,QAAQ;KACf;;GACD,UAAU,wBAAwB,MAAM;GACzC,CAAC;;;AAIN,SAAS,wBAGP,OAAqE;;CACrE,MAAM,WAAW,MAAM,wBAAwB;CAC/C,MAAM,qCAAW,MAAM,MAAM,0FAAU,KAAK;CAE5C,IACE,CAAC,SAAS,KAAK,UACd,aAAa,QAAQ,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC,CAAC,QAEnD,OAAO;CAGT,IAAI,CAAC,MAAM,QAAQ,sBAEjB,OAAO;CAGT,OAAO,WAAW,SAAS;;;;;;;AAQ7B,SAAgB,WAGd,UAAkE;CAClE,MAAM,eAA6C,EAAE;CAErD,MAAM,aAAa,QAA+B;EAChD,aAAa,KAAK,IAAI;EAEtB,IAAI,IAAI,QAAQ,UAAU,kBAAkB,IAAI,EAC9C,IAAI,QAAQ,QAAQ,UAAU;;CAIlC,SAAS,KAAK,QAAQ,UAAU;CAEhC,OAAO;EACL,MAAM;EACN,UAAU,SAAS;EACnB,UAAU,SAAS;EACpB"}
1
+ {"version":3,"file":"createExpandedRowModel.js","names":[],"sources":["../../../src/features/row-expanding/createExpandedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { row_getIsExpanded } from './rowExpandingFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized expanded row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createExpandedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table: Table_Internal<TFeatures, TData> = _table\n return tableMemo({\n feature: 'rowExpandingFeature',\n table,\n fnName: 'table.getExpandedRowModel',\n memoDeps: () => [\n table.atoms.expanded?.get(),\n table.getPreExpandedRowModel(),\n table.options.paginateExpandedRows,\n ],\n fn: () => _createExpandedRowModel(table),\n })\n }\n}\n\nfunction _createExpandedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const rowModel = table.getPreExpandedRowModel()\n const expanded = table.atoms.expanded?.get()\n\n if (\n !rowModel.rows.length ||\n (expanded !== true && !Object.keys(expanded ?? {}).length)\n ) {\n return rowModel\n }\n\n if (!table.options.paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel\n }\n\n return expandRows(rowModel)\n}\n\n/**\n * Expands a row model according to the current expanded row state.\n *\n * Expanded sub-rows are inserted into the flattened row order while preserving the original row hierarchy.\n */\nexport function expandRows<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(rowModel: RowModel<TFeatures, TData>): RowModel<TFeatures, TData> {\n const expandedRows: Array<Row<TFeatures, TData>> = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n expandedRows.push(row)\n\n if (row.subRows.length && row_getIsExpanded(row)) {\n row.subRows.forEach(handleRow)\n }\n }\n\n rowModel.rows.forEach(handleRow)\n\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById,\n }\n}\n"],"mappings":";;;;;;;;;AAaA,SAAgB,yBAG0D;CACxE,QAAQ,WAAW;EACjB,MAAM,QAA0C;EAChD,OAAO,UAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;;8BACd,MAAM,MAAM,wFAAU,IAAI;KAC1B,MAAM,uBAAuB;KAC7B,MAAM,QAAQ;IAChB;;GACA,UAAU,wBAAwB,KAAK;EACzC,CAAC;CACH;AACF;AAEA,SAAS,wBAGP,OAAqE;;CACrE,MAAM,WAAW,MAAM,uBAAuB;CAC9C,MAAM,qCAAW,MAAM,MAAM,0FAAU,IAAI;CAE3C,IACE,CAAC,SAAS,KAAK,UACd,aAAa,QAAQ,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,EAAE,QAEnD,OAAO;CAGT,IAAI,CAAC,MAAM,QAAQ,sBAEjB,OAAO;CAGT,OAAO,WAAW,QAAQ;AAC5B;;;;;;AAOA,SAAgB,WAGd,UAAkE;CAClE,MAAM,eAA6C,CAAC;CAEpD,MAAM,aAAa,QAA+B;EAChD,aAAa,KAAK,GAAG;EAErB,IAAI,IAAI,QAAQ,UAAU,kBAAkB,GAAG,GAC7C,IAAI,QAAQ,QAAQ,SAAS;CAEjC;CAEA,SAAS,KAAK,QAAQ,SAAS;CAE/B,OAAO;EACL,MAAM;EACN,UAAU,SAAS;EACnB,UAAU,SAAS;CACrB;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"rowExpandingFeature.cjs","names":["getDefaultExpandedState","makeStateUpdater","row_toggleExpanded","row_getIsExpanded","row_getCanExpand","row_getIsAllParentsExpanded","row_getToggleExpandedHandler","table_autoResetExpanded","table_setExpanded","table_toggleAllRowsExpanded","table_resetExpanded","table_getCanSomeRowsExpand","table_getToggleAllRowsExpandedHandler","table_getIsSomeRowsExpanded","table_getIsAllRowsExpanded","table_getExpandedDepth"],"sources":["../../../src/features/row-expanding/rowExpandingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n getDefaultExpandedState,\n row_getCanExpand,\n row_getIsAllParentsExpanded,\n row_getIsExpanded,\n row_getToggleExpandedHandler,\n row_toggleExpanded,\n table_autoResetExpanded,\n table_getCanSomeRowsExpand,\n table_getExpandedDepth,\n table_getIsAllRowsExpanded,\n table_getIsSomeRowsExpanded,\n table_getToggleAllRowsExpandedHandler,\n table_resetExpanded,\n table_setExpanded,\n table_toggleAllRowsExpanded,\n} from './rowExpandingFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// CachedRowModel_Expanded,\n// CreateRowModel_Expanded,\n// Row_RowExpanding,\n// TableOptions_RowExpanding,\n// TableState_RowExpanding,\n// Table_RowExpanding,\n// } from './rowExpandingFeature.types'\n\nexport interface RowExpandingFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // CachedRowModel: CachedRowModel_Expanded<TFeatures, TData>\n // CreateRowModels: CreateRowModel_Expanded<TFeatures, TData>\n // Row: Row_RowExpanding\n // Table: Table_RowExpanding<TFeatures, TData>\n // TableOptions: TableOptions_RowExpanding<TFeatures, TData>\n // TableState: TableState_RowExpanding\n}\n\n/**\n * Creates the stock row expanding feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructRowExpandingFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowExpandingFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n expanded: getDefaultExpandedState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('rowExpandingFeature', prototype, table, {\n row_toggleExpanded: {\n fn: (row, expanded) => row_toggleExpanded(row, expanded),\n },\n row_getIsExpanded: {\n fn: (row) => row_getIsExpanded(row),\n },\n row_getCanExpand: {\n fn: (row) => row_getCanExpand(row),\n },\n row_getIsAllParentsExpanded: {\n fn: (row) => row_getIsAllParentsExpanded(row),\n },\n row_getToggleExpandedHandler: {\n fn: (row) => row_getToggleExpandedHandler(row),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowExpandingFeature', table, {\n table_autoResetExpanded: {\n fn: () => table_autoResetExpanded(table),\n },\n table_setExpanded: {\n fn: (updater) => table_setExpanded(table, updater),\n },\n table_toggleAllRowsExpanded: {\n fn: (expanded) => table_toggleAllRowsExpanded(table, expanded),\n },\n table_resetExpanded: {\n fn: (defaultState) => table_resetExpanded(table, defaultState),\n },\n table_getCanSomeRowsExpand: {\n fn: () => table_getCanSomeRowsExpand(table),\n },\n table_getToggleAllRowsExpandedHandler: {\n fn: () => table_getToggleAllRowsExpandedHandler(table),\n },\n table_getIsSomeRowsExpanded: {\n fn: () => table_getIsSomeRowsExpanded(table),\n },\n table_getIsAllRowsExpanded: {\n fn: () => table_getIsAllRowsExpanded(table),\n },\n table_getExpandedDepth: {\n fn: () => table_getExpandedDepth(table),\n },\n })\n },\n }\n}\n\n/**\n * The stock row expanding feature.\n *\n * Register this feature to add expanded row state, row expansion APIs, and\n * helpers for deriving expanded row models and expansion depth.\n */\nexport const rowExpandingFeature = constructRowExpandingFeature()\n"],"mappings":";;;;;;;;;AAkDA,SAAgB,+BAGqD;CACnE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,UAAUA,2DAAyB;IACnC,GAAG;IACJ;;EAGH,yBAAyB,UAAU;GACjC,OAAO;IACL,kBAAkBC,+BAAiB,YAAY,MAAM;IACrD,sBAAsB;IACvB;;EAGH,qBAAqB,WAAW,UAAU;GACxC,kCAAoB,uBAAuB,WAAW,OAAO;IAC3D,oBAAoB,EAClB,KAAK,KAAK,aAAaC,qDAAmB,KAAK,SAAS,EACzD;IACD,mBAAmB,EACjB,KAAK,QAAQC,oDAAkB,IAAI,EACpC;IACD,kBAAkB,EAChB,KAAK,QAAQC,mDAAiB,IAAI,EACnC;IACD,6BAA6B,EAC3B,KAAK,QAAQC,8DAA4B,IAAI,EAC9C;IACD,8BAA8B,EAC5B,KAAK,QAAQC,+DAA6B,IAAI,EAC/C;IACF,CAAC;;EAGJ,qBAAqB,UAAU;GAC7B,8BAAgB,uBAAuB,OAAO;IAC5C,yBAAyB,EACvB,UAAUC,0DAAwB,MAAM,EACzC;IACD,mBAAmB,EACjB,KAAK,YAAYC,oDAAkB,OAAO,QAAQ,EACnD;IACD,6BAA6B,EAC3B,KAAK,aAAaC,8DAA4B,OAAO,SAAS,EAC/D;IACD,qBAAqB,EACnB,KAAK,iBAAiBC,sDAAoB,OAAO,aAAa,EAC/D;IACD,4BAA4B,EAC1B,UAAUC,6DAA2B,MAAM,EAC5C;IACD,uCAAuC,EACrC,UAAUC,wEAAsC,MAAM,EACvD;IACD,6BAA6B,EAC3B,UAAUC,8DAA4B,MAAM,EAC7C;IACD,4BAA4B,EAC1B,UAAUC,6DAA2B,MAAM,EAC5C;IACD,wBAAwB,EACtB,UAAUC,yDAAuB,MAAM,EACxC;IACF,CAAC;;EAEL;;;;;;;;AASH,MAAa,sBAAsB,8BAA8B"}
1
+ {"version":3,"file":"rowExpandingFeature.cjs","names":["getDefaultExpandedState","makeStateUpdater","row_toggleExpanded","row_getIsExpanded","row_getCanExpand","row_getIsAllParentsExpanded","row_getToggleExpandedHandler","table_autoResetExpanded","table_setExpanded","table_toggleAllRowsExpanded","table_resetExpanded","table_getCanSomeRowsExpand","table_getToggleAllRowsExpandedHandler","table_getIsSomeRowsExpanded","table_getIsAllRowsExpanded","table_getExpandedDepth"],"sources":["../../../src/features/row-expanding/rowExpandingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n getDefaultExpandedState,\n row_getCanExpand,\n row_getIsAllParentsExpanded,\n row_getIsExpanded,\n row_getToggleExpandedHandler,\n row_toggleExpanded,\n table_autoResetExpanded,\n table_getCanSomeRowsExpand,\n table_getExpandedDepth,\n table_getIsAllRowsExpanded,\n table_getIsSomeRowsExpanded,\n table_getToggleAllRowsExpandedHandler,\n table_resetExpanded,\n table_setExpanded,\n table_toggleAllRowsExpanded,\n} from './rowExpandingFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// CachedRowModel_Expanded,\n// CreateRowModel_Expanded,\n// Row_RowExpanding,\n// TableOptions_RowExpanding,\n// TableState_RowExpanding,\n// Table_RowExpanding,\n// } from './rowExpandingFeature.types'\n\nexport interface RowExpandingFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // CachedRowModel: CachedRowModel_Expanded<TFeatures, TData>\n // CreateRowModels: CreateRowModel_Expanded<TFeatures, TData>\n // Row: Row_RowExpanding\n // Table: Table_RowExpanding<TFeatures, TData>\n // TableOptions: TableOptions_RowExpanding<TFeatures, TData>\n // TableState: TableState_RowExpanding\n}\n\n/**\n * Creates the stock row expanding feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructRowExpandingFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowExpandingFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n expanded: getDefaultExpandedState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('rowExpandingFeature', prototype, table, {\n row_toggleExpanded: {\n fn: (row, expanded) => row_toggleExpanded(row, expanded),\n },\n row_getIsExpanded: {\n fn: (row) => row_getIsExpanded(row),\n },\n row_getCanExpand: {\n fn: (row) => row_getCanExpand(row),\n },\n row_getIsAllParentsExpanded: {\n fn: (row) => row_getIsAllParentsExpanded(row),\n },\n row_getToggleExpandedHandler: {\n fn: (row) => row_getToggleExpandedHandler(row),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowExpandingFeature', table, {\n table_autoResetExpanded: {\n fn: () => table_autoResetExpanded(table),\n },\n table_setExpanded: {\n fn: (updater) => table_setExpanded(table, updater),\n },\n table_toggleAllRowsExpanded: {\n fn: (expanded) => table_toggleAllRowsExpanded(table, expanded),\n },\n table_resetExpanded: {\n fn: (defaultState) => table_resetExpanded(table, defaultState),\n },\n table_getCanSomeRowsExpand: {\n fn: () => table_getCanSomeRowsExpand(table),\n },\n table_getToggleAllRowsExpandedHandler: {\n fn: () => table_getToggleAllRowsExpandedHandler(table),\n },\n table_getIsSomeRowsExpanded: {\n fn: () => table_getIsSomeRowsExpanded(table),\n },\n table_getIsAllRowsExpanded: {\n fn: () => table_getIsAllRowsExpanded(table),\n },\n table_getExpandedDepth: {\n fn: () => table_getExpandedDepth(table),\n },\n })\n },\n }\n}\n\n/**\n * The stock row expanding feature.\n *\n * Register this feature to add expanded row state, row expansion APIs, and\n * helpers for deriving expanded row models and expansion depth.\n */\nexport const rowExpandingFeature = constructRowExpandingFeature()\n"],"mappings":";;;;;;;;;AAkDA,SAAgB,+BAGqD;CACnE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,UAAUA,0DAAwB;IAClC,GAAG;GACL;EACF;EAEA,yBAAyB,UAAU;GACjC,OAAO;IACL,kBAAkBC,+BAAiB,YAAY,KAAK;IACpD,sBAAsB;GACxB;EACF;EAEA,qBAAqB,WAAW,UAAU;GACxC,kCAAoB,uBAAuB,WAAW,OAAO;IAC3D,oBAAoB,EAClB,KAAK,KAAK,aAAaC,qDAAmB,KAAK,QAAQ,EACzD;IACA,mBAAmB,EACjB,KAAK,QAAQC,oDAAkB,GAAG,EACpC;IACA,kBAAkB,EAChB,KAAK,QAAQC,mDAAiB,GAAG,EACnC;IACA,6BAA6B,EAC3B,KAAK,QAAQC,8DAA4B,GAAG,EAC9C;IACA,8BAA8B,EAC5B,KAAK,QAAQC,+DAA6B,GAAG,EAC/C;GACF,CAAC;EACH;EAEA,qBAAqB,UAAU;GAC7B,8BAAgB,uBAAuB,OAAO;IAC5C,yBAAyB,EACvB,UAAUC,0DAAwB,KAAK,EACzC;IACA,mBAAmB,EACjB,KAAK,YAAYC,oDAAkB,OAAO,OAAO,EACnD;IACA,6BAA6B,EAC3B,KAAK,aAAaC,8DAA4B,OAAO,QAAQ,EAC/D;IACA,qBAAqB,EACnB,KAAK,iBAAiBC,sDAAoB,OAAO,YAAY,EAC/D;IACA,4BAA4B,EAC1B,UAAUC,6DAA2B,KAAK,EAC5C;IACA,uCAAuC,EACrC,UAAUC,wEAAsC,KAAK,EACvD;IACA,6BAA6B,EAC3B,UAAUC,8DAA4B,KAAK,EAC7C;IACA,4BAA4B,EAC1B,UAAUC,6DAA2B,KAAK,EAC5C;IACA,wBAAwB,EACtB,UAAUC,yDAAuB,KAAK,EACxC;GACF,CAAC;EACH;CACF;AACF;;;;;;;AAQA,MAAa,sBAAsB,6BAA6B"}
@@ -1 +1 @@
1
- {"version":3,"file":"rowExpandingFeature.js","names":[],"sources":["../../../src/features/row-expanding/rowExpandingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n getDefaultExpandedState,\n row_getCanExpand,\n row_getIsAllParentsExpanded,\n row_getIsExpanded,\n row_getToggleExpandedHandler,\n row_toggleExpanded,\n table_autoResetExpanded,\n table_getCanSomeRowsExpand,\n table_getExpandedDepth,\n table_getIsAllRowsExpanded,\n table_getIsSomeRowsExpanded,\n table_getToggleAllRowsExpandedHandler,\n table_resetExpanded,\n table_setExpanded,\n table_toggleAllRowsExpanded,\n} from './rowExpandingFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// CachedRowModel_Expanded,\n// CreateRowModel_Expanded,\n// Row_RowExpanding,\n// TableOptions_RowExpanding,\n// TableState_RowExpanding,\n// Table_RowExpanding,\n// } from './rowExpandingFeature.types'\n\nexport interface RowExpandingFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // CachedRowModel: CachedRowModel_Expanded<TFeatures, TData>\n // CreateRowModels: CreateRowModel_Expanded<TFeatures, TData>\n // Row: Row_RowExpanding\n // Table: Table_RowExpanding<TFeatures, TData>\n // TableOptions: TableOptions_RowExpanding<TFeatures, TData>\n // TableState: TableState_RowExpanding\n}\n\n/**\n * Creates the stock row expanding feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructRowExpandingFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowExpandingFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n expanded: getDefaultExpandedState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('rowExpandingFeature', prototype, table, {\n row_toggleExpanded: {\n fn: (row, expanded) => row_toggleExpanded(row, expanded),\n },\n row_getIsExpanded: {\n fn: (row) => row_getIsExpanded(row),\n },\n row_getCanExpand: {\n fn: (row) => row_getCanExpand(row),\n },\n row_getIsAllParentsExpanded: {\n fn: (row) => row_getIsAllParentsExpanded(row),\n },\n row_getToggleExpandedHandler: {\n fn: (row) => row_getToggleExpandedHandler(row),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowExpandingFeature', table, {\n table_autoResetExpanded: {\n fn: () => table_autoResetExpanded(table),\n },\n table_setExpanded: {\n fn: (updater) => table_setExpanded(table, updater),\n },\n table_toggleAllRowsExpanded: {\n fn: (expanded) => table_toggleAllRowsExpanded(table, expanded),\n },\n table_resetExpanded: {\n fn: (defaultState) => table_resetExpanded(table, defaultState),\n },\n table_getCanSomeRowsExpand: {\n fn: () => table_getCanSomeRowsExpand(table),\n },\n table_getToggleAllRowsExpandedHandler: {\n fn: () => table_getToggleAllRowsExpandedHandler(table),\n },\n table_getIsSomeRowsExpanded: {\n fn: () => table_getIsSomeRowsExpanded(table),\n },\n table_getIsAllRowsExpanded: {\n fn: () => table_getIsAllRowsExpanded(table),\n },\n table_getExpandedDepth: {\n fn: () => table_getExpandedDepth(table),\n },\n })\n },\n }\n}\n\n/**\n * The stock row expanding feature.\n *\n * Register this feature to add expanded row state, row expansion APIs, and\n * helpers for deriving expanded row models and expansion depth.\n */\nexport const rowExpandingFeature = constructRowExpandingFeature()\n"],"mappings":";;;;;;;;;AAkDA,SAAgB,+BAGqD;CACnE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,UAAU,yBAAyB;IACnC,GAAG;IACJ;;EAGH,yBAAyB,UAAU;GACjC,OAAO;IACL,kBAAkB,iBAAiB,YAAY,MAAM;IACrD,sBAAsB;IACvB;;EAGH,qBAAqB,WAAW,UAAU;GACxC,oBAAoB,uBAAuB,WAAW,OAAO;IAC3D,oBAAoB,EAClB,KAAK,KAAK,aAAa,mBAAmB,KAAK,SAAS,EACzD;IACD,mBAAmB,EACjB,KAAK,QAAQ,kBAAkB,IAAI,EACpC;IACD,kBAAkB,EAChB,KAAK,QAAQ,iBAAiB,IAAI,EACnC;IACD,6BAA6B,EAC3B,KAAK,QAAQ,4BAA4B,IAAI,EAC9C;IACD,8BAA8B,EAC5B,KAAK,QAAQ,6BAA6B,IAAI,EAC/C;IACF,CAAC;;EAGJ,qBAAqB,UAAU;GAC7B,gBAAgB,uBAAuB,OAAO;IAC5C,yBAAyB,EACvB,UAAU,wBAAwB,MAAM,EACzC;IACD,mBAAmB,EACjB,KAAK,YAAY,kBAAkB,OAAO,QAAQ,EACnD;IACD,6BAA6B,EAC3B,KAAK,aAAa,4BAA4B,OAAO,SAAS,EAC/D;IACD,qBAAqB,EACnB,KAAK,iBAAiB,oBAAoB,OAAO,aAAa,EAC/D;IACD,4BAA4B,EAC1B,UAAU,2BAA2B,MAAM,EAC5C;IACD,uCAAuC,EACrC,UAAU,sCAAsC,MAAM,EACvD;IACD,6BAA6B,EAC3B,UAAU,4BAA4B,MAAM,EAC7C;IACD,4BAA4B,EAC1B,UAAU,2BAA2B,MAAM,EAC5C;IACD,wBAAwB,EACtB,UAAU,uBAAuB,MAAM,EACxC;IACF,CAAC;;EAEL;;;;;;;;AASH,MAAa,sBAAsB,8BAA8B"}
1
+ {"version":3,"file":"rowExpandingFeature.js","names":[],"sources":["../../../src/features/row-expanding/rowExpandingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n getDefaultExpandedState,\n row_getCanExpand,\n row_getIsAllParentsExpanded,\n row_getIsExpanded,\n row_getToggleExpandedHandler,\n row_toggleExpanded,\n table_autoResetExpanded,\n table_getCanSomeRowsExpand,\n table_getExpandedDepth,\n table_getIsAllRowsExpanded,\n table_getIsSomeRowsExpanded,\n table_getToggleAllRowsExpandedHandler,\n table_resetExpanded,\n table_setExpanded,\n table_toggleAllRowsExpanded,\n} from './rowExpandingFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// CachedRowModel_Expanded,\n// CreateRowModel_Expanded,\n// Row_RowExpanding,\n// TableOptions_RowExpanding,\n// TableState_RowExpanding,\n// Table_RowExpanding,\n// } from './rowExpandingFeature.types'\n\nexport interface RowExpandingFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // CachedRowModel: CachedRowModel_Expanded<TFeatures, TData>\n // CreateRowModels: CreateRowModel_Expanded<TFeatures, TData>\n // Row: Row_RowExpanding\n // Table: Table_RowExpanding<TFeatures, TData>\n // TableOptions: TableOptions_RowExpanding<TFeatures, TData>\n // TableState: TableState_RowExpanding\n}\n\n/**\n * Creates the stock row expanding feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructRowExpandingFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowExpandingFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n expanded: getDefaultExpandedState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('rowExpandingFeature', prototype, table, {\n row_toggleExpanded: {\n fn: (row, expanded) => row_toggleExpanded(row, expanded),\n },\n row_getIsExpanded: {\n fn: (row) => row_getIsExpanded(row),\n },\n row_getCanExpand: {\n fn: (row) => row_getCanExpand(row),\n },\n row_getIsAllParentsExpanded: {\n fn: (row) => row_getIsAllParentsExpanded(row),\n },\n row_getToggleExpandedHandler: {\n fn: (row) => row_getToggleExpandedHandler(row),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowExpandingFeature', table, {\n table_autoResetExpanded: {\n fn: () => table_autoResetExpanded(table),\n },\n table_setExpanded: {\n fn: (updater) => table_setExpanded(table, updater),\n },\n table_toggleAllRowsExpanded: {\n fn: (expanded) => table_toggleAllRowsExpanded(table, expanded),\n },\n table_resetExpanded: {\n fn: (defaultState) => table_resetExpanded(table, defaultState),\n },\n table_getCanSomeRowsExpand: {\n fn: () => table_getCanSomeRowsExpand(table),\n },\n table_getToggleAllRowsExpandedHandler: {\n fn: () => table_getToggleAllRowsExpandedHandler(table),\n },\n table_getIsSomeRowsExpanded: {\n fn: () => table_getIsSomeRowsExpanded(table),\n },\n table_getIsAllRowsExpanded: {\n fn: () => table_getIsAllRowsExpanded(table),\n },\n table_getExpandedDepth: {\n fn: () => table_getExpandedDepth(table),\n },\n })\n },\n }\n}\n\n/**\n * The stock row expanding feature.\n *\n * Register this feature to add expanded row state, row expansion APIs, and\n * helpers for deriving expanded row models and expansion depth.\n */\nexport const rowExpandingFeature = constructRowExpandingFeature()\n"],"mappings":";;;;;;;;;AAkDA,SAAgB,+BAGqD;CACnE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,UAAU,wBAAwB;IAClC,GAAG;GACL;EACF;EAEA,yBAAyB,UAAU;GACjC,OAAO;IACL,kBAAkB,iBAAiB,YAAY,KAAK;IACpD,sBAAsB;GACxB;EACF;EAEA,qBAAqB,WAAW,UAAU;GACxC,oBAAoB,uBAAuB,WAAW,OAAO;IAC3D,oBAAoB,EAClB,KAAK,KAAK,aAAa,mBAAmB,KAAK,QAAQ,EACzD;IACA,mBAAmB,EACjB,KAAK,QAAQ,kBAAkB,GAAG,EACpC;IACA,kBAAkB,EAChB,KAAK,QAAQ,iBAAiB,GAAG,EACnC;IACA,6BAA6B,EAC3B,KAAK,QAAQ,4BAA4B,GAAG,EAC9C;IACA,8BAA8B,EAC5B,KAAK,QAAQ,6BAA6B,GAAG,EAC/C;GACF,CAAC;EACH;EAEA,qBAAqB,UAAU;GAC7B,gBAAgB,uBAAuB,OAAO;IAC5C,yBAAyB,EACvB,UAAU,wBAAwB,KAAK,EACzC;IACA,mBAAmB,EACjB,KAAK,YAAY,kBAAkB,OAAO,OAAO,EACnD;IACA,6BAA6B,EAC3B,KAAK,aAAa,4BAA4B,OAAO,QAAQ,EAC/D;IACA,qBAAqB,EACnB,KAAK,iBAAiB,oBAAoB,OAAO,YAAY,EAC/D;IACA,4BAA4B,EAC1B,UAAU,2BAA2B,KAAK,EAC5C;IACA,uCAAuC,EACrC,UAAU,sCAAsC,KAAK,EACvD;IACA,6BAA6B,EAC3B,UAAU,4BAA4B,KAAK,EAC7C;IACA,4BAA4B,EAC1B,UAAU,2BAA2B,KAAK,EAC5C;IACA,wBAAwB,EACtB,UAAU,uBAAuB,KAAK,EACxC;GACF,CAAC;EACH;CACF;AACF;;;;;;;AAQA,MAAa,sBAAsB,6BAA6B"}
@@ -1 +1 @@
1
- {"version":3,"file":"rowExpandingFeature.utils.cjs","names":["cloneState"],"sources":["../../../src/features/row-expanding/rowExpandingFeature.utils.ts"],"sourcesContent":["import { cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n ExpandedState,\n ExpandedStateList,\n} from './rowExpandingFeature.types'\n\n/**\n * Creates the default expanded state.\n *\n * The feature default is an empty map, meaning no rows are expanded. Reset APIs\n * use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const expanded = getDefaultExpandedState()\n * ```\n */\nexport function getDefaultExpandedState(): ExpandedState {\n return {}\n}\n\n/**\n * Schedules an expanded-state reset after row-structure changes.\n *\n * The reset runs when `autoResetAll`, `autoResetExpanded`, or the default\n * client-side expanding behavior allows it. Manual expanding opts out unless\n * the reset options explicitly opt back in.\n *\n * @example\n * ```ts\n * table_autoResetExpanded(table)\n * ```\n */\nexport function table_autoResetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n table._reactivity.schedule(() => table_resetExpanded(table))\n }\n}\n\n/**\n * Routes an expanded-state updater through the table's expanded change handler.\n *\n * The updater may be `true`, a row-id map, or a function of the previous\n * expanded state, matching the instance `table.setExpanded` behavior.\n *\n * @example\n * ```ts\n * table_setExpanded(table, (old) => ({ ...old, [rowId]: true }))\n * ```\n */\nexport function table_setExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ExpandedState>) {\n table.options.onExpandedChange?.(updater)\n}\n\n/**\n * Expands or collapses every row.\n *\n * Passing `true` stores the special expanded-all state. Passing `false` stores\n * an empty map. Omitting the value toggles based on whether all rows are\n * currently expanded.\n *\n * @example\n * ```ts\n * table_toggleAllRowsExpanded(table)\n * ```\n */\nexport function table_toggleAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, expanded?: boolean) {\n if (expanded ?? !table_getIsAllRowsExpanded(table)) {\n table_setExpanded(table, true)\n } else {\n table_setExpanded(table, {})\n }\n}\n\n/**\n * Resets `expanded` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.expanded` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetExpanded(table)\n * table_resetExpanded(table, true)\n * ```\n */\nexport function table_resetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setExpanded(\n table,\n defaultState ? {} : cloneState(table.initialState.expanded ?? {}),\n )\n}\n\n/**\n * Checks whether at least one pre-paginated row can expand.\n *\n * Pagination is intentionally ignored so controls can reflect expandable rows\n * that may not be on the current page.\n *\n * @example\n * ```ts\n * const canExpand = table_getCanSomeRowsExpand(table)\n * ```\n */\nexport function table_getCanSomeRowsExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getPrePaginatedRowModel()\n .flatRows.some((row) => row_getCanExpand(row))\n}\n\n/**\n * Creates an event handler that toggles all rows expanded.\n *\n * React-style synthetic events are persisted when present before the table state\n * is toggled.\n *\n * @example\n * ```ts\n * const onClick = table_getToggleAllRowsExpandedHandler(table)\n * ```\n */\nexport function table_getToggleAllRowsExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table_toggleAllRowsExpanded(table)\n }\n}\n\n/**\n * Checks whether any row is expanded.\n *\n * The special expanded-all value `true` counts as some rows expanded.\n *\n * @example\n * ```ts\n * const someExpanded = table_getIsSomeRowsExpanded(table)\n * ```\n */\nexport function table_getIsSomeRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n return expanded === true || Object.values(expanded).some(Boolean)\n}\n\n/**\n * Checks whether every row in the current row model is expanded.\n *\n * The special expanded-all value `true` returns true immediately. Empty\n * expanded state returns false.\n *\n * @example\n * ```ts\n * const allExpanded = table_getIsAllRowsExpanded(table)\n * ```\n */\nexport function table_getIsAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\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(row))) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n}\n\n/**\n * Computes the deepest expanded row id depth.\n *\n * Row ids are split on `.`; expanded-all state scans the current row model,\n * while explicit expanded state scans its expanded id keys.\n *\n * @example\n * ```ts\n * const depth = table_getExpandedDepth(table)\n * ```\n */\nexport function table_getExpandedDepth<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n let maxDepth = 0\n\n const rowIds =\n table.atoms.expanded?.get() === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.atoms.expanded?.get() ?? {})\n\n rowIds.forEach((id) => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n}\n\n/**\n * Expands or collapses this row.\n *\n * Omitting `expanded` toggles the row. If the current state is expanded-all,\n * the function first materializes that state into a row-id map before applying\n * the row-specific change.\n *\n * @example\n * ```ts\n * row_toggleExpanded(row)\n * ```\n */\nexport function row_toggleExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, expanded?: boolean) {\n table_setExpanded(row.table, (old) => {\n const exists = old === true ? true : !!old[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(row.table.getRowModel().rowsById).forEach((rowId) => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n}\n\n/**\n * Checks whether this row is expanded.\n *\n * `options.getIsRowExpanded` can override state-derived behavior. Otherwise\n * the row is expanded when expanded state is `true` or contains this row id.\n *\n * @example\n * ```ts\n * const expanded = row_getIsExpanded(row)\n * ```\n */\nexport function row_getIsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const expanded: ExpandedState = row.table.atoms.expanded?.get() ?? {}\n\n return !!(\n row.table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded[row.id])\n )\n}\n\n/**\n * Checks whether this row can be expanded.\n *\n * `options.getRowCanExpand` wins when provided. Otherwise rows can expand when\n * expanding is enabled and the row has subRows.\n *\n * @example\n * ```ts\n * const canExpand = row_getCanExpand(row)\n * ```\n */\nexport function row_getCanExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return (\n row.table.options.getRowCanExpand?.(row) ??\n ((row.table.options.enableExpanding ?? true) && !!row.subRows.length)\n )\n}\n\n/**\n * Checks whether every ancestor of this row is expanded.\n *\n * The current row is not considered; only its parent chain is walked.\n *\n * @example\n * ```ts\n * const parentsExpanded = row_getIsAllParentsExpanded(row)\n * ```\n */\nexport function row_getIsAllParentsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n let isFullyExpanded = true\n let currentRow = row\n\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = row.table.getRow(currentRow.parentId, true)\n isFullyExpanded = row_getIsExpanded(currentRow)\n }\n\n return isFullyExpanded\n}\n\n/**\n * Creates a row control handler that toggles this row's expanded state.\n *\n * The handler is a no-op when the row cannot expand.\n *\n * @example\n * ```ts\n * const onClick = row_getToggleExpandedHandler(row)\n * ```\n */\nexport function row_getToggleExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const canExpand = row_getCanExpand(row)\n\n return () => {\n if (!canExpand) return\n row_toggleExpanded(row)\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"rowExpandingFeature.utils.cjs","names":["cloneState"],"sources":["../../../src/features/row-expanding/rowExpandingFeature.utils.ts"],"sourcesContent":["import { cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n ExpandedState,\n ExpandedStateList,\n} from './rowExpandingFeature.types'\n\n/**\n * Creates the default expanded state.\n *\n * The feature default is an empty map, meaning no rows are expanded. Reset APIs\n * use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const expanded = getDefaultExpandedState()\n * ```\n */\nexport function getDefaultExpandedState(): ExpandedState {\n return {}\n}\n\n/**\n * Schedules an expanded-state reset after row-structure changes.\n *\n * The reset runs when `autoResetAll`, `autoResetExpanded`, or the default\n * client-side expanding behavior allows it. Manual expanding opts out unless\n * the reset options explicitly opt back in.\n *\n * @example\n * ```ts\n * table_autoResetExpanded(table)\n * ```\n */\nexport function table_autoResetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n table._reactivity.schedule(() => table_resetExpanded(table))\n }\n}\n\n/**\n * Routes an expanded-state updater through the table's expanded change handler.\n *\n * The updater may be `true`, a row-id map, or a function of the previous\n * expanded state, matching the instance `table.setExpanded` behavior.\n *\n * @example\n * ```ts\n * table_setExpanded(table, (old) => ({ ...old, [rowId]: true }))\n * ```\n */\nexport function table_setExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ExpandedState>) {\n table.options.onExpandedChange?.(updater)\n}\n\n/**\n * Expands or collapses every row.\n *\n * Passing `true` stores the special expanded-all state. Passing `false` stores\n * an empty map. Omitting the value toggles based on whether all rows are\n * currently expanded.\n *\n * @example\n * ```ts\n * table_toggleAllRowsExpanded(table)\n * ```\n */\nexport function table_toggleAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, expanded?: boolean) {\n if (expanded ?? !table_getIsAllRowsExpanded(table)) {\n table_setExpanded(table, true)\n } else {\n table_setExpanded(table, {})\n }\n}\n\n/**\n * Resets `expanded` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.expanded` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetExpanded(table)\n * table_resetExpanded(table, true)\n * ```\n */\nexport function table_resetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setExpanded(\n table,\n defaultState ? {} : cloneState(table.initialState.expanded ?? {}),\n )\n}\n\n/**\n * Checks whether at least one pre-paginated row can expand.\n *\n * Pagination is intentionally ignored so controls can reflect expandable rows\n * that may not be on the current page.\n *\n * @example\n * ```ts\n * const canExpand = table_getCanSomeRowsExpand(table)\n * ```\n */\nexport function table_getCanSomeRowsExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getPrePaginatedRowModel()\n .flatRows.some((row) => row_getCanExpand(row))\n}\n\n/**\n * Creates an event handler that toggles all rows expanded.\n *\n * React-style synthetic events are persisted when present before the table state\n * is toggled.\n *\n * @example\n * ```ts\n * const onClick = table_getToggleAllRowsExpandedHandler(table)\n * ```\n */\nexport function table_getToggleAllRowsExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table_toggleAllRowsExpanded(table)\n }\n}\n\n/**\n * Checks whether any row is expanded.\n *\n * The special expanded-all value `true` counts as some rows expanded.\n *\n * @example\n * ```ts\n * const someExpanded = table_getIsSomeRowsExpanded(table)\n * ```\n */\nexport function table_getIsSomeRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n return expanded === true || Object.values(expanded).some(Boolean)\n}\n\n/**\n * Checks whether every row in the current row model is expanded.\n *\n * The special expanded-all value `true` returns true immediately. Empty\n * expanded state returns false.\n *\n * @example\n * ```ts\n * const allExpanded = table_getIsAllRowsExpanded(table)\n * ```\n */\nexport function table_getIsAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\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(row))) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n}\n\n/**\n * Computes the deepest expanded row id depth.\n *\n * Row ids are split on `.`; expanded-all state scans the current row model,\n * while explicit expanded state scans its expanded id keys.\n *\n * @example\n * ```ts\n * const depth = table_getExpandedDepth(table)\n * ```\n */\nexport function table_getExpandedDepth<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n let maxDepth = 0\n\n const rowIds =\n table.atoms.expanded?.get() === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.atoms.expanded?.get() ?? {})\n\n rowIds.forEach((id) => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n}\n\n/**\n * Expands or collapses this row.\n *\n * Omitting `expanded` toggles the row. If the current state is expanded-all,\n * the function first materializes that state into a row-id map before applying\n * the row-specific change.\n *\n * @example\n * ```ts\n * row_toggleExpanded(row)\n * ```\n */\nexport function row_toggleExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, expanded?: boolean) {\n table_setExpanded(row.table, (old) => {\n const exists = old === true ? true : !!old[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(row.table.getRowModel().rowsById).forEach((rowId) => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n}\n\n/**\n * Checks whether this row is expanded.\n *\n * `options.getIsRowExpanded` can override state-derived behavior. Otherwise\n * the row is expanded when expanded state is `true` or contains this row id.\n *\n * @example\n * ```ts\n * const expanded = row_getIsExpanded(row)\n * ```\n */\nexport function row_getIsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const expanded: ExpandedState = row.table.atoms.expanded?.get() ?? {}\n\n return !!(\n row.table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded[row.id])\n )\n}\n\n/**\n * Checks whether this row can be expanded.\n *\n * `options.getRowCanExpand` wins when provided. Otherwise rows can expand when\n * expanding is enabled and the row has subRows.\n *\n * @example\n * ```ts\n * const canExpand = row_getCanExpand(row)\n * ```\n */\nexport function row_getCanExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return (\n row.table.options.getRowCanExpand?.(row) ??\n ((row.table.options.enableExpanding ?? true) && !!row.subRows.length)\n )\n}\n\n/**\n * Checks whether every ancestor of this row is expanded.\n *\n * The current row is not considered; only its parent chain is walked.\n *\n * @example\n * ```ts\n * const parentsExpanded = row_getIsAllParentsExpanded(row)\n * ```\n */\nexport function row_getIsAllParentsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n let isFullyExpanded = true\n let currentRow = row\n\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = row.table.getRow(currentRow.parentId, true)\n isFullyExpanded = row_getIsExpanded(currentRow)\n }\n\n return isFullyExpanded\n}\n\n/**\n * Creates a row control handler that toggles this row's expanded state.\n *\n * The handler is a no-op when the row cannot expand.\n *\n * @example\n * ```ts\n * const onClick = row_getToggleExpandedHandler(row)\n * ```\n */\nexport function row_getToggleExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const canExpand = row_getCanExpand(row)\n\n return () => {\n if (!canExpand) return\n row_toggleExpanded(row)\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rowExpandingFeature.utils.js","names":[],"sources":["../../../src/features/row-expanding/rowExpandingFeature.utils.ts"],"sourcesContent":["import { cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n ExpandedState,\n ExpandedStateList,\n} from './rowExpandingFeature.types'\n\n/**\n * Creates the default expanded state.\n *\n * The feature default is an empty map, meaning no rows are expanded. Reset APIs\n * use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const expanded = getDefaultExpandedState()\n * ```\n */\nexport function getDefaultExpandedState(): ExpandedState {\n return {}\n}\n\n/**\n * Schedules an expanded-state reset after row-structure changes.\n *\n * The reset runs when `autoResetAll`, `autoResetExpanded`, or the default\n * client-side expanding behavior allows it. Manual expanding opts out unless\n * the reset options explicitly opt back in.\n *\n * @example\n * ```ts\n * table_autoResetExpanded(table)\n * ```\n */\nexport function table_autoResetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n table._reactivity.schedule(() => table_resetExpanded(table))\n }\n}\n\n/**\n * Routes an expanded-state updater through the table's expanded change handler.\n *\n * The updater may be `true`, a row-id map, or a function of the previous\n * expanded state, matching the instance `table.setExpanded` behavior.\n *\n * @example\n * ```ts\n * table_setExpanded(table, (old) => ({ ...old, [rowId]: true }))\n * ```\n */\nexport function table_setExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ExpandedState>) {\n table.options.onExpandedChange?.(updater)\n}\n\n/**\n * Expands or collapses every row.\n *\n * Passing `true` stores the special expanded-all state. Passing `false` stores\n * an empty map. Omitting the value toggles based on whether all rows are\n * currently expanded.\n *\n * @example\n * ```ts\n * table_toggleAllRowsExpanded(table)\n * ```\n */\nexport function table_toggleAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, expanded?: boolean) {\n if (expanded ?? !table_getIsAllRowsExpanded(table)) {\n table_setExpanded(table, true)\n } else {\n table_setExpanded(table, {})\n }\n}\n\n/**\n * Resets `expanded` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.expanded` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetExpanded(table)\n * table_resetExpanded(table, true)\n * ```\n */\nexport function table_resetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setExpanded(\n table,\n defaultState ? {} : cloneState(table.initialState.expanded ?? {}),\n )\n}\n\n/**\n * Checks whether at least one pre-paginated row can expand.\n *\n * Pagination is intentionally ignored so controls can reflect expandable rows\n * that may not be on the current page.\n *\n * @example\n * ```ts\n * const canExpand = table_getCanSomeRowsExpand(table)\n * ```\n */\nexport function table_getCanSomeRowsExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getPrePaginatedRowModel()\n .flatRows.some((row) => row_getCanExpand(row))\n}\n\n/**\n * Creates an event handler that toggles all rows expanded.\n *\n * React-style synthetic events are persisted when present before the table state\n * is toggled.\n *\n * @example\n * ```ts\n * const onClick = table_getToggleAllRowsExpandedHandler(table)\n * ```\n */\nexport function table_getToggleAllRowsExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table_toggleAllRowsExpanded(table)\n }\n}\n\n/**\n * Checks whether any row is expanded.\n *\n * The special expanded-all value `true` counts as some rows expanded.\n *\n * @example\n * ```ts\n * const someExpanded = table_getIsSomeRowsExpanded(table)\n * ```\n */\nexport function table_getIsSomeRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n return expanded === true || Object.values(expanded).some(Boolean)\n}\n\n/**\n * Checks whether every row in the current row model is expanded.\n *\n * The special expanded-all value `true` returns true immediately. Empty\n * expanded state returns false.\n *\n * @example\n * ```ts\n * const allExpanded = table_getIsAllRowsExpanded(table)\n * ```\n */\nexport function table_getIsAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\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(row))) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n}\n\n/**\n * Computes the deepest expanded row id depth.\n *\n * Row ids are split on `.`; expanded-all state scans the current row model,\n * while explicit expanded state scans its expanded id keys.\n *\n * @example\n * ```ts\n * const depth = table_getExpandedDepth(table)\n * ```\n */\nexport function table_getExpandedDepth<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n let maxDepth = 0\n\n const rowIds =\n table.atoms.expanded?.get() === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.atoms.expanded?.get() ?? {})\n\n rowIds.forEach((id) => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n}\n\n/**\n * Expands or collapses this row.\n *\n * Omitting `expanded` toggles the row. If the current state is expanded-all,\n * the function first materializes that state into a row-id map before applying\n * the row-specific change.\n *\n * @example\n * ```ts\n * row_toggleExpanded(row)\n * ```\n */\nexport function row_toggleExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, expanded?: boolean) {\n table_setExpanded(row.table, (old) => {\n const exists = old === true ? true : !!old[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(row.table.getRowModel().rowsById).forEach((rowId) => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n}\n\n/**\n * Checks whether this row is expanded.\n *\n * `options.getIsRowExpanded` can override state-derived behavior. Otherwise\n * the row is expanded when expanded state is `true` or contains this row id.\n *\n * @example\n * ```ts\n * const expanded = row_getIsExpanded(row)\n * ```\n */\nexport function row_getIsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const expanded: ExpandedState = row.table.atoms.expanded?.get() ?? {}\n\n return !!(\n row.table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded[row.id])\n )\n}\n\n/**\n * Checks whether this row can be expanded.\n *\n * `options.getRowCanExpand` wins when provided. Otherwise rows can expand when\n * expanding is enabled and the row has subRows.\n *\n * @example\n * ```ts\n * const canExpand = row_getCanExpand(row)\n * ```\n */\nexport function row_getCanExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return (\n row.table.options.getRowCanExpand?.(row) ??\n ((row.table.options.enableExpanding ?? true) && !!row.subRows.length)\n )\n}\n\n/**\n * Checks whether every ancestor of this row is expanded.\n *\n * The current row is not considered; only its parent chain is walked.\n *\n * @example\n * ```ts\n * const parentsExpanded = row_getIsAllParentsExpanded(row)\n * ```\n */\nexport function row_getIsAllParentsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n let isFullyExpanded = true\n let currentRow = row\n\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = row.table.getRow(currentRow.parentId, true)\n isFullyExpanded = row_getIsExpanded(currentRow)\n }\n\n return isFullyExpanded\n}\n\n/**\n * Creates a row control handler that toggles this row's expanded state.\n *\n * The handler is a no-op when the row cannot expand.\n *\n * @example\n * ```ts\n * const onClick = row_getToggleExpandedHandler(row)\n * ```\n */\nexport function row_getToggleExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const canExpand = row_getCanExpand(row)\n\n return () => {\n if (!canExpand) return\n row_toggleExpanded(row)\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"rowExpandingFeature.utils.js","names":[],"sources":["../../../src/features/row-expanding/rowExpandingFeature.utils.ts"],"sourcesContent":["import { cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n ExpandedState,\n ExpandedStateList,\n} from './rowExpandingFeature.types'\n\n/**\n * Creates the default expanded state.\n *\n * The feature default is an empty map, meaning no rows are expanded. Reset APIs\n * use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const expanded = getDefaultExpandedState()\n * ```\n */\nexport function getDefaultExpandedState(): ExpandedState {\n return {}\n}\n\n/**\n * Schedules an expanded-state reset after row-structure changes.\n *\n * The reset runs when `autoResetAll`, `autoResetExpanded`, or the default\n * client-side expanding behavior allows it. Manual expanding opts out unless\n * the reset options explicitly opt back in.\n *\n * @example\n * ```ts\n * table_autoResetExpanded(table)\n * ```\n */\nexport function table_autoResetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n table._reactivity.schedule(() => table_resetExpanded(table))\n }\n}\n\n/**\n * Routes an expanded-state updater through the table's expanded change handler.\n *\n * The updater may be `true`, a row-id map, or a function of the previous\n * expanded state, matching the instance `table.setExpanded` behavior.\n *\n * @example\n * ```ts\n * table_setExpanded(table, (old) => ({ ...old, [rowId]: true }))\n * ```\n */\nexport function table_setExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ExpandedState>) {\n table.options.onExpandedChange?.(updater)\n}\n\n/**\n * Expands or collapses every row.\n *\n * Passing `true` stores the special expanded-all state. Passing `false` stores\n * an empty map. Omitting the value toggles based on whether all rows are\n * currently expanded.\n *\n * @example\n * ```ts\n * table_toggleAllRowsExpanded(table)\n * ```\n */\nexport function table_toggleAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, expanded?: boolean) {\n if (expanded ?? !table_getIsAllRowsExpanded(table)) {\n table_setExpanded(table, true)\n } else {\n table_setExpanded(table, {})\n }\n}\n\n/**\n * Resets `expanded` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.expanded` when it\n * exists. Passing `true` ignores initial state and resets to `{}`.\n *\n * @example\n * ```ts\n * table_resetExpanded(table)\n * table_resetExpanded(table, true)\n * ```\n */\nexport function table_resetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setExpanded(\n table,\n defaultState ? {} : cloneState(table.initialState.expanded ?? {}),\n )\n}\n\n/**\n * Checks whether at least one pre-paginated row can expand.\n *\n * Pagination is intentionally ignored so controls can reflect expandable rows\n * that may not be on the current page.\n *\n * @example\n * ```ts\n * const canExpand = table_getCanSomeRowsExpand(table)\n * ```\n */\nexport function table_getCanSomeRowsExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getPrePaginatedRowModel()\n .flatRows.some((row) => row_getCanExpand(row))\n}\n\n/**\n * Creates an event handler that toggles all rows expanded.\n *\n * React-style synthetic events are persisted when present before the table state\n * is toggled.\n *\n * @example\n * ```ts\n * const onClick = table_getToggleAllRowsExpandedHandler(table)\n * ```\n */\nexport function table_getToggleAllRowsExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table_toggleAllRowsExpanded(table)\n }\n}\n\n/**\n * Checks whether any row is expanded.\n *\n * The special expanded-all value `true` counts as some rows expanded.\n *\n * @example\n * ```ts\n * const someExpanded = table_getIsSomeRowsExpanded(table)\n * ```\n */\nexport function table_getIsSomeRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n return expanded === true || Object.values(expanded).some(Boolean)\n}\n\n/**\n * Checks whether every row in the current row model is expanded.\n *\n * The special expanded-all value `true` returns true immediately. Empty\n * expanded state returns false.\n *\n * @example\n * ```ts\n * const allExpanded = table_getIsAllRowsExpanded(table)\n * ```\n */\nexport function table_getIsAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.atoms.expanded?.get() ?? {}\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\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(row))) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n}\n\n/**\n * Computes the deepest expanded row id depth.\n *\n * Row ids are split on `.`; expanded-all state scans the current row model,\n * while explicit expanded state scans its expanded id keys.\n *\n * @example\n * ```ts\n * const depth = table_getExpandedDepth(table)\n * ```\n */\nexport function table_getExpandedDepth<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n let maxDepth = 0\n\n const rowIds =\n table.atoms.expanded?.get() === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.atoms.expanded?.get() ?? {})\n\n rowIds.forEach((id) => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n}\n\n/**\n * Expands or collapses this row.\n *\n * Omitting `expanded` toggles the row. If the current state is expanded-all,\n * the function first materializes that state into a row-id map before applying\n * the row-specific change.\n *\n * @example\n * ```ts\n * row_toggleExpanded(row)\n * ```\n */\nexport function row_toggleExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, expanded?: boolean) {\n table_setExpanded(row.table, (old) => {\n const exists = old === true ? true : !!old[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(row.table.getRowModel().rowsById).forEach((rowId) => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n}\n\n/**\n * Checks whether this row is expanded.\n *\n * `options.getIsRowExpanded` can override state-derived behavior. Otherwise\n * the row is expanded when expanded state is `true` or contains this row id.\n *\n * @example\n * ```ts\n * const expanded = row_getIsExpanded(row)\n * ```\n */\nexport function row_getIsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const expanded: ExpandedState = row.table.atoms.expanded?.get() ?? {}\n\n return !!(\n row.table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded[row.id])\n )\n}\n\n/**\n * Checks whether this row can be expanded.\n *\n * `options.getRowCanExpand` wins when provided. Otherwise rows can expand when\n * expanding is enabled and the row has subRows.\n *\n * @example\n * ```ts\n * const canExpand = row_getCanExpand(row)\n * ```\n */\nexport function row_getCanExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return (\n row.table.options.getRowCanExpand?.(row) ??\n ((row.table.options.enableExpanding ?? true) && !!row.subRows.length)\n )\n}\n\n/**\n * Checks whether every ancestor of this row is expanded.\n *\n * The current row is not considered; only its parent chain is walked.\n *\n * @example\n * ```ts\n * const parentsExpanded = row_getIsAllParentsExpanded(row)\n * ```\n */\nexport function row_getIsAllParentsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n let isFullyExpanded = true\n let currentRow = row\n\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = row.table.getRow(currentRow.parentId, true)\n isFullyExpanded = row_getIsExpanded(currentRow)\n }\n\n return isFullyExpanded\n}\n\n/**\n * Creates a row control handler that toggles this row's expanded state.\n *\n * The handler is a no-op when the row cannot expand.\n *\n * @example\n * ```ts\n * const onClick = row_getToggleExpandedHandler(row)\n * ```\n */\nexport function row_getToggleExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const canExpand = row_getCanExpand(row)\n\n return () => {\n if (!canExpand) return\n row_toggleExpanded(row)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAqBA,SAAgB,0BAAyC;CACvD,OAAO,CAAC;AACV;;;;;;;;;;;;;AAcA,SAAgB,wBAGd,OAAyC;CACzC,IACE,MAAM,QAAQ,gBACd,MAAM,QAAQ,qBACd,CAAC,MAAM,QAAQ,iBAEf,MAAM,YAAY,eAAe,oBAAoB,KAAK,CAAC;AAE/D;;;;;;;;;;;;AAaA,SAAgB,kBAGd,OAAyC,SAAiC;;CAC1E,iDAAM,SAAQ,6GAAmB,OAAO;AAC1C;;;;;;;;;;;;;AAcA,SAAgB,4BAGd,OAAyC,UAAoB;CAC7D,IAAI,YAAY,CAAC,2BAA2B,KAAK,GAC/C,kBAAkB,OAAO,IAAI;MAE7B,kBAAkB,OAAO,CAAC,CAAC;AAE/B;;;;;;;;;;;;;AAcA,SAAgB,oBAGd,OAAyC,cAAwB;CACjE,kBACE,OACA,eAAe,CAAC,IAAI,WAAW,MAAM,aAAa,YAAY,CAAC,CAAC,CAClE;AACF;;;;;;;;;;;;AAaA,SAAgB,2BAGd,OAAyC;CACzC,OAAO,MACJ,wBAAwB,EACxB,SAAS,MAAM,QAAQ,iBAAiB,GAAG,CAAC;AACjD;;;;;;;;;;;;AAaA,SAAgB,sCAGd,OAAyC;CACzC,QAAQ,MAAe;;EACpB,YAAC,EAAU,2DAAU;EACtB,4BAA4B,KAAK;CACnC;AACF;;;;;;;;;;;AAYA,SAAgB,4BAGd,OAAyC;;CACzC,MAAM,qCAAW,MAAM,MAAM,wFAAU,IAAI,MAAK,CAAC;CACjD,OAAO,aAAa,QAAQ,OAAO,OAAO,QAAQ,EAAE,KAAK,OAAO;AAClE;;;;;;;;;;;;AAaA,SAAgB,2BAGd,OAAyC;;CACzC,MAAM,sCAAW,MAAM,MAAM,0FAAU,IAAI,MAAK,CAAC;CAGjD,IAAI,aAAa,MACf,OAAO;CAGT,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,QACzB,OAAO;CAIT,IAAI,MAAM,YAAY,EAAE,SAAS,MAAM,QAAQ,CAAC,kBAAkB,GAAG,CAAC,GACpE,OAAO;CAIT,OAAO;AACT;;;;;;;;;;;;AAaA,SAAgB,uBAGd,OAAyC;;CACzC,IAAI,WAAW;CAOf,4BAJE,MAAM,MAAM,0FAAU,IAAI,OAAM,OAC5B,OAAO,KAAK,MAAM,YAAY,EAAE,QAAQ,IACxC,OAAO,gCAAK,MAAM,MAAM,0FAAU,IAAI,MAAK,CAAC,CAAC,GAE5C,SAAS,OAAO;EACrB,MAAM,UAAU,GAAG,MAAM,GAAG;EAC5B,WAAW,KAAK,IAAI,UAAU,QAAQ,MAAM;CAC9C,CAAC;CAED,OAAO;AACT;;;;;;;;;;;;;AAcA,SAAgB,mBAGd,KAA4B,UAAoB;CAChD,kBAAkB,IAAI,QAAQ,QAAQ;EACpC,MAAM,SAAS,QAAQ,OAAO,OAAO,CAAC,CAAC,IAAI,IAAI;EAE/C,IAAI,cAAiC,CAAC;EAEtC,IAAI,QAAQ,MACV,OAAO,KAAK,IAAI,MAAM,YAAY,EAAE,QAAQ,EAAE,SAAS,UAAU;GAC/D,YAAY,SAAS;EACvB,CAAC;OAED,cAAc;EAGhB,WAAW,YAAY,CAAC;EAExB,IAAI,CAAC,UAAU,UACb,OAAO;GACL,GAAG;IACF,IAAI,KAAK;EACZ;EAGF,IAAI,UAAU,CAAC,UAAU;GACvB,MAAM,GAAG,IAAI,KAAK,GAAG,GAAG,SAAS;GACjC,OAAO;EACT;EAEA,OAAO;CACT,CAAC;AACH;;;;;;;;;;;;AAaA,SAAgB,kBAGd,KAA4B;;CAC5B,MAAM,qCAA0B,IAAI,MAAM,MAAM,wFAAU,IAAI,MAAK,CAAC;CAEpE,OAAO,CAAC,kDACN,IAAI,MAAM,SAAQ,yHAAmB,GAAG,OACvC,aAAa,QAAQ,SAAS,IAAI;AAEvC;;;;;;;;;;;;AAaA,SAAgB,iBAGd,KAA4B;;CAC5B,yDACE,IAAI,MAAM,SAAQ,2HAAkB,GAAG,QACrC,IAAI,MAAM,QAAQ,mBAAmB,SAAS,CAAC,CAAC,IAAI,QAAQ;AAElE;;;;;;;;;;;AAYA,SAAgB,4BAGd,KAA4B;CAC5B,IAAI,kBAAkB;CACtB,IAAI,aAAa;CAEjB,OAAO,mBAAmB,WAAW,UAAU;EAC7C,aAAa,IAAI,MAAM,OAAO,WAAW,UAAU,IAAI;EACvD,kBAAkB,kBAAkB,UAAU;CAChD;CAEA,OAAO;AACT;;;;;;;;;;;AAYA,SAAgB,6BAGd,KAA4B;CAC5B,MAAM,YAAY,iBAAiB,GAAG;CAEtC,aAAa;EACX,IAAI,CAAC,WAAW;EAChB,mBAAmB,GAAG;CACxB;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"createPaginatedRowModel.cjs","names":["tableMemo","getDefaultPaginationState","expandRows"],"sources":["../../../src/features/row-pagination/createPaginatedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { expandRows } from '../row-expanding/createExpandedRowModel'\nimport { getDefaultPaginationState } from './rowPaginationFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized paginated row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table: Table_Internal<TFeatures, TData> = _table\n return tableMemo({\n feature: 'rowPaginationFeature',\n table,\n fnName: 'table.getPaginatedRowModel',\n memoDeps: () => [\n table.getPrePaginatedRowModel(),\n table.atoms.pagination?.get(),\n table.options.paginateExpandedRows\n ? table.atoms.expanded?.get()\n : undefined,\n ],\n fn: () => _createPaginatedRowModel(table),\n })\n }\n}\n\nfunction _createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const prePaginatedRowModel = table.getPrePaginatedRowModel()\n const pagination = table.atoms.pagination?.get()\n\n if (!prePaginatedRowModel.rows.length) {\n return prePaginatedRowModel\n }\n\n const { pageSize, pageIndex } = pagination ?? getDefaultPaginationState()\n const { rows, flatRows, rowsById } = prePaginatedRowModel\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n const paginatedRows = rows.slice(pageStart, pageEnd)\n\n let paginatedRowModel: RowModel<TFeatures, TData>\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows: paginatedRows,\n flatRows,\n rowsById,\n })\n } else {\n paginatedRowModel = {\n rows: paginatedRows,\n flatRows,\n rowsById,\n }\n }\n\n paginatedRowModel.flatRows = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n paginatedRowModel.flatRows.push(row)\n if (row.subRows.length) {\n row.subRows.forEach(handleRow)\n }\n }\n\n paginatedRowModel.rows.forEach(handleRow)\n\n return paginatedRowModel\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,0BAG0D;CACxE,QAAQ,WAAW;EACjB,MAAM,QAA0C;EAChD,OAAOA,wBAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;;KACd,MAAM,yBAAyB;8BAC/B,MAAM,MAAM,0FAAY,KAAK;KAC7B,MAAM,QAAQ,gDACV,MAAM,MAAM,wFAAU,KAAK,GAC3B;KACL;;GACD,UAAU,yBAAyB,MAAM;GAC1C,CAAC;;;AAIN,SAAS,yBAGP,OAAqE;;CACrE,MAAM,uBAAuB,MAAM,yBAAyB;CAC5D,MAAM,uCAAa,MAAM,MAAM,4FAAY,KAAK;CAEhD,IAAI,CAAC,qBAAqB,KAAK,QAC7B,OAAO;CAGT,MAAM,EAAE,UAAU,cAAc,cAAcC,8DAA2B;CACzE,MAAM,EAAE,MAAM,UAAU,aAAa;CACrC,MAAM,YAAY,WAAW;CAC7B,MAAM,UAAU,YAAY;CAE5B,MAAM,gBAAgB,KAAK,MAAM,WAAW,QAAQ;CAEpD,IAAI;CAEJ,IAAI,CAAC,MAAM,QAAQ,sBACjB,oBAAoBC,0CAAW;EAC7B,MAAM;EACN;EACA;EACD,CAAC;MAEF,oBAAoB;EAClB,MAAM;EACN;EACA;EACD;CAGH,kBAAkB,WAAW,EAAE;CAE/B,MAAM,aAAa,QAA+B;EAChD,kBAAkB,SAAS,KAAK,IAAI;EACpC,IAAI,IAAI,QAAQ,QACd,IAAI,QAAQ,QAAQ,UAAU;;CAIlC,kBAAkB,KAAK,QAAQ,UAAU;CAEzC,OAAO"}
1
+ {"version":3,"file":"createPaginatedRowModel.cjs","names":["tableMemo","getDefaultPaginationState","expandRows"],"sources":["../../../src/features/row-pagination/createPaginatedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { expandRows } from '../row-expanding/createExpandedRowModel'\nimport { getDefaultPaginationState } from './rowPaginationFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized paginated row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table: Table_Internal<TFeatures, TData> = _table\n return tableMemo({\n feature: 'rowPaginationFeature',\n table,\n fnName: 'table.getPaginatedRowModel',\n memoDeps: () => [\n table.getPrePaginatedRowModel(),\n table.atoms.pagination?.get(),\n table.options.paginateExpandedRows\n ? table.atoms.expanded?.get()\n : undefined,\n ],\n fn: () => _createPaginatedRowModel(table),\n })\n }\n}\n\nfunction _createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const prePaginatedRowModel = table.getPrePaginatedRowModel()\n const pagination = table.atoms.pagination?.get()\n\n if (!prePaginatedRowModel.rows.length) {\n return prePaginatedRowModel\n }\n\n const { pageSize, pageIndex } = pagination ?? getDefaultPaginationState()\n const { rows, flatRows, rowsById } = prePaginatedRowModel\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n const paginatedRows = rows.slice(pageStart, pageEnd)\n\n let paginatedRowModel: RowModel<TFeatures, TData>\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows: paginatedRows,\n flatRows,\n rowsById,\n })\n } else {\n paginatedRowModel = {\n rows: paginatedRows,\n flatRows,\n rowsById,\n }\n }\n\n paginatedRowModel.flatRows = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n paginatedRowModel.flatRows.push(row)\n if (row.subRows.length) {\n row.subRows.forEach(handleRow)\n }\n }\n\n paginatedRowModel.rows.forEach(handleRow)\n\n return paginatedRowModel\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,0BAG0D;CACxE,QAAQ,WAAW;EACjB,MAAM,QAA0C;EAChD,OAAOA,wBAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;;KACd,MAAM,wBAAwB;8BAC9B,MAAM,MAAM,0FAAY,IAAI;KAC5B,MAAM,QAAQ,gDACV,MAAM,MAAM,wFAAU,IAAI,IAC1B;IACN;;GACA,UAAU,yBAAyB,KAAK;EAC1C,CAAC;CACH;AACF;AAEA,SAAS,yBAGP,OAAqE;;CACrE,MAAM,uBAAuB,MAAM,wBAAwB;CAC3D,MAAM,uCAAa,MAAM,MAAM,4FAAY,IAAI;CAE/C,IAAI,CAAC,qBAAqB,KAAK,QAC7B,OAAO;CAGT,MAAM,EAAE,UAAU,cAAc,cAAcC,6DAA0B;CACxE,MAAM,EAAE,MAAM,UAAU,aAAa;CACrC,MAAM,YAAY,WAAW;CAC7B,MAAM,UAAU,YAAY;CAE5B,MAAM,gBAAgB,KAAK,MAAM,WAAW,OAAO;CAEnD,IAAI;CAEJ,IAAI,CAAC,MAAM,QAAQ,sBACjB,oBAAoBC,0CAAW;EAC7B,MAAM;EACN;EACA;CACF,CAAC;MAED,oBAAoB;EAClB,MAAM;EACN;EACA;CACF;CAGF,kBAAkB,WAAW,CAAC;CAE9B,MAAM,aAAa,QAA+B;EAChD,kBAAkB,SAAS,KAAK,GAAG;EACnC,IAAI,IAAI,QAAQ,QACd,IAAI,QAAQ,QAAQ,SAAS;CAEjC;CAEA,kBAAkB,KAAK,QAAQ,SAAS;CAExC,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"createPaginatedRowModel.js","names":[],"sources":["../../../src/features/row-pagination/createPaginatedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { expandRows } from '../row-expanding/createExpandedRowModel'\nimport { getDefaultPaginationState } from './rowPaginationFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized paginated row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table: Table_Internal<TFeatures, TData> = _table\n return tableMemo({\n feature: 'rowPaginationFeature',\n table,\n fnName: 'table.getPaginatedRowModel',\n memoDeps: () => [\n table.getPrePaginatedRowModel(),\n table.atoms.pagination?.get(),\n table.options.paginateExpandedRows\n ? table.atoms.expanded?.get()\n : undefined,\n ],\n fn: () => _createPaginatedRowModel(table),\n })\n }\n}\n\nfunction _createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const prePaginatedRowModel = table.getPrePaginatedRowModel()\n const pagination = table.atoms.pagination?.get()\n\n if (!prePaginatedRowModel.rows.length) {\n return prePaginatedRowModel\n }\n\n const { pageSize, pageIndex } = pagination ?? getDefaultPaginationState()\n const { rows, flatRows, rowsById } = prePaginatedRowModel\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n const paginatedRows = rows.slice(pageStart, pageEnd)\n\n let paginatedRowModel: RowModel<TFeatures, TData>\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows: paginatedRows,\n flatRows,\n rowsById,\n })\n } else {\n paginatedRowModel = {\n rows: paginatedRows,\n flatRows,\n rowsById,\n }\n }\n\n paginatedRowModel.flatRows = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n paginatedRowModel.flatRows.push(row)\n if (row.subRows.length) {\n row.subRows.forEach(handleRow)\n }\n }\n\n paginatedRowModel.rows.forEach(handleRow)\n\n return paginatedRowModel\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,0BAG0D;CACxE,QAAQ,WAAW;EACjB,MAAM,QAA0C;EAChD,OAAO,UAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;;KACd,MAAM,yBAAyB;8BAC/B,MAAM,MAAM,0FAAY,KAAK;KAC7B,MAAM,QAAQ,gDACV,MAAM,MAAM,wFAAU,KAAK,GAC3B;KACL;;GACD,UAAU,yBAAyB,MAAM;GAC1C,CAAC;;;AAIN,SAAS,yBAGP,OAAqE;;CACrE,MAAM,uBAAuB,MAAM,yBAAyB;CAC5D,MAAM,uCAAa,MAAM,MAAM,4FAAY,KAAK;CAEhD,IAAI,CAAC,qBAAqB,KAAK,QAC7B,OAAO;CAGT,MAAM,EAAE,UAAU,cAAc,cAAc,2BAA2B;CACzE,MAAM,EAAE,MAAM,UAAU,aAAa;CACrC,MAAM,YAAY,WAAW;CAC7B,MAAM,UAAU,YAAY;CAE5B,MAAM,gBAAgB,KAAK,MAAM,WAAW,QAAQ;CAEpD,IAAI;CAEJ,IAAI,CAAC,MAAM,QAAQ,sBACjB,oBAAoB,WAAW;EAC7B,MAAM;EACN;EACA;EACD,CAAC;MAEF,oBAAoB;EAClB,MAAM;EACN;EACA;EACD;CAGH,kBAAkB,WAAW,EAAE;CAE/B,MAAM,aAAa,QAA+B;EAChD,kBAAkB,SAAS,KAAK,IAAI;EACpC,IAAI,IAAI,QAAQ,QACd,IAAI,QAAQ,QAAQ,UAAU;;CAIlC,kBAAkB,KAAK,QAAQ,UAAU;CAEzC,OAAO"}
1
+ {"version":3,"file":"createPaginatedRowModel.js","names":[],"sources":["../../../src/features/row-pagination/createPaginatedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { expandRows } from '../row-expanding/createExpandedRowModel'\nimport { getDefaultPaginationState } from './rowPaginationFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized paginated row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table: Table_Internal<TFeatures, TData> = _table\n return tableMemo({\n feature: 'rowPaginationFeature',\n table,\n fnName: 'table.getPaginatedRowModel',\n memoDeps: () => [\n table.getPrePaginatedRowModel(),\n table.atoms.pagination?.get(),\n table.options.paginateExpandedRows\n ? table.atoms.expanded?.get()\n : undefined,\n ],\n fn: () => _createPaginatedRowModel(table),\n })\n }\n}\n\nfunction _createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const prePaginatedRowModel = table.getPrePaginatedRowModel()\n const pagination = table.atoms.pagination?.get()\n\n if (!prePaginatedRowModel.rows.length) {\n return prePaginatedRowModel\n }\n\n const { pageSize, pageIndex } = pagination ?? getDefaultPaginationState()\n const { rows, flatRows, rowsById } = prePaginatedRowModel\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n const paginatedRows = rows.slice(pageStart, pageEnd)\n\n let paginatedRowModel: RowModel<TFeatures, TData>\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows: paginatedRows,\n flatRows,\n rowsById,\n })\n } else {\n paginatedRowModel = {\n rows: paginatedRows,\n flatRows,\n rowsById,\n }\n }\n\n paginatedRowModel.flatRows = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n paginatedRowModel.flatRows.push(row)\n if (row.subRows.length) {\n row.subRows.forEach(handleRow)\n }\n }\n\n paginatedRowModel.rows.forEach(handleRow)\n\n return paginatedRowModel\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,0BAG0D;CACxE,QAAQ,WAAW;EACjB,MAAM,QAA0C;EAChD,OAAO,UAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;;KACd,MAAM,wBAAwB;8BAC9B,MAAM,MAAM,0FAAY,IAAI;KAC5B,MAAM,QAAQ,gDACV,MAAM,MAAM,wFAAU,IAAI,IAC1B;IACN;;GACA,UAAU,yBAAyB,KAAK;EAC1C,CAAC;CACH;AACF;AAEA,SAAS,yBAGP,OAAqE;;CACrE,MAAM,uBAAuB,MAAM,wBAAwB;CAC3D,MAAM,uCAAa,MAAM,MAAM,4FAAY,IAAI;CAE/C,IAAI,CAAC,qBAAqB,KAAK,QAC7B,OAAO;CAGT,MAAM,EAAE,UAAU,cAAc,cAAc,0BAA0B;CACxE,MAAM,EAAE,MAAM,UAAU,aAAa;CACrC,MAAM,YAAY,WAAW;CAC7B,MAAM,UAAU,YAAY;CAE5B,MAAM,gBAAgB,KAAK,MAAM,WAAW,OAAO;CAEnD,IAAI;CAEJ,IAAI,CAAC,MAAM,QAAQ,sBACjB,oBAAoB,WAAW;EAC7B,MAAM;EACN;EACA;CACF,CAAC;MAED,oBAAoB;EAClB,MAAM;EACN;EACA;CACF;CAGF,kBAAkB,WAAW,CAAC;CAE9B,MAAM,aAAa,QAA+B;EAChD,kBAAkB,SAAS,KAAK,GAAG;EACnC,IAAI,IAAI,QAAQ,QACd,IAAI,QAAQ,QAAQ,SAAS;CAEjC;CAEA,kBAAkB,KAAK,QAAQ,SAAS;CAExC,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"rowPaginationFeature.cjs","names":["getDefaultPaginationState","makeStateUpdater","table_autoResetPageIndex","table_setPagination","table_resetPagination","table_setPageIndex","table_resetPageIndex","table_setPageSize","table_getPageCount","table_resetPageSize","table_getPageOptions","table_getCanPreviousPage","table_getCanNextPage","table_previousPage","table_nextPage","table_firstPage","table_lastPage","table_getRowCount"],"sources":["../../../src/features/row-pagination/rowPaginationFeature.ts"],"sourcesContent":["import { assignTableAPIs, makeStateUpdater } from '../../utils'\nimport {\n getDefaultPaginationState,\n table_autoResetPageIndex,\n table_firstPage,\n table_getCanNextPage,\n table_getCanPreviousPage,\n table_getPageCount,\n table_getPageOptions,\n table_getRowCount,\n table_lastPage,\n table_nextPage,\n table_previousPage,\n table_resetPageIndex,\n table_resetPageSize,\n table_resetPagination,\n table_setPageIndex,\n table_setPageSize,\n table_setPagination,\n} from './rowPaginationFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// CachedRowModel_Paginated,\n// CreateRowModel_Paginated,\n// TableOptions_RowPagination,\n// TableState_RowPagination,\n// Table_RowPagination,\n// } from './rowPaginationFeature.types'\n\nexport interface RowPaginationFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // CachedRowModel: CachedRowModel_Paginated<TFeatures, TData>\n // CreateRowModels: CreateRowModel_Paginated<TFeatures, TData>\n // Table: Table_RowPagination<TFeatures, TData>\n // TableOptions: TableOptions_RowPagination<TFeatures, TData>\n // TableState: TableState_RowPagination\n}\n\n/**\n * Creates the stock row pagination feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructRowPaginationFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowPaginationFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n ...initialState,\n pagination: {\n ...getDefaultPaginationState(),\n ...initialState.pagination,\n },\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowPaginationFeature', table, {\n table_autoResetPageIndex: {\n fn: () => table_autoResetPageIndex(table),\n },\n table_setPagination: {\n fn: (updater) => table_setPagination(table, updater),\n },\n table_resetPagination: {\n fn: (defaultState) => table_resetPagination(table, defaultState),\n },\n table_setPageIndex: {\n fn: (updater) => table_setPageIndex(table, updater),\n },\n table_resetPageIndex: {\n fn: (defaultState) => table_resetPageIndex(table, defaultState),\n },\n table_setPageSize: {\n fn: (updater) => table_setPageSize(table, updater),\n },\n table_getPageCount: {\n fn: () => table_getPageCount(table),\n },\n table_resetPageSize: {\n fn: (defaultState) => table_resetPageSize(table, defaultState),\n },\n table_getPageOptions: {\n fn: () => table_getPageOptions(table),\n },\n table_getCanPreviousPage: {\n fn: () => table_getCanPreviousPage(table),\n },\n table_getCanNextPage: {\n fn: () => table_getCanNextPage(table),\n },\n table_previousPage: {\n fn: () => table_previousPage(table),\n },\n table_nextPage: {\n fn: () => table_nextPage(table),\n },\n table_firstPage: {\n fn: () => table_firstPage(table),\n },\n table_lastPage: {\n fn: () => table_lastPage(table),\n },\n table_getRowCount: {\n fn: () => table_getRowCount(table),\n },\n })\n },\n }\n}\n\n/**\n * The stock row pagination feature.\n *\n * Register this feature to add pagination state, page navigation APIs, and\n * pagination-aware row model helpers to a table.\n */\nexport const rowPaginationFeature = constructRowPaginationFeature()\n"],"mappings":";;;;;;;;;AA8CA,SAAgB,gCAGsD;CACpE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,GAAG;IACH,YAAY;KACV,GAAGA,8DAA2B;KAC9B,GAAG,aAAa;KACjB;IACF;;EAGH,yBAAyB,UAAU;GACjC,OAAO,EACL,oBAAoBC,+BAAiB,cAAc,MAAM,EAC1D;;EAGH,qBAAqB,UAAU;GAC7B,8BAAgB,wBAAwB,OAAO;IAC7C,0BAA0B,EACxB,UAAUC,4DAAyB,MAAM,EAC1C;IACD,qBAAqB,EACnB,KAAK,YAAYC,uDAAoB,OAAO,QAAQ,EACrD;IACD,uBAAuB,EACrB,KAAK,iBAAiBC,yDAAsB,OAAO,aAAa,EACjE;IACD,oBAAoB,EAClB,KAAK,YAAYC,sDAAmB,OAAO,QAAQ,EACpD;IACD,sBAAsB,EACpB,KAAK,iBAAiBC,wDAAqB,OAAO,aAAa,EAChE;IACD,mBAAmB,EACjB,KAAK,YAAYC,qDAAkB,OAAO,QAAQ,EACnD;IACD,oBAAoB,EAClB,UAAUC,sDAAmB,MAAM,EACpC;IACD,qBAAqB,EACnB,KAAK,iBAAiBC,uDAAoB,OAAO,aAAa,EAC/D;IACD,sBAAsB,EACpB,UAAUC,wDAAqB,MAAM,EACtC;IACD,0BAA0B,EACxB,UAAUC,4DAAyB,MAAM,EAC1C;IACD,sBAAsB,EACpB,UAAUC,wDAAqB,MAAM,EACtC;IACD,oBAAoB,EAClB,UAAUC,sDAAmB,MAAM,EACpC;IACD,gBAAgB,EACd,UAAUC,kDAAe,MAAM,EAChC;IACD,iBAAiB,EACf,UAAUC,mDAAgB,MAAM,EACjC;IACD,gBAAgB,EACd,UAAUC,kDAAe,MAAM,EAChC;IACD,mBAAmB,EACjB,UAAUC,qDAAkB,MAAM,EACnC;IACF,CAAC;;EAEL;;;;;;;;AASH,MAAa,uBAAuB,+BAA+B"}
1
+ {"version":3,"file":"rowPaginationFeature.cjs","names":["getDefaultPaginationState","makeStateUpdater","table_autoResetPageIndex","table_setPagination","table_resetPagination","table_setPageIndex","table_resetPageIndex","table_setPageSize","table_getPageCount","table_resetPageSize","table_getPageOptions","table_getCanPreviousPage","table_getCanNextPage","table_previousPage","table_nextPage","table_firstPage","table_lastPage","table_getRowCount"],"sources":["../../../src/features/row-pagination/rowPaginationFeature.ts"],"sourcesContent":["import { assignTableAPIs, makeStateUpdater } from '../../utils'\nimport {\n getDefaultPaginationState,\n table_autoResetPageIndex,\n table_firstPage,\n table_getCanNextPage,\n table_getCanPreviousPage,\n table_getPageCount,\n table_getPageOptions,\n table_getRowCount,\n table_lastPage,\n table_nextPage,\n table_previousPage,\n table_resetPageIndex,\n table_resetPageSize,\n table_resetPagination,\n table_setPageIndex,\n table_setPageSize,\n table_setPagination,\n} from './rowPaginationFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// CachedRowModel_Paginated,\n// CreateRowModel_Paginated,\n// TableOptions_RowPagination,\n// TableState_RowPagination,\n// Table_RowPagination,\n// } from './rowPaginationFeature.types'\n\nexport interface RowPaginationFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // CachedRowModel: CachedRowModel_Paginated<TFeatures, TData>\n // CreateRowModels: CreateRowModel_Paginated<TFeatures, TData>\n // Table: Table_RowPagination<TFeatures, TData>\n // TableOptions: TableOptions_RowPagination<TFeatures, TData>\n // TableState: TableState_RowPagination\n}\n\n/**\n * Creates the stock row pagination feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructRowPaginationFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowPaginationFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n ...initialState,\n pagination: {\n ...getDefaultPaginationState(),\n ...initialState.pagination,\n },\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowPaginationFeature', table, {\n table_autoResetPageIndex: {\n fn: () => table_autoResetPageIndex(table),\n },\n table_setPagination: {\n fn: (updater) => table_setPagination(table, updater),\n },\n table_resetPagination: {\n fn: (defaultState) => table_resetPagination(table, defaultState),\n },\n table_setPageIndex: {\n fn: (updater) => table_setPageIndex(table, updater),\n },\n table_resetPageIndex: {\n fn: (defaultState) => table_resetPageIndex(table, defaultState),\n },\n table_setPageSize: {\n fn: (updater) => table_setPageSize(table, updater),\n },\n table_getPageCount: {\n fn: () => table_getPageCount(table),\n },\n table_resetPageSize: {\n fn: (defaultState) => table_resetPageSize(table, defaultState),\n },\n table_getPageOptions: {\n fn: () => table_getPageOptions(table),\n },\n table_getCanPreviousPage: {\n fn: () => table_getCanPreviousPage(table),\n },\n table_getCanNextPage: {\n fn: () => table_getCanNextPage(table),\n },\n table_previousPage: {\n fn: () => table_previousPage(table),\n },\n table_nextPage: {\n fn: () => table_nextPage(table),\n },\n table_firstPage: {\n fn: () => table_firstPage(table),\n },\n table_lastPage: {\n fn: () => table_lastPage(table),\n },\n table_getRowCount: {\n fn: () => table_getRowCount(table),\n },\n })\n },\n }\n}\n\n/**\n * The stock row pagination feature.\n *\n * Register this feature to add pagination state, page navigation APIs, and\n * pagination-aware row model helpers to a table.\n */\nexport const rowPaginationFeature = constructRowPaginationFeature()\n"],"mappings":";;;;;;;;;AA8CA,SAAgB,gCAGsD;CACpE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,GAAG;IACH,YAAY;KACV,GAAGA,6DAA0B;KAC7B,GAAG,aAAa;IAClB;GACF;EACF;EAEA,yBAAyB,UAAU;GACjC,OAAO,EACL,oBAAoBC,+BAAiB,cAAc,KAAK,EAC1D;EACF;EAEA,qBAAqB,UAAU;GAC7B,8BAAgB,wBAAwB,OAAO;IAC7C,0BAA0B,EACxB,UAAUC,4DAAyB,KAAK,EAC1C;IACA,qBAAqB,EACnB,KAAK,YAAYC,uDAAoB,OAAO,OAAO,EACrD;IACA,uBAAuB,EACrB,KAAK,iBAAiBC,yDAAsB,OAAO,YAAY,EACjE;IACA,oBAAoB,EAClB,KAAK,YAAYC,sDAAmB,OAAO,OAAO,EACpD;IACA,sBAAsB,EACpB,KAAK,iBAAiBC,wDAAqB,OAAO,YAAY,EAChE;IACA,mBAAmB,EACjB,KAAK,YAAYC,qDAAkB,OAAO,OAAO,EACnD;IACA,oBAAoB,EAClB,UAAUC,sDAAmB,KAAK,EACpC;IACA,qBAAqB,EACnB,KAAK,iBAAiBC,uDAAoB,OAAO,YAAY,EAC/D;IACA,sBAAsB,EACpB,UAAUC,wDAAqB,KAAK,EACtC;IACA,0BAA0B,EACxB,UAAUC,4DAAyB,KAAK,EAC1C;IACA,sBAAsB,EACpB,UAAUC,wDAAqB,KAAK,EACtC;IACA,oBAAoB,EAClB,UAAUC,sDAAmB,KAAK,EACpC;IACA,gBAAgB,EACd,UAAUC,kDAAe,KAAK,EAChC;IACA,iBAAiB,EACf,UAAUC,mDAAgB,KAAK,EACjC;IACA,gBAAgB,EACd,UAAUC,kDAAe,KAAK,EAChC;IACA,mBAAmB,EACjB,UAAUC,qDAAkB,KAAK,EACnC;GACF,CAAC;EACH;CACF;AACF;;;;;;;AAQA,MAAa,uBAAuB,8BAA8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"rowPaginationFeature.js","names":[],"sources":["../../../src/features/row-pagination/rowPaginationFeature.ts"],"sourcesContent":["import { assignTableAPIs, makeStateUpdater } from '../../utils'\nimport {\n getDefaultPaginationState,\n table_autoResetPageIndex,\n table_firstPage,\n table_getCanNextPage,\n table_getCanPreviousPage,\n table_getPageCount,\n table_getPageOptions,\n table_getRowCount,\n table_lastPage,\n table_nextPage,\n table_previousPage,\n table_resetPageIndex,\n table_resetPageSize,\n table_resetPagination,\n table_setPageIndex,\n table_setPageSize,\n table_setPagination,\n} from './rowPaginationFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// CachedRowModel_Paginated,\n// CreateRowModel_Paginated,\n// TableOptions_RowPagination,\n// TableState_RowPagination,\n// Table_RowPagination,\n// } from './rowPaginationFeature.types'\n\nexport interface RowPaginationFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // CachedRowModel: CachedRowModel_Paginated<TFeatures, TData>\n // CreateRowModels: CreateRowModel_Paginated<TFeatures, TData>\n // Table: Table_RowPagination<TFeatures, TData>\n // TableOptions: TableOptions_RowPagination<TFeatures, TData>\n // TableState: TableState_RowPagination\n}\n\n/**\n * Creates the stock row pagination feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructRowPaginationFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowPaginationFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n ...initialState,\n pagination: {\n ...getDefaultPaginationState(),\n ...initialState.pagination,\n },\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowPaginationFeature', table, {\n table_autoResetPageIndex: {\n fn: () => table_autoResetPageIndex(table),\n },\n table_setPagination: {\n fn: (updater) => table_setPagination(table, updater),\n },\n table_resetPagination: {\n fn: (defaultState) => table_resetPagination(table, defaultState),\n },\n table_setPageIndex: {\n fn: (updater) => table_setPageIndex(table, updater),\n },\n table_resetPageIndex: {\n fn: (defaultState) => table_resetPageIndex(table, defaultState),\n },\n table_setPageSize: {\n fn: (updater) => table_setPageSize(table, updater),\n },\n table_getPageCount: {\n fn: () => table_getPageCount(table),\n },\n table_resetPageSize: {\n fn: (defaultState) => table_resetPageSize(table, defaultState),\n },\n table_getPageOptions: {\n fn: () => table_getPageOptions(table),\n },\n table_getCanPreviousPage: {\n fn: () => table_getCanPreviousPage(table),\n },\n table_getCanNextPage: {\n fn: () => table_getCanNextPage(table),\n },\n table_previousPage: {\n fn: () => table_previousPage(table),\n },\n table_nextPage: {\n fn: () => table_nextPage(table),\n },\n table_firstPage: {\n fn: () => table_firstPage(table),\n },\n table_lastPage: {\n fn: () => table_lastPage(table),\n },\n table_getRowCount: {\n fn: () => table_getRowCount(table),\n },\n })\n },\n }\n}\n\n/**\n * The stock row pagination feature.\n *\n * Register this feature to add pagination state, page navigation APIs, and\n * pagination-aware row model helpers to a table.\n */\nexport const rowPaginationFeature = constructRowPaginationFeature()\n"],"mappings":";;;;;;;;;AA8CA,SAAgB,gCAGsD;CACpE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,GAAG;IACH,YAAY;KACV,GAAG,2BAA2B;KAC9B,GAAG,aAAa;KACjB;IACF;;EAGH,yBAAyB,UAAU;GACjC,OAAO,EACL,oBAAoB,iBAAiB,cAAc,MAAM,EAC1D;;EAGH,qBAAqB,UAAU;GAC7B,gBAAgB,wBAAwB,OAAO;IAC7C,0BAA0B,EACxB,UAAU,yBAAyB,MAAM,EAC1C;IACD,qBAAqB,EACnB,KAAK,YAAY,oBAAoB,OAAO,QAAQ,EACrD;IACD,uBAAuB,EACrB,KAAK,iBAAiB,sBAAsB,OAAO,aAAa,EACjE;IACD,oBAAoB,EAClB,KAAK,YAAY,mBAAmB,OAAO,QAAQ,EACpD;IACD,sBAAsB,EACpB,KAAK,iBAAiB,qBAAqB,OAAO,aAAa,EAChE;IACD,mBAAmB,EACjB,KAAK,YAAY,kBAAkB,OAAO,QAAQ,EACnD;IACD,oBAAoB,EAClB,UAAU,mBAAmB,MAAM,EACpC;IACD,qBAAqB,EACnB,KAAK,iBAAiB,oBAAoB,OAAO,aAAa,EAC/D;IACD,sBAAsB,EACpB,UAAU,qBAAqB,MAAM,EACtC;IACD,0BAA0B,EACxB,UAAU,yBAAyB,MAAM,EAC1C;IACD,sBAAsB,EACpB,UAAU,qBAAqB,MAAM,EACtC;IACD,oBAAoB,EAClB,UAAU,mBAAmB,MAAM,EACpC;IACD,gBAAgB,EACd,UAAU,eAAe,MAAM,EAChC;IACD,iBAAiB,EACf,UAAU,gBAAgB,MAAM,EACjC;IACD,gBAAgB,EACd,UAAU,eAAe,MAAM,EAChC;IACD,mBAAmB,EACjB,UAAU,kBAAkB,MAAM,EACnC;IACF,CAAC;;EAEL;;;;;;;;AASH,MAAa,uBAAuB,+BAA+B"}
1
+ {"version":3,"file":"rowPaginationFeature.js","names":[],"sources":["../../../src/features/row-pagination/rowPaginationFeature.ts"],"sourcesContent":["import { assignTableAPIs, makeStateUpdater } from '../../utils'\nimport {\n getDefaultPaginationState,\n table_autoResetPageIndex,\n table_firstPage,\n table_getCanNextPage,\n table_getCanPreviousPage,\n table_getPageCount,\n table_getPageOptions,\n table_getRowCount,\n table_lastPage,\n table_nextPage,\n table_previousPage,\n table_resetPageIndex,\n table_resetPageSize,\n table_resetPagination,\n table_setPageIndex,\n table_setPageSize,\n table_setPagination,\n} from './rowPaginationFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// CachedRowModel_Paginated,\n// CreateRowModel_Paginated,\n// TableOptions_RowPagination,\n// TableState_RowPagination,\n// Table_RowPagination,\n// } from './rowPaginationFeature.types'\n\nexport interface RowPaginationFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // CachedRowModel: CachedRowModel_Paginated<TFeatures, TData>\n // CreateRowModels: CreateRowModel_Paginated<TFeatures, TData>\n // Table: Table_RowPagination<TFeatures, TData>\n // TableOptions: TableOptions_RowPagination<TFeatures, TData>\n // TableState: TableState_RowPagination\n}\n\n/**\n * Creates the stock row pagination feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructRowPaginationFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowPaginationFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n ...initialState,\n pagination: {\n ...getDefaultPaginationState(),\n ...initialState.pagination,\n },\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowPaginationFeature', table, {\n table_autoResetPageIndex: {\n fn: () => table_autoResetPageIndex(table),\n },\n table_setPagination: {\n fn: (updater) => table_setPagination(table, updater),\n },\n table_resetPagination: {\n fn: (defaultState) => table_resetPagination(table, defaultState),\n },\n table_setPageIndex: {\n fn: (updater) => table_setPageIndex(table, updater),\n },\n table_resetPageIndex: {\n fn: (defaultState) => table_resetPageIndex(table, defaultState),\n },\n table_setPageSize: {\n fn: (updater) => table_setPageSize(table, updater),\n },\n table_getPageCount: {\n fn: () => table_getPageCount(table),\n },\n table_resetPageSize: {\n fn: (defaultState) => table_resetPageSize(table, defaultState),\n },\n table_getPageOptions: {\n fn: () => table_getPageOptions(table),\n },\n table_getCanPreviousPage: {\n fn: () => table_getCanPreviousPage(table),\n },\n table_getCanNextPage: {\n fn: () => table_getCanNextPage(table),\n },\n table_previousPage: {\n fn: () => table_previousPage(table),\n },\n table_nextPage: {\n fn: () => table_nextPage(table),\n },\n table_firstPage: {\n fn: () => table_firstPage(table),\n },\n table_lastPage: {\n fn: () => table_lastPage(table),\n },\n table_getRowCount: {\n fn: () => table_getRowCount(table),\n },\n })\n },\n }\n}\n\n/**\n * The stock row pagination feature.\n *\n * Register this feature to add pagination state, page navigation APIs, and\n * pagination-aware row model helpers to a table.\n */\nexport const rowPaginationFeature = constructRowPaginationFeature()\n"],"mappings":";;;;;;;;;AA8CA,SAAgB,gCAGsD;CACpE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,GAAG;IACH,YAAY;KACV,GAAG,0BAA0B;KAC7B,GAAG,aAAa;IAClB;GACF;EACF;EAEA,yBAAyB,UAAU;GACjC,OAAO,EACL,oBAAoB,iBAAiB,cAAc,KAAK,EAC1D;EACF;EAEA,qBAAqB,UAAU;GAC7B,gBAAgB,wBAAwB,OAAO;IAC7C,0BAA0B,EACxB,UAAU,yBAAyB,KAAK,EAC1C;IACA,qBAAqB,EACnB,KAAK,YAAY,oBAAoB,OAAO,OAAO,EACrD;IACA,uBAAuB,EACrB,KAAK,iBAAiB,sBAAsB,OAAO,YAAY,EACjE;IACA,oBAAoB,EAClB,KAAK,YAAY,mBAAmB,OAAO,OAAO,EACpD;IACA,sBAAsB,EACpB,KAAK,iBAAiB,qBAAqB,OAAO,YAAY,EAChE;IACA,mBAAmB,EACjB,KAAK,YAAY,kBAAkB,OAAO,OAAO,EACnD;IACA,oBAAoB,EAClB,UAAU,mBAAmB,KAAK,EACpC;IACA,qBAAqB,EACnB,KAAK,iBAAiB,oBAAoB,OAAO,YAAY,EAC/D;IACA,sBAAsB,EACpB,UAAU,qBAAqB,KAAK,EACtC;IACA,0BAA0B,EACxB,UAAU,yBAAyB,KAAK,EAC1C;IACA,sBAAsB,EACpB,UAAU,qBAAqB,KAAK,EACtC;IACA,oBAAoB,EAClB,UAAU,mBAAmB,KAAK,EACpC;IACA,gBAAgB,EACd,UAAU,eAAe,KAAK,EAChC;IACA,iBAAiB,EACf,UAAU,gBAAgB,KAAK,EACjC;IACA,gBAAgB,EACd,UAAU,eAAe,KAAK,EAChC;IACA,mBAAmB,EACjB,UAAU,kBAAkB,KAAK,EACnC;GACF,CAAC;EACH;CACF;AACF;;;;;;;AAQA,MAAa,uBAAuB,8BAA8B"}