@12-apps/ui 6.13.2 → 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 +3 -3
- package/dist/_internal/components/data-display/Chart/SpecChart.js +3 -3
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +20 -18
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +23 -21
- 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 +4 -4
- 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 +19 -17
- 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 +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
- 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-shell-toolbar.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +5 -5
- package/dist/_internal/components/data-display/index.js +16 -16
- package/dist/_internal/components/index.js +17 -17
- package/dist/_internal/components/layout/ContentToolbar/ContentToolbar.js +1 -1
- package/dist/_internal/components/layout/index.js +1 -1
- package/dist/charts.js +11 -11
- package/dist/{chunk-HNDUCGM3.js → chunk-62WEMJV3.js} +2 -2
- 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-HRJ27X5B.js → chunk-BPCYXLWY.js} +4 -4
- package/dist/{chunk-XEE7PLDR.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-Q4ITS2EP.js → chunk-LNIVT62P.js} +14 -38
- package/dist/chunk-LNIVT62P.js.map +1 -0
- package/dist/{chunk-RUO4D4N6.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-4VNUOSTQ.js → chunk-PHA3NFZM.js} +2 -2
- package/dist/{chunk-6PFBYCBU.js → chunk-QIKTIKO6.js} +2 -2
- 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-RRYQG5Y6.js → chunk-U5RIDMMV.js} +3 -3
- package/dist/chunk-U5RIDMMV.js.map +1 -0
- package/dist/{chunk-N6JGYVRY.js → chunk-UENDC45F.js} +2 -2
- package/dist/{chunk-4ZEU22L2.js → chunk-XPS7FWZS.js} +4 -4
- package/dist/{chunk-WXBBWSNU.js → chunk-ZNGUDGKW.js} +6 -5
- package/dist/chunk-ZNGUDGKW.js.map +1 -0
- package/dist/data-display/CardKit.js +4 -4
- package/dist/data-display/Carousel.js +3 -3
- package/dist/data-display/Chart.js +11 -11
- package/dist/data-display/DataGrid.js +2 -2
- package/dist/data-display/DataViews.js +31 -29
- 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-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/index.d.ts +1 -0
- package/dist/types/components/data-display/DataViews/index.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-shell-toolbar.tsx +4 -0
- package/src/components/data-display/DataViews/data-views-toolbar.tsx +3 -0
- package/src/components/data-display/DataViews/index.ts +1 -0
- 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-HNDUCGM3.js.map +0 -1
- package/dist/chunk-Q4ITS2EP.js.map +0 -1
- package/dist/chunk-RRYQG5Y6.js.map +0 -1
- package/dist/chunk-WXBBWSNU.js.map +0 -1
- /package/dist/{chunk-HRJ27X5B.js.map → chunk-BPCYXLWY.js.map} +0 -0
- /package/dist/{chunk-XEE7PLDR.js.map → chunk-DFLTUI7W.js.map} +0 -0
- /package/dist/{chunk-HGBZZDP6.js.map → chunk-J4DDXHLB.js.map} +0 -0
- /package/dist/{chunk-RUO4D4N6.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-4VNUOSTQ.js.map → chunk-PHA3NFZM.js.map} +0 -0
- /package/dist/{chunk-6PFBYCBU.js.map → chunk-QIKTIKO6.js.map} +0 -0
- /package/dist/{chunk-X5MPHXG5.js.map → chunk-RPWEXIAW.js.map} +0 -0
- /package/dist/{chunk-N6JGYVRY.js.map → chunk-UENDC45F.js.map} +0 -0
- /package/dist/{chunk-4ZEU22L2.js.map → chunk-XPS7FWZS.js.map} +0 -0
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
STACK_BREAK
|
|
3
|
-
} from "./chunk-EICVL6GS.js";
|
|
4
1
|
import {
|
|
5
2
|
CARD_RADIUS,
|
|
6
3
|
cardSurfaceStyles,
|
|
@@ -8,6 +5,9 @@ import {
|
|
|
8
5
|
isSelectable,
|
|
9
6
|
slotTestIds
|
|
10
7
|
} from "./chunk-MQUU2XZB.js";
|
|
8
|
+
import {
|
|
9
|
+
STACK_BREAK
|
|
10
|
+
} from "./chunk-EICVL6GS.js";
|
|
11
11
|
import {
|
|
12
12
|
useDragItem
|
|
13
13
|
} from "./chunk-JCJGJX7V.js";
|
|
@@ -181,4 +181,4 @@ export {
|
|
|
181
181
|
actionProps,
|
|
182
182
|
rowStyles
|
|
183
183
|
};
|
|
184
|
-
//# sourceMappingURL=chunk-
|
|
184
|
+
//# sourceMappingURL=chunk-O6V7KKW7.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-ECIGNYSI.js";
|
|
4
4
|
import {
|
|
5
5
|
PanelRangeField
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-DFLTUI7W.js";
|
|
7
7
|
import {
|
|
8
8
|
useDataViewsCopy
|
|
9
9
|
} from "./chunk-KHG57NAE.js";
|
|
@@ -154,4 +154,4 @@ export {
|
|
|
154
154
|
GridFilterPanel,
|
|
155
155
|
FilterDialog
|
|
156
156
|
};
|
|
157
|
-
//# sourceMappingURL=chunk-
|
|
157
|
+
//# sourceMappingURL=chunk-PHA3NFZM.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
RangeBounds
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DFLTUI7W.js";
|
|
4
4
|
import {
|
|
5
5
|
isRangeSet
|
|
6
6
|
} from "./chunk-GCZJH4XL.js";
|
|
@@ -188,4 +188,4 @@ export {
|
|
|
188
188
|
fieldClearing,
|
|
189
189
|
MoreGroup
|
|
190
190
|
};
|
|
191
|
-
//# sourceMappingURL=chunk-
|
|
191
|
+
//# sourceMappingURL=chunk-QIKTIKO6.js.map
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DataGridEmpty,
|
|
3
|
+
DataGridError,
|
|
4
|
+
DataGridLoading
|
|
5
|
+
} from "./chunk-5E3XZAED.js";
|
|
1
6
|
import {
|
|
2
7
|
useDataGridModel
|
|
3
8
|
} from "./chunk-DLJGBJZW.js";
|
|
@@ -5,11 +10,6 @@ import {
|
|
|
5
10
|
GridBody,
|
|
6
11
|
GridHeader
|
|
7
12
|
} from "./chunk-KZLLTOB2.js";
|
|
8
|
-
import {
|
|
9
|
-
DataGridEmpty,
|
|
10
|
-
DataGridError,
|
|
11
|
-
DataGridLoading
|
|
12
|
-
} from "./chunk-5E3XZAED.js";
|
|
13
13
|
|
|
14
14
|
// src/components/data-display/DataGrid/DataGrid.tsx
|
|
15
15
|
import Paper from "@mui/material/Paper/index.js";
|
|
@@ -115,4 +115,4 @@ DataGrid.displayName = "DataGrid";
|
|
|
115
115
|
export {
|
|
116
116
|
DataGrid
|
|
117
117
|
};
|
|
118
|
-
//# sourceMappingURL=chunk-
|
|
118
|
+
//# sourceMappingURL=chunk-RPWEXIAW.js.map
|
|
@@ -22,6 +22,7 @@ function SelectionCluster({
|
|
|
22
22
|
selectAll,
|
|
23
23
|
clearSelection,
|
|
24
24
|
actions,
|
|
25
|
+
selectionExtra,
|
|
25
26
|
selectAllTestId,
|
|
26
27
|
clearAllTestId,
|
|
27
28
|
edgeAlign = false,
|
|
@@ -95,6 +96,7 @@ function SelectionCluster({
|
|
|
95
96
|
]
|
|
96
97
|
}
|
|
97
98
|
),
|
|
99
|
+
selectionExtra,
|
|
98
100
|
actionsSlot
|
|
99
101
|
] }) : actionsSlot
|
|
100
102
|
]
|
|
@@ -159,6 +161,7 @@ function ContentToolbar({
|
|
|
159
161
|
rightControls,
|
|
160
162
|
leadingControls,
|
|
161
163
|
actions,
|
|
164
|
+
selectionExtra,
|
|
162
165
|
selectAllTestId,
|
|
163
166
|
clearAllTestId,
|
|
164
167
|
edgeAlign = false,
|
|
@@ -198,6 +201,7 @@ function ContentToolbar({
|
|
|
198
201
|
selectAll,
|
|
199
202
|
clearSelection,
|
|
200
203
|
actions,
|
|
204
|
+
selectionExtra,
|
|
201
205
|
selectAllTestId,
|
|
202
206
|
clearAllTestId,
|
|
203
207
|
selectAllLabel,
|
|
@@ -222,4 +226,4 @@ function ContentToolbar({
|
|
|
222
226
|
export {
|
|
223
227
|
ContentToolbar
|
|
224
228
|
};
|
|
225
|
-
//# sourceMappingURL=chunk-
|
|
229
|
+
//# sourceMappingURL=chunk-TSPHRZ4U.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/layout/ContentToolbar/ContentToolbar.tsx"],"sourcesContent":["'use client';\n\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport Checkbox from '@mui/material/Checkbox/index.js';\nimport Divider from '@mui/material/Divider/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport React from 'react';\n\nimport type { ContentToolbarProps } from './ContentToolbar.types';\n\nconst selectionButtonSx = {\n minWidth: 0,\n height: 'auto',\n borderRadius: 0.5,\n fontWeight: 600,\n py: 0.5,\n px: 1.5,\n fontSize: '0.75rem',\n textTransform: 'none',\n color: 'text.primary',\n} as const;\n\ntype SelectionClusterProps = Pick<\n ContentToolbarProps,\n | 'hasSelection'\n | 'selectedCount'\n | 'selectAll'\n | 'clearSelection'\n | 'actions'\n | 'selectionExtra'\n | 'selectAllTestId'\n | 'clearAllTestId'\n | 'edgeAlign'\n | 'selectAllLabel'\n | 'selectAllText'\n | 'clearAllText'\n>;\n\n/** The left cluster: Select All + (when selecting) Clear All / count / actions. */\nfunction SelectionCluster({\n hasSelection,\n selectedCount,\n selectAll,\n clearSelection,\n actions,\n selectionExtra,\n selectAllTestId,\n clearAllTestId,\n edgeAlign = false,\n selectAllLabel,\n selectAllText,\n clearAllText,\n}: SelectionClusterProps): React.JSX.Element {\n const actionsSlot = actions !== undefined && (\n <Box sx={{ ml: 0.5, display: 'flex', flexShrink: 0, alignItems: 'center' }}>{actions}</Box>\n );\n return (\n <Box\n sx={{\n display: 'flex',\n minWidth: 0,\n // Mobile: don't grow, so the controls sit on the SAME line as the checkbox\n // (no orphaned selection row). Desktop: grow to push controls right.\n flex: { xs: '0 0 auto', md: 1 },\n alignItems: 'center',\n gap: 1.5,\n ml: edgeAlign ? -1.5 : 0,\n }}\n >\n {/* Desktop: a \"Select All\" text button (md+). Mobile: a compact checkbox\n that toggles select-all/clear — the text would eat the tight row. */}\n <Button\n variant=\"text\"\n size=\"small\"\n color=\"inherit\"\n onClick={selectAll}\n data-testid={selectAllTestId}\n sx={{ ...selectionButtonSx, display: { xs: 'none', md: 'inline-flex' } }}\n >\n {selectAllText}\n </Button>\n <Checkbox\n size=\"small\"\n checked={hasSelection}\n onChange={(event) => (event.target.checked ? selectAll() : clearSelection())}\n data-testid={`${selectAllTestId}-checkbox`}\n inputProps={{ 'aria-label': selectAllLabel }}\n sx={{ p: 0.5, display: { xs: 'inline-flex', md: 'none' } }}\n />\n {hasSelection ? (\n <>\n <Button\n variant=\"text\"\n size=\"small\"\n color=\"inherit\"\n onClick={clearSelection}\n data-testid={clearAllTestId}\n sx={selectionButtonSx}\n >\n {clearAllText}\n </Button>\n <Divider orientation=\"vertical\" flexItem sx={{ height: 16, alignSelf: 'center' }} />\n <Typography\n component=\"span\"\n data-testid=\"selected-count-indicator\"\n sx={{ fontSize: '0.875rem', color: 'text.secondary', whiteSpace: 'nowrap', flexShrink: 0 }}\n >\n {selectedCount} {selectedCount === 1 ? 'item' : 'items'} selected\n </Typography>\n {selectionExtra}\n {actionsSlot}\n </>\n ) : (\n actionsSlot\n )}\n </Box>\n );\n}\n\n/**\n * The BROWSING half of the toolbar: search + filters on the left, the page's\n * own controls on the right. Split out of {@link ContentToolbar} so that\n * function stays inside the complexity gate — it is layout only, and the\n * decision of whether to show it at all is made by the caller.\n */\nfunction BrowsingClusters({\n leadingControls,\n rightControls,\n hasSelection,\n edgeAlign,\n}: {\n leadingControls?: React.ReactNode;\n rightControls: React.ReactNode;\n hasSelection: boolean;\n edgeAlign: boolean;\n}): React.JSX.Element {\n return (\n <>\n {/* minWidth:0 lets this cluster be the one that gives up width as the row\n * tightens, which is what the filter overflow measures against. */}\n {leadingControls !== undefined && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n flexGrow: 1,\n minWidth: 0,\n // The collapse ladder has a FLOOR — below roughly 400px even the\n // fully-collapsed row does not fit, and its controls cannot shrink\n // (they are flexShrink:0 so an over-packed row sheds instead of\n // squeezing). Past that point this scrolls rather than letting them\n // paint outside the toolbar, which is what a narrow phone did.\n overflowX: 'auto',\n // No scrollbar gutter stealing height on the common case.\n scrollbarWidth: 'thin',\n }}\n >\n {leadingControls}\n </Box>\n )}\n {/* ml:auto keeps the controls right-aligned even when the cluster wraps to\n * its own row (where justify-content:space-between would otherwise snap a\n * lone item to the left); it's a no-op on a shared row. */}\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n // Same single-line rule as the row itself: this cluster wrapping\n // INTERNALLY buys a second line just as surely as the row wrapping\n // does. It bit at exactly 900px, the `md` breakpoint where the \"N de\n // N\" counter appears and pushes Exibir/Exportar over the edge.\n flexWrap: leadingControls === undefined ? 'wrap' : 'nowrap',\n // Tight (5px) when browsing so the controls fit one line beside the\n // checkbox; roomier (14px) in selection mode where they get their own row.\n gap: hasSelection ? '14px' : '5px',\n ml: 'auto',\n mr: edgeAlign ? -1.5 : 0,\n '& > *': { flexShrink: 0 },\n }}\n >\n {rightControls}\n </Box>\n </>\n );\n}\n\n/**\n * Shared toolbar for content pages (Favorites, Personal Space, Recents, …). The\n * left cluster owns selection chrome — **Select All**, and once items are\n * selected, **Clear All** + an \"N items selected\" count + an optional `actions`\n * slot. The right cluster is a free `rightControls` slot for page-specific\n * controls (ViewSelector, SortByDropdown, MultiSelectDropdown, FilterTrigger).\n *\n * Faithful, generic MUI port of the reference `ContentPageToolbar` — the\n * domain-specific default actions are intentionally left to the consumer via\n * the `actions` slot so this stays agnostic and reusable across projects.\n *\n * @example\n * ```tsx\n * <ContentToolbar\n * hasSelection={selected.size > 0}\n * selectedCount={selected.size}\n * selectAll={selectAll}\n * clearSelection={clear}\n * rightControls={\n * <>\n * <ViewSelector viewMode={view} onViewModeChange={setView} zoom={zoom} onZoomChange={setZoom} />\n * <SortByDropdown fields={FIELDS} activeField={field} onFieldChange={setField} />\n * <MultiSelectDropdown label=\"Content Type\" options={types} selected={typeSet} onToggle={toggle} onClear={clear} />\n * <FilterTrigger open={panelOpen} onOpenChange={setPanelOpen} hasActiveFilters={hasFilters} />\n * </>\n * }\n * />\n * ```\n */\nexport function ContentToolbar({\n hasSelection,\n selectedCount,\n selectAll,\n clearSelection,\n rightControls,\n leadingControls,\n actions,\n selectionExtra,\n selectAllTestId,\n clearAllTestId,\n edgeAlign = false,\n exclusiveSelection = false,\n selectAllLabel,\n selectAllText,\n clearAllText,\n}: ContentToolbarProps): React.JSX.Element {\n // Under `exclusiveSelection` the two states are alternatives, not neighbours:\n // browsing shows the controls and no checkbox, selecting shows the checkbox\n // and no controls. Anything else double-books the row.\n const showSelection = !exclusiveSelection || hasSelection;\n const showControls = !exclusiveSelection || !hasSelection;\n return (\n // Two clusters on one line. They may wrap onto separate rows ONLY for a\n // toolbar without `leadingControls` — one carrying search + filters is\n // driven by a measured collapse ladder (see `useFilterOverflow`), and a\n // wrap there is the ladder having failed: it would silently buy a second\n // row instead of shedding a control into \"Mais\", which is the one outcome\n // the ladder exists to prevent.\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 2,\n flexWrap: leadingControls === undefined ? 'wrap' : 'nowrap',\n rowGap: 1,\n }}\n >\n {showSelection && (\n <SelectionCluster\n selectAllText={selectAllText}\n clearAllText={clearAllText}\n hasSelection={hasSelection}\n selectedCount={selectedCount}\n selectAll={selectAll}\n clearSelection={clearSelection}\n actions={actions}\n selectionExtra={selectionExtra}\n selectAllTestId={selectAllTestId}\n clearAllTestId={clearAllTestId}\n selectAllLabel={selectAllLabel}\n edgeAlign={edgeAlign}\n />\n )}\n\n {showControls && (\n <BrowsingClusters\n leadingControls={leadingControls}\n rightControls={rightControls}\n hasSelection={hasSelection}\n edgeAlign={edgeAlign}\n />\n )}\n </Box>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
} from "./chunk-LS42VJAI.js";
|
|
4
4
|
import {
|
|
5
5
|
DataViewsGrid
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-62WEMJV3.js";
|
|
7
7
|
import {
|
|
8
8
|
viewStateKey
|
|
9
9
|
} from "./chunk-ZOLAYP2D.js";
|
|
10
10
|
import {
|
|
11
11
|
ViewDialogs,
|
|
12
12
|
ViewMutationErrorAlert
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-XPS7FWZS.js";
|
|
14
14
|
import {
|
|
15
15
|
useSavedViewsController
|
|
16
16
|
} from "./chunk-HR7YTBR7.js";
|
|
@@ -178,4 +178,4 @@ function renderViewDialogs(ctl, fields, columns, views, testIdPrefix, onSaved) {
|
|
|
178
178
|
export {
|
|
179
179
|
DataViewsTableBase
|
|
180
180
|
};
|
|
181
|
-
//# sourceMappingURL=chunk-
|
|
181
|
+
//# sourceMappingURL=chunk-U5RIDMMV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/DataViews/DataViewsTableBase.tsx"],"sourcesContent":["\"use client\";\n\nimport type { SortFieldDefinition } from \"../../layout/ContentToolbar\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { DataViewsGrid } from \"./DataViewsGrid\";\nimport type { SelectionExtraRender } from \"./data-views-selection-extra\";\nimport type { ListGroupConfig } from \"./list-card-rails\";\nimport type { DisplayPanelView } from \"./data-views-display-panel\";\nimport { viewStateKey } from \"./data-views-dirty\";\nimport { DeleteViewDialog } from \"./DeleteViewDialog\";\nimport type { BoardConfig } from \"./DataViewsBoard\";\nimport type { DataViewExport } from \"./data-views-export\";\nimport type { ScopeConfig } from \"./data-views-scopes\";\nimport { ViewDialogs, ViewMutationErrorAlert } from \"./data-views-table-parts\";\nimport {\n useSavedViewsController,\n type SavedViewsController,\n} from \"./use-saved-views-controller\";\nimport {\n type DataViewColumn,\n type DataViewsLayout,\n type DataViewServer,\n type DataViewState,\n type DataViewSyncState,\n type DataViewPersistence,\n type DataViewRouter,\n type FilterFieldConfig,\n type RangeFieldConfig,\n type DataViewCardSelection,\n type RowAction,\n type SavedViewSummary,\n} from \"./data-views-types\";\n\nexport interface DataViewsTableBaseProps<T extends Record<string, unknown>> {\n /** The applied-view id read from the URL (`?view=`) on load, or null. */\n initialViewId?: string | null;\n /** Injected saved-view persistence (create/update/delete). */\n persistence: DataViewPersistence;\n /** Injected router side-effects (URL sync + refresh). */\n router: DataViewRouter;\n rows: T[];\n columns: DataViewColumn<T>[];\n fields: FilterFieldConfig<T>[];\n /** Optional numeric min/max range filters (advanced \"filter by amount\"). */\n rangeFields?: RangeFieldConfig<T>[];\n getRowId: (row: T) => string | number;\n onRowClick?: (row: T) => void;\n emptyState?: React.ReactNode;\n dataTestId?: string;\n testIdPrefix?: string;\n /** The user's + shared views for this table (from the server). */\n views: SavedViewSummary[];\n /** Big page title in the table header, beside the funnel + gear (GTA layout). */\n title?: string;\n /** Primary page actions (e.g. \"Novo produto\") rendered at the header's right. */\n headerActions?: React.ReactNode;\n /** Sort options for the toolbar's \"Sort By\" dropdown (defaults to sortable columns). */\n sortFields?: SortFieldDefinition[];\n /**\n * Per-sort-field VALUE KIND (`\"currency\" | \"number\" | \"date\" | \"text\"`), so the\n * Exibir panel phrases the direction in that column's own terms. \"Crescente\"\n * on a currency column is a puzzle; \"Menor → maior\" is not. Defaults to text.\n */\n sortKinds?: Record<string, string>;\n /**\n * Opt-in \"Exportar\" control. The grid hands the host the current query,\n * UNPAGINATED, and the host re-queries — the grid never fetches, and an\n * export therefore follows the filters rather than the loaded page.\n */\n exportConfig?: DataViewExport;\n /** Notified with the currently-visible (filtered) rows, so Export matches the view. */\n onVisibleRowsChange?: (rows: T[]) => void;\n /** Reusable row actions driving both the row \"⋮\" kebab and the bulk menu. */\n rowActions?: RowAction<T>[];\n /** Leading control in the auto kebab column (e.g. a favourite star). */\n rowActionsLeading?: (row: T) => React.ReactNode;\n /** Low-level bulk-action override; prefer `rowActions`. */\n bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;\n /** A selection-widening control beside the count (e.g. \"select all matching\"). */\n selectionExtra?: SelectionExtraRender<T>;\n /** Bespoke per-row menu (an entity's self-contained 3-dots menu) instead of the auto kebab. */\n renderRowMenu?: (row: T) => React.ReactNode;\n /** Opt-in \"Grade\" (cards) layout — a card renderer per row; adds a Grade/Tabela toggle. */\n renderCard?: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n /** Opt-in \"Quadro\" (board) layout — the loaded page as columns of one field. Needs `renderCard`. */\n board?: BoardConfig<T>;\n /** Opt-in \"Lista\" layout — one full-width, entity-rendered row per record (FUT-733). */\n renderListRow?: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n /** The Lista's shared columns, so its rows line up by construction not convention. */\n listGroup?: ListGroupConfig<T>;\n /** The page-level partition rendered as tabs under the toolbar (server mode only). */\n scopes?: ScopeConfig[];\n /** The row field the scopes partition by — used only to reject a pill over the same field. */\n scopeFieldId?: string;\n /** Which layout to show first when the user has expressed no preference (default \"table\"). */\n defaultLayout?: DataViewsLayout;\n /**\n * Ignore the remembered cross-screen layout preference and pin to\n * `defaultLayout`. For tables that exist to SHOW a layout — stories, docs,\n * screenshots — not for real screens.\n */\n ignoreStoredLayout?: boolean;\n /** Opt into the responsive inline filter UX (collapsible row / modal). Default keeps the panel. */\n inlineFilters?: boolean;\n /** Keep the inline search visible with no filter fields and no active search. */\n alwaysShowSearch?: boolean;\n /** Server-mode wiring (FUT-180): backend-driven rows/total + re-fetch. Omit for client mode. */\n server?: DataViewServer;\n /** Seed the initial view state (search/pills/ranges/sort) from the URL when no saved view applies. */\n initialState?: DataViewState;\n}\n\n/**\n * Derive the grid's reactive `syncState` from the URL-seeded `initialState` in\n * server mode so browser back/forward RE-APPLIES the search/pills/sort controls\n * (merging over live state, preserving hidden columns — see {@link DataViewSyncState}).\n * Client-mode tables (no `server`) get `undefined`. Callers memoize `initialState`\n * on the URL, so this reference only changes on genuine navigations.\n */\nfunction useUrlSyncState(\n server: DataViewServer | undefined,\n initialState: DataViewState | undefined,\n): DataViewSyncState | undefined {\n const isServerMode = server !== undefined;\n return useMemo<DataViewSyncState | undefined>(\n () =>\n isServerMode && initialState\n ? {\n search: initialState.search,\n pills: initialState.pills,\n ranges: initialState.ranges,\n sortBy: initialState.sortBy,\n // The scope belongs in the URL-driven slice alongside them: a\n // `?view=recusados`-style deep link and browser back/forward must\n // move the tab strip, and they must do it WITHOUT resetting the\n // user's hidden columns — which is the whole reason this is a\n // merging `syncState` and not a replacing `appliedState`.\n scope: initialState.scope,\n }\n : undefined,\n [isServerMode, initialState],\n );\n}\n\n/**\n * Resolve the initial applied view: a `?view=<id>` shortcut (FUT-90) wins, else\n * the user's default view, else none. Drives the seed state + trigger label.\n */\nfunction resolveInitialView(\n views: SavedViewSummary[],\n requestedId: string | null,\n): SavedViewSummary | undefined {\n const requested = requestedId ? views.find((view) => view.id === requestedId) : undefined;\n return requested ?? views.find((view) => view.isDefault);\n}\n\n/**\n * The Exibir panel's view chrome, assembled from the saved-views controller.\n * Extracted so {@link DataViewsTableBase} stays inside its size budget.\n */\nfunction buildDisplayView({\n ctl,\n views,\n activeView,\n dirty,\n onRequestDelete,\n}: {\n ctl: SavedViewsController;\n views: SavedViewSummary[];\n activeView: SavedViewSummary | undefined;\n dirty: boolean;\n /** Opens the confirmation; the delete itself happens on confirm. */\n onRequestDelete: (view: SavedViewSummary) => void;\n}): DisplayPanelView {\n return {\n activeViewName: ctl.activeViewName,\n dirty,\n onReset: () => (activeView ? ctl.applyView(activeView) : ctl.selectMain()),\n // Only offer \"Atualizar\" when there IS a view to update — otherwise the\n // single footer button is a plain \"Salvar visão\".\n onUpdate: activeView ? () => ctl.openEdit(activeView) : undefined,\n onSaveAs: ctl.openCreate,\n // The views themselves, not a dropdown: the panel renders them in its own\n // body (see `data-views-view-nav`), so there is no second popover to clip\n // the row actions.\n nav: {\n views,\n activeViewId: activeView?.id ?? null,\n onSelectView: (id) => {\n const next = id === null ? null : views.find((view) => view.id === id);\n if (next) ctl.applyView(next);\n else ctl.selectMain();\n },\n onEditView: ctl.openEdit,\n onPatchView: (view, changes) => void ctl.patchView(view, changes),\n onDeleteView: onRequestDelete,\n },\n };\n}\n\n/**\n * \"Are there unsaved changes?\" — the dot on Exibir, and whether Redefinir and\n * Salvar visão are live.\n *\n * Two things it gets right that the inline version did not. It compares\n * NORMALISED states (`viewStateKey`), so a filter applied and then removed is\n * clean again rather than clean-looking but flagged; and it re-baselines after\n * a SAVE, because the state just written is the clean one from that point.\n *\n * The baseline is the first state the grid emits for a view, not the view\n * itself: the grid normalises what it is handed — resolving visible columns,\n * filling in layout — so the applied view is never byte-identical to the state\n * it produces.\n */\nfunction useDirtyTracking(ctl: SavedViewsController): {\n dirty: boolean;\n noteState: (state: DataViewState) => void;\n markSaved: () => void;\n} {\n const [dirty, setDirty] = useState(false);\n const [savedAt, setSavedAt] = useState(0);\n const baseline = useRef<string | null>(null);\n const appliedKey = JSON.stringify(ctl.applied ?? null);\n\n useEffect(() => {\n baseline.current = null;\n setDirty(false);\n }, [appliedKey, savedAt]);\n\n return {\n dirty,\n noteState: (state) => {\n ctl.currentRef.current = state;\n const key = viewStateKey(state);\n if (baseline.current === null) {\n baseline.current = key;\n setDirty(false);\n return;\n }\n const next = key !== baseline.current;\n setDirty((prev) => (prev === next ? prev : next));\n },\n markSaved: () => setSavedAt((tick) => tick + 1),\n };\n}\n\n/**\n * The reusable admin table (FUT-89): the DataViews grid plus the full saved-views\n * experience — a views dropdown, a save/edit modal (with preview), and a manage\n * dialog. Framework-agnostic: saved-view persistence and router side-effects are\n * INJECTED (`persistence`, `router`, `initialViewId`) so the host app wires them\n * to its backend + framework router. A default view auto-applies on load; applying\n * a view restores its filters + columns + sort. Each table supplies its own columns\n * + filter fields; everything else is shared.\n */\nexport function DataViewsTableBase<T extends Record<string, unknown>>(\n props: DataViewsTableBaseProps<T>,\n): React.JSX.Element {\n // Forwarded as a whole rather than restated name-by-name twice (as in\n // DataViewsGrid): this component only ADDS the saved-views chrome, and a\n // 30-name destructure repeated in the JSX is exactly where a newly added prop\n // silently stops being passed on.\n const {\n initialViewId = null,\n persistence,\n router,\n columns,\n fields,\n testIdPrefix = \"table\",\n views,\n server,\n initialState,\n } = props;\n const initialView = resolveInitialView(views, initialViewId);\n const columnIds = columns.map((col) => col.id);\n const ctl = useSavedViewsController(persistence, router, columnIds, views, initialView, initialState);\n // Unsaved-changes flag for the Exibir panel. Set from `onStateChange` rather\n // than derived in render because the live state lives in a REF (the grid owns\n // it); the equality bail-out in `setDirty` is what stops the update loop.\n const { dirty, noteState, markSaved } = useDirtyTracking(ctl);\n // Deleting a saved view is confirmed, not immediate — see `DeleteViewDialog`.\n const [pendingDelete, setPendingDelete] = useState<SavedViewSummary | null>(null);\n // The view the panel's \"Redefinir\" restores: the applied one, or the built-in\n // \"Visão principal\" when none is.\n const activeView = views.find((view) => view.name === ctl.activeViewName);\n const displayView = buildDisplayView({\n ctl,\n views,\n activeView,\n dirty,\n onRequestDelete: setPendingDelete,\n });\n // Server-mode lists re-apply URL-derived controls on back/forward (not just the mount seed).\n const syncState = useUrlSyncState(server, initialState);\n\n return (\n <>\n <ViewMutationErrorAlert error={ctl.mutationError} onClose={ctl.clearMutationError} testIdPrefix={testIdPrefix} />\n <DataViewsGrid<T>\n {...props}\n testIdPrefix={testIdPrefix}\n appliedState={ctl.applied}\n syncState={syncState}\n onStateChange={noteState}\n // The saved-views menu is NOT a toolbar control any more: it lives in\n // the Exibir panel's VISÃO header, passed through `displayView`.\n displayView={displayView}\n />\n {renderViewDialogs(ctl, fields, columns, views, testIdPrefix, markSaved)}\n <DeleteViewDialog\n view={pendingDelete}\n onClose={() => setPendingDelete(null)}\n onConfirm={(view) => {\n void ctl.handleDelete(view);\n setPendingDelete(null);\n }}\n testIdPrefix={testIdPrefix}\n />\n </>\n );\n}\n\n/** The save + manage saved-view dialogs, split out to keep the base thin. */\nfunction renderViewDialogs<T extends Record<string, unknown>>(\n ctl: SavedViewsController,\n fields: DataViewsTableBaseProps<T>[\"fields\"],\n columns: DataViewsTableBaseProps<T>[\"columns\"],\n views: SavedViewSummary[],\n testIdPrefix: string,\n onSaved: () => void,\n): React.JSX.Element {\n return (\n <ViewDialogs<T>\n saveOpen={ctl.saveOpen}\n onCloseSave={ctl.closeSave}\n currentState={ctl.editing ? ctl.editing.state : ctl.currentRef.current}\n fields={fields}\n columns={columns}\n editing={ctl.editing}\n onSave={async (payload) => {\n await ctl.handleSave(payload);\n // The saved state is the clean one from here on.\n onSaved();\n }}\n manageOpen={ctl.manageOpen}\n onCloseManage={() => ctl.setManageOpen(false)}\n views={views}\n onEditFromManage={ctl.editFromManage}\n onDelete={(view) => void ctl.handleDelete(view)}\n testIdPrefix={testIdPrefix}\n />\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MoreGroup,
|
|
3
3
|
fieldClearing
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-QIKTIKO6.js";
|
|
5
5
|
import {
|
|
6
6
|
useDataViewsCopy
|
|
7
7
|
} from "./chunk-KHG57NAE.js";
|
|
@@ -180,4 +180,4 @@ function MoreFilters({
|
|
|
180
180
|
export {
|
|
181
181
|
MoreFilters
|
|
182
182
|
};
|
|
183
|
-
//# sourceMappingURL=chunk-
|
|
183
|
+
//# sourceMappingURL=chunk-UENDC45F.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ManageViewsDialog
|
|
3
|
-
} from "./chunk-UHXNEXOC.js";
|
|
4
1
|
import {
|
|
5
2
|
SaveViewModal
|
|
6
3
|
} from "./chunk-U7SO3N42.js";
|
|
4
|
+
import {
|
|
5
|
+
ManageViewsDialog
|
|
6
|
+
} from "./chunk-UHXNEXOC.js";
|
|
7
7
|
import {
|
|
8
8
|
useDataViewsCopy
|
|
9
9
|
} from "./chunk-KHG57NAE.js";
|
|
@@ -121,4 +121,4 @@ export {
|
|
|
121
121
|
ViewsMenuSlot,
|
|
122
122
|
ViewDialogs
|
|
123
123
|
};
|
|
124
|
-
//# sourceMappingURL=chunk-
|
|
124
|
+
//# sourceMappingURL=chunk-XPS7FWZS.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DataViewsDisplayPanel
|
|
3
|
+
} from "./chunk-J4DDXHLB.js";
|
|
1
4
|
import {
|
|
2
5
|
DataViewsExportMenu
|
|
3
6
|
} from "./chunk-NQCYVYP3.js";
|
|
4
|
-
import {
|
|
5
|
-
DataViewsDisplayPanel
|
|
6
|
-
} from "./chunk-HGBZZDP6.js";
|
|
7
7
|
import {
|
|
8
8
|
renderBulkActions
|
|
9
9
|
} from "./chunk-5VZPVDUF.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./chunk-LVCUJ7YU.js";
|
|
16
16
|
import {
|
|
17
17
|
ContentToolbar
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-TSPHRZ4U.js";
|
|
19
19
|
import {
|
|
20
20
|
default as default2
|
|
21
21
|
} from "./chunk-6DPAWXZ3.js";
|
|
@@ -113,6 +113,7 @@ function GridToolbar(props) {
|
|
|
113
113
|
clearSelection: props.clearSelection,
|
|
114
114
|
selectAllTestId: `${testIdPrefix}-select-all`,
|
|
115
115
|
clearAllTestId: `${testIdPrefix}-clear-all`,
|
|
116
|
+
selectionExtra: props.selectionExtra,
|
|
116
117
|
actions: renderBulkActions({
|
|
117
118
|
rowActions: props.rowActions,
|
|
118
119
|
bulkActions: props.bulkActions,
|
|
@@ -132,4 +133,4 @@ function GridToolbar(props) {
|
|
|
132
133
|
export {
|
|
133
134
|
GridToolbar
|
|
134
135
|
};
|
|
135
|
-
//# sourceMappingURL=chunk-
|
|
136
|
+
//# sourceMappingURL=chunk-ZNGUDGKW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/DataViews/data-views-toolbar.tsx"],"sourcesContent":["\"use client\";\n\nimport Divider from \"@mui/material/Divider/index.js\";\n\nimport {\n ContentToolbar,\n FilterTrigger,\n type ColumnVisibilityOption,\n type SortFieldDefinition,\n} from \"../../layout/ContentToolbar\";\nimport { Box } from \"../../../mui/Box\";\nimport { Text } from \"../../typography/Text\";\n\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { DataViewsDisplayPanel, type DisplayPanelView } from \"./data-views-display-panel\";\nimport { DataViewsExportMenu, type DataViewExport } from \"./data-views-export\";\nimport { renderBulkActions } from \"./data-views-grid-helpers\";\nimport type { RowAction } from \"./data-views-types\";\nimport type { DataViewsController } from \"./use-data-views-state\";\n\nexport interface GridToolbarProps<T extends Record<string, unknown>> {\n testIdPrefix: string;\n selectedRows: T[];\n selectAll: () => void;\n clearSelection: () => void;\n rowActions?: RowAction<T>[];\n bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;\n /** A control between the count and the actions menu — see `selectionExtra`. */\n selectionExtra?: React.ReactNode;\n sortFields: SortFieldDefinition[];\n activeSortField: string;\n activeSortOrder: \"asc\" | \"desc\";\n onChangeSort: (field: string, order: \"asc\" | \"desc\") => void;\n matchedCount: number;\n totalCount: number;\n toolbarRightSlot?: React.ReactNode;\n columnOptions: ColumnVisibilityOption[];\n onToggleColumn: (id: string, visible: boolean) => void;\n filterOpen: boolean;\n setFilterOpen: (open: boolean) => void;\n activeFilterCount: number;\n /** Hide the \"Filtros\" slide-in trigger (compact layout shows filters inline). */\n showFilterTrigger?: boolean;\n /**\n * Search + filter controls, rendered ON the toolbar line rather than on a row\n * beneath it. Absent ⇒ the toolbar keeps its plain two-cluster shape.\n */\n filterControls?: React.ReactNode;\n /** Measures the toolbar ROW for the filter overflow — see `useFilterOverflow`. */\n barRef?: React.Ref<HTMLDivElement>;\n /** The controller, so \"Exibir\" can drive sort, columns, order and format. */\n c: DataViewsController<T>;\n /** Per-sort-field value kind, so directions read in the column's own terms. */\n sortKinds?: Record<string, string>;\n /** The saved-view chrome bracketing the Exibir panel, when the host has views. */\n displayView?: DisplayPanelView;\n /** Injected export. Absent ⇒ no Exportar control. */\n exportConfig?: DataViewExport;\n /**\n * Step 2 of the degradation ladder: Exibir/Exportar as icons only.\n * MEASURED upstream (see `useFilterOverflow`) rather than switched at a\n * breakpoint, so a two-filter page keeps its labels where a five-filter one\n * has already given them up.\n */\n compactControls?: boolean;\n /**\n * Step 5 of the ladder, and its floor: on a screen too narrow for even the\n * fully-collapsed row, the counter is dropped so the controls still fit one\n * line instead of spilling outside the toolbar.\n */\n counterHidden?: boolean;\n}\n\n/** The right-aligned toolbar controls: Sort By, the counter, zoom/layout/columns, filters. */\nfunction ToolbarRightControls<T extends Record<string, unknown>>(props: GridToolbarProps<T>): React.JSX.Element {\n const { testIdPrefix, matchedCount, totalCount, filterOpen, setFilterOpen } = props;\n return (\n <>\n {/* MEASURED, never breakpointed: `RESERVED.counter` prices it into the\n ladder, so hiding it at `md` was the ladder and a breakpoint\n disagreeing about the same pixels — which broke the row at exactly\n 900px. It is dropped only as the ladder's last rung. */}\n {!props.counterHidden && (\n <>\n <Text variant=\"caption\" as=\"span\">\n <Box\n component=\"span\"\n data-testid={`${testIdPrefix}-counter`}\n sx={{ whiteSpace: \"nowrap\" }}\n >\n {matchedCount} de {totalCount}\n </Box>\n </Text>\n {/* Divides the READING of the list from the controls that change it —\n the counter states what is on screen, everything right of here\n acts on it. */}\n <Divider\n orientation=\"vertical\"\n flexItem\n sx={{ height: 20, alignSelf: \"center\", mx: 0.5 }}\n />\n </>\n )}\n {props.toolbarRightSlot}\n {/* Sort + columns + format, in ONE control — see DataViewsDisplayPanel. */}\n <DataViewsDisplayPanel\n c={props.c}\n testIdPrefix={testIdPrefix}\n sortKinds={props.sortKinds}\n view={props.displayView}\n compact={props.compactControls}\n />\n {props.exportConfig && (\n <DataViewsExportMenu\n config={props.exportConfig}\n query={props.c.currentQuery}\n totalCount={props.totalCount}\n selectedIds={[...props.c.selectedIds]}\n columns={props.columnOptions.filter((col) => col.visible).map((col) => ({ id: col.id, label: col.label }))}\n testIdPrefix={testIdPrefix}\n compact={props.compactControls}\n />\n )}\n {props.showFilterTrigger !== false && (\n <FilterTrigger\n open={filterOpen}\n onOpenChange={setFilterOpen}\n activeCount={props.activeFilterCount}\n data-testid={`${testIdPrefix}-filters-toggle`}\n />\n )}\n </>\n );\n}\n\n/**\n * The bordered toolbar band: selection chrome + Sort By, the result counter, the\n * saved-views slot, and the filter funnel. The negative margin lets the top/bottom\n * separators reach the sidebar's vertical line and the window edge.\n */\nexport function GridToolbar<T extends Record<string, unknown>>(props: GridToolbarProps<T>): React.JSX.Element {\n const copy = useDataViewsCopy();\n const { testIdPrefix, selectedRows } = props;\n return (\n <Box\n ref={props.barRef}\n sx={{\n borderTop: 1,\n borderBottom: 1,\n borderColor: \"divider\",\n py: 1.25,\n mx: { xs: -2, md: -3 },\n px: { xs: 2, md: 3 },\n }}\n >\n <ContentToolbar\n selectAllLabel={copy.selection.selectAll}\n selectAllText={copy.selection.selectAllOnPage}\n clearAllText={copy.filters.clearAll}\n hasSelection={selectedRows.length > 0}\n selectedCount={selectedRows.length}\n selectAll={props.selectAll}\n clearSelection={props.clearSelection}\n selectAllTestId={`${testIdPrefix}-select-all`}\n clearAllTestId={`${testIdPrefix}-clear-all`}\n selectionExtra={props.selectionExtra}\n actions={renderBulkActions({\n rowActions: props.rowActions,\n bulkActions: props.bulkActions,\n selectedRows,\n clearSelection: props.clearSelection,\n testIdPrefix,\n })}\n leadingControls={props.filterControls}\n // Selection takes the whole line: no Select All while browsing, and no\n // search/filters/Exibir/Exportar once a row is ticked.\n exclusiveSelection\n rightControls={<ToolbarRightControls {...props} />}\n />\n </Box>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,aAAa;AAiFZ,mBACE,KACE,YAFJ;AATR,SAAS,qBAAwD,OAA+C;AAC9G,QAAM,EAAE,cAAc,cAAc,YAAY,YAAY,cAAc,IAAI;AAC9E,SACE,iCAKG;AAAA,KAAC,MAAM,iBACN,iCACE;AAAA,0BAAC,QAAK,SAAQ,WAAU,IAAG,QACzB;AAAA,QAACA;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,eAAa,GAAG,YAAY;AAAA,UAC5B,IAAI,EAAE,YAAY,SAAS;AAAA,UAE1B;AAAA;AAAA,YAAa;AAAA,YAAK;AAAA;AAAA;AAAA,MACrB,GACF;AAAA,MAIA;AAAA,QAAC;AAAA;AAAA,UACC,aAAY;AAAA,UACZ,UAAQ;AAAA,UACR,IAAI,EAAE,QAAQ,IAAI,WAAW,UAAU,IAAI,IAAI;AAAA;AAAA,MACjD;AAAA,OACF;AAAA,IAED,MAAM;AAAA,IAEP;AAAA,MAAC;AAAA;AAAA,QACC,GAAG,MAAM;AAAA,QACT;AAAA,QACA,WAAW,MAAM;AAAA,QACjB,MAAM,MAAM;AAAA,QACZ,SAAS,MAAM;AAAA;AAAA,IACjB;AAAA,IACC,MAAM,gBACL;AAAA,MAAC;AAAA;AAAA,QACC,QAAQ,MAAM;AAAA,QACd,OAAO,MAAM,EAAE;AAAA,QACf,YAAY,MAAM;AAAA,QAClB,aAAa,CAAC,GAAG,MAAM,EAAE,WAAW;AAAA,QACpC,SAAS,MAAM,cAAc,OAAO,CAAC,QAAQ,IAAI,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,IAAI,OAAO,IAAI,MAAM,EAAE;AAAA,QACzG;AAAA,QACA,SAAS,MAAM;AAAA;AAAA,IACjB;AAAA,IAED,MAAM,sBAAsB,SAC3B;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,cAAc;AAAA,QACd,aAAa,MAAM;AAAA,QACnB,eAAa,GAAG,YAAY;AAAA;AAAA,IAC9B;AAAA,KAEJ;AAEJ;AAOO,SAAS,YAA+C,OAA+C;AAC5G,QAAM,OAAO,iBAAiB;AAC9B,QAAM,EAAE,cAAc,aAAa,IAAI;AACvC,SACE;AAAA,IAACA;AAAA,IAAA;AAAA,MACC,KAAK,MAAM;AAAA,MACX,IAAI;AAAA,QACF,WAAW;AAAA,QACX,cAAc;AAAA,QACd,aAAa;AAAA,QACb,IAAI;AAAA,QACJ,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG;AAAA,QACrB,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE;AAAA,MACrB;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,gBAAgB,KAAK,UAAU;AAAA,UAC/B,eAAe,KAAK,UAAU;AAAA,UAC9B,cAAc,KAAK,QAAQ;AAAA,UAC3B,cAAc,aAAa,SAAS;AAAA,UACpC,eAAe,aAAa;AAAA,UAC5B,WAAW,MAAM;AAAA,UACjB,gBAAgB,MAAM;AAAA,UACtB,iBAAiB,GAAG,YAAY;AAAA,UAChC,gBAAgB,GAAG,YAAY;AAAA,UAC/B,gBAAgB,MAAM;AAAA,UACtB,SAAS,kBAAkB;AAAA,YACzB,YAAY,MAAM;AAAA,YAClB,aAAa,MAAM;AAAA,YACnB;AAAA,YACA,gBAAgB,MAAM;AAAA,YACtB;AAAA,UACF,CAAC;AAAA,UACD,iBAAiB,MAAM;AAAA,UAGvB,oBAAkB;AAAA,UAClB,eAAe,oBAAC,wBAAsB,GAAG,OAAO;AAAA;AAAA,MAClD;AAAA;AAAA,EACF;AAEJ;","names":["default"]}
|
|
@@ -7,6 +7,10 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
useRemoveConfirm
|
|
9
9
|
} from "../chunk-MNJVOU7T.js";
|
|
10
|
+
import {
|
|
11
|
+
CardActionsProvider,
|
|
12
|
+
useCardActions
|
|
13
|
+
} from "../chunk-77GA5YHQ.js";
|
|
10
14
|
import {
|
|
11
15
|
rowActionsToMenuItems
|
|
12
16
|
} from "../chunk-5MXVT7DO.js";
|
|
@@ -17,10 +21,6 @@ import {
|
|
|
17
21
|
Ledger,
|
|
18
22
|
TagList
|
|
19
23
|
} from "../chunk-DJEGLKW3.js";
|
|
20
|
-
import {
|
|
21
|
-
CardActionsProvider,
|
|
22
|
-
useCardActions
|
|
23
|
-
} from "../chunk-77GA5YHQ.js";
|
|
24
24
|
import "../chunk-WVML3ENZ.js";
|
|
25
25
|
import "../chunk-IDHZHOZW.js";
|
|
26
26
|
import "../chunk-XCBQXSTR.js";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import "../chunk-62FET2BM.js";
|
|
2
2
|
import {
|
|
3
3
|
Carousel
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-BPCYXLWY.js";
|
|
5
|
+
import "../chunk-WIXUMFU7.js";
|
|
5
6
|
import "../chunk-RUIV5TVA.js";
|
|
6
7
|
import "../chunk-5QXSPLWU.js";
|
|
7
|
-
import "../chunk-Z56IO7OV.js";
|
|
8
|
-
import "../chunk-WIXUMFU7.js";
|
|
9
8
|
import {
|
|
10
9
|
CarouselArrows,
|
|
11
10
|
CarouselIndicators,
|
|
12
11
|
CarouselThumbnails
|
|
13
12
|
} from "../chunk-2XGM5PDA.js";
|
|
13
|
+
import "../chunk-Z56IO7OV.js";
|
|
14
14
|
import "../chunk-HPK33ACY.js";
|
|
15
15
|
import "../chunk-I6PZVHIT.js";
|
|
16
16
|
import "../chunk-7CA6GVBO.js";
|
|
@@ -5,17 +5,6 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
Chart
|
|
7
7
|
} from "../chunk-AP3PVR3T.js";
|
|
8
|
-
import "../chunk-BVGR7OYA.js";
|
|
9
|
-
import {
|
|
10
|
-
ChartContainer,
|
|
11
|
-
ChartLegend,
|
|
12
|
-
ChartLegendContent,
|
|
13
|
-
ChartTooltip,
|
|
14
|
-
ChartTooltipContent
|
|
15
|
-
} from "../chunk-M5T3COS2.js";
|
|
16
|
-
import "../chunk-XSKVBGCZ.js";
|
|
17
|
-
import "../chunk-AVU6KU27.js";
|
|
18
|
-
import "../chunk-4V532JF6.js";
|
|
19
8
|
import {
|
|
20
9
|
CHART_SEMANTIC_COLORS,
|
|
21
10
|
ChartSpecError,
|
|
@@ -27,10 +16,21 @@ import {
|
|
|
27
16
|
getRegisteredChartSpecTypes,
|
|
28
17
|
registerChartSpecRenderer
|
|
29
18
|
} from "../chunk-WKUA6P3W.js";
|
|
19
|
+
import "../chunk-BVGR7OYA.js";
|
|
20
|
+
import {
|
|
21
|
+
ChartContainer,
|
|
22
|
+
ChartLegend,
|
|
23
|
+
ChartLegendContent,
|
|
24
|
+
ChartTooltip,
|
|
25
|
+
ChartTooltipContent
|
|
26
|
+
} from "../chunk-M5T3COS2.js";
|
|
30
27
|
import {
|
|
31
28
|
chartValueFormatter,
|
|
32
29
|
formatChartValue
|
|
33
30
|
} from "../chunk-QVWNK4JO.js";
|
|
31
|
+
import "../chunk-XSKVBGCZ.js";
|
|
32
|
+
import "../chunk-AVU6KU27.js";
|
|
33
|
+
import "../chunk-4V532JF6.js";
|
|
34
34
|
import "../chunk-I6PZVHIT.js";
|
|
35
35
|
import "../chunk-7CA6GVBO.js";
|
|
36
36
|
import "../chunk-PZ5AY32C.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import "../chunk-L5CPOEDP.js";
|
|
2
2
|
import {
|
|
3
3
|
DataGrid
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-RPWEXIAW.js";
|
|
5
|
+
import "../chunk-5E3XZAED.js";
|
|
5
6
|
import "../chunk-DLJGBJZW.js";
|
|
6
7
|
import "../chunk-KZLLTOB2.js";
|
|
7
8
|
import "../chunk-E5LWJDI3.js";
|
|
8
9
|
import "../chunk-G3E66C6J.js";
|
|
9
|
-
import "../chunk-5E3XZAED.js";
|
|
10
10
|
import "../chunk-PZ5AY32C.js";
|
|
11
11
|
export {
|
|
12
12
|
DataGrid
|
|
@@ -1,51 +1,53 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BaseCard
|
|
3
|
+
} from "../chunk-6U7NA74A.js";
|
|
1
4
|
import {
|
|
2
5
|
DataViewsTableBase
|
|
3
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-U5RIDMMV.js";
|
|
4
7
|
import "../chunk-LS42VJAI.js";
|
|
5
8
|
import {
|
|
6
9
|
DataViewsGrid
|
|
7
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-62WEMJV3.js";
|
|
8
11
|
import {
|
|
9
12
|
BaseListCard
|
|
10
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-O6MZPB64.js";
|
|
11
14
|
import "../chunk-UNF65XZW.js";
|
|
12
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-O6V7KKW7.js";
|
|
16
|
+
import "../chunk-MQUU2XZB.js";
|
|
13
17
|
import "../chunk-EICVL6GS.js";
|
|
14
18
|
import "../chunk-2JCRNWHE.js";
|
|
15
|
-
import {
|
|
16
|
-
BaseCard
|
|
17
|
-
} from "../chunk-6U7NA74A.js";
|
|
18
|
-
import "../chunk-MQUU2XZB.js";
|
|
19
19
|
import "../chunk-ZOLAYP2D.js";
|
|
20
20
|
import {
|
|
21
21
|
DragContainerProvider,
|
|
22
22
|
DropIndicator,
|
|
23
23
|
useDragItem
|
|
24
24
|
} from "../chunk-JCJGJX7V.js";
|
|
25
|
-
import "../chunk-
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-S7CAXRRP.js";
|
|
28
|
-
import "../chunk-RUO4D4N6.js";
|
|
29
|
-
import "../chunk-5WNQJ5KS.js";
|
|
30
|
-
import "../chunk-ECIGNYSI.js";
|
|
31
|
-
import "../chunk-N6JGYVRY.js";
|
|
32
|
-
import "../chunk-6PFBYCBU.js";
|
|
33
|
-
import "../chunk-QQE2PVLO.js";
|
|
25
|
+
import "../chunk-LNIVT62P.js";
|
|
26
|
+
import "../chunk-M6365FGG.js";
|
|
34
27
|
import {
|
|
35
28
|
DataViewsBoard
|
|
36
29
|
} from "../chunk-3DQP6OPC.js";
|
|
37
|
-
import "../chunk-
|
|
30
|
+
import "../chunk-PHA3NFZM.js";
|
|
31
|
+
import "../chunk-S7CAXRRP.js";
|
|
32
|
+
import "../chunk-LPNF4YJ7.js";
|
|
33
|
+
import "../chunk-5WNQJ5KS.js";
|
|
34
|
+
import "../chunk-ECIGNYSI.js";
|
|
35
|
+
import "../chunk-UENDC45F.js";
|
|
36
|
+
import "../chunk-QIKTIKO6.js";
|
|
37
|
+
import "../chunk-A4YWFX5C.js";
|
|
38
|
+
import "../chunk-DFLTUI7W.js";
|
|
38
39
|
import "../chunk-FV36LFPX.js";
|
|
40
|
+
import "../chunk-GCZJH4XL.js";
|
|
39
41
|
import "../chunk-F4RR4666.js";
|
|
40
42
|
import "../chunk-CBOB5AV6.js";
|
|
41
43
|
import "../chunk-VR5HDUBK.js";
|
|
42
44
|
import "../chunk-TQ6FPOPD.js";
|
|
43
45
|
import "../chunk-IAGOUTI6.js";
|
|
44
|
-
import "../chunk-
|
|
46
|
+
import "../chunk-GNAAHDCN.js";
|
|
47
|
+
import "../chunk-KX75HM5U.js";
|
|
45
48
|
import "../chunk-2I5B5NNT.js";
|
|
46
49
|
import "../chunk-A7Q5AQVD.js";
|
|
47
50
|
import "../chunk-OGGHD64H.js";
|
|
48
|
-
import "../chunk-GCZJH4XL.js";
|
|
49
51
|
import {
|
|
50
52
|
DEFAULT_RAILS,
|
|
51
53
|
ListCardGroup,
|
|
@@ -54,20 +56,20 @@ import {
|
|
|
54
56
|
import {
|
|
55
57
|
DEFAULT_CELL_WIDTH
|
|
56
58
|
} from "../chunk-6VP2L3DJ.js";
|
|
57
|
-
import "../chunk-
|
|
58
|
-
import "../chunk-
|
|
59
|
-
import "../chunk-HGBZZDP6.js";
|
|
60
|
-
import "../chunk-2PPWKCMW.js";
|
|
59
|
+
import "../chunk-ZNGUDGKW.js";
|
|
60
|
+
import "../chunk-J4DDXHLB.js";
|
|
61
61
|
import "../chunk-SCGVB7DS.js";
|
|
62
|
+
import "../chunk-2PPWKCMW.js";
|
|
62
63
|
import "../chunk-SNR537TI.js";
|
|
64
|
+
import "../chunk-NQCYVYP3.js";
|
|
63
65
|
import {
|
|
64
66
|
cardMinWidthForZoom,
|
|
65
67
|
cardScaleForZoom
|
|
66
68
|
} from "../chunk-ZPIMPOHV.js";
|
|
67
69
|
import "../chunk-QTPKACVO.js";
|
|
68
|
-
import "../chunk-
|
|
69
|
-
import "../chunk-UHXNEXOC.js";
|
|
70
|
+
import "../chunk-XPS7FWZS.js";
|
|
70
71
|
import "../chunk-U7SO3N42.js";
|
|
72
|
+
import "../chunk-UHXNEXOC.js";
|
|
71
73
|
import "../chunk-5M4TYFR3.js";
|
|
72
74
|
import "../chunk-HR7YTBR7.js";
|
|
73
75
|
import "../chunk-DZEC6RFM.js";
|
|
@@ -111,7 +113,7 @@ import "../chunk-EFEZWG4C.js";
|
|
|
111
113
|
import "../chunk-4T6W43TO.js";
|
|
112
114
|
import "../chunk-YB6MDGPR.js";
|
|
113
115
|
import "../chunk-LVCUJ7YU.js";
|
|
114
|
-
import "../chunk-
|
|
116
|
+
import "../chunk-TSPHRZ4U.js";
|
|
115
117
|
import "../chunk-JMVIIKII.js";
|
|
116
118
|
import "../chunk-WXD7MGBT.js";
|
|
117
119
|
import "../chunk-PGM5RRQO.js";
|
|
@@ -166,12 +168,12 @@ import "../chunk-EIGELK2H.js";
|
|
|
166
168
|
import "../chunk-EMYESBIT.js";
|
|
167
169
|
import "../chunk-QQS3GQYS.js";
|
|
168
170
|
import "../chunk-L5CPOEDP.js";
|
|
169
|
-
import "../chunk-
|
|
171
|
+
import "../chunk-RPWEXIAW.js";
|
|
172
|
+
import "../chunk-5E3XZAED.js";
|
|
170
173
|
import "../chunk-DLJGBJZW.js";
|
|
171
174
|
import "../chunk-KZLLTOB2.js";
|
|
172
175
|
import "../chunk-E5LWJDI3.js";
|
|
173
176
|
import "../chunk-G3E66C6J.js";
|
|
174
|
-
import "../chunk-5E3XZAED.js";
|
|
175
177
|
import "../chunk-SNCSGLJ6.js";
|
|
176
178
|
import "../chunk-TCAB2ERD.js";
|
|
177
179
|
import "../chunk-NUGT7LMR.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type SortFieldDefinition } from "../../layout/ContentToolbar";
|
|
2
|
+
import type { SelectionExtraRender } from "./data-views-selection-extra";
|
|
2
3
|
import type { ListGroupConfig } from "./list-card-rails";
|
|
3
4
|
import type { DisplayPanelView } from "./data-views-display-panel";
|
|
4
5
|
import type { BoardConfig } from "./DataViewsBoard";
|
|
@@ -80,6 +81,17 @@ interface DataViewsGridProps<T extends Record<string, unknown>> {
|
|
|
80
81
|
* Receives the selected rows + a `clearSelection` callback.
|
|
81
82
|
*/
|
|
82
83
|
bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
|
|
84
|
+
/**
|
|
85
|
+
* A control rendered beside the "N selected" count, for changing WHAT is
|
|
86
|
+
* selected rather than what happens to it — a "select all N matching the
|
|
87
|
+
* filter" widening, above all.
|
|
88
|
+
*
|
|
89
|
+
* Called only while something is selected, and handed
|
|
90
|
+
* {@link SelectionExtraContext.allOnPageSelected} so the control can follow
|
|
91
|
+
* the convention operators already know: the widening appears once the whole
|
|
92
|
+
* page is ticked, and not before.
|
|
93
|
+
*/
|
|
94
|
+
selectionExtra?: SelectionExtraRender<T>;
|
|
83
95
|
/**
|
|
84
96
|
* Render a bespoke per-row menu in the actions column instead of the auto
|
|
85
97
|
* kebab — typically an entity's self-contained 3-dots menu that owns its own
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataViewsGrid.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/DataViewsGrid.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataViewsGrid.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/DataViewsGrid.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAG5B,UAAU,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7B,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;IACtC,yEAAyE;IACzE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,8EAA8E;IAC9E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAC1C,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAChD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IACjF;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACzC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5C;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,qBAAqB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC3E;;;;;OAKG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,qBAAqB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9E;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC/B;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,8FAA8F;IAC9F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8FAA8F;IAC9F,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gGAAgG;IAChG,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAuBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC3B,KAAK,CAAC,GAAG,CAAC,OAAO,CAQnB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SortFieldDefinition } from "../../layout/ContentToolbar";
|
|
2
|
+
import type { SelectionExtraRender } from "./data-views-selection-extra";
|
|
2
3
|
import type { ListGroupConfig } from "./list-card-rails";
|
|
3
4
|
import type { BoardConfig } from "./DataViewsBoard";
|
|
4
5
|
import type { DataViewExport } from "./data-views-export";
|
|
@@ -49,6 +50,8 @@ export interface DataViewsTableBaseProps<T extends Record<string, unknown>> {
|
|
|
49
50
|
rowActionsLeading?: (row: T) => React.ReactNode;
|
|
50
51
|
/** Low-level bulk-action override; prefer `rowActions`. */
|
|
51
52
|
bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
|
|
53
|
+
/** A selection-widening control beside the count (e.g. "select all matching"). */
|
|
54
|
+
selectionExtra?: SelectionExtraRender<T>;
|
|
52
55
|
/** Bespoke per-row menu (an entity's self-contained 3-dots menu) instead of the auto kebab. */
|
|
53
56
|
renderRowMenu?: (row: T) => React.ReactNode;
|
|
54
57
|
/** Opt-in "Grade" (cards) layout — a card renderer per row; adds a Grade/Tabela toggle. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataViewsTableBase.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/DataViewsTableBase.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataViewsTableBase.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/DataViewsTableBase.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type DataViewsLayout } from "./data-views-layout-context";
|
|
2
2
|
import type { ListGroupConfig } from "./list-card-rails";
|
|
3
|
+
import { type SelectionExtraRender } from "./data-views-selection-extra";
|
|
3
4
|
import type { DisplayPanelView } from "./data-views-display-panel";
|
|
4
5
|
import type { DataViewExport } from "./data-views-export";
|
|
5
6
|
import type { BoardConfig } from "./DataViewsBoard";
|
|
@@ -18,6 +19,8 @@ interface GridShellProps<T extends Record<string, unknown>> {
|
|
|
18
19
|
toolbarRightSlot?: React.ReactNode;
|
|
19
20
|
rowActions?: RowAction<T>[];
|
|
20
21
|
bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;
|
|
22
|
+
/** A widening control beside the selection count — see `resolveSelectionExtra`. */
|
|
23
|
+
selectionExtra?: SelectionExtraRender<T>;
|
|
21
24
|
/** Opt-in "Grade" (cards) layout: renders each row as an entity-supplied card.
|
|
22
25
|
* Omit ⇒ table only (no layout toggle). */
|
|
23
26
|
renderCard?: (row: T, selection: DataViewCardSelection) => React.ReactNode;
|