@12-apps/ui 6.13.1 → 6.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal/components/data-display/Carousel/Carousel.js +4 -4
- package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
- package/dist/_internal/components/data-display/Chart/SpecChart.js +7 -7
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
- package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +24 -21
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +29 -26
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +2 -2
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +20 -18
- package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +12 -0
- package/dist/_internal/components/data-display/DataViews/data-views-header-row.js.map +1 -0
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +7 -7
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-selection-extra.js +8 -0
- package/dist/_internal/components/data-display/DataViews/data-views-selection-extra.js.map +1 -0
- package/dist/_internal/components/data-display/DataViews/data-views-selection.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-writers.js +9 -0
- package/dist/_internal/components/data-display/DataViews/data-views-writers.js.map +1 -0
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +3 -2
- package/dist/_internal/components/data-display/index.js +23 -23
- package/dist/_internal/components/index.js +24 -24
- package/dist/_internal/components/layout/ContentToolbar/ContentToolbar.js +1 -1
- package/dist/_internal/components/layout/index.js +1 -1
- package/dist/charts.js +17 -17
- package/dist/{chunk-BV5XTGKB.js → chunk-2UCJJACD.js} +7 -9
- package/dist/chunk-2UCJJACD.js.map +1 -0
- package/dist/{chunk-JKLWHENB.js → chunk-62WEMJV3.js} +3 -3
- package/dist/chunk-62WEMJV3.js.map +1 -0
- package/dist/chunk-A4YWFX5C.js +39 -0
- package/dist/chunk-A4YWFX5C.js.map +1 -0
- package/dist/{chunk-CXA6UNFF.js → chunk-AP3PVR3T.js} +5 -5
- package/dist/{chunk-NPEKJXVV.js → chunk-BPCYXLWY.js} +7 -7
- package/dist/{chunk-XULTDO56.js → chunk-BVGR7OYA.js} +4 -4
- package/dist/{chunk-BZTFPSWT.js → chunk-DFLTUI7W.js} +7 -7
- package/dist/{chunk-AWTERXCW.js → chunk-GNAAHDCN.js} +4 -2
- package/dist/chunk-GNAAHDCN.js.map +1 -0
- package/dist/{chunk-HGBZZDP6.js → chunk-J4DDXHLB.js} +4 -4
- package/dist/chunk-KX75HM5U.js +20 -0
- package/dist/chunk-KX75HM5U.js.map +1 -0
- package/dist/chunk-LLZWB32X.js +36 -0
- package/dist/chunk-LLZWB32X.js.map +1 -0
- package/dist/{chunk-T4BFDZGU.js → chunk-LNIVT62P.js} +16 -40
- package/dist/chunk-LNIVT62P.js.map +1 -0
- package/dist/{chunk-WLCVOQCJ.js → chunk-LPNF4YJ7.js} +3 -3
- package/dist/{chunk-QQE2PVLO.js → chunk-M6365FGG.js} +2 -2
- package/dist/{chunk-RDYBS45D.js → chunk-O6MZPB64.js} +2 -2
- package/dist/{chunk-4KSOSI3U.js → chunk-O6V7KKW7.js} +4 -4
- package/dist/{chunk-JPDKRGYI.js → chunk-PDGAFQ6Z.js} +3 -3
- package/dist/{chunk-IN642YHK.js → chunk-PHA3NFZM.js} +2 -2
- package/dist/{chunk-NC2AATCC.js → chunk-QIKTIKO6.js} +2 -2
- package/dist/{chunk-GOWBYHYW.js → chunk-R6SBP5M5.js} +4 -4
- package/dist/{chunk-X5MPHXG5.js → chunk-RPWEXIAW.js} +6 -6
- package/dist/{chunk-2WWKBD4D.js → chunk-TSPHRZ4U.js} +5 -1
- package/dist/chunk-TSPHRZ4U.js.map +1 -0
- package/dist/chunk-U5FOJBLG.js +19 -0
- package/dist/chunk-U5FOJBLG.js.map +1 -0
- package/dist/{chunk-DEOC5OI7.js → chunk-U5RIDMMV.js} +2 -2
- package/dist/chunk-U5RIDMMV.js.map +1 -0
- package/dist/{chunk-ZHPKFV7Y.js → chunk-UENDC45F.js} +2 -2
- package/dist/{chunk-WXBBWSNU.js → chunk-ZNGUDGKW.js} +6 -5
- package/dist/chunk-ZNGUDGKW.js.map +1 -0
- package/dist/data-display/CardKit.js +7 -7
- package/dist/data-display/Carousel.js +4 -4
- package/dist/data-display/Chart.js +17 -17
- package/dist/data-display/DataGrid.js +2 -2
- package/dist/data-display/DataViews.js +38 -35
- package/dist/layout/ContentToolbar.js +1 -1
- package/dist/types/components/data-display/DataViews/DataViewsGrid.d.ts +12 -0
- package/dist/types/components/data-display/DataViews/DataViewsGrid.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/DataViewsTableBase.d.ts +3 -0
- package/dist/types/components/data-display/DataViews/DataViewsTableBase.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-grid-parts.d.ts +3 -0
- package/dist/types/components/data-display/DataViews/data-views-grid-parts.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-header-row.d.ts +18 -0
- package/dist/types/components/data-display/DataViews/data-views-header-row.d.ts.map +1 -0
- package/dist/types/components/data-display/DataViews/data-views-selection-extra.d.ts +50 -0
- package/dist/types/components/data-display/DataViews/data-views-selection-extra.d.ts.map +1 -0
- package/dist/types/components/data-display/DataViews/data-views-selection.d.ts +31 -2
- package/dist/types/components/data-display/DataViews/data-views-selection.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-shell-toolbar.d.ts +3 -1
- package/dist/types/components/data-display/DataViews/data-views-shell-toolbar.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-toolbar.d.ts +2 -0
- package/dist/types/components/data-display/DataViews/data-views-toolbar.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-writers.d.ts +20 -0
- package/dist/types/components/data-display/DataViews/data-views-writers.d.ts.map +1 -0
- package/dist/types/components/data-display/DataViews/index.d.ts +1 -0
- package/dist/types/components/data-display/DataViews/index.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/use-data-views-state.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts +1 -1
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts +15 -0
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/data-display/DataViews/DataViewsGrid.tsx +12 -0
- package/src/components/data-display/DataViews/DataViewsTableBase.tsx +3 -0
- package/src/components/data-display/DataViews/data-views-grid-parts.tsx +5 -50
- package/src/components/data-display/DataViews/data-views-header-row.tsx +52 -0
- package/src/components/data-display/DataViews/data-views-selection-extra.ts +67 -0
- package/src/components/data-display/DataViews/data-views-selection.ts +61 -6
- package/src/components/data-display/DataViews/data-views-shell-toolbar.tsx +4 -0
- package/src/components/data-display/DataViews/data-views-toolbar.tsx +3 -0
- package/src/components/data-display/DataViews/data-views-writers.ts +45 -0
- package/src/components/data-display/DataViews/index.ts +1 -0
- package/src/components/data-display/DataViews/use-data-views-state.ts +4 -11
- package/src/components/layout/ContentToolbar/ContentToolbar.md +10 -3
- package/src/components/layout/ContentToolbar/ContentToolbar.tsx +5 -0
- package/src/components/layout/ContentToolbar/ContentToolbar.types.ts +15 -0
- package/dist/chunk-2WWKBD4D.js.map +0 -1
- package/dist/chunk-AWTERXCW.js.map +0 -1
- package/dist/chunk-BV5XTGKB.js.map +0 -1
- package/dist/chunk-DEOC5OI7.js.map +0 -1
- package/dist/chunk-JKLWHENB.js.map +0 -1
- package/dist/chunk-T4BFDZGU.js.map +0 -1
- package/dist/chunk-WTOTWP6A.js +0 -27
- package/dist/chunk-WTOTWP6A.js.map +0 -1
- package/dist/chunk-WXBBWSNU.js.map +0 -1
- /package/dist/{chunk-CXA6UNFF.js.map → chunk-AP3PVR3T.js.map} +0 -0
- /package/dist/{chunk-NPEKJXVV.js.map → chunk-BPCYXLWY.js.map} +0 -0
- /package/dist/{chunk-XULTDO56.js.map → chunk-BVGR7OYA.js.map} +0 -0
- /package/dist/{chunk-BZTFPSWT.js.map → chunk-DFLTUI7W.js.map} +0 -0
- /package/dist/{chunk-HGBZZDP6.js.map → chunk-J4DDXHLB.js.map} +0 -0
- /package/dist/{chunk-WLCVOQCJ.js.map → chunk-LPNF4YJ7.js.map} +0 -0
- /package/dist/{chunk-QQE2PVLO.js.map → chunk-M6365FGG.js.map} +0 -0
- /package/dist/{chunk-RDYBS45D.js.map → chunk-O6MZPB64.js.map} +0 -0
- /package/dist/{chunk-4KSOSI3U.js.map → chunk-O6V7KKW7.js.map} +0 -0
- /package/dist/{chunk-JPDKRGYI.js.map → chunk-PDGAFQ6Z.js.map} +0 -0
- /package/dist/{chunk-IN642YHK.js.map → chunk-PHA3NFZM.js.map} +0 -0
- /package/dist/{chunk-NC2AATCC.js.map → chunk-QIKTIKO6.js.map} +0 -0
- /package/dist/{chunk-GOWBYHYW.js.map → chunk-R6SBP5M5.js.map} +0 -0
- /package/dist/{chunk-X5MPHXG5.js.map → chunk-RPWEXIAW.js.map} +0 -0
- /package/dist/{chunk-ZHPKFV7Y.js.map → chunk-UENDC45F.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-views-toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-toolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IACjF,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,KAAK,GAAG,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,kFAAkF;IAClF,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,6EAA6E;IAC7E,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC1B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,kFAAkF;IAClF,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,qDAAqD;IACrD,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAgED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"data-views-toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-toolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IACjF,+EAA+E;IAC/E,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,KAAK,GAAG,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,kFAAkF;IAClF,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,6EAA6E;IAC7E,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC1B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,kFAAkF;IAClF,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,qDAAqD;IACrD,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAgED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAyC5G"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type Dispatch, type SetStateAction } from "react";
|
|
2
|
+
import { type DataViewState, type DataViewStatePatch } from "./data-views-types";
|
|
3
|
+
/**
|
|
4
|
+
* The two ways a DataViews state is WRITTEN, spelled once.
|
|
5
|
+
*
|
|
6
|
+
* Both are `setState` with a shape — a whole-state patch, and the one column
|
|
7
|
+
* toggle that has to merge into a list rather than replace a field. They sat
|
|
8
|
+
* inline in `useDataViewsState`, which is permanently at the size gate's
|
|
9
|
+
* ceiling; here they sit next to each other, where the fact that
|
|
10
|
+
* `toggleColumn` is just a `patch` with a merge rule is visible.
|
|
11
|
+
*
|
|
12
|
+
* Extracted for the same reason `useSelection` was: that hook is a COMPOSITION
|
|
13
|
+
* of the pieces below it, and every piece that can be named on its own leaves
|
|
14
|
+
* it reading as what it assembles rather than as how each part works.
|
|
15
|
+
*/
|
|
16
|
+
export declare function useStateWriters(setState: Dispatch<SetStateAction<DataViewState>>): {
|
|
17
|
+
patch: (next: DataViewStatePatch) => void;
|
|
18
|
+
toggleColumn: (id: string, visible: boolean) => void;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=data-views-writers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-views-writers.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-writers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAcjF;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,GAAG;IAClF,KAAK,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD,CAUA"}
|
|
@@ -18,6 +18,7 @@ export { toSavedViewSummary, CARD_ASPECT_RATIOS, DATA_VIEWS_LAYOUTS } from "./da
|
|
|
18
18
|
export { cardScaleForZoom, cardMinWidthForZoom } from "./data-views-layout-context";
|
|
19
19
|
export { DataViewsBoard, type BoardConfig, type BoardGroup } from "./DataViewsBoard";
|
|
20
20
|
export type { DataViewExport, DataViewExportFormat, DataViewExportRequest, } from "./data-views-export";
|
|
21
|
+
export type { SelectionExtraContext, SelectionExtraRender } from "./data-views-selection-extra";
|
|
21
22
|
export { DataViewsScopeTabs, resolveScope, assertNoScopePillOverlap, type ScopeConfig, } from "./data-views-scopes";
|
|
22
23
|
export type { RowAction, DataViewCardSelection, CardAspectRatio, SavedViewSummary, DataViewState, DataViewSyncState, DataViewsLayout, DataViewColumn, FilterFieldConfig, RangeFieldConfig, RangeFieldKind, RangeValue, RangePreset, NumberRangeFieldConfig, DayRangeFieldConfig, DataViewPersistence, DataViewRouter, DataViewSaveInput, DataViewMutationResult, DataViewQuery, DataViewServer, } from "./data-views-types";
|
|
23
24
|
export { DataViewsCopyProvider, useDataViewsCopy } from "./data-views-copy-context";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAMxE,OAAO,EACL,aAAa,EACb,aAAa,EACb,UAAU,EACV,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,kBAAkB,EACvB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAI3B,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrF,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,SAAS,EACT,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,cAAc,GACf,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACpF,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAMxE,OAAO,EACL,aAAa,EACb,aAAa,EACb,UAAU,EACV,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,kBAAkB,EACvB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAI3B,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrF,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAChG,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,SAAS,EACT,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,cAAc,GACf,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACpF,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-data-views-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/use-data-views-state.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAsC,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-data-views-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/use-data-views-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,5 +29,5 @@ import type { ContentToolbarProps } from './ContentToolbar.types';
|
|
|
29
29
|
* />
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
|
-
export declare function ContentToolbar({ hasSelection, selectedCount, selectAll, clearSelection, rightControls, leadingControls, actions, selectAllTestId, clearAllTestId, edgeAlign, exclusiveSelection, selectAllLabel, selectAllText, clearAllText, }: ContentToolbarProps): React.JSX.Element;
|
|
32
|
+
export declare function ContentToolbar({ hasSelection, selectedCount, selectAll, clearSelection, rightControls, leadingControls, actions, selectionExtra, selectAllTestId, clearAllTestId, edgeAlign, exclusiveSelection, selectAllLabel, selectAllText, clearAllText, }: ContentToolbarProps): React.JSX.Element;
|
|
33
33
|
//# sourceMappingURL=ContentToolbar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentToolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/ContentToolbar/ContentToolbar.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ContentToolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/ContentToolbar/ContentToolbar.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAkLlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,cAAc,CAAC,EAC7B,YAAY,EACZ,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,EACb,eAAe,EACf,OAAO,EACP,cAAc,EACd,eAAe,EACf,cAAc,EACd,SAAiB,EACjB,kBAA0B,EAC1B,cAAc,EACd,aAAa,EACb,YAAY,GACb,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkDzC"}
|
|
@@ -42,6 +42,21 @@ export interface ContentToolbarProps {
|
|
|
42
42
|
* what the action does.
|
|
43
43
|
*/
|
|
44
44
|
actions?: ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* A control rendered between the count and {@link actions}, and ONLY while
|
|
47
|
+
* something is selected.
|
|
48
|
+
*
|
|
49
|
+
* It is a second slot rather than more room in `actions` because the two
|
|
50
|
+
* answer different questions. `actions` is what HAPPENS to the selection;
|
|
51
|
+
* this is what the selection IS — the "select all 143 matching" widening
|
|
52
|
+
* that a paginated grid needs once its whole page is ticked. Folding a
|
|
53
|
+
* widening control into the actions menu would file "change what I picked"
|
|
54
|
+
* under "do this to what I picked", where an operator reasonably expects
|
|
55
|
+
* every entry to write something.
|
|
56
|
+
*
|
|
57
|
+
* Ignored when nothing is selected: a widening has nothing to widen.
|
|
58
|
+
*/
|
|
59
|
+
selectionExtra?: ReactNode;
|
|
45
60
|
/** Test id for the Select All button. */
|
|
46
61
|
selectAllTestId?: string;
|
|
47
62
|
/** Test id for the Clear All button. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentToolbar.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/ContentToolbar/ContentToolbar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,YAAY,EAAE,OAAO,CAAC;IACtB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,mCAAmC;IACnC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,8EAA8E;IAC9E,aAAa,EAAE,SAAS,CAAC;IACzB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,yCAAyC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID,8CAA8C;AAC9C,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,yCAAyC;IACzC,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC3C,+EAA+E;IAC/E,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2CAA2C;IAC3C,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACzC;AAID,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,cAAc,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CAChC;AAED,wCAAwC;AACxC,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CACxC;AAED,wCAAwC;AACxC,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM;IACjE,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,uDAAuD;AACvD,MAAM,WAAW,iBAAiB,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,sEAAsE;AACtE,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAED,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM;IACtE,yEAAyE;IACzE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrC,kEAAkE;IAClE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACxC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAID,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,2CAA2C;IAC3C,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,wDAAwD;AACxD,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,gFAAgF;AAChF,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,kEAAkE;IAClE,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAC1E,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3B,8DAA8D;IAC9D,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAChC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IACjC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,mDAAmD;IACnD;;;;OAIG;IACH,MAAM,EAAE,gBAAgB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"ContentToolbar.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/ContentToolbar/ContentToolbar.types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -5,6 +5,7 @@ import { useEffect, useRef } from "react";
|
|
|
5
5
|
import { type SortFieldDefinition } from "../../layout/ContentToolbar";
|
|
6
6
|
|
|
7
7
|
import { GridShell } from "./data-views-grid-parts";
|
|
8
|
+
import type { SelectionExtraRender } from "./data-views-selection-extra";
|
|
8
9
|
import type { ListGroupConfig } from "./list-card-rails";
|
|
9
10
|
import type { DisplayPanelView } from "./data-views-display-panel";
|
|
10
11
|
import type { BoardConfig } from "./DataViewsBoard";
|
|
@@ -97,6 +98,17 @@ interface DataViewsGridProps<T extends Record<string, unknown>> {
|
|
|
97
98
|
* Receives the selected rows + a `clearSelection` callback.
|
|
98
99
|
*/
|
|
99
100
|
bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
|
|
101
|
+
/**
|
|
102
|
+
* A control rendered beside the "N selected" count, for changing WHAT is
|
|
103
|
+
* selected rather than what happens to it — a "select all N matching the
|
|
104
|
+
* filter" widening, above all.
|
|
105
|
+
*
|
|
106
|
+
* Called only while something is selected, and handed
|
|
107
|
+
* {@link SelectionExtraContext.allOnPageSelected} so the control can follow
|
|
108
|
+
* the convention operators already know: the widening appears once the whole
|
|
109
|
+
* page is ticked, and not before.
|
|
110
|
+
*/
|
|
111
|
+
selectionExtra?: SelectionExtraRender<T>;
|
|
100
112
|
/**
|
|
101
113
|
* Render a bespoke per-row menu in the actions column instead of the auto
|
|
102
114
|
* kebab — typically an entity's self-contained 3-dots menu that owns its own
|
|
@@ -4,6 +4,7 @@ import type { SortFieldDefinition } from "../../layout/ContentToolbar";
|
|
|
4
4
|
import { useEffect, useMemo, useRef, useState } from "react";
|
|
5
5
|
|
|
6
6
|
import { DataViewsGrid } from "./DataViewsGrid";
|
|
7
|
+
import type { SelectionExtraRender } from "./data-views-selection-extra";
|
|
7
8
|
import type { ListGroupConfig } from "./list-card-rails";
|
|
8
9
|
import type { DisplayPanelView } from "./data-views-display-panel";
|
|
9
10
|
import { viewStateKey } from "./data-views-dirty";
|
|
@@ -76,6 +77,8 @@ export interface DataViewsTableBaseProps<T extends Record<string, unknown>> {
|
|
|
76
77
|
rowActionsLeading?: (row: T) => React.ReactNode;
|
|
77
78
|
/** Low-level bulk-action override; prefer `rowActions`. */
|
|
78
79
|
bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
|
|
80
|
+
/** A selection-widening control beside the count (e.g. "select all matching"). */
|
|
81
|
+
selectionExtra?: SelectionExtraRender<T>;
|
|
79
82
|
/** Bespoke per-row menu (an entity's self-contained 3-dots menu) instead of the auto kebab. */
|
|
80
83
|
renderRowMenu?: (row: T) => React.ReactNode;
|
|
81
84
|
/** Opt-in "Grade" (cards) layout — a card renderer per row; adds a Grade/Tabela toggle. */
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
import { useEffect, useState } from "react";
|
|
4
4
|
|
|
5
5
|
import { TableFilter } from "../../layout/TableFilter";
|
|
6
|
-
import { Text } from "../../typography/Text";
|
|
7
|
-
import { Box } from "../../../mui/Box";
|
|
8
6
|
import { Stack } from "../../../mui/Stack";
|
|
9
7
|
|
|
10
8
|
import {
|
|
@@ -17,6 +15,8 @@ import { GridMain } from "./data-views-grid-bodies";
|
|
|
17
15
|
import type { ListGroupConfig } from "./list-card-rails";
|
|
18
16
|
import { InlineFilterControls } from "./data-views-inline-bar";
|
|
19
17
|
import { toOverflowFields, useFilterOverflow, type OverflowSplit } from "./data-views-overflow";
|
|
18
|
+
import { GridHeaderRow } from "./data-views-header-row";
|
|
19
|
+
import { resolveSelectionExtra, type SelectionExtraRender } from "./data-views-selection-extra";
|
|
20
20
|
import { ShellToolbar } from "./data-views-shell-toolbar";
|
|
21
21
|
import type { DisplayPanelView } from "./data-views-display-panel";
|
|
22
22
|
import type { DataViewExport } from "./data-views-export";
|
|
@@ -36,54 +36,6 @@ import type {
|
|
|
36
36
|
} from "./data-views-types";
|
|
37
37
|
import type { DataViewsController } from "./use-data-views-state";
|
|
38
38
|
|
|
39
|
-
/* ── Header row ──────────────────────────────────────────────────────────── */
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* The grid's own header row: the page title on the left, the primary page
|
|
43
|
-
* actions on the right.
|
|
44
|
-
*
|
|
45
|
-
* `title` and `headerActions` were DECLARED on `DataViewsGridProps` and
|
|
46
|
-
* `DataViewsTableBaseProps` but never destructured or forwarded — dead props
|
|
47
|
-
* whose types lied to every caller that set them. Wired here rather than
|
|
48
|
-
* deleted: a table that carries its own title keeps the title, the scope tabs
|
|
49
|
-
* and the toolbar as one block, instead of the page having to space them.
|
|
50
|
-
*
|
|
51
|
-
* Renders NOTHING when neither is supplied, so no existing table gains a row.
|
|
52
|
-
*/
|
|
53
|
-
function GridHeaderRow({
|
|
54
|
-
title,
|
|
55
|
-
headerActions,
|
|
56
|
-
testIdPrefix,
|
|
57
|
-
}: {
|
|
58
|
-
title?: string;
|
|
59
|
-
headerActions?: React.ReactNode;
|
|
60
|
-
testIdPrefix: string;
|
|
61
|
-
}): React.JSX.Element | null {
|
|
62
|
-
if (!title && !headerActions) return null;
|
|
63
|
-
return (
|
|
64
|
-
<Box
|
|
65
|
-
data-testid={`${testIdPrefix}-header`}
|
|
66
|
-
sx={{
|
|
67
|
-
display: "flex",
|
|
68
|
-
alignItems: "center",
|
|
69
|
-
justifyContent: "space-between",
|
|
70
|
-
gap: 2,
|
|
71
|
-
flexWrap: "wrap",
|
|
72
|
-
pb: 1.5,
|
|
73
|
-
}}
|
|
74
|
-
>
|
|
75
|
-
{title ? (
|
|
76
|
-
<Text variant="heading" size="lg" as="h2">
|
|
77
|
-
{title}
|
|
78
|
-
</Text>
|
|
79
|
-
) : (
|
|
80
|
-
<Box />
|
|
81
|
-
)}
|
|
82
|
-
{headerActions && <Box sx={{ display: "flex", alignItems: "center", gap: 1 }}>{headerActions}</Box>}
|
|
83
|
-
</Box>
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
39
|
/* ── Layout ⇄ view-state mirror ──────────────────────────────────────────── */
|
|
88
40
|
|
|
89
41
|
/**
|
|
@@ -230,6 +182,8 @@ interface GridShellProps<T extends Record<string, unknown>> {
|
|
|
230
182
|
toolbarRightSlot?: React.ReactNode;
|
|
231
183
|
rowActions?: RowAction<T>[];
|
|
232
184
|
bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
|
|
185
|
+
/** A widening control beside the selection count — see `resolveSelectionExtra`. */
|
|
186
|
+
selectionExtra?: SelectionExtraRender<T>;
|
|
233
187
|
/** Opt-in "Grade" (cards) layout: renders each row as an entity-supplied card.
|
|
234
188
|
* Omit ⇒ table only (no layout toggle). */
|
|
235
189
|
renderCard?: (row: T, selection: DataViewCardSelection) => React.ReactNode;
|
|
@@ -326,6 +280,7 @@ function ShellStack<T extends Record<string, unknown>>({
|
|
|
326
280
|
testIdPrefix={testIdPrefix}
|
|
327
281
|
rowActions={props.rowActions}
|
|
328
282
|
bulkActions={props.bulkActions}
|
|
283
|
+
selectionExtra={resolveSelectionExtra(props)}
|
|
329
284
|
toolbarRightSlot={props.toolbarRightSlot}
|
|
330
285
|
compactControls={showInline && split.compactControls}
|
|
331
286
|
counterHidden={showInline && split.counterHidden}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { Text } from "../../typography/Text";
|
|
4
|
+
import { Box } from "../../../mui/Box";
|
|
5
|
+
|
|
6
|
+
/* ── Header row ──────────────────────────────────────────────────────────── */
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The grid's own header row: the page title on the left, the primary page
|
|
10
|
+
* actions on the right.
|
|
11
|
+
*
|
|
12
|
+
* `title` and `headerActions` were DECLARED on `DataViewsGridProps` and
|
|
13
|
+
* `DataViewsTableBaseProps` but never destructured or forwarded — dead props
|
|
14
|
+
* whose types lied to every caller that set them. Wired here rather than
|
|
15
|
+
* deleted: a table that carries its own title keeps the title, the scope tabs
|
|
16
|
+
* and the toolbar as one block, instead of the page having to space them.
|
|
17
|
+
*
|
|
18
|
+
* Renders NOTHING when neither is supplied, so no existing table gains a row.
|
|
19
|
+
*/
|
|
20
|
+
export function GridHeaderRow({
|
|
21
|
+
title,
|
|
22
|
+
headerActions,
|
|
23
|
+
testIdPrefix,
|
|
24
|
+
}: {
|
|
25
|
+
title?: string;
|
|
26
|
+
headerActions?: React.ReactNode;
|
|
27
|
+
testIdPrefix: string;
|
|
28
|
+
}): React.JSX.Element | null {
|
|
29
|
+
if (!title && !headerActions) return null;
|
|
30
|
+
return (
|
|
31
|
+
<Box
|
|
32
|
+
data-testid={`${testIdPrefix}-header`}
|
|
33
|
+
sx={{
|
|
34
|
+
display: "flex",
|
|
35
|
+
alignItems: "center",
|
|
36
|
+
justifyContent: "space-between",
|
|
37
|
+
gap: 2,
|
|
38
|
+
flexWrap: "wrap",
|
|
39
|
+
pb: 1.5,
|
|
40
|
+
}}
|
|
41
|
+
>
|
|
42
|
+
{title ? (
|
|
43
|
+
<Text variant="heading" size="lg" as="h2">
|
|
44
|
+
{title}
|
|
45
|
+
</Text>
|
|
46
|
+
) : (
|
|
47
|
+
<Box />
|
|
48
|
+
)}
|
|
49
|
+
{headerActions && <Box sx={{ display: "flex", alignItems: "center", gap: 1 }}>{headerActions}</Box>}
|
|
50
|
+
</Box>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The selection-WIDENING slot: what a paginated grid needs so an operator can
|
|
3
|
+
* act on "everything matching the filter" rather than on the page in front of
|
|
4
|
+
* them.
|
|
5
|
+
*
|
|
6
|
+
* It is a slot of its own rather than a share of the bulk-actions menu because
|
|
7
|
+
* the two answer different questions — `actions` is what HAPPENS to the
|
|
8
|
+
* selection, this is what the selection IS. Folding a widening into the actions
|
|
9
|
+
* menu files "change what I picked" under "do this to what I picked", where
|
|
10
|
+
* every entry is expected to write something.
|
|
11
|
+
*/
|
|
12
|
+
import type { DataViewsController } from "./use-data-views-state";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* What a widening control gets to decide with.
|
|
16
|
+
*
|
|
17
|
+
* `allOnPageSelected` is the one thing a host cannot compute for itself, and
|
|
18
|
+
* the whole reason this is a context rather than a bare node: the grid owns
|
|
19
|
+
* which rows the page is currently rendering — server mode pages at the
|
|
20
|
+
* backend, so the host's `rows` prop and the page can differ mid-fetch — and
|
|
21
|
+
* "every row here is ticked" is the trigger a select-all-matching control
|
|
22
|
+
* hangs on. Deriving it host-side would be a second, slightly different answer
|
|
23
|
+
* to the question the grid already answers to draw its own header checkbox.
|
|
24
|
+
*/
|
|
25
|
+
export interface SelectionExtraContext<T extends Record<string, unknown>> {
|
|
26
|
+
/** The selected rows, off-page ones included. */
|
|
27
|
+
selectedRows: T[];
|
|
28
|
+
/** Drop the whole selection. */
|
|
29
|
+
clearSelection: () => void;
|
|
30
|
+
/** Every row the page is rendering is selected — and the page is not empty. */
|
|
31
|
+
allOnPageSelected: boolean;
|
|
32
|
+
/** How many rows the page is rendering. */
|
|
33
|
+
pageRowCount: number;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** The host's widening control, called only while something is selected. */
|
|
37
|
+
export type SelectionExtraRender<T extends Record<string, unknown>> = (
|
|
38
|
+
context: SelectionExtraContext<T>,
|
|
39
|
+
) => React.ReactNode;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Resolve the host's control against the page on screen.
|
|
43
|
+
*
|
|
44
|
+
* Measured against `c.matched` — which in server mode IS the page — rather than
|
|
45
|
+
* the `rows` prop, so the answer cannot lag a page change.
|
|
46
|
+
*
|
|
47
|
+
* Returns `undefined` with nothing selected, so the toolbar renders no empty
|
|
48
|
+
* slot: a widening with nothing to widen is not a control.
|
|
49
|
+
*/
|
|
50
|
+
export function resolveSelectionExtra<T extends Record<string, unknown>>({
|
|
51
|
+
c,
|
|
52
|
+
getRowId,
|
|
53
|
+
selectionExtra,
|
|
54
|
+
}: {
|
|
55
|
+
c: DataViewsController<T>;
|
|
56
|
+
getRowId: (row: T) => string | number;
|
|
57
|
+
selectionExtra?: SelectionExtraRender<T>;
|
|
58
|
+
}): React.ReactNode {
|
|
59
|
+
if (selectionExtra === undefined || c.selectedRows.length === 0) return undefined;
|
|
60
|
+
const page = c.matched;
|
|
61
|
+
return selectionExtra({
|
|
62
|
+
selectedRows: c.selectedRows,
|
|
63
|
+
clearSelection: c.clearSelection,
|
|
64
|
+
allOnPageSelected: page.length > 0 && page.every((row) => c.selectedIds.has(getRowId(row))),
|
|
65
|
+
pageRowCount: page.length,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { useMemo, useState } from "react";
|
|
3
|
+
import { useMemo, useRef, useState } from "react";
|
|
4
4
|
|
|
5
5
|
/** The multi-select model, identical in every layout (table, cards, board). */
|
|
6
6
|
interface DataViewsSelection<T> {
|
|
@@ -8,7 +8,7 @@ interface DataViewsSelection<T> {
|
|
|
8
8
|
setSelectedIds: (ids: Set<string | number>) => void;
|
|
9
9
|
/** Add/remove ONE id — what a card's or board card's checkbox calls. */
|
|
10
10
|
toggleId: (id: string | number) => void;
|
|
11
|
-
/** The selected rows,
|
|
11
|
+
/** The selected rows, INCLUDING ones the current page no longer renders. */
|
|
12
12
|
selectedRows: T[];
|
|
13
13
|
clearSelection: () => void;
|
|
14
14
|
selectAll: () => void;
|
|
@@ -23,16 +23,71 @@ interface DataViewsSelection<T> {
|
|
|
23
23
|
* because `toggleId` needs a functional update: two cards toggled in the same
|
|
24
24
|
* tick would otherwise both read the pre-render set and the second would drop
|
|
25
25
|
* the first's change.
|
|
26
|
+
*
|
|
27
|
+
* ## A selection has to survive PAGING
|
|
28
|
+
*
|
|
29
|
+
* `selectedIds` always did — nothing clears it when the page changes — but
|
|
30
|
+
* `selectedRows` was `matched.filter(...)`, and in SERVER mode `matched` is one
|
|
31
|
+
* page. So ticking three rows, paging, and ticking two more left the checkboxes
|
|
32
|
+
* claiming five and the bulk action receiving two, silently, with the other
|
|
33
|
+
* three still ticked on a page nobody was looking at.
|
|
34
|
+
*
|
|
35
|
+
* That is the worst shape a bug can have here: the UI and the write disagree,
|
|
36
|
+
* neither says so, and the rows that did not move are exactly the ones out of
|
|
37
|
+
* sight. So a row is REMEMBERED for as long as its id is selected, and
|
|
38
|
+
* `selectedRows` answers from that memory for anything the current page does
|
|
39
|
+
* not hold.
|
|
40
|
+
*
|
|
41
|
+
* **Server mode only** ({@link SelectionOptions.rememberOffPage}), and the
|
|
42
|
+
* distinction is not a hedge. In client mode `matched` is the whole filtered
|
|
43
|
+
* result, so nothing is ever off-page and there is nothing to remember — while
|
|
44
|
+
* narrowing the selection as the FILTER narrows is the behaviour a client-mode
|
|
45
|
+
* grid should keep. Remembering there would mean a bulk action reaching rows
|
|
46
|
+
* the operator has just filtered away.
|
|
26
47
|
*/
|
|
48
|
+
export interface SelectionOptions {
|
|
49
|
+
/**
|
|
50
|
+
* Keep rows the current page no longer renders.
|
|
51
|
+
*
|
|
52
|
+
* True in server mode, where `matched` is a page rather than the result.
|
|
53
|
+
*/
|
|
54
|
+
rememberOffPage?: boolean;
|
|
55
|
+
}
|
|
56
|
+
|
|
27
57
|
export function useSelection<T>(
|
|
28
58
|
matched: T[],
|
|
29
59
|
getRowId: (row: T) => string | number,
|
|
60
|
+
options: SelectionOptions = {},
|
|
30
61
|
): DataViewsSelection<T> {
|
|
31
62
|
const [selectedIds, setSelectedIds] = useState<Set<string | number>>(new Set());
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
63
|
+
// Rows seen while selected, so a selection outlives the page that made it.
|
|
64
|
+
// A ref rather than state: it is a CACHE derived from what has been rendered,
|
|
65
|
+
// and holding it in state would re-render on every page load to store rows
|
|
66
|
+
// nothing is waiting for.
|
|
67
|
+
const remembered = useRef(new Map<string | number, T>());
|
|
68
|
+
|
|
69
|
+
const selectedRows = useMemo(() => {
|
|
70
|
+
const onPage = matched.filter((row) => selectedIds.has(getRowId(row)));
|
|
71
|
+
if (!options.rememberOffPage) return onPage;
|
|
72
|
+
|
|
73
|
+
const cache = remembered.current;
|
|
74
|
+
// Refresh from what is on screen NOW: a row edited elsewhere and re-fetched
|
|
75
|
+
// must not be acted on through a stale snapshot from three pages ago.
|
|
76
|
+
for (const row of onPage) cache.set(getRowId(row), row);
|
|
77
|
+
// …and forget anything no longer selected, so the map cannot outgrow the
|
|
78
|
+
// selection it exists to describe.
|
|
79
|
+
for (const id of cache.keys()) if (!selectedIds.has(id)) cache.delete(id);
|
|
80
|
+
|
|
81
|
+
// On-page rows first, in the page's own order — unchanged from before this
|
|
82
|
+
// — then the remembered tail. Appending rather than interleaving keeps the
|
|
83
|
+
// familiar case byte-identical and makes the addition exactly the addition.
|
|
84
|
+
const onPageIds = new Set(onPage.map(getRowId));
|
|
85
|
+
const offPage = [...cache.entries()].flatMap(([id, row]) =>
|
|
86
|
+
onPageIds.has(id) ? [] : [row],
|
|
87
|
+
);
|
|
88
|
+
return [...onPage, ...offPage];
|
|
89
|
+
}, [matched, selectedIds, getRowId, options.rememberOffPage]);
|
|
90
|
+
|
|
36
91
|
return {
|
|
37
92
|
selectedIds,
|
|
38
93
|
setSelectedIds,
|
|
@@ -22,6 +22,7 @@ export function ShellToolbar<T extends Record<string, unknown>>({
|
|
|
22
22
|
testIdPrefix,
|
|
23
23
|
rowActions,
|
|
24
24
|
bulkActions,
|
|
25
|
+
selectionExtra,
|
|
25
26
|
toolbarRightSlot,
|
|
26
27
|
showInline,
|
|
27
28
|
compactControls,
|
|
@@ -40,6 +41,8 @@ export function ShellToolbar<T extends Record<string, unknown>>({
|
|
|
40
41
|
exportConfig?: DataViewExport;
|
|
41
42
|
rowActions?: RowAction<T>[];
|
|
42
43
|
bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
|
|
44
|
+
/** Already resolved by the shell, which is the party that knows the page. */
|
|
45
|
+
selectionExtra?: React.ReactNode;
|
|
43
46
|
toolbarRightSlot?: React.ReactNode;
|
|
44
47
|
/** Search + filters, rendered on the toolbar line (see `GridToolbar`). */
|
|
45
48
|
filterControls?: React.ReactNode;
|
|
@@ -71,6 +74,7 @@ export function ShellToolbar<T extends Record<string, unknown>>({
|
|
|
71
74
|
clearSelection={c.clearSelection}
|
|
72
75
|
rowActions={rowActions}
|
|
73
76
|
bulkActions={bulkActions}
|
|
77
|
+
selectionExtra={selectionExtra}
|
|
74
78
|
sortFields={c.resolvedSortFields}
|
|
75
79
|
activeSortField={c.activeSortField}
|
|
76
80
|
activeSortOrder={c.activeSortOrder}
|
|
@@ -25,6 +25,8 @@ export interface GridToolbarProps<T extends Record<string, unknown>> {
|
|
|
25
25
|
clearSelection: () => void;
|
|
26
26
|
rowActions?: RowAction<T>[];
|
|
27
27
|
bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
|
|
28
|
+
/** A control between the count and the actions menu — see `selectionExtra`. */
|
|
29
|
+
selectionExtra?: React.ReactNode;
|
|
28
30
|
sortFields: SortFieldDefinition[];
|
|
29
31
|
activeSortField: string;
|
|
30
32
|
activeSortOrder: "asc" | "desc";
|
|
@@ -161,6 +163,7 @@ export function GridToolbar<T extends Record<string, unknown>>(props: GridToolba
|
|
|
161
163
|
clearSelection={props.clearSelection}
|
|
162
164
|
selectAllTestId={`${testIdPrefix}-select-all`}
|
|
163
165
|
clearAllTestId={`${testIdPrefix}-clear-all`}
|
|
166
|
+
selectionExtra={props.selectionExtra}
|
|
164
167
|
actions={renderBulkActions({
|
|
165
168
|
rowActions: props.rowActions,
|
|
166
169
|
bulkActions: props.bulkActions,
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { type Dispatch, type SetStateAction } from "react";
|
|
4
|
+
|
|
5
|
+
import { type DataViewState, type DataViewStatePatch } from "./data-views-types";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Add or remove one column id from the visible-columns list.
|
|
9
|
+
*
|
|
10
|
+
* Moved here with its only caller. A visible column is APPENDED rather than
|
|
11
|
+
* restored to its original index, which is what makes re-showing a column put
|
|
12
|
+
* it last — the behaviour the Exibir panel has always had.
|
|
13
|
+
*/
|
|
14
|
+
function nextVisibleColumns(current: string[], id: string, visible: boolean): string[] {
|
|
15
|
+
const without = current.filter((colId) => colId !== id);
|
|
16
|
+
return visible ? [...without, id] : without;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The two ways a DataViews state is WRITTEN, spelled once.
|
|
21
|
+
*
|
|
22
|
+
* Both are `setState` with a shape — a whole-state patch, and the one column
|
|
23
|
+
* toggle that has to merge into a list rather than replace a field. They sat
|
|
24
|
+
* inline in `useDataViewsState`, which is permanently at the size gate's
|
|
25
|
+
* ceiling; here they sit next to each other, where the fact that
|
|
26
|
+
* `toggleColumn` is just a `patch` with a merge rule is visible.
|
|
27
|
+
*
|
|
28
|
+
* Extracted for the same reason `useSelection` was: that hook is a COMPOSITION
|
|
29
|
+
* of the pieces below it, and every piece that can be named on its own leaves
|
|
30
|
+
* it reading as what it assembles rather than as how each part works.
|
|
31
|
+
*/
|
|
32
|
+
export function useStateWriters(setState: Dispatch<SetStateAction<DataViewState>>): {
|
|
33
|
+
patch: (next: DataViewStatePatch) => void;
|
|
34
|
+
toggleColumn: (id: string, visible: boolean) => void;
|
|
35
|
+
} {
|
|
36
|
+
return {
|
|
37
|
+
patch: (next) =>
|
|
38
|
+
setState((prev) => ({ ...prev, ...(typeof next === "function" ? next(prev) : next) })),
|
|
39
|
+
toggleColumn: (id, visible) =>
|
|
40
|
+
setState((prev) => ({
|
|
41
|
+
...prev,
|
|
42
|
+
visibleColumns: nextVisibleColumns(prev.visibleColumns, id, visible),
|
|
43
|
+
})),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -15,6 +15,7 @@ import { computeActiveFilterCount, defaultSortFields } from "./data-views-grid-h
|
|
|
15
15
|
import { resolveScope, useScopeConfigChecks, type ScopeConfig } from "./data-views-scopes";
|
|
16
16
|
import { serverDerived, useServerQuery } from "./data-views-server-query";
|
|
17
17
|
import { useSelection } from "./data-views-selection";
|
|
18
|
+
import { useStateWriters } from "./data-views-writers";
|
|
18
19
|
import {
|
|
19
20
|
emptyViewState,
|
|
20
21
|
type DataViewColumn,
|
|
@@ -168,12 +169,6 @@ function useMatchedRows<T extends Record<string, unknown>>(
|
|
|
168
169
|
);
|
|
169
170
|
}
|
|
170
171
|
|
|
171
|
-
/** Add or remove one column id from the visible-columns list. */
|
|
172
|
-
function nextVisibleColumns(current: string[], id: string, visible: boolean): string[] {
|
|
173
|
-
const without = current.filter((colId) => colId !== id);
|
|
174
|
-
return visible ? [...without, id] : without;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
172
|
/**
|
|
178
173
|
* Reconcile external state changes and surface every change to the caller:
|
|
179
174
|
* - `appliedState` (a saved view) fully REPLACES the state — it is columns-
|
|
@@ -336,8 +331,7 @@ export function useDataViewsState<T extends Record<string, unknown>>({
|
|
|
336
331
|
|
|
337
332
|
useStateSyncEffects(appliedState, syncState, state, onStateChange, setState);
|
|
338
333
|
|
|
339
|
-
const patch = (
|
|
340
|
-
setState((prev) => ({ ...prev, ...(typeof next === "function" ? next(prev) : next) }));
|
|
334
|
+
const { patch, toggleColumn } = useStateWriters(setState);
|
|
341
335
|
const matched = useMatchedRows(server, rows, columns, fields, rangeFields, state);
|
|
342
336
|
// Resolved at READ time, every render: a stale deep link or a saved view naming
|
|
343
337
|
// a scope that has since been removed falls back to the first declared scope
|
|
@@ -351,9 +345,8 @@ export function useDataViewsState<T extends Record<string, unknown>>({
|
|
|
351
345
|
onRowClick,
|
|
352
346
|
state.order,
|
|
353
347
|
);
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
const selection = useSelection(matched, getRowId);
|
|
348
|
+
// Server mode is where `matched` is a PAGE — see `useSelection` (FUT-942).
|
|
349
|
+
const selection = useSelection(matched, getRowId, { rememberOffPage: Boolean(server) });
|
|
357
350
|
const resolvedSortFields = sortFields ?? defaultSortFields(columns);
|
|
358
351
|
|
|
359
352
|
return {
|