@dcs-tech/ui 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/CHANGELOG.md +362 -0
  2. package/README.md +3 -2
  3. package/THIRD_PARTY_NOTICES.md +23 -0
  4. package/dist/ChartImageMenu-sB2QNQzd.js +9673 -0
  5. package/dist/ChartView-BstZkP1g.js +1942 -0
  6. package/dist/{SummaryChart-i6fOdrDM.js → SummaryChart-B5ibDNOZ.js} +11 -10
  7. package/dist/{SummaryImage-CCt5ozD9.js → SummaryImage-CRP7X2Nl.js} +2 -2
  8. package/dist/SummarySeeAll-CtYRGV4G.js +101 -0
  9. package/dist/assets/fileTask.worker-D97s2vRV.js +1 -0
  10. package/dist/{columnValue-74XDBcVF.js → columnValue-BOn9NC8X.js} +86 -79
  11. package/dist/exportContext-CMzuzRjc.js +274 -0
  12. package/dist/{exportEngine-BmDly7iw.js → exportEngine-CYDN8Ty-.js} +167 -137
  13. package/dist/file-worker.js +1 -1
  14. package/dist/{fileActions-CFNO14Aj.js → fileActions-DkPEWE-t.js} +1 -1
  15. package/dist/{geometry-DG134nYI.js → geometry-CFS5If1N.js} +769 -466
  16. package/dist/index.js +21095 -12669
  17. package/dist/{labels-BPItSeRU.js → labels-mukFhYkc.js} +124 -1
  18. package/dist/{runFileTask-BIZTFnZP.js → runFileTask-DI_39TjR.js} +17 -0
  19. package/dist/scrollArea-B52kugL1.js +291 -0
  20. package/dist/style.css +1 -1
  21. package/dist/{summaryChartData-BiQYJbYZ.js → summaryChartData-D15kw64n.js} +6 -5
  22. package/dist/types/components/Charts/BarList.d.ts +4 -3
  23. package/dist/types/components/Charts/CalendarHeatmap.d.ts +4 -2
  24. package/dist/types/components/Charts/Chart.d.ts +3 -2
  25. package/dist/types/components/Charts/ChartView.d.ts +3 -2
  26. package/dist/types/components/Charts/ColumnChart.d.ts +4 -3
  27. package/dist/types/components/Charts/Donut.d.ts +3 -2
  28. package/dist/types/components/Charts/Funnel.d.ts +3 -2
  29. package/dist/types/components/Charts/Gauge.d.ts +3 -2
  30. package/dist/types/components/Charts/LineChart.d.ts +4 -3
  31. package/dist/types/components/Charts/NumberTrend.d.ts +4 -3
  32. package/dist/types/components/Charts/Progress.d.ts +3 -2
  33. package/dist/types/components/Charts/StackedBar.d.ts +3 -2
  34. package/dist/types/components/Charts/Treemap.d.ts +3 -2
  35. package/dist/types/components/Charts/chartData.d.ts +6 -0
  36. package/dist/types/components/Charts/chartImage.d.ts +2 -0
  37. package/dist/types/components/Charts/geometry.d.ts +3 -0
  38. package/dist/types/components/Charts/index.d.ts +2 -0
  39. package/dist/types/components/Charts/palette.d.ts +1 -0
  40. package/dist/types/components/Charts/parts.d.ts +14 -0
  41. package/dist/types/components/Charts/useChartMotion.d.ts +8 -0
  42. package/dist/types/components/DataTable/DataTable.d.ts +3 -1
  43. package/dist/types/components/DataTable/DisplayPopover.d.ts +1 -0
  44. package/dist/types/components/DataTable/HeaderMenu.d.ts +1 -0
  45. package/dist/types/components/DataTable/TableColumnModal.d.ts +4 -1
  46. package/dist/types/components/DataTable/TableToolbar.d.ts +20 -1
  47. package/dist/types/components/DataTable/TableView.d.ts +18 -2
  48. package/dist/types/components/DataTable/cards/CardView.d.ts +25 -5
  49. package/dist/types/components/DataTable/cards/rowParts.d.ts +1 -0
  50. package/dist/types/components/DataTable/cellSelection/CellRangeBar.d.ts +16 -0
  51. package/dist/types/components/DataTable/cellSelection/cellRangeStore.d.ts +18 -0
  52. package/dist/types/components/DataTable/cellSelection/paintRanges.d.ts +2 -0
  53. package/dist/types/components/DataTable/cellSelection/useCellSelection.d.ts +63 -0
  54. package/dist/types/components/DataTable/data/listDelta.d.ts +27 -0
  55. package/dist/types/components/DataTable/data/rowLineage.d.ts +3 -0
  56. package/dist/types/components/DataTable/data/rowModels.d.ts +9 -0
  57. package/dist/types/components/DataTable/data/rowTransaction.d.ts +9 -0
  58. package/dist/types/components/DataTable/data/useServerData.d.ts +3 -1
  59. package/dist/types/components/DataTable/export/exportCells.d.ts +5 -2
  60. package/dist/types/components/DataTable/export/exportEngine.d.ts +7 -2
  61. package/dist/types/components/DataTable/export/useTableExport.d.ts +17 -1
  62. package/dist/types/components/DataTable/filters/filterRowModel.d.ts +1 -0
  63. package/dist/types/components/DataTable/grouping/groupModel.d.ts +11 -0
  64. package/dist/types/components/DataTable/index.d.ts +1 -1
  65. package/dist/types/components/DataTable/keyboard/ShortcutsDialog.d.ts +4 -1
  66. package/dist/types/components/DataTable/keyboard/useGridKeyboard.d.ts +8 -0
  67. package/dist/types/components/DataTable/labels.d.ts +128 -0
  68. package/dist/types/components/DataTable/layout/LayoutSwitcher.d.ts +10 -2
  69. package/dist/types/components/DataTable/layout/useFitWidths.d.ts +7 -0
  70. package/dist/types/components/DataTable/menu/RowMenu.d.ts +1 -0
  71. package/dist/types/components/DataTable/menu/buildRowMenu.d.ts +6 -3
  72. package/dist/types/components/DataTable/motion/RowChangeNotice.d.ts +19 -0
  73. package/dist/types/components/DataTable/motion/rowChanges.d.ts +25 -0
  74. package/dist/types/components/DataTable/motion/useNoticeInsets.d.ts +2 -0
  75. package/dist/types/components/DataTable/motion/useRowChangeNotices.d.ts +35 -0
  76. package/dist/types/components/DataTable/motion/useRowMotion.d.ts +29 -3
  77. package/dist/types/components/DataTable/persistence/reconcile.d.ts +4 -0
  78. package/dist/types/components/DataTable/persistence/useColumnPersistence.d.ts +5 -1
  79. package/dist/types/components/DataTable/pivot/PivotPanel.d.ts +11 -0
  80. package/dist/types/components/DataTable/pivot/PivotView.d.ts +22 -0
  81. package/dist/types/components/DataTable/pivot/pivotModel.d.ts +54 -0
  82. package/dist/types/components/DataTable/pivot/usePivot.d.ts +44 -0
  83. package/dist/types/components/DataTable/rows/PressRow.d.ts +1 -0
  84. package/dist/types/components/DataTable/rows/RowLead.d.ts +23 -0
  85. package/dist/types/components/DataTable/rows/rowPress.d.ts +2 -0
  86. package/dist/types/components/DataTable/rows/usePinnedRows.d.ts +34 -0
  87. package/dist/types/components/DataTable/rows/useRowDrag.d.ts +44 -0
  88. package/dist/types/components/DataTable/split/SplitView.d.ts +4 -2
  89. package/dist/types/components/DataTable/summary/SummaryChart.d.ts +2 -1
  90. package/dist/types/components/DataTable/summary/TableSummary.d.ts +2 -1
  91. package/dist/types/components/DataTable/summary/summaryModel.d.ts +28 -6
  92. package/dist/types/components/DataTable/summary/useTableSummary.d.ts +3 -0
  93. package/dist/types/components/DataTable/toolbar/ToolbarMore.d.ts +14 -0
  94. package/dist/types/components/DataTable/toolbar/useToolbarFit.d.ts +10 -0
  95. package/dist/types/components/DataTable/tree/TreeChips.d.ts +5 -0
  96. package/dist/types/components/DataTable/tree/treeExport.d.ts +54 -0
  97. package/dist/types/components/DataTable/tree/treeMove.d.ts +1 -0
  98. package/dist/types/components/DataTable/tree/useTreeChildren.d.ts +15 -0
  99. package/dist/types/components/DataTable/tree/useTreeData.d.ts +60 -0
  100. package/dist/types/components/DataTable/types.d.ts +272 -4
  101. package/dist/types/components/DataTable/useDataChangeTracker.d.ts +11 -4
  102. package/dist/types/components/DataTable/useTable.d.ts +13 -1
  103. package/dist/types/components/DataTable/virtual/useVirtualLines.d.ts +1 -0
  104. package/dist/types/components/EventCalendar/EventCalendar.d.ts +46 -0
  105. package/dist/types/components/EventCalendar/eventParts.d.ts +10 -0
  106. package/dist/types/components/EventCalendar/index.d.ts +3 -0
  107. package/dist/types/components/EventCalendar/useCalendarEdit.d.ts +40 -0
  108. package/dist/types/components/Icon/Icon.d.ts +36 -0
  109. package/dist/types/components/Icon/Icon.storyData.d.ts +6 -0
  110. package/dist/types/components/Icon/IconContext.d.ts +7 -0
  111. package/dist/types/components/Icon/icons.d.ts +223 -0
  112. package/dist/types/components/Icon/index.d.ts +7 -0
  113. package/dist/types/components/Icon/useIconDone.d.ts +5 -0
  114. package/dist/types/components/Popover/Popover.d.ts +1 -0
  115. package/dist/types/components/Popover/floatingPosition.d.ts +22 -2
  116. package/dist/types/components/ReorderList/ReorderList.d.ts +2 -1
  117. package/dist/types/components/Scroll/ui.d.ts +1 -0
  118. package/dist/types/components/SlidingHighlight/index.d.ts +2 -0
  119. package/dist/types/components/SlidingHighlight/useSlidingHighlight.d.ts +20 -0
  120. package/dist/types/components/Suggest/SuggestionList.d.ts +1 -0
  121. package/dist/types/components/UIProvider/UILabelsContext.d.ts +34 -0
  122. package/dist/types/components/UIProvider/UIProvider.d.ts +2 -0
  123. package/dist/types/core/hooks/index.d.ts +1 -1
  124. package/dist/types/core/hooks/usePresence.d.ts +1 -0
  125. package/dist/types/core/icons/actions.icons.d.ts +37 -0
  126. package/dist/types/core/icons/commerce.icons.d.ts +16 -0
  127. package/dist/types/core/icons/communication.icons.d.ts +10 -0
  128. package/dist/types/core/icons/delivery.icons.d.ts +13 -0
  129. package/dist/types/core/icons/devices.icons.d.ts +16 -0
  130. package/dist/types/core/icons/files.icons.d.ts +13 -0
  131. package/dist/types/core/icons/general.icons.d.ts +24 -0
  132. package/dist/types/core/icons/index.d.ts +14 -0
  133. package/dist/types/core/icons/media.icons.d.ts +11 -0
  134. package/dist/types/core/icons/navigation.icons.d.ts +25 -0
  135. package/dist/types/core/icons/people.icons.d.ts +13 -0
  136. package/dist/types/core/icons/registry.d.ts +2 -0
  137. package/dist/types/core/icons/state.icons.d.ts +14 -0
  138. package/dist/types/core/icons/status.icons.d.ts +10 -0
  139. package/dist/types/core/icons/table.icons.d.ts +22 -0
  140. package/dist/types/core/icons/text.icons.d.ts +13 -0
  141. package/dist/types/core/logic/cellRange.logic.d.ts +66 -0
  142. package/dist/types/core/logic/cellTouch.logic.d.ts +16 -0
  143. package/dist/types/core/logic/columnGroups.logic.d.ts +31 -0
  144. package/dist/types/core/logic/dropdownSide.logic.d.ts +19 -0
  145. package/dist/types/core/logic/eventCalendar.logic.d.ts +225 -0
  146. package/dist/types/core/logic/fitColumns.logic.d.ts +7 -0
  147. package/dist/types/core/logic/icon.logic.d.ts +24 -0
  148. package/dist/types/core/logic/index.d.ts +16 -0
  149. package/dist/types/core/logic/pivot.logic.d.ts +100 -0
  150. package/dist/types/core/logic/rowActions.logic.d.ts +7 -0
  151. package/dist/types/core/logic/rowDrag.logic.d.ts +36 -0
  152. package/dist/types/core/logic/rowPinning.logic.d.ts +12 -0
  153. package/dist/types/core/logic/slidingHighlight.logic.d.ts +20 -0
  154. package/dist/types/core/logic/toolbarOverflow.logic.d.ts +21 -0
  155. package/dist/types/core/logic/treeData.logic.d.ts +44 -0
  156. package/dist/types/core/logic/treeDrag.logic.d.ts +63 -0
  157. package/dist/types/core/logic/tween.logic.d.ts +33 -0
  158. package/dist/types/core/logic/visualViewport.logic.d.ts +13 -0
  159. package/dist/types/core/types/eventCalendar.types.d.ts +18 -0
  160. package/dist/types/core/types/fileEngine.types.d.ts +6 -0
  161. package/dist/types/core/types/icon.types.d.ts +109 -0
  162. package/dist/types/core/types/index.d.ts +2 -0
  163. package/dist/types/index.d.ts +7 -0
  164. package/package.json +4 -4
  165. package/dist/ChartImageMenu-3OfqNFyt.js +0 -1510
  166. package/dist/ChartView-n4G5_2ro.js +0 -1707
  167. package/dist/SummarySeeAll-BY8knsRe.js +0 -101
  168. package/dist/assets/fileTask.worker--Q3rI3Bn.js +0 -1
  169. package/dist/exportContext-C52ZuHd8.js +0 -166
  170. package/dist/scrollArea-D84Cwm4o.js +0 -310
@@ -0,0 +1,35 @@
1
+ import { type RefObject } from 'react';
2
+ import { type RowChangeReport } from './useRowMotion';
3
+ export type Where = 'above' | 'in' | 'below';
4
+ export interface RowChangeNotice {
5
+ addedAbove: number;
6
+ addedBelow: number;
7
+ removedAbove: number;
8
+ removedBelow: number;
9
+ otherPages: number;
10
+ }
11
+ export declare function rowElement(area: HTMLElement, key: string, exit?: boolean): HTMLElement | null;
12
+ export declare function whereIs(el: HTMLElement, area: HTMLElement): Where;
13
+ export interface RowChangeNoticesOptions {
14
+ areaRef: RefObject<HTMLElement | null>;
15
+ outOfView: boolean;
16
+ announce: boolean;
17
+ tellFromViews: boolean;
18
+ placeOf: (key: string) => number;
19
+ reveal: (key: string) => void;
20
+ describe: (added: number, removed: number) => string;
21
+ }
22
+ export interface RowChangeNotices {
23
+ notice: RowChangeNotice;
24
+ onChange: (report: RowChangeReport) => void;
25
+ addOtherPages: (keys: string[]) => void;
26
+ otherPageKeys: () => string[];
27
+ jump: (side: 'above' | 'below') => void;
28
+ dismiss: () => void;
29
+ announcement: string;
30
+ pulse: (key: string) => void;
31
+ tell: (added: number, removed: number) => void;
32
+ refresh: () => void;
33
+ bringIntoView: (key: string, flash?: boolean) => void;
34
+ }
35
+ export declare function useRowChangeNotices(opts: RowChangeNoticesOptions): RowChangeNotices;
@@ -5,14 +5,26 @@ export interface MotionItem<T> {
5
5
  item: T;
6
6
  motion?: RowMotion;
7
7
  }
8
- export declare const EXIT_MS = 240;
9
- export declare const ENTER_MS = 1400;
8
+ export declare const EXIT_MS = 700;
9
+ export declare const ENTER_MS = 2000;
10
+ export declare const MAX_ANIMATED_ROWS = 25;
10
11
  export declare function prefersReducedMotion(): boolean;
12
+ export declare function visibleSpan(el: HTMLElement): {
13
+ top: number;
14
+ bottom: number;
15
+ };
11
16
  interface Exit<T> {
12
17
  key: string;
13
18
  item: T;
14
19
  at: number;
15
20
  }
21
+ export declare function rowDiff(before: string[], after: string[]): {
22
+ added: string[];
23
+ removed: Array<{
24
+ key: string;
25
+ at: number;
26
+ }>;
27
+ };
16
28
  export declare function diffRows(before: string[], after: string[]): {
17
29
  added: string[];
18
30
  removed: Array<{
@@ -20,11 +32,25 @@ export declare function diffRows(before: string[], after: string[]): {
20
32
  at: number;
21
33
  }>;
22
34
  } | null;
23
- export declare function mergeExits<T>(items: Array<MotionItem<T>>, exits: Array<Exit<T>>): Array<MotionItem<T>>;
35
+ export interface RowChangeReport {
36
+ added: string[];
37
+ removed: string[];
38
+ removedAt: number[];
39
+ marked: boolean;
40
+ }
41
+ export declare function mergeExits<T>(items: Array<MotionItem<T>>, exits: Array<Exit<T>>, has?: (key: string) => boolean): Array<MotionItem<T>>;
24
42
  export declare function useRowMotion<T>(items: T[], keyOf: (item: T) => string, opts: {
25
43
  enabled: boolean;
26
44
  resetKey: string | undefined;
27
45
  containerRef: RefObject<HTMLElement | null>;
46
+ enterMs?: number;
47
+ exitMs?: number;
48
+ maxAnimated?: number;
49
+ onChange?: (report: RowChangeReport) => void;
50
+ which?: (added: string[], removed: string[]) => {
51
+ added: string[];
52
+ removed: string[];
53
+ };
28
54
  }): {
29
55
  items: Array<MotionItem<T>>;
30
56
  heightOf: (key: string) => number | undefined;
@@ -22,6 +22,9 @@ export interface ViewPrefsContext extends PrefsVersioning {
22
22
  summaryCharts?: ReadonlyMap<string, readonly string[]>;
23
23
  summaryCounts?: ReadonlyMap<string, readonly number[]>;
24
24
  summaryBreakdowns: ReadonlySet<string>;
25
+ pivotOffered?: boolean;
26
+ pivotFields?: ReadonlySet<string>;
27
+ pivotValues?: ReadonlyMap<string, readonly string[]>;
25
28
  }
26
29
  export interface ManagePrefsContext extends PrefsVersioning {
27
30
  key: string;
@@ -44,6 +47,7 @@ export declare function viewPrefsContext(view: DataTableView, opts: {
44
47
  key: string;
45
48
  serverMode: boolean;
46
49
  hasGroupsSource: boolean;
50
+ hasPivotSource?: boolean;
47
51
  operators?: readonly string[];
48
52
  summaryBreakdownFields?: readonly string[];
49
53
  } & PrefsVersioning): ViewPrefsContext;
@@ -1,5 +1,6 @@
1
- import { type DataTableExportSettings, type DataTableCardFields, type DataTableListFields, type DataTableLayout, type DataTableSavedFilter, type DataTableDisplayPrefs, type DataTablePdfPageSize, type DataTablePdfOrientation, type DataTablePdfFontSize, type DataTablePdfMargins, type DataTablePersistence, type DataTableColumnPinning, type DataTableExportSummaryMode, type DataTableSummaryPrefs, type DataTableExportOptionValues } from '../types';
1
+ import { type DataTableExportSettings, type DataTableCardFields, type DataTableListFields, type DataTableLayout, type DataTableSavedFilter, type DataTableDisplayPrefs, type DataTablePdfPageSize, type DataTablePdfOrientation, type DataTablePdfFontSize, type DataTablePdfMargins, type DataTablePersistence, type DataTableColumnPinning, type DataTableExportSummaryMode, type DataTableSummaryPrefs, type DataTableExportOptionValues, type DataTablePivotState } from '../types';
2
2
  import type { PrefsReconciled, PrefsReport } from './reconcile';
3
+ import { type RowPins } from '../../../core/logic';
3
4
  export declare const PREFS_SAVE_DEBOUNCE_MS = 500;
4
5
  export declare const EXPORT_SETTINGS_DEFAULTS: DataTableExportSettings;
5
6
  export interface TemplateExportPrefs {
@@ -37,6 +38,9 @@ export interface ViewExtras {
37
38
  setListFields?: (fields: DataTableListFields) => void;
38
39
  setGrouping?: (levels: string[]) => void;
39
40
  setSummary?: (prefs: DataTableSummaryPrefs) => void;
41
+ rowPins?: RowPins;
42
+ setRowPins?: (pins: RowPins) => void;
43
+ setPivot?: (state: DataTablePivotState) => void;
40
44
  }
41
45
  export interface ViewDocSync {
42
46
  reconcile: (doc: Record<string, any>, key: string) => PrefsReconciled;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { DataTablePivotState } from '../types';
3
+ import { type ResolvedPivot } from './pivotModel';
4
+ interface PivotPanelProps<T> {
5
+ resolved: ResolvedPivot<T>;
6
+ state: DataTablePivotState;
7
+ onApply: (state: DataTablePivotState) => void;
8
+ onClose: () => void;
9
+ }
10
+ export declare function PivotPanel<T>({ resolved, state: initial, onApply, onClose }: PivotPanelProps<T>): React.JSX.Element;
11
+ export default PivotPanel;
@@ -0,0 +1,22 @@
1
+ import React, { type MutableRefObject, type RefObject } from 'react';
2
+ import type { DataTableCellRange, DataTableDisplayPrefs, DataTableView } from '../types';
3
+ import type { PivotOutput } from './usePivot';
4
+ interface PivotViewProps<T> {
5
+ pivot: PivotOutput<T>;
6
+ view: DataTableView<T>;
7
+ displayPrefs: DataTableDisplayPrefs;
8
+ areaRef: RefObject<HTMLDivElement | null>;
9
+ keyboard: boolean;
10
+ phone: boolean;
11
+ canCopy: boolean;
12
+ copy: (text: string, cells: number) => void;
13
+ openHelp: () => void;
14
+ emptyText: string;
15
+ rangesRef?: MutableRefObject<PivotRanges | null>;
16
+ }
17
+ export interface PivotRanges {
18
+ getCellRanges: () => DataTableCellRange[];
19
+ clearCellRanges: () => void;
20
+ }
21
+ export declare function PivotView<T>({ pivot, view, displayPrefs, areaRef, keyboard, phone, canCopy, copy, openHelp, emptyText, rangesRef }: PivotViewProps<T>): React.JSX.Element;
22
+ export default PivotView;
@@ -0,0 +1,54 @@
1
+ import { type PivotAggFn, type PivotAggName, type PivotColumn, type PivotCube, type PivotKey, type PivotLayout, type PivotLine, type PivotSort, type PivotSpec } from '../../../core/logic';
2
+ import { type GroupLabels } from '../grouping/groupModel';
3
+ import type { DataTableLabels } from '../labels';
4
+ import type { DataTableColumn, DataTableColumnGroup, DataTablePivotRequest, DataTablePivotState, DataTablePivotTotals, DataTableView } from '../types';
5
+ export declare const PIVOT_MAX_COLUMNS = 200;
6
+ export interface ResolvedPivot<T> {
7
+ offered: boolean;
8
+ panel: boolean;
9
+ fields: DataTableColumn<T>[];
10
+ values: DataTableColumn<T>[];
11
+ aggsOf: (column: string) => string[];
12
+ aggLabel: (agg: string) => string;
13
+ aggFn: (agg: string) => PivotAggName | PivotAggFn<T> | null;
14
+ defaults: DataTablePivotState;
15
+ maxColumns: number;
16
+ }
17
+ export declare function resolvePivot<T>(view: Pick<DataTableView<T>, 'pivot'>, columns: DataTableColumn<T>[], opts: {
18
+ serverMode: boolean;
19
+ hasSource: boolean;
20
+ labels: DataTableLabels;
21
+ }): ResolvedPivot<T>;
22
+ export declare const pivotTotalsOf: (t: DataTablePivotTotals | undefined) => Required<DataTablePivotTotals>;
23
+ export declare function normalizePivotState<T>(state: unknown, r: Pick<ResolvedPivot<T>, 'fields' | 'values' | 'aggsOf'>): DataTablePivotState;
24
+ export declare const samePivot: (a: DataTablePivotState, b: DataTablePivotState) => boolean;
25
+ export declare function pivotSpecOf<T>(state: DataTablePivotState, r: Pick<ResolvedPivot<T>, 'aggFn'>, byKey: ReadonlyMap<string, DataTableColumn<T>>): PivotSpec<T>;
26
+ export declare function pivotRequestOf<T>(state: DataTablePivotState, byKey: ReadonlyMap<string, DataTableColumn<T>>): DataTablePivotRequest;
27
+ export declare function keyOrderOf<T>(col: DataTableColumn<T> | undefined): (a: PivotKey, b: PivotKey) => number;
28
+ export interface PivotRow {
29
+ key: string;
30
+ kind: PivotLine['kind'];
31
+ depth: number;
32
+ f: string[];
33
+ v: unknown[];
34
+ }
35
+ export interface PivotTable {
36
+ columns: DataTableColumn<PivotRow>[];
37
+ groups: DataTableColumnGroup[];
38
+ rows: PivotRow[];
39
+ rowByLine: ReadonlyMap<string, PivotRow>;
40
+ grand: PivotRow | null;
41
+ fieldKeys: string[];
42
+ slots: ReadonlyMap<string, PivotColumn>;
43
+ }
44
+ export declare function pivotTableOf<T>(cube: PivotCube, layout: PivotLayout, ctx: {
45
+ state: DataTablePivotState;
46
+ byKey: ReadonlyMap<string, DataTableColumn<T>>;
47
+ resolved: Pick<ResolvedPivot<T>, 'aggLabel'>;
48
+ labels: DataTableLabels;
49
+ groupLabels: GroupLabels;
50
+ }): PivotTable;
51
+ export declare function pivotSortsOf(sorting: ReadonlyArray<{
52
+ id: string;
53
+ desc: boolean;
54
+ }>, table: Pick<PivotTable, 'fieldKeys' | 'slots'>): PivotSort[];
@@ -0,0 +1,44 @@
1
+ import type { GroupLabels } from '../grouping/groupModel';
2
+ import type { DataTableLabels } from '../labels';
3
+ import type { DataTableColumn, DataTableDataSource, DataTablePivotState, DataTableQuery, DataTableRowTransaction, DataTableTransactionResult } from '../types';
4
+ import { type PivotRow, type PivotTable, type ResolvedPivot } from './pivotModel';
5
+ export declare const PIVOT_SETTLE_MS = 250;
6
+ export declare const PIVOT_SLICE_ROWS = 20000;
7
+ export declare function transactionKeysOf<T>(tx: DataTableRowTransaction<T>, rowKey: string | undefined): DataTableTransactionResult | null;
8
+ type Sorting = Array<{
9
+ id: string;
10
+ desc: boolean;
11
+ }>;
12
+ export interface PivotOutput<T> {
13
+ resolved: ResolvedPivot<T>;
14
+ state: DataTablePivotState;
15
+ on: boolean;
16
+ table: PivotTable | null;
17
+ rows: PivotRow[];
18
+ capped: {
19
+ shown: number;
20
+ total: number;
21
+ } | null;
22
+ loading: boolean;
23
+ error: unknown;
24
+ retry: () => void;
25
+ sorting: Sorting;
26
+ setSorting: (s: Sorting) => void;
27
+ }
28
+ export declare function usePivot<T>(opts: {
29
+ resolved: ResolvedPivot<T>;
30
+ state: DataTablePivotState;
31
+ on: boolean;
32
+ viewId: string;
33
+ columns: DataTableColumn<T>[];
34
+ serverMode: boolean;
35
+ dataSource?: DataTableDataSource<T>;
36
+ rows: T[];
37
+ queryKey: string;
38
+ query: DataTableQuery | null;
39
+ tick: number;
40
+ changes?: number;
41
+ labels: DataTableLabels;
42
+ groupLabels: GroupLabels;
43
+ }): PivotOutput<T>;
44
+ export {};
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  interface PressRowProps extends React.HTMLAttributes<HTMLElement> {
3
3
  as: 'tr' | 'div';
4
4
  pressable: boolean;
5
+ feedback?: 'tint' | 'wave';
5
6
  }
6
7
  export declare const PressRow: React.ForwardRefExoticComponent<PressRowProps & React.RefAttributes<HTMLElement>>;
7
8
  export {};
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import type { TreeLineState } from '../grouping/groupModel';
3
+ export interface RowLeadProps {
4
+ rowId: string;
5
+ title: string;
6
+ drag?: {
7
+ blocked: string | null;
8
+ tabbable: boolean;
9
+ props: Record<string, unknown>;
10
+ };
11
+ dragSpace?: boolean;
12
+ tree?: {
13
+ depth: number;
14
+ state?: TreeLineState;
15
+ onToggle: () => void;
16
+ };
17
+ toggleTabbable?: boolean;
18
+ }
19
+ export declare function DragHandle({ rowId, title, blocked, tabbable, props }: {
20
+ rowId: string;
21
+ title: string;
22
+ } & NonNullable<RowLeadProps['drag']>): React.JSX.Element;
23
+ export declare function RowLead({ rowId, title, drag, dragSpace, tree, toggleTabbable }: RowLeadProps): React.JSX.Element;
@@ -9,6 +9,7 @@ export interface RowMenuRequest {
9
9
  columnKey: string | null;
10
10
  touch: boolean;
11
11
  alignRight?: boolean;
12
+ anchorHeight?: number;
12
13
  }
13
14
  export interface RowPressOptions<R> {
14
15
  canOpen: boolean;
@@ -21,6 +22,7 @@ export interface RowPressOptions<R> {
21
22
  onToggle: (row: R) => void;
22
23
  onMenu: (row: R, at: RowMenuRequest) => void;
23
24
  onOtherClick?: (row: R) => void;
25
+ ownsLongPress?: (target: EventTarget | null) => boolean;
24
26
  }
25
27
  export interface RowPressHandlers {
26
28
  onMouseDown: (e: React.MouseEvent) => void;
@@ -0,0 +1,34 @@
1
+ import type { RowPins } from '../../../core/logic';
2
+ import type { DisplayItem } from '../grouping/groupModel';
3
+ import type { DataTableRowTransaction } from '../types';
4
+ export interface FoundPinnedRows<T> {
5
+ rows: readonly T[] | null;
6
+ ids: string;
7
+ map: Map<string, T>;
8
+ }
9
+ export declare const newFoundPinnedRows: <T>() => FoundPinnedRows<T>;
10
+ export declare function findPinnedRows<T>(cache: FoundPinnedRows<T>, rows: readonly T[], ids: ReadonlySet<string>, keyOf: (row: T) => string): Map<string, T>;
11
+ export interface PinnedRowLines<T> {
12
+ top: DisplayItem[];
13
+ bottom: DisplayItem[];
14
+ rowById: Map<string, any>;
15
+ originals: {
16
+ top: T[];
17
+ bottom: T[];
18
+ };
19
+ keep: (id: string, row: T) => void;
20
+ applyTransaction: (tx: DataTableRowTransaction<T>) => void;
21
+ }
22
+ export declare const isAppPinnedRow: (row: unknown) => boolean;
23
+ export declare function usePinnedRows<T>(opts: {
24
+ table: any;
25
+ pins: RowPins;
26
+ rows: readonly T[];
27
+ rowKey?: string;
28
+ serverMode: boolean;
29
+ app?: {
30
+ top?: readonly T[];
31
+ bottom?: readonly T[];
32
+ };
33
+ enabled: boolean;
34
+ }): PinnedRowLines<T>;
@@ -0,0 +1,44 @@
1
+ import React, { type RefObject } from 'react';
2
+ import { type RowDropTarget, type TreeDragLine, type TreeDropPlace, type TreeShape } from '../../../core/logic';
3
+ import type { DataTableLabels } from '../labels';
4
+ export interface RowDragHost {
5
+ on: boolean;
6
+ blocked: string | null;
7
+ areaRef: RefObject<HTMLElement | null>;
8
+ surface?: DragSurface;
9
+ order: () => string[];
10
+ moving: (id: string) => string[];
11
+ titleOf: (id: string) => string;
12
+ drop: (ids: string[], target: RowDropTarget) => void;
13
+ tree?: RowDragTree | null;
14
+ announce: (text: string) => void;
15
+ labels: DataTableLabels;
16
+ number: (n: number) => string;
17
+ onStart?: () => void;
18
+ onEnd?: () => void;
19
+ scrollToKey?: (key: string) => void;
20
+ }
21
+ export type DragSurface = 'table' | 'cards' | 'list';
22
+ export interface RowDragTreeLine extends TreeDragLine {
23
+ closed?: boolean;
24
+ }
25
+ export interface RowDragTree {
26
+ shape: () => TreeShape;
27
+ lines: () => readonly RowDragTreeLine[];
28
+ expand: (id: string) => void;
29
+ drop: (roots: string[], place: TreeDropPlace) => void;
30
+ }
31
+ export declare const TOUCH_HOLD_MS = 400;
32
+ export declare const TREE_OPEN_MS = 700;
33
+ export declare function useRowDrag(host: RowDragHost): {
34
+ handleProps: (id: string) => {
35
+ onPointerDown: (e: React.PointerEvent<HTMLElement>) => void;
36
+ onTouchStart: (e: React.TouchEvent<HTMLElement>) => void;
37
+ onContextMenu: (e: React.MouseEvent) => void;
38
+ onClick: (e: React.MouseEvent) => void;
39
+ };
40
+ onKeyDown: (e: React.KeyboardEvent) => boolean;
41
+ overlay: React.ReactPortal | null;
42
+ dragging: boolean;
43
+ cancel: () => void;
44
+ };
@@ -1,10 +1,11 @@
1
1
  import React, { type ReactNode } from 'react';
2
2
  import type { RowPressHandlers } from '../rows/rowPress';
3
- import type { CardLine, CardRow, MotionOptions } from '../cards/CardView';
3
+ import { type CardLine, type CardRow, type MotionOptions } from '../cards/CardView';
4
4
  import type { ListParts } from '../cards/rowParts';
5
5
  import { type ScrollApi, type VirtualOptions } from '../virtual/useVirtualLines';
6
6
  interface SplitViewProps {
7
7
  rows: CardRow[];
8
+ partsOf: (row: CardRow) => ListParts;
8
9
  lines?: CardLine[];
9
10
  openId: string | null;
10
11
  checkboxes: boolean;
@@ -21,9 +22,10 @@ interface SplitViewProps {
21
22
  scrollApi?: React.MutableRefObject<ScrollApi | null>;
22
23
  listFooter?: ReactNode;
23
24
  motion?: MotionOptions;
25
+ renderLead?: (id: string) => ReactNode;
24
26
  }
25
27
  export declare function SplitItemContent({ parts }: {
26
28
  parts: ListParts;
27
29
  }): React.JSX.Element;
28
- export declare function SplitView({ rows, lines: linesProp, openId, checkboxes, onToggle, press, renderActions, pane, narrowList, focusable, activeKey, placeholder, loading, virtual, scrollApi, listFooter, motion }: SplitViewProps): React.JSX.Element;
30
+ export declare function SplitView({ rows, partsOf, lines: linesProp, openId, checkboxes, onToggle, press, renderActions, pane, narrowList, focusable, activeKey, placeholder, loading, virtual, scrollApi, listFooter, motion, renderLead }: SplitViewProps): React.JSX.Element;
29
31
  export default SplitView;
@@ -7,5 +7,6 @@ export interface SummaryChartProps {
7
7
  locale?: string;
8
8
  labels: Partial<ChartLabels> & Pick<ChartLabels, 'count' | 'rest'>;
9
9
  onLegendCut?: (hidden: number) => void;
10
+ animate?: boolean;
10
11
  }
11
- export default function SummaryChart({ item, onSelect, format, locale, labels, onLegendCut }: SummaryChartProps): import("react").JSX.Element;
12
+ export default function SummaryChart({ item, onSelect, format, locale, labels, onLegendCut, animate }: SummaryChartProps): import("react").JSX.Element;
@@ -25,10 +25,11 @@ interface TableSummaryProps {
25
25
  loadAll: (card: DataTableSummaryBreakdownCard) => Promise<SummaryBucketView[]>;
26
26
  image?: TableSummaryImage;
27
27
  rootRef?: Ref<HTMLElement>;
28
+ animate?: boolean;
28
29
  }
29
30
  type BreakdownItem = Extract<ResolvedSummaryCard, {
30
31
  kind: 'breakdown';
31
32
  }>;
32
33
  export declare function visibleValues(item: BreakdownItem, cut?: number): number;
33
- declare function TableSummary({ strip, cards, open, onToggle, context, status, onSelect, selectable, loadAll, image, rootRef }: TableSummaryProps): React.JSX.Element;
34
+ declare function TableSummary({ strip, cards, open, onToggle, context, status, onSelect, selectable, loadAll, image, rootRef, animate }: TableSummaryProps): React.JSX.Element;
34
35
  export default TableSummary;
@@ -1,5 +1,5 @@
1
1
  import { type GroupLabels, type GroupValue } from '../grouping/groupModel';
2
- import { type DataTableColumn, type DataTableExportSummary, type DataTableFilterCondition, type DataTableFilterGroup, type DataTableSummaryAnyChart, type DataTableSummaryBreakdown, type DataTableSummaryBreakdownCard, type DataTableSummaryBucket, type DataTableSummaryCard, type DataTableSummaryFigure, type DataTableSummaryFunnelCard, type DataTableSummaryPart, type DataTableSummaryPeriod, type DataTableSummaryPeriodCount, type DataTableSummaryRequest, type DataTableSummaryShow, type DataTableSummarySubline, type DataTableSummaryTrendCard, type DataTableSummaryValueCard, type DataTableSummaryWidth } from '../types';
2
+ import { type DataTableColumn, type DataTableExportSummary, type DataTableFilterCondition, type DataTableFilterGroup, type DataTableSummaryAnyChart, type DataTableSummaryBreakdown, type DataTableSummaryBreakdownCard, type DataTableSummaryBucket, type DataTableSummaryCard, type DataTableSummaryCardContext, type DataTableSummaryFigure, type DataTableSummaryFunnelCard, type DataTableSummaryPart, type DataTableSummaryPeriod, type DataTableSummaryPeriodCount, type DataTableSummaryRange, type DataTableSummaryRequest, type DataTableSummaryShow, type DataTableSummarySubline, type DataTableSummarySum, type DataTableSummaryTrendCard, type DataTableSummaryValueCard, type DataTableSummaryValueFigure, type DataTableSummaryRowFilter, type DataTableSummaryWidth } from '../types';
3
3
  import type { ChartSlot } from '../../Charts';
4
4
  export declare const SUMMARY_CONDITION_PREFIX = "summary:";
5
5
  export declare const summaryConditionId: (cardId: string) => string;
@@ -19,10 +19,11 @@ export declare function breakdownPart(card: DataTableSummaryBreakdownCard, partT
19
19
  export declare function partOf(buckets: readonly DataTableSummaryBucket[], part: DataTableSummaryPart): DataTableSummaryBreakdown;
20
20
  export declare const splits: (card: DataTableSummaryTrendCard) => boolean;
21
21
  export declare function summaryCardKey(card: SummaryChartCard | DataTableSummaryValueCard, partTop?: number): string;
22
- export declare function summaryRequest<T>(cards: DataTableSummaryCard<T>[], columns: DataTableColumn<T>[]): DataTableSummaryRequest;
22
+ export declare function summaryRequest<T>(allCards: DataTableSummaryCard<T>[], columns: DataTableColumn<T>[], ctx?: DataTableSummaryCardContext<T>): DataTableSummaryRequest;
23
23
  export declare function ownCondition(group: DataTableFilterGroup, cardId: string): DataTableFilterCondition | undefined;
24
24
  export declare function withoutOwnCondition(group: DataTableFilterGroup, cardId: string): DataTableFilterGroup;
25
- export declare function setSummaryCondition(group: DataTableFilterGroup, cardId: string, condition: DataTableFilterCondition | null): DataTableFilterGroup;
25
+ export declare function setSummaryCondition(group: DataTableFilterGroup, cardId: string, condition: DataTableFilterCondition | null, where?: DataTableSummaryRowFilter['condition']): DataTableFilterGroup;
26
+ export declare function withoutOrphanWhere(group: DataTableFilterGroup): DataTableFilterGroup;
26
27
  export declare function breakdownCondition<T>(card: DataTableSummaryBreakdownCard, col: DataTableColumn<T> | undefined, value: GroupValue): DataTableFilterCondition;
27
28
  export declare function trendCondition(card: DataTableSummaryTrendCard, period: string): DataTableFilterCondition;
28
29
  export declare function funnelCondition(card: DataTableSummaryFunnelCard, stepId: string): DataTableFilterCondition | null;
@@ -30,12 +31,25 @@ export declare const bucketKey: (v: GroupValue) => string;
30
31
  export declare const OTHERS_KEY = "\0others";
31
32
  export declare function selectedKey(card: SummaryChartCard, cond: DataTableFilterCondition | undefined): string | null;
32
33
  export declare function computeFigure<T>(figure: DataTableSummaryFigure<T>, rows: T[]): number;
33
- export declare function countValues<T>(rows: T[], col: DataTableColumn<T>): DataTableSummaryBucket[];
34
- export declare function withChildren<T>(answer: DataTableSummaryBreakdown, rows: T[], col: DataTableColumn<T>, within: DataTableColumn<T>): DataTableSummaryBreakdown;
34
+ export declare const cardRows: <T>(card: {
35
+ where?: DataTableSummaryBreakdownCard<T>["where"];
36
+ }, rows: T[]) => T[];
37
+ export declare function countValues<T>(rows: T[], col: DataTableColumn<T>, sum?: DataTableSummarySum<T>): DataTableSummaryBucket[];
38
+ export declare function withChildren<T>(answer: DataTableSummaryBreakdown, rows: T[], col: DataTableColumn<T>, within: DataTableColumn<T>, sum?: DataTableSummarySum<T>): DataTableSummaryBreakdown;
35
39
  export declare const monthOf: (v: unknown) => string | null;
36
40
  export declare function lastMonths(n: number, now?: Date): string[];
37
41
  export declare function lastDays(n: number, now?: Date): string[];
38
- export declare function countPeriods<T>(rows: T[], col: DataTableColumn<T>, period: DataTableSummaryPeriod, count: number, now?: Date, split?: DataTableColumn<T>): DataTableSummaryPeriodCount[];
42
+ export declare function trendRangeOf(range: DataTableSummaryRange | null | undefined, period: DataTableSummaryPeriod, count: number, now?: Date): {
43
+ from: string;
44
+ to: string;
45
+ count: number;
46
+ } | null;
47
+ export declare function summaryCardFor<T>(card: DataTableSummaryCard<T>, ctx?: DataTableSummaryCardContext<T>, now?: Date): DataTableSummaryCard<T>;
48
+ export declare function countPeriods<T>(rows: T[], col: DataTableColumn<T>, period: DataTableSummaryPeriod, count: number, now?: Date, split?: DataTableColumn<T>, opts?: {
49
+ sum?: DataTableSummarySum<T>;
50
+ range?: Required<DataTableSummaryRange> | null;
51
+ }): DataTableSummaryPeriodCount[];
52
+ export declare const trendPeriods: <T>(card: DataTableSummaryTrendCard<T>, rows: T[], col: DataTableColumn<T>, split?: DataTableColumn<T>, now?: Date) => DataTableSummaryPeriodCount[];
39
53
  export declare function figureSeries<T>(rows: T[], figure: DataTableSummaryFigure<T>, col: DataTableColumn<T>, period: DataTableSummaryPeriod, count: number, now?: Date): {
40
54
  points: Array<{
41
55
  period: string;
@@ -87,6 +101,10 @@ export interface SummaryStepView {
87
101
  slot: ChartSlot;
88
102
  selectable: boolean;
89
103
  }
104
+ export type SummaryFigureView = Pick<DataTableSummaryValueFigure, 'label' | 'text'> & {
105
+ value: number | null;
106
+ };
107
+ export declare const SUMMARY_FIGURES_FIT = 4;
90
108
  export type ResolvedSummaryCard<T = any> = {
91
109
  key: string;
92
110
  width: DataTableSummaryWidth;
@@ -104,6 +122,7 @@ export type ResolvedSummaryCard<T = any> = {
104
122
  points: SummaryPeriodView[];
105
123
  previous: number;
106
124
  } | null;
125
+ figures?: SummaryFigureView[];
107
126
  } | {
108
127
  kind: 'ratio';
109
128
  card: DataTableSummaryCard<T> & {
@@ -140,6 +159,9 @@ export type ResolvedSummaryCard<T = any> = {
140
159
  reason: string;
141
160
  });
142
161
  export declare const drawsChart: (item: ResolvedSummaryCard) => boolean;
162
+ export declare const contentHeight: (item: ResolvedSummaryCard) => boolean;
163
+ export declare const summaryFormat: (item: ResolvedSummaryCard, num: (n: number) => string) => ((n: number) => string);
164
+ export declare const figureText: (f: Pick<DataTableSummaryValueFigure, "text">, n: string) => string;
143
165
  export declare const shareOf: (value: number, total: number) => number;
144
166
  export declare function percentText(p: number): string;
145
167
  export declare function sublineText(line: DataTableSummarySubline, n: string): string;
@@ -13,6 +13,9 @@ export interface TableSummaryInputs<TData> {
13
13
  others: string;
14
14
  };
15
15
  locale?: string;
16
+ selectionKey?: unknown;
16
17
  }
17
18
  export declare function resolveSummaryCards<TData>({ items, columns, serverMode, rowsFor, figures, filterGroup, query, labels, locale }: TableSummaryInputs<TData>): ResolvedSummaryCard<TData>[];
19
+ export declare const SUMMARY_SETTLE_MS = 250;
20
+ export declare const SUMMARY_SLICE_ROWS = 20000;
18
21
  export declare function useTableSummary<TData>(inputs: TableSummaryInputs<TData>): ResolvedSummaryCard<TData>[];
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ export interface ToolbarMoreItem {
3
+ id: string;
4
+ label: string;
5
+ icon: React.ReactNode;
6
+ active?: boolean;
7
+ disabled?: boolean;
8
+ }
9
+ interface ToolbarMoreProps {
10
+ items: ToolbarMoreItem[];
11
+ onPick: (id: string) => void;
12
+ }
13
+ export declare function ToolbarMore({ items, onPick }: ToolbarMoreProps): React.JSX.Element;
14
+ export {};
@@ -0,0 +1,10 @@
1
+ import { type RefObject } from 'react';
2
+ export interface ToolbarFitEntry {
3
+ id: string;
4
+ priority: number;
5
+ }
6
+ export interface ToolbarFit {
7
+ overflow: string[];
8
+ compact: boolean;
9
+ }
10
+ export declare function useToolbarFit(toolbarRef: RefObject<HTMLElement | null>, actionsRef: RefObject<HTMLElement | null>, entries: readonly ToolbarFitEntry[], key: string): ToolbarFit;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare function TreeChips({ onExpandAll, onCollapseAll }: {
3
+ onExpandAll: () => void;
4
+ onCollapseAll: () => void;
5
+ }): React.JSX.Element;
@@ -0,0 +1,54 @@
1
+ import { type TreeExtraRows } from '../../../core/logic';
2
+ import { type ColumnTextContext } from '../columnValue';
3
+ import type { DataTableColumn } from '../types';
4
+ export declare const TREE_LEVEL_KEY = "__treeLevel";
5
+ export interface TreeLevels<T> {
6
+ depthOf: (row: T) => number | undefined;
7
+ isParent: (row: T) => boolean;
8
+ }
9
+ export interface TreeLevelLook {
10
+ mode: 'column' | 'indent';
11
+ header: string;
12
+ text: ColumnTextContext;
13
+ }
14
+ export interface TreeExport<T> {
15
+ rows: T[];
16
+ columns: DataTableColumn<T>[];
17
+ keys: string[];
18
+ inTotals?: (row: T) => boolean;
19
+ }
20
+ export declare function treeLevelsOf<T>(ordered: ReadonlyArray<{
21
+ row: T;
22
+ id: string;
23
+ depth: number;
24
+ }>, isParent: (id: string) => boolean): {
25
+ rows: T[];
26
+ levels: TreeLevels<T>;
27
+ };
28
+ export declare function treeLevelColumns<T>(columns: DataTableColumn<T>[], keys: string[], levels: TreeLevels<T>, look: TreeLevelLook): {
29
+ columns: DataTableColumn<T>[];
30
+ keys: string[];
31
+ };
32
+ export declare function treeFileOf<T>(rows: readonly T[], opts: {
33
+ idOf: (row: T) => string;
34
+ children?: (row: T) => T[] | null | undefined;
35
+ parentField?: string;
36
+ extra?: TreeExtraRows<T>;
37
+ }): {
38
+ rows: T[];
39
+ levels: TreeLevels<T>;
40
+ };
41
+ export declare const treeInTotals: <T>(levels: TreeLevels<T>, totals: "leaves" | "all") => ((row: T) => boolean) | undefined;
42
+ export declare function treeExportOf<T>(ordered: Array<{
43
+ row: {
44
+ id: string;
45
+ original: T;
46
+ };
47
+ depth: number;
48
+ }> | null, columns: DataTableColumn<T>[], keys: string[], opts: {
49
+ mode: 'column' | 'indent';
50
+ totals: 'leaves' | 'all';
51
+ isParent: (id: string) => boolean;
52
+ header: string;
53
+ text: ColumnTextContext;
54
+ }): TreeExport<T> | null;
@@ -0,0 +1 @@
1
+ export declare function withNestedValue<T>(row: T, path: string, value: unknown): T;
@@ -0,0 +1,15 @@
1
+ import type { DataTableDataSource, DataTableQuery } from '../types';
2
+ export declare function useTreeChildren<T>(opts: {
3
+ dataSource: DataTableDataSource<T> | undefined;
4
+ active: boolean;
5
+ query: DataTableQuery | null;
6
+ rowKey: string | undefined;
7
+ tick: number;
8
+ }): {
9
+ enabled: boolean;
10
+ rows: T[];
11
+ parents: Map<string, string>;
12
+ status: (id: string) => "error" | "loading" | "done" | undefined;
13
+ load: (id: string, parent: T) => void;
14
+ forget: (id: string) => void;
15
+ };