@12-apps/ui 6.1.0 → 6.3.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/components-catalog.md +8 -0
- package/dist/{chunk-35VGGLOC.js → chunk-CEKPLUQV.js} +2 -2
- package/dist/{chunk-35VGGLOC.js.map → chunk-CEKPLUQV.js.map} +1 -1
- package/dist/{chunk-62XQWGXU.js → chunk-MXPXKORR.js} +19 -17
- package/dist/chunk-MXPXKORR.js.map +1 -0
- package/dist/{chunk-7XLEWBKL.js → chunk-N554AFDB.js} +7 -10
- package/dist/chunk-N554AFDB.js.map +1 -0
- package/dist/{chunk-JDO7W4D4.js → chunk-R5ZQZSEQ.js} +2 -20
- package/dist/{chunk-JDO7W4D4.js.map → chunk-R5ZQZSEQ.js.map} +1 -1
- package/dist/{chunk-R4TYXKDD.js → chunk-TPQRIPCN.js} +52 -48
- package/dist/chunk-TPQRIPCN.js.map +1 -0
- package/dist/copy.js +1 -0
- package/dist/copy.js.map +1 -0
- package/dist/data-display/CardKit.js +277 -0
- package/dist/data-display/CardKit.js.map +1 -0
- package/dist/data-display/DataViews.js +664 -616
- package/dist/data-display/DataViews.js.map +1 -1
- package/dist/data-display/SectionOnboarding.js +3 -3
- package/dist/data-display/SectionOnboarding.js.map +1 -1
- package/dist/feedback/ConfirmAction.js +3 -5
- package/dist/form/CategorySelect.js +1 -1
- package/dist/form/CepField.js +1 -1
- package/dist/form/total-form.js +8 -4
- package/dist/form/total-form.js.map +1 -1
- package/dist/layout/ContentToolbar.js +1 -1
- package/dist/layout/TableFilter.js +1 -1
- package/dist/pt-BR.js +222 -0
- package/dist/pt-BR.js.map +1 -0
- package/dist/types/components/data-display/CardKit/CardKebab.d.ts +23 -0
- package/dist/types/components/data-display/CardKit/CardKebab.d.ts.map +1 -0
- package/dist/types/components/data-display/CardKit/CardKit.types.d.ts +55 -0
- package/dist/types/components/data-display/CardKit/CardKit.types.d.ts.map +1 -0
- package/dist/types/components/data-display/CardKit/card-actions-context.d.ts +51 -0
- package/dist/types/components/data-display/CardKit/card-actions-context.d.ts.map +1 -0
- package/dist/types/components/data-display/CardKit/index.d.ts +15 -0
- package/dist/types/components/data-display/CardKit/index.d.ts.map +1 -0
- package/dist/types/components/data-display/CardKit/list-card-parts.d.ts +60 -0
- package/dist/types/components/data-display/CardKit/list-card-parts.d.ts.map +1 -0
- package/dist/types/components/data-display/CardKit/row-actions-to-menu.d.ts +17 -0
- package/dist/types/components/data-display/CardKit/row-actions-to-menu.d.ts.map +1 -0
- package/dist/types/components/data-display/CardKit/use-remove-confirm.d.ts +65 -0
- package/dist/types/components/data-display/CardKit/use-remove-confirm.d.ts.map +1 -0
- package/dist/types/components/data-display/CardKit/use-row-confirm.d.ts +60 -0
- package/dist/types/components/data-display/CardKit/use-row-confirm.d.ts.map +1 -0
- package/dist/types/components/data-display/DataViews/DataViewsBoard.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/DeleteViewDialog.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/ManageViewsDialog.d.ts +4 -1
- package/dist/types/components/data-display/DataViews/ManageViewsDialog.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/SaveViewModal.d.ts +0 -5
- package/dist/types/components/data-display/DataViews/SaveViewModal.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/base-card.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/base-list-card-gutters.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-bar-controls.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-category-pill.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-columns-tab.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-copy-context.d.ts +17 -0
- package/dist/types/components/data-display/DataViews/data-views-copy-context.d.ts.map +1 -0
- package/dist/types/components/data-display/DataViews/data-views-copy.d.ts +205 -0
- package/dist/types/components/data-display/DataViews/data-views-copy.d.ts.map +1 -0
- package/dist/types/components/data-display/DataViews/data-views-display-panel.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-display-tabs.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-export.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-filter-panel.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-grid-helpers.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-more-filters.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-range-pill.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-range-presets.d.ts +3 -2
- package/dist/types/components/data-display/DataViews/data-views-range-presets.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-scopes.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-search.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-select-all-strip.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-table-parts.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-view-nav.d.ts +1 -1
- package/dist/types/components/data-display/DataViews/data-views-view-nav.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/index.d.ts +2 -0
- package/dist/types/components/data-display/DataViews/index.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/save-view-preview.d.ts +10 -0
- package/dist/types/components/data-display/DataViews/save-view-preview.d.ts.map +1 -0
- package/dist/types/components/data-display/DataViews/use-saved-views-controller.d.ts.map +1 -1
- package/dist/types/components/data-display/SectionOnboarding/SectionOnboarding.types.d.ts +6 -5
- package/dist/types/components/data-display/SectionOnboarding/SectionOnboarding.types.d.ts.map +1 -1
- package/dist/types/components/feedback/ConfirmAction/ConfirmAction.hooks.d.ts +1 -3
- package/dist/types/components/feedback/ConfirmAction/ConfirmAction.hooks.d.ts.map +1 -1
- package/dist/types/components/feedback/ConfirmAction/ConfirmAction.parts.d.ts +4 -1
- package/dist/types/components/feedback/ConfirmAction/ConfirmAction.parts.d.ts.map +1 -1
- package/dist/types/components/feedback/ConfirmAction/ConfirmAction.types.d.ts +9 -1
- package/dist/types/components/feedback/ConfirmAction/ConfirmAction.types.d.ts.map +1 -1
- package/dist/types/components/feedback/ConfirmAction/ConfirmButton.d.ts +2 -1
- package/dist/types/components/feedback/ConfirmAction/ConfirmButton.d.ts.map +1 -1
- package/dist/types/components/feedback/ConfirmAction/index.d.ts +2 -2
- package/dist/types/components/feedback/ConfirmAction/index.d.ts.map +1 -1
- package/dist/types/components/feedback/ConfirmAction/with-confirmation.d.ts +5 -1
- package/dist/types/components/feedback/ConfirmAction/with-confirmation.d.ts.map +1 -1
- package/dist/types/components/form/CategorySelect/CategoryPanel.d.ts +4 -1
- package/dist/types/components/form/CategorySelect/CategoryPanel.d.ts.map +1 -1
- package/dist/types/components/form/CategorySelect/CategoryPanelFoot.d.ts +5 -2
- package/dist/types/components/form/CategorySelect/CategoryPanelFoot.d.ts.map +1 -1
- package/dist/types/components/form/CategorySelect/CategoryPanelHead.d.ts +5 -2
- package/dist/types/components/form/CategorySelect/CategoryPanelHead.d.ts.map +1 -1
- package/dist/types/components/form/CategorySelect/CategoryPanelList.d.ts +3 -0
- package/dist/types/components/form/CategorySelect/CategoryPanelList.d.ts.map +1 -1
- package/dist/types/components/form/CategorySelect/CategorySelect.types.d.ts +5 -0
- package/dist/types/components/form/CategorySelect/CategorySelect.types.d.ts.map +1 -1
- package/dist/types/components/form/CategorySelect/CategoryTrigger.d.ts +4 -1
- package/dist/types/components/form/CategorySelect/CategoryTrigger.d.ts.map +1 -1
- package/dist/types/components/form/CepField/CepField.d.ts +1 -1
- package/dist/types/components/form/CepField/CepField.d.ts.map +1 -1
- package/dist/types/components/form/CepField/CepField.types.d.ts +3 -0
- package/dist/types/components/form/CepField/CepField.types.d.ts.map +1 -1
- package/dist/types/components/form/total-form/Fields/CategoryField.d.ts +4 -1
- package/dist/types/components/form/total-form/Fields/CategoryField.d.ts.map +1 -1
- package/dist/types/components/form/total-form/Fields/CepField.d.ts +4 -1
- package/dist/types/components/form/total-form/Fields/CepField.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts +6 -1
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/SavedViewsMenu.d.ts.map +1 -1
- package/dist/types/copy.d.ts +99 -0
- package/dist/types/copy.d.ts.map +1 -0
- package/dist/types/pt-BR.d.ts +28 -0
- package/dist/types/pt-BR.d.ts.map +1 -0
- package/dist/types/utils/export-rows.d.ts +31 -0
- package/dist/types/utils/export-rows.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/utils.js +50 -0
- package/dist/utils.js.map +1 -1
- package/package.json +14 -2
- package/src/components/data-display/CardKit/CardKebab.tsx +43 -0
- package/src/components/data-display/CardKit/CardKit.md +87 -0
- package/src/components/data-display/CardKit/CardKit.types.ts +60 -0
- package/src/components/data-display/CardKit/card-actions-context.tsx +98 -0
- package/src/components/data-display/CardKit/index.ts +19 -0
- package/src/components/data-display/CardKit/list-card-parts.tsx +163 -0
- package/src/components/data-display/CardKit/row-actions-to-menu.ts +29 -0
- package/src/components/data-display/CardKit/use-remove-confirm.tsx +111 -0
- package/src/components/data-display/CardKit/use-row-confirm.tsx +96 -0
- package/src/components/data-display/DataViews/DataViewsBoard.tsx +7 -4
- package/src/components/data-display/DataViews/DeleteViewDialog.tsx +6 -4
- package/src/components/data-display/DataViews/ManageViewsDialog.tsx +26 -10
- package/src/components/data-display/DataViews/SaveViewModal.tsx +56 -90
- package/src/components/data-display/DataViews/base-card.tsx +3 -1
- package/src/components/data-display/DataViews/base-list-card-gutters.tsx +3 -1
- package/src/components/data-display/DataViews/data-views-bar-controls.tsx +8 -5
- package/src/components/data-display/DataViews/data-views-category-pill.tsx +6 -3
- package/src/components/data-display/DataViews/data-views-columns-tab.tsx +5 -3
- package/src/components/data-display/DataViews/data-views-copy-context.tsx +43 -0
- package/src/components/data-display/DataViews/data-views-copy.ts +214 -0
- package/src/components/data-display/DataViews/data-views-display-panel.tsx +15 -9
- package/src/components/data-display/DataViews/data-views-display-tabs.tsx +19 -29
- package/src/components/data-display/DataViews/data-views-export.tsx +9 -10
- package/src/components/data-display/DataViews/data-views-filter-panel.tsx +9 -5
- package/src/components/data-display/DataViews/data-views-grid-helpers.tsx +5 -2
- package/src/components/data-display/DataViews/data-views-more-fields.tsx +5 -3
- package/src/components/data-display/DataViews/data-views-more-filters.tsx +6 -3
- package/src/components/data-display/DataViews/data-views-range-pill.tsx +9 -5
- package/src/components/data-display/DataViews/data-views-range-presets.ts +7 -8
- package/src/components/data-display/DataViews/data-views-scopes.tsx +3 -1
- package/src/components/data-display/DataViews/data-views-search.tsx +7 -4
- package/src/components/data-display/DataViews/data-views-select-all-strip.tsx +5 -3
- package/src/components/data-display/DataViews/data-views-table-parts.tsx +7 -2
- package/src/components/data-display/DataViews/data-views-view-nav.tsx +22 -16
- package/src/components/data-display/DataViews/index.ts +20 -0
- package/src/components/data-display/DataViews/save-view-preview.tsx +78 -0
- package/src/components/data-display/DataViews/use-saved-views-controller.ts +3 -1
- package/src/components/data-display/SectionOnboarding/SectionOnboarding.tsx +3 -3
- package/src/components/data-display/SectionOnboarding/SectionOnboarding.types.ts +8 -7
- package/src/components/feedback/ConfirmAction/ConfirmAction.hooks.ts +2 -2
- package/src/components/feedback/ConfirmAction/ConfirmAction.parts.tsx +12 -5
- package/src/components/feedback/ConfirmAction/ConfirmAction.types.ts +9 -1
- package/src/components/feedback/ConfirmAction/ConfirmButton.tsx +12 -4
- package/src/components/feedback/ConfirmAction/index.ts +2 -2
- package/src/components/feedback/ConfirmAction/with-confirmation.tsx +4 -3
- package/src/components/form/CategorySelect/CategoryPanel.tsx +18 -6
- package/src/components/form/CategorySelect/CategoryPanelFoot.tsx +10 -5
- package/src/components/form/CategorySelect/CategoryPanelHead.tsx +8 -3
- package/src/components/form/CategorySelect/CategoryPanelList.tsx +17 -10
- package/src/components/form/CategorySelect/CategorySelect.tsx +3 -3
- package/src/components/form/CategorySelect/CategorySelect.types.ts +5 -0
- package/src/components/form/CategorySelect/CategoryTrigger.tsx +5 -1
- package/src/components/form/CepField/CepField.tsx +6 -9
- package/src/components/form/CepField/CepField.types.ts +3 -0
- package/src/components/form/total-form/Fields/CategoryField.tsx +5 -0
- package/src/components/form/total-form/Fields/CepField.tsx +5 -0
- package/src/components/layout/ContentToolbar/ContentToolbar.types.ts +6 -1
- package/src/components/layout/ContentToolbar/SavedViewsMenu.tsx +1 -21
- package/src/components/layout/TableFilter/TableFilter.tsx +1 -1
- package/src/copy.ts +103 -0
- package/src/pt-BR.ts +247 -0
- package/src/utils/export-rows.ts +95 -0
- package/src/utils/index.ts +1 -0
- package/dist/chunk-62XQWGXU.js.map +0 -1
- package/dist/chunk-7XLEWBKL.js.map +0 -1
- package/dist/chunk-R4TYXKDD.js.map +0 -1
|
@@ -10,12 +10,12 @@ import {
|
|
|
10
10
|
} from "../chunk-JP55QWVR.js";
|
|
11
11
|
import {
|
|
12
12
|
TableFilter
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-CEKPLUQV.js";
|
|
14
14
|
import {
|
|
15
15
|
ContentToolbar,
|
|
16
16
|
FilterTrigger,
|
|
17
17
|
MultiSelectDropdown
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-R5ZQZSEQ.js";
|
|
19
19
|
import "../chunk-DI44UBHQ.js";
|
|
20
20
|
import {
|
|
21
21
|
Switch
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
} from "../chunk-H7UAGTVW.js";
|
|
26
26
|
import {
|
|
27
27
|
CategorySelect
|
|
28
|
-
} from "../chunk-
|
|
28
|
+
} from "../chunk-TPQRIPCN.js";
|
|
29
29
|
import {
|
|
30
30
|
Input
|
|
31
31
|
} from "../chunk-OOKQ2LMM.js";
|
|
@@ -43,8 +43,8 @@ import {
|
|
|
43
43
|
StackedModalContent
|
|
44
44
|
} from "../chunk-QZZVHY6U.js";
|
|
45
45
|
import {
|
|
46
|
-
|
|
47
|
-
} from "../chunk-
|
|
46
|
+
createConfirmButton
|
|
47
|
+
} from "../chunk-MXPXKORR.js";
|
|
48
48
|
import {
|
|
49
49
|
DataGrid
|
|
50
50
|
} from "../chunk-QLBYAYUG.js";
|
|
@@ -350,8 +350,28 @@ function toSavedViewSummary(record) {
|
|
|
350
350
|
return { ...record, state: record.state ?? {} };
|
|
351
351
|
}
|
|
352
352
|
|
|
353
|
+
// src/components/data-display/DataViews/data-views-copy-context.tsx
|
|
354
|
+
import { createContext as createContext2, useContext as useContext2 } from "react";
|
|
355
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
356
|
+
var DataViewsCopyContext = createContext2(null);
|
|
357
|
+
function DataViewsCopyProvider({
|
|
358
|
+
copy,
|
|
359
|
+
children
|
|
360
|
+
}) {
|
|
361
|
+
return /* @__PURE__ */ jsx2(DataViewsCopyContext.Provider, { value: copy, children });
|
|
362
|
+
}
|
|
363
|
+
function useDataViewsCopy() {
|
|
364
|
+
const copy = useContext2(DataViewsCopyContext);
|
|
365
|
+
if (!copy) {
|
|
366
|
+
throw new Error(
|
|
367
|
+
"DataViews components must be rendered inside <DataViewsCopyProvider copy={\u2026}>. @12-apps/ui ships no default copy; pass PT_BR_DATA_VIEWS_COPY to keep the pt-BR wording."
|
|
368
|
+
);
|
|
369
|
+
}
|
|
370
|
+
return copy;
|
|
371
|
+
}
|
|
372
|
+
|
|
353
373
|
// src/components/data-display/DataViews/base-card.tsx
|
|
354
|
-
import { Fragment, jsx as
|
|
374
|
+
import { Fragment, jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
355
375
|
function cardSx(opts) {
|
|
356
376
|
const { aspectRatio, pad, scale, interactive, draggable } = opts;
|
|
357
377
|
return {
|
|
@@ -379,8 +399,9 @@ function CardOverlays({
|
|
|
379
399
|
checkboxTestId,
|
|
380
400
|
menu
|
|
381
401
|
}) {
|
|
402
|
+
const copy = useDataViewsCopy();
|
|
382
403
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
383
|
-
onToggleSelect && /* @__PURE__ */
|
|
404
|
+
onToggleSelect && /* @__PURE__ */ jsx3(Box, { sx: { position: "absolute", top: 4, left: 4, zIndex: 2 }, children: /* @__PURE__ */ jsx3(
|
|
384
405
|
Checkbox,
|
|
385
406
|
{
|
|
386
407
|
checked: selected,
|
|
@@ -388,10 +409,10 @@ function CardOverlays({
|
|
|
388
409
|
onClick: (event) => event.stopPropagation(),
|
|
389
410
|
size: "small",
|
|
390
411
|
"data-testid": checkboxTestId,
|
|
391
|
-
"aria-label":
|
|
412
|
+
"aria-label": copy.selection.selectRow
|
|
392
413
|
}
|
|
393
414
|
) }),
|
|
394
|
-
menu && /* @__PURE__ */
|
|
415
|
+
menu && /* @__PURE__ */ jsx3(
|
|
395
416
|
Box,
|
|
396
417
|
{
|
|
397
418
|
sx: { position: "absolute", top: 4, right: 4, zIndex: 2 },
|
|
@@ -402,7 +423,7 @@ function CardOverlays({
|
|
|
402
423
|
] });
|
|
403
424
|
}
|
|
404
425
|
function CardMedia({ image, imageFallback }) {
|
|
405
|
-
return /* @__PURE__ */
|
|
426
|
+
return /* @__PURE__ */ jsx3(
|
|
406
427
|
Box,
|
|
407
428
|
{
|
|
408
429
|
sx: {
|
|
@@ -424,7 +445,7 @@ function CardBodyContent({
|
|
|
424
445
|
fill,
|
|
425
446
|
topGap
|
|
426
447
|
}) {
|
|
427
|
-
return /* @__PURE__ */
|
|
448
|
+
return /* @__PURE__ */ jsx3(
|
|
428
449
|
Box,
|
|
429
450
|
{
|
|
430
451
|
sx: {
|
|
@@ -448,7 +469,7 @@ function CardCaption({
|
|
|
448
469
|
topGap
|
|
449
470
|
}) {
|
|
450
471
|
return /* @__PURE__ */ jsxs(Box, { sx: { mt: topGap, minWidth: 0 }, children: [
|
|
451
|
-
title != null && /* @__PURE__ */
|
|
472
|
+
title != null && /* @__PURE__ */ jsx3(
|
|
452
473
|
Text,
|
|
453
474
|
{
|
|
454
475
|
variant: "heading",
|
|
@@ -465,7 +486,7 @@ function CardCaption({
|
|
|
465
486
|
children: title
|
|
466
487
|
}
|
|
467
488
|
),
|
|
468
|
-
subtitle != null && /* @__PURE__ */
|
|
489
|
+
subtitle != null && /* @__PURE__ */ jsx3(Text, { variant: "caption", size: "xs", color: "secondary", as: "p", children: subtitle })
|
|
469
490
|
] });
|
|
470
491
|
}
|
|
471
492
|
function CardContents({
|
|
@@ -482,9 +503,9 @@ function CardContents({
|
|
|
482
503
|
const hasCaption = title != null || subtitle != null;
|
|
483
504
|
const top = contentGaps({ hasMedia, hasBody, overlays, pad });
|
|
484
505
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
485
|
-
hasMedia && /* @__PURE__ */
|
|
486
|
-
hasBody && /* @__PURE__ */
|
|
487
|
-
hasCaption && /* @__PURE__ */
|
|
506
|
+
hasMedia && /* @__PURE__ */ jsx3(CardMedia, { image, imageFallback }),
|
|
507
|
+
hasBody && /* @__PURE__ */ jsx3(CardBodyContent, { fill: !hasMedia, topGap: top.body, children }),
|
|
508
|
+
hasCaption && /* @__PURE__ */ jsx3(CardCaption, { title, subtitle, topGap: top.caption })
|
|
488
509
|
] });
|
|
489
510
|
}
|
|
490
511
|
function useCardShell(props) {
|
|
@@ -545,7 +566,7 @@ function BaseCard(props) {
|
|
|
545
566
|
})
|
|
546
567
|
},
|
|
547
568
|
children: [
|
|
548
|
-
drag.draggable && /* @__PURE__ */
|
|
569
|
+
drag.draggable && /* @__PURE__ */ jsx3(Box, { sx: { position: "absolute", bottom: 4, left: 4, zIndex: 2 }, children: /* @__PURE__ */ jsx3(
|
|
549
570
|
DragHandle,
|
|
550
571
|
{
|
|
551
572
|
handleProps: drag.handleProps,
|
|
@@ -553,7 +574,7 @@ function BaseCard(props) {
|
|
|
553
574
|
testId: slot("drag")
|
|
554
575
|
}
|
|
555
576
|
) }),
|
|
556
|
-
/* @__PURE__ */
|
|
577
|
+
/* @__PURE__ */ jsx3(
|
|
557
578
|
CardOverlays,
|
|
558
579
|
{
|
|
559
580
|
selected,
|
|
@@ -563,7 +584,7 @@ function BaseCard(props) {
|
|
|
563
584
|
menu
|
|
564
585
|
}
|
|
565
586
|
),
|
|
566
|
-
/* @__PURE__ */
|
|
587
|
+
/* @__PURE__ */ jsx3(
|
|
567
588
|
CardContents,
|
|
568
589
|
{
|
|
569
590
|
image: props.image,
|
|
@@ -605,10 +626,10 @@ function useDisclosure(props) {
|
|
|
605
626
|
import { useTheme as useTheme2 } from "@mui/material";
|
|
606
627
|
|
|
607
628
|
// src/components/data-display/DataViews/data-views-layout-context.tsx
|
|
608
|
-
import { createContext as
|
|
629
|
+
import { createContext as createContext3, useContext as useContext3, useEffect, useMemo, useState as useState2 } from "react";
|
|
609
630
|
import GridViewOutlinedIcon from "@mui/icons-material/GridViewOutlined";
|
|
610
|
-
import { jsx as
|
|
611
|
-
var DataViewsLayoutContext =
|
|
631
|
+
import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
632
|
+
var DataViewsLayoutContext = createContext3(null);
|
|
612
633
|
var DEFAULT_ZOOM = 35;
|
|
613
634
|
var BASE_CARD_WIDTH = 180;
|
|
614
635
|
var CARD_SCALE_RANGE = { min: 0.75, max: 2 };
|
|
@@ -722,10 +743,10 @@ function DataViewsLayoutProvider({
|
|
|
722
743
|
}),
|
|
723
744
|
[effective, density, canUseCards, canUseList, canUseBoard, zoom]
|
|
724
745
|
);
|
|
725
|
-
return /* @__PURE__ */
|
|
746
|
+
return /* @__PURE__ */ jsx4(DataViewsLayoutContext.Provider, { value, children });
|
|
726
747
|
}
|
|
727
748
|
function useDataViewsLayout() {
|
|
728
|
-
const ctx =
|
|
749
|
+
const ctx = useContext3(DataViewsLayoutContext);
|
|
729
750
|
if (!ctx) {
|
|
730
751
|
throw new Error("useDataViewsLayout must be used within a DataViewsLayoutProvider");
|
|
731
752
|
}
|
|
@@ -733,26 +754,26 @@ function useDataViewsLayout() {
|
|
|
733
754
|
}
|
|
734
755
|
|
|
735
756
|
// src/components/data-display/DataViews/list-card-rails.tsx
|
|
736
|
-
import { createContext as
|
|
757
|
+
import { createContext as createContext5, useContext as useContext5 } from "react";
|
|
737
758
|
|
|
738
759
|
// src/components/data-display/DataViews/list-card-cells.tsx
|
|
739
|
-
import { createContext as
|
|
740
|
-
import { Fragment as Fragment2, jsx as
|
|
760
|
+
import { createContext as createContext4, useContext as useContext4 } from "react";
|
|
761
|
+
import { Fragment as Fragment2, jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
741
762
|
var ALIGN_ITEMS = { start: "flex-start", center: "center", end: "flex-end" };
|
|
742
763
|
var TEXT_ALIGN = { start: "left", center: "center", end: "right" };
|
|
743
764
|
var DEFAULT_CELL_WIDTH = "minmax(0, 1fr)";
|
|
744
765
|
function cellTracks(cells) {
|
|
745
766
|
return (cells ?? []).map((cell) => cell.width ?? DEFAULT_CELL_WIDTH);
|
|
746
767
|
}
|
|
747
|
-
var CellConfigContext =
|
|
768
|
+
var CellConfigContext = createContext4(null);
|
|
748
769
|
function CellConfigProvider({
|
|
749
770
|
cells,
|
|
750
771
|
children
|
|
751
772
|
}) {
|
|
752
|
-
return /* @__PURE__ */
|
|
773
|
+
return /* @__PURE__ */ jsx5(CellConfigContext.Provider, { value: cells ?? null, children });
|
|
753
774
|
}
|
|
754
775
|
function useCellConfig() {
|
|
755
|
-
return
|
|
776
|
+
return useContext4(CellConfigContext);
|
|
756
777
|
}
|
|
757
778
|
function Cell({
|
|
758
779
|
config,
|
|
@@ -781,7 +802,7 @@ function Cell({
|
|
|
781
802
|
textAlign: TEXT_ALIGN[align]
|
|
782
803
|
},
|
|
783
804
|
children: [
|
|
784
|
-
/* @__PURE__ */
|
|
805
|
+
/* @__PURE__ */ jsx5(
|
|
785
806
|
Box,
|
|
786
807
|
{
|
|
787
808
|
component: "span",
|
|
@@ -789,7 +810,7 @@ function Cell({
|
|
|
789
810
|
children: config.primary(row)
|
|
790
811
|
}
|
|
791
812
|
),
|
|
792
|
-
secondary != null && /* @__PURE__ */
|
|
813
|
+
secondary != null && /* @__PURE__ */ jsx5(
|
|
793
814
|
Box,
|
|
794
815
|
{
|
|
795
816
|
component: "span",
|
|
@@ -805,11 +826,11 @@ function ListCardCells({
|
|
|
805
826
|
cells,
|
|
806
827
|
row
|
|
807
828
|
}) {
|
|
808
|
-
return /* @__PURE__ */
|
|
829
|
+
return /* @__PURE__ */ jsx5(Fragment2, { children: cells.map((config) => /* @__PURE__ */ jsx5(Cell, { config, row }, config.id)) });
|
|
809
830
|
}
|
|
810
831
|
|
|
811
832
|
// src/components/data-display/DataViews/list-card-rails.tsx
|
|
812
|
-
import { jsx as
|
|
833
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
813
834
|
function metaRail(columns) {
|
|
814
835
|
return `minmax(max-content, ${Math.max(columns, 1)}fr)`;
|
|
815
836
|
}
|
|
@@ -831,9 +852,9 @@ var DEFAULT_RAILS = {
|
|
|
831
852
|
value: "max-content",
|
|
832
853
|
actions: "auto"
|
|
833
854
|
};
|
|
834
|
-
var ListRailsContext =
|
|
855
|
+
var ListRailsContext = createContext5(null);
|
|
835
856
|
function useListRails() {
|
|
836
|
-
return
|
|
857
|
+
return useContext5(ListRailsContext);
|
|
837
858
|
}
|
|
838
859
|
function railsTemplate(rails) {
|
|
839
860
|
return [
|
|
@@ -893,7 +914,7 @@ function ListCardGroup({
|
|
|
893
914
|
const configured = cells != null && cells.length > 0;
|
|
894
915
|
const template = configured ? cellRailsTemplate(cellTracks(cells)) : railsTemplate(resolved);
|
|
895
916
|
const railCount = configured ? cellRailCount(cells.length) : RAIL_COUNT;
|
|
896
|
-
return /* @__PURE__ */
|
|
917
|
+
return /* @__PURE__ */ jsx6(ListRailsContext.Provider, { value: { density, reserveGutters, railCount }, children: /* @__PURE__ */ jsx6(CellConfigProvider, { cells, children: /* @__PURE__ */ jsx6(
|
|
897
918
|
Box,
|
|
898
919
|
{
|
|
899
920
|
"data-testid": dataTestId,
|
|
@@ -915,7 +936,7 @@ function ListCardGroup({
|
|
|
915
936
|
|
|
916
937
|
// src/components/data-display/DataViews/base-list-card-slots.tsx
|
|
917
938
|
import { Fragment as Fragment3 } from "react";
|
|
918
|
-
import { Fragment as Fragment4, jsx as
|
|
939
|
+
import { Fragment as Fragment4, jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
919
940
|
var META_BREAK = 520;
|
|
920
941
|
var STACK_BREAK = 360;
|
|
921
942
|
var TABULAR = { fontVariantNumeric: "tabular-nums" };
|
|
@@ -932,7 +953,7 @@ function ListCardCaption({
|
|
|
932
953
|
testId
|
|
933
954
|
}) {
|
|
934
955
|
return /* @__PURE__ */ jsxs4(Box, { "data-slot": "caption", sx: { minWidth: 0 }, children: [
|
|
935
|
-
title != null && /* @__PURE__ */
|
|
956
|
+
title != null && /* @__PURE__ */ jsx7(Text, { variant: "heading", size: "sm", weight: "bold", as: "p", children: /* @__PURE__ */ jsx7(
|
|
936
957
|
Box,
|
|
937
958
|
{
|
|
938
959
|
...href ? { component: "a", href, target } : { component: "span" },
|
|
@@ -959,11 +980,11 @@ function ListCardCaption({
|
|
|
959
980
|
children: title
|
|
960
981
|
}
|
|
961
982
|
) }),
|
|
962
|
-
subtitle != null && /* @__PURE__ */
|
|
983
|
+
subtitle != null && /* @__PURE__ */ jsx7(Text, { variant: "caption", size: "xs", color: "secondary", as: "p", children: /* @__PURE__ */ jsx7(Box, { component: "span", sx: { display: "block", ...CLAMP }, children: subtitle }) })
|
|
963
984
|
] });
|
|
964
985
|
}
|
|
965
986
|
function MetaRule() {
|
|
966
|
-
return /* @__PURE__ */
|
|
987
|
+
return /* @__PURE__ */ jsx7(
|
|
967
988
|
Box,
|
|
968
989
|
{
|
|
969
990
|
"aria-hidden": true,
|
|
@@ -1006,8 +1027,8 @@ function ListCardMeta({
|
|
|
1006
1027
|
},
|
|
1007
1028
|
children: [
|
|
1008
1029
|
items.map((item, index) => /* @__PURE__ */ jsxs4(Fragment3, { children: [
|
|
1009
|
-
index > 0 && /* @__PURE__ */
|
|
1010
|
-
/* @__PURE__ */
|
|
1030
|
+
index > 0 && /* @__PURE__ */ jsx7(MetaRule, {}),
|
|
1031
|
+
/* @__PURE__ */ jsx7(
|
|
1011
1032
|
Box,
|
|
1012
1033
|
{
|
|
1013
1034
|
sx: {
|
|
@@ -1019,12 +1040,12 @@ function ListCardMeta({
|
|
|
1019
1040
|
// that `space-evenly` can equalise.
|
|
1020
1041
|
flex: "0 0 auto"
|
|
1021
1042
|
},
|
|
1022
|
-
children: /* @__PURE__ */
|
|
1043
|
+
children: /* @__PURE__ */ jsx7(DescriptionItem, { orientation: "vertical", align: "center", ...item })
|
|
1023
1044
|
}
|
|
1024
1045
|
)
|
|
1025
1046
|
] }, `${item.label}-${index}`)),
|
|
1026
1047
|
metaSlot,
|
|
1027
|
-
trailingRule && items.length > 0 && /* @__PURE__ */
|
|
1048
|
+
trailingRule && items.length > 0 && /* @__PURE__ */ jsx7(MetaRule, {})
|
|
1028
1049
|
]
|
|
1029
1050
|
}
|
|
1030
1051
|
);
|
|
@@ -1034,7 +1055,7 @@ var VALUE_FLUSH = {
|
|
|
1034
1055
|
[`@container (max-width: ${META_BREAK}px)`]: { marginLeft: 0 }
|
|
1035
1056
|
};
|
|
1036
1057
|
function ListCardValue({ value }) {
|
|
1037
|
-
return /* @__PURE__ */
|
|
1058
|
+
return /* @__PURE__ */ jsx7(Text, { variant: "body", size: "sm", weight: "medium", as: "span", children: /* @__PURE__ */ jsx7(
|
|
1038
1059
|
Box,
|
|
1039
1060
|
{
|
|
1040
1061
|
component: "span",
|
|
@@ -1058,7 +1079,7 @@ function ListCardActions({
|
|
|
1058
1079
|
"data-slot": "actions",
|
|
1059
1080
|
sx: { display: "flex", alignItems: "center", gap: 0.5, position: "relative", zIndex: 1 },
|
|
1060
1081
|
children: [
|
|
1061
|
-
actions && /* @__PURE__ */
|
|
1082
|
+
actions && /* @__PURE__ */ jsx7(
|
|
1062
1083
|
Box,
|
|
1063
1084
|
{
|
|
1064
1085
|
"data-testid": testId("actions"),
|
|
@@ -1077,7 +1098,7 @@ function ListCardActions({
|
|
|
1077
1098
|
children: actions
|
|
1078
1099
|
}
|
|
1079
1100
|
),
|
|
1080
|
-
menu && /* @__PURE__ */
|
|
1101
|
+
menu && /* @__PURE__ */ jsx7(Box, { "data-testid": testId("menu"), onClick: (event) => event.stopPropagation(), children: menu })
|
|
1081
1102
|
]
|
|
1082
1103
|
}
|
|
1083
1104
|
)
|
|
@@ -1092,7 +1113,7 @@ function ListCardTail({
|
|
|
1092
1113
|
testId
|
|
1093
1114
|
}) {
|
|
1094
1115
|
return /* @__PURE__ */ jsxs4(Fragment4, { children: [
|
|
1095
|
-
/* @__PURE__ */
|
|
1116
|
+
/* @__PURE__ */ jsx7(
|
|
1096
1117
|
Box,
|
|
1097
1118
|
{
|
|
1098
1119
|
"data-slot": "value",
|
|
@@ -1101,10 +1122,10 @@ function ListCardTail({
|
|
|
1101
1122
|
...separated && value != null ? VALUE_FLUSH : {}
|
|
1102
1123
|
},
|
|
1103
1124
|
"data-testid": testId("value"),
|
|
1104
|
-
children: value != null && /* @__PURE__ */
|
|
1125
|
+
children: value != null && /* @__PURE__ */ jsx7(ListCardValue, { value })
|
|
1105
1126
|
}
|
|
1106
1127
|
),
|
|
1107
|
-
/* @__PURE__ */
|
|
1128
|
+
/* @__PURE__ */ jsx7(
|
|
1108
1129
|
ListCardActions,
|
|
1109
1130
|
{
|
|
1110
1131
|
actions,
|
|
@@ -1271,25 +1292,25 @@ function rowStyles(props, shell, cellTemplate) {
|
|
|
1271
1292
|
// src/components/data-display/DataViews/base-list-card-gutters.tsx
|
|
1272
1293
|
import KeyboardArrowRightIcon from "@mui/icons-material/KeyboardArrowRight";
|
|
1273
1294
|
import { IconButton } from "@mui/material";
|
|
1274
|
-
import { jsx as
|
|
1295
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
1275
1296
|
var CHECKBOX_PAD = "-9px";
|
|
1276
1297
|
function DragSlot({
|
|
1277
1298
|
drag,
|
|
1278
1299
|
reserve,
|
|
1279
1300
|
testId
|
|
1280
1301
|
}) {
|
|
1281
|
-
if (!drag.draggable) return reserve ? /* @__PURE__ */
|
|
1302
|
+
if (!drag.draggable) return reserve ? /* @__PURE__ */ jsx8(Box, { "data-slot": "drag" }) : null;
|
|
1282
1303
|
return (
|
|
1283
1304
|
// display:flex, as on the checkbox below: the grip is an inline-grid, and in
|
|
1284
1305
|
// a block parent an inline box sits on the text baseline — the line box adds
|
|
1285
1306
|
// descender leading under it (21px glyph in a 31px slot) and drops the grip
|
|
1286
1307
|
// 5px below the row's centre. A flex parent has no baseline to sit on.
|
|
1287
|
-
/* @__PURE__ */
|
|
1308
|
+
/* @__PURE__ */ jsx8(
|
|
1288
1309
|
Box,
|
|
1289
1310
|
{
|
|
1290
1311
|
"data-slot": "drag",
|
|
1291
1312
|
sx: { position: "relative", zIndex: 1, display: "flex", alignItems: "center" },
|
|
1292
|
-
children: /* @__PURE__ */
|
|
1313
|
+
children: /* @__PURE__ */ jsx8(
|
|
1293
1314
|
DragHandle,
|
|
1294
1315
|
{
|
|
1295
1316
|
handleProps: drag.handleProps,
|
|
@@ -1308,15 +1329,16 @@ function SelectSlot({
|
|
|
1308
1329
|
onToggleSelect,
|
|
1309
1330
|
testId
|
|
1310
1331
|
}) {
|
|
1311
|
-
|
|
1332
|
+
const copy = useDataViewsCopy();
|
|
1333
|
+
if (!selectable) return reserve ? /* @__PURE__ */ jsx8(Box, { "data-slot": "select" }) : null;
|
|
1312
1334
|
return (
|
|
1313
1335
|
// z-index 1: above the stretched link, or the anchor swallows the click.
|
|
1314
|
-
/* @__PURE__ */
|
|
1336
|
+
/* @__PURE__ */ jsx8(
|
|
1315
1337
|
Box,
|
|
1316
1338
|
{
|
|
1317
1339
|
"data-slot": "select",
|
|
1318
1340
|
sx: { position: "relative", zIndex: 1, mx: CHECKBOX_PAD, display: "flex" },
|
|
1319
|
-
children: /* @__PURE__ */
|
|
1341
|
+
children: /* @__PURE__ */ jsx8(
|
|
1320
1342
|
Checkbox,
|
|
1321
1343
|
{
|
|
1322
1344
|
checked: selected,
|
|
@@ -1327,7 +1349,7 @@ function SelectSlot({
|
|
|
1327
1349
|
},
|
|
1328
1350
|
size: "small",
|
|
1329
1351
|
"data-testid": testId,
|
|
1330
|
-
"aria-label":
|
|
1352
|
+
"aria-label": copy.selection.selectRow
|
|
1331
1353
|
}
|
|
1332
1354
|
)
|
|
1333
1355
|
}
|
|
@@ -1342,17 +1364,17 @@ function DiscloseSlot({
|
|
|
1342
1364
|
controls,
|
|
1343
1365
|
testId
|
|
1344
1366
|
}) {
|
|
1345
|
-
if (!expandable) return reserve ? /* @__PURE__ */
|
|
1367
|
+
if (!expandable) return reserve ? /* @__PURE__ */ jsx8(Box, { "data-slot": "disclose" }) : null;
|
|
1346
1368
|
return (
|
|
1347
1369
|
// z-index 1 and flex for the same reasons the other two gutters use them:
|
|
1348
1370
|
// above a stretched link that would otherwise swallow the click, and out of
|
|
1349
1371
|
// a baseline that would drop the glyph below the row's centre.
|
|
1350
|
-
/* @__PURE__ */
|
|
1372
|
+
/* @__PURE__ */ jsx8(
|
|
1351
1373
|
Box,
|
|
1352
1374
|
{
|
|
1353
1375
|
"data-slot": "disclose",
|
|
1354
1376
|
sx: { position: "relative", zIndex: 1, display: "flex", alignItems: "center" },
|
|
1355
|
-
children: /* @__PURE__ */
|
|
1377
|
+
children: /* @__PURE__ */ jsx8(
|
|
1356
1378
|
IconButton,
|
|
1357
1379
|
{
|
|
1358
1380
|
size: "small",
|
|
@@ -1373,7 +1395,7 @@ function DiscloseSlot({
|
|
|
1373
1395
|
// angle, not by the animation, so dropping the tween loses nothing.
|
|
1374
1396
|
"@media (prefers-reduced-motion: reduce)": { transition: "none" }
|
|
1375
1397
|
},
|
|
1376
|
-
children: /* @__PURE__ */
|
|
1398
|
+
children: /* @__PURE__ */ jsx8(KeyboardArrowRightIcon, { fontSize: "small" })
|
|
1377
1399
|
}
|
|
1378
1400
|
)
|
|
1379
1401
|
}
|
|
@@ -1382,7 +1404,7 @@ function DiscloseSlot({
|
|
|
1382
1404
|
}
|
|
1383
1405
|
|
|
1384
1406
|
// src/components/data-display/DataViews/base-list-card.tsx
|
|
1385
|
-
import { Fragment as Fragment5, jsx as
|
|
1407
|
+
import { Fragment as Fragment5, jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1386
1408
|
function useResolvedCells(props, inGroup) {
|
|
1387
1409
|
const groupCells = useCellConfig();
|
|
1388
1410
|
const cells = groupCells ?? props.cells ?? null;
|
|
@@ -1400,8 +1422,8 @@ function RowContent({
|
|
|
1400
1422
|
}) {
|
|
1401
1423
|
if (configured && cells != null) {
|
|
1402
1424
|
return /* @__PURE__ */ jsxs5(Fragment5, { children: [
|
|
1403
|
-
/* @__PURE__ */
|
|
1404
|
-
/* @__PURE__ */
|
|
1425
|
+
/* @__PURE__ */ jsx9(ListCardCells, { cells, row: card.row }),
|
|
1426
|
+
/* @__PURE__ */ jsx9(
|
|
1405
1427
|
ListCardActions,
|
|
1406
1428
|
{
|
|
1407
1429
|
actions: actionable ? card.actions : void 0,
|
|
@@ -1413,7 +1435,7 @@ function RowContent({
|
|
|
1413
1435
|
] });
|
|
1414
1436
|
}
|
|
1415
1437
|
return /* @__PURE__ */ jsxs5(Fragment5, { children: [
|
|
1416
|
-
/* @__PURE__ */
|
|
1438
|
+
/* @__PURE__ */ jsx9(
|
|
1417
1439
|
ListCardCaption,
|
|
1418
1440
|
{
|
|
1419
1441
|
title: card.title,
|
|
@@ -1423,8 +1445,8 @@ function RowContent({
|
|
|
1423
1445
|
testId: slot("title")
|
|
1424
1446
|
}
|
|
1425
1447
|
),
|
|
1426
|
-
/* @__PURE__ */
|
|
1427
|
-
/* @__PURE__ */
|
|
1448
|
+
/* @__PURE__ */ jsx9(ListCardMeta, { meta: card.meta, metaSlot: card.metaSlot, trailingRule: card.value != null }),
|
|
1449
|
+
/* @__PURE__ */ jsx9(
|
|
1428
1450
|
ListCardTail,
|
|
1429
1451
|
{
|
|
1430
1452
|
value: card.value,
|
|
@@ -1443,8 +1465,8 @@ function ExpandableBody({
|
|
|
1443
1465
|
pad,
|
|
1444
1466
|
children
|
|
1445
1467
|
}) {
|
|
1446
|
-
if (!disclosure.expandable) return /* @__PURE__ */
|
|
1447
|
-
return /* @__PURE__ */
|
|
1468
|
+
if (!disclosure.expandable) return /* @__PURE__ */ jsx9(Fragment5, {});
|
|
1469
|
+
return /* @__PURE__ */ jsx9(Box, { sx: { gridColumn: "1 / -1", minWidth: 0 }, children: /* @__PURE__ */ jsx9(Collapse, { in: disclosure.expanded, timeout: 150, children: /* @__PURE__ */ jsx9(
|
|
1448
1470
|
Box,
|
|
1449
1471
|
{
|
|
1450
1472
|
id: disclosure.regionId,
|
|
@@ -1489,8 +1511,8 @@ function BaseListCard(props) {
|
|
|
1489
1511
|
...drag.itemProps,
|
|
1490
1512
|
sx: rowStyles(props, shell, cellTemplate),
|
|
1491
1513
|
children: [
|
|
1492
|
-
drag.dropEdge != null && /* @__PURE__ */
|
|
1493
|
-
/* @__PURE__ */
|
|
1514
|
+
drag.dropEdge != null && /* @__PURE__ */ jsx9(DropIndicator, { edge: drag.dropEdge }),
|
|
1515
|
+
/* @__PURE__ */ jsx9(
|
|
1494
1516
|
DiscloseSlot,
|
|
1495
1517
|
{
|
|
1496
1518
|
expandable: disclosure.expandable,
|
|
@@ -1501,8 +1523,8 @@ function BaseListCard(props) {
|
|
|
1501
1523
|
testId: slot("disclose")
|
|
1502
1524
|
}
|
|
1503
1525
|
),
|
|
1504
|
-
/* @__PURE__ */
|
|
1505
|
-
/* @__PURE__ */
|
|
1526
|
+
/* @__PURE__ */ jsx9(DragSlot, { drag, reserve, testId: slot("drag") }),
|
|
1527
|
+
/* @__PURE__ */ jsx9(
|
|
1506
1528
|
SelectSlot,
|
|
1507
1529
|
{
|
|
1508
1530
|
selectable,
|
|
@@ -1512,9 +1534,9 @@ function BaseListCard(props) {
|
|
|
1512
1534
|
testId: slot("checkbox")
|
|
1513
1535
|
}
|
|
1514
1536
|
),
|
|
1515
|
-
/* @__PURE__ */
|
|
1516
|
-
/* @__PURE__ */
|
|
1517
|
-
/* @__PURE__ */
|
|
1537
|
+
/* @__PURE__ */ jsx9(Box, { "data-slot": "leading", sx: { display: "flex", alignItems: "center" }, children: props.leading }),
|
|
1538
|
+
/* @__PURE__ */ jsx9(RowContent, { card: props, cells, configured, slot, actionable, meta }),
|
|
1539
|
+
/* @__PURE__ */ jsx9(ExpandableBody, { disclosure, padY, pad, children: props.children })
|
|
1518
1540
|
]
|
|
1519
1541
|
}
|
|
1520
1542
|
);
|
|
@@ -1530,7 +1552,7 @@ import { useEffect as useEffect5, useState as useState11 } from "react";
|
|
|
1530
1552
|
import { Box as Box5, Link } from "@mui/material";
|
|
1531
1553
|
|
|
1532
1554
|
// src/components/data-display/DataViews/data-views-category-pill.tsx
|
|
1533
|
-
import { jsx as
|
|
1555
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
1534
1556
|
function emitPillDiff(fieldId, before, after, onTogglePill) {
|
|
1535
1557
|
const had = new Set(before);
|
|
1536
1558
|
const wants = new Set(after);
|
|
@@ -1556,11 +1578,13 @@ function PillControl({
|
|
|
1556
1578
|
testIdPrefix,
|
|
1557
1579
|
layout = "pill"
|
|
1558
1580
|
}) {
|
|
1581
|
+
const copy = useDataViewsCopy();
|
|
1559
1582
|
const testId = `${testIdPrefix}-filter-${fieldId}`;
|
|
1560
1583
|
if (pill.control === "category") {
|
|
1561
|
-
return /* @__PURE__ */
|
|
1584
|
+
return /* @__PURE__ */ jsx10(
|
|
1562
1585
|
CategorySelect,
|
|
1563
1586
|
{
|
|
1587
|
+
copy: copy.categorySelect,
|
|
1564
1588
|
placeholder: pill.label,
|
|
1565
1589
|
label: layout === "stacked" ? pill.label : void 0,
|
|
1566
1590
|
fullWidth: layout === "stacked",
|
|
@@ -1571,7 +1595,7 @@ function PillControl({
|
|
|
1571
1595
|
}
|
|
1572
1596
|
);
|
|
1573
1597
|
}
|
|
1574
|
-
return /* @__PURE__ */
|
|
1598
|
+
return /* @__PURE__ */ jsx10(
|
|
1575
1599
|
MultiSelectDropdown,
|
|
1576
1600
|
{
|
|
1577
1601
|
label: pill.label,
|
|
@@ -1579,10 +1603,10 @@ function PillControl({
|
|
|
1579
1603
|
selected: new Set(selected),
|
|
1580
1604
|
onToggle: (value, checked) => onTogglePill(fieldId, value, checked),
|
|
1581
1605
|
onClear: () => onClearField(fieldId),
|
|
1582
|
-
allLabel:
|
|
1606
|
+
allLabel: copy.filters.allOption,
|
|
1583
1607
|
searchable: pill.searchEnabled ? true : void 0,
|
|
1584
|
-
searchPlaceholder:
|
|
1585
|
-
noResultsLabel:
|
|
1608
|
+
searchPlaceholder: copy.filters.optionSearchPlaceholder,
|
|
1609
|
+
noResultsLabel: copy.filters.optionsEmpty,
|
|
1586
1610
|
layout,
|
|
1587
1611
|
onOpenChange,
|
|
1588
1612
|
"data-testid": testId
|
|
@@ -1599,7 +1623,7 @@ import { useState as useState4 } from "react";
|
|
|
1599
1623
|
// src/components/data-display/DataViews/data-views-number-input.tsx
|
|
1600
1624
|
import { Box as Box2, TextField } from "@mui/material";
|
|
1601
1625
|
import { useEffect as useEffect2, useState as useState3 } from "react";
|
|
1602
|
-
import { jsx as
|
|
1626
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1603
1627
|
var ALLOWED = /[^\d.,]/g;
|
|
1604
1628
|
function parsePtBrNumber(text) {
|
|
1605
1629
|
const cleaned = text.replace(ALLOWED, "");
|
|
@@ -1633,7 +1657,7 @@ function NumberBoundInput({
|
|
|
1633
1657
|
useEffect2(() => {
|
|
1634
1658
|
setText((current) => parsePtBrNumber(current) === applied ? current : formatPtBrNumber(applied));
|
|
1635
1659
|
}, [applied]);
|
|
1636
|
-
return /* @__PURE__ */
|
|
1660
|
+
return /* @__PURE__ */ jsx11(
|
|
1637
1661
|
TextField,
|
|
1638
1662
|
{
|
|
1639
1663
|
size: "small",
|
|
@@ -1653,7 +1677,7 @@ function NumberBoundInput({
|
|
|
1653
1677
|
InputLabelProps: { shrink: true },
|
|
1654
1678
|
inputProps: { "data-testid": testId, inputMode: "decimal", autoComplete: "off" },
|
|
1655
1679
|
InputProps: unit ? {
|
|
1656
|
-
startAdornment: /* @__PURE__ */
|
|
1680
|
+
startAdornment: /* @__PURE__ */ jsx11(Box2, { component: "span", sx: { mr: 0.5, color: "text.secondary" }, children: unit })
|
|
1657
1681
|
} : void 0,
|
|
1658
1682
|
sx: { width: 140 }
|
|
1659
1683
|
}
|
|
@@ -1674,54 +1698,51 @@ function shiftDays(date, days) {
|
|
|
1674
1698
|
next.setDate(next.getDate() + days);
|
|
1675
1699
|
return next;
|
|
1676
1700
|
}
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
}
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
range: () => {
|
|
1717
|
-
const year = (/* @__PURE__ */ new Date()).getFullYear();
|
|
1718
|
-
return { min: `${year}-01-01`, max: `${year}-12-31` };
|
|
1701
|
+
function dayRangePresets(copy) {
|
|
1702
|
+
return [
|
|
1703
|
+
{
|
|
1704
|
+
id: "hoje",
|
|
1705
|
+
range: () => {
|
|
1706
|
+
const today = isoDay(/* @__PURE__ */ new Date());
|
|
1707
|
+
return { min: today, max: today };
|
|
1708
|
+
}
|
|
1709
|
+
},
|
|
1710
|
+
{
|
|
1711
|
+
id: "ontem",
|
|
1712
|
+
range: () => {
|
|
1713
|
+
const yesterday = isoDay(shiftDays(/* @__PURE__ */ new Date(), -1));
|
|
1714
|
+
return { min: yesterday, max: yesterday };
|
|
1715
|
+
}
|
|
1716
|
+
},
|
|
1717
|
+
{
|
|
1718
|
+
id: "semana",
|
|
1719
|
+
range: () => {
|
|
1720
|
+
const now = /* @__PURE__ */ new Date();
|
|
1721
|
+
const sunday = shiftDays(now, -now.getDay());
|
|
1722
|
+
return { min: isoDay(sunday), max: isoDay(shiftDays(sunday, 6)) };
|
|
1723
|
+
}
|
|
1724
|
+
},
|
|
1725
|
+
{
|
|
1726
|
+
id: "mes",
|
|
1727
|
+
range: () => {
|
|
1728
|
+
const now = /* @__PURE__ */ new Date();
|
|
1729
|
+
const year = now.getFullYear();
|
|
1730
|
+
const month = now.getMonth();
|
|
1731
|
+
return { min: isoDay(new Date(year, month, 1)), max: isoDay(new Date(year, month + 1, 0)) };
|
|
1732
|
+
}
|
|
1733
|
+
},
|
|
1734
|
+
{
|
|
1735
|
+
id: "ano",
|
|
1736
|
+
range: () => {
|
|
1737
|
+
const year = (/* @__PURE__ */ new Date()).getFullYear();
|
|
1738
|
+
return { min: `${year}-01-01`, max: `${year}-12-31` };
|
|
1739
|
+
}
|
|
1719
1740
|
}
|
|
1720
|
-
}
|
|
1721
|
-
|
|
1722
|
-
function presetsFor(field) {
|
|
1741
|
+
].map((preset) => ({ ...preset, label: copy.filters.rangePresets[preset.id] ?? preset.id }));
|
|
1742
|
+
}
|
|
1743
|
+
function presetsFor(field, copy) {
|
|
1723
1744
|
if (field.presets) return field.presets;
|
|
1724
|
-
return field.kind === "day" ?
|
|
1745
|
+
return field.kind === "day" ? dayRangePresets(copy) : [];
|
|
1725
1746
|
}
|
|
1726
1747
|
function resolvePreset(preset) {
|
|
1727
1748
|
return typeof preset.range === "function" ? preset.range() : preset.range;
|
|
@@ -1733,14 +1754,14 @@ function isPresetActive(preset, value) {
|
|
|
1733
1754
|
}
|
|
1734
1755
|
|
|
1735
1756
|
// src/components/data-display/DataViews/data-views-preset-chips.tsx
|
|
1736
|
-
import { jsx as
|
|
1757
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
1737
1758
|
function PresetChip({
|
|
1738
1759
|
preset,
|
|
1739
1760
|
active,
|
|
1740
1761
|
onSelect,
|
|
1741
1762
|
testId
|
|
1742
1763
|
}) {
|
|
1743
|
-
return /* @__PURE__ */
|
|
1764
|
+
return /* @__PURE__ */ jsx12(
|
|
1744
1765
|
Box3,
|
|
1745
1766
|
{
|
|
1746
1767
|
component: "button",
|
|
@@ -1775,14 +1796,14 @@ function RangePresets({
|
|
|
1775
1796
|
testId
|
|
1776
1797
|
}) {
|
|
1777
1798
|
if (presets.length === 0) return null;
|
|
1778
|
-
return /* @__PURE__ */
|
|
1799
|
+
return /* @__PURE__ */ jsx12(
|
|
1779
1800
|
Box3,
|
|
1780
1801
|
{
|
|
1781
1802
|
"data-testid": `${testId}-presets`,
|
|
1782
1803
|
sx: { display: "flex", flexWrap: "wrap", gap: 0.75 },
|
|
1783
1804
|
children: presets.map((preset) => {
|
|
1784
1805
|
const active = isPresetActive(preset, value);
|
|
1785
|
-
return /* @__PURE__ */
|
|
1806
|
+
return /* @__PURE__ */ jsx12(
|
|
1786
1807
|
PresetChip,
|
|
1787
1808
|
{
|
|
1788
1809
|
preset,
|
|
@@ -1845,7 +1866,7 @@ function numericRange(range) {
|
|
|
1845
1866
|
}
|
|
1846
1867
|
|
|
1847
1868
|
// src/components/data-display/DataViews/data-views-range-pill.tsx
|
|
1848
|
-
import { Fragment as Fragment6, jsx as
|
|
1869
|
+
import { Fragment as Fragment6, jsx as jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1849
1870
|
function BoundField({
|
|
1850
1871
|
field,
|
|
1851
1872
|
label,
|
|
@@ -1854,7 +1875,7 @@ function BoundField({
|
|
|
1854
1875
|
testId
|
|
1855
1876
|
}) {
|
|
1856
1877
|
if (field.kind === "day") {
|
|
1857
|
-
return /* @__PURE__ */
|
|
1878
|
+
return /* @__PURE__ */ jsx13(
|
|
1858
1879
|
DayBoundInput,
|
|
1859
1880
|
{
|
|
1860
1881
|
label,
|
|
@@ -1864,7 +1885,7 @@ function BoundField({
|
|
|
1864
1885
|
}
|
|
1865
1886
|
);
|
|
1866
1887
|
}
|
|
1867
|
-
return /* @__PURE__ */
|
|
1888
|
+
return /* @__PURE__ */ jsx13(
|
|
1868
1889
|
NumberBoundInput,
|
|
1869
1890
|
{
|
|
1870
1891
|
label,
|
|
@@ -1881,11 +1902,12 @@ function RangeBounds({
|
|
|
1881
1902
|
onChange,
|
|
1882
1903
|
testId
|
|
1883
1904
|
}) {
|
|
1905
|
+
const copy = useDataViewsCopy();
|
|
1884
1906
|
const inverted = isRangeInverted(value);
|
|
1885
1907
|
return /* @__PURE__ */ jsxs6(Box4, { "data-testid": `${testId}-panel`, children: [
|
|
1886
|
-
/* @__PURE__ */
|
|
1908
|
+
/* @__PURE__ */ jsx13(Box4, { sx: { "&:not(:empty)": { mb: 1.5 } }, children: /* @__PURE__ */ jsx13(RangePresets, { presets: presetsFor(field, copy), value, onChange, testId }) }),
|
|
1887
1909
|
/* @__PURE__ */ jsxs6(Box4, { sx: { display: "flex", alignItems: "center", gap: 1.5 }, children: [
|
|
1888
|
-
/* @__PURE__ */
|
|
1910
|
+
/* @__PURE__ */ jsx13(
|
|
1889
1911
|
BoundField,
|
|
1890
1912
|
{
|
|
1891
1913
|
field,
|
|
@@ -1895,27 +1917,27 @@ function RangeBounds({
|
|
|
1895
1917
|
testId: `${testId}-min`
|
|
1896
1918
|
}
|
|
1897
1919
|
),
|
|
1898
|
-
/* @__PURE__ */
|
|
1920
|
+
/* @__PURE__ */ jsx13(
|
|
1899
1921
|
BoundField,
|
|
1900
1922
|
{
|
|
1901
1923
|
field,
|
|
1902
|
-
label:
|
|
1924
|
+
label: copy.filters.rangeEnd,
|
|
1903
1925
|
value: value.max,
|
|
1904
1926
|
onChange: (max) => onChange({ ...value, max }),
|
|
1905
1927
|
testId: `${testId}-max`
|
|
1906
1928
|
}
|
|
1907
1929
|
)
|
|
1908
1930
|
] }),
|
|
1909
|
-
inverted && /* @__PURE__ */
|
|
1931
|
+
inverted && /* @__PURE__ */ jsx13(
|
|
1910
1932
|
Typography,
|
|
1911
1933
|
{
|
|
1912
1934
|
component: "p",
|
|
1913
1935
|
"data-testid": `${testId}-inverted`,
|
|
1914
1936
|
sx: { mt: 0.75, fontSize: "0.75rem", color: "error.main" },
|
|
1915
|
-
children:
|
|
1937
|
+
children: copy.filters.rangeInvalid
|
|
1916
1938
|
}
|
|
1917
1939
|
),
|
|
1918
|
-
field.kind === "day" && !inverted && /* @__PURE__ */
|
|
1940
|
+
field.kind === "day" && !inverted && /* @__PURE__ */ jsx13(
|
|
1919
1941
|
Typography,
|
|
1920
1942
|
{
|
|
1921
1943
|
component: "p",
|
|
@@ -1931,17 +1953,18 @@ function ClearAffordance({
|
|
|
1931
1953
|
onClear,
|
|
1932
1954
|
testId
|
|
1933
1955
|
}) {
|
|
1956
|
+
const copy = useDataViewsCopy();
|
|
1934
1957
|
const clear = (event) => {
|
|
1935
1958
|
event.stopPropagation();
|
|
1936
1959
|
onClear();
|
|
1937
1960
|
};
|
|
1938
|
-
return /* @__PURE__ */
|
|
1961
|
+
return /* @__PURE__ */ jsx13(
|
|
1939
1962
|
Box4,
|
|
1940
1963
|
{
|
|
1941
1964
|
component: "span",
|
|
1942
1965
|
role: "button",
|
|
1943
1966
|
tabIndex: 0,
|
|
1944
|
-
"aria-label":
|
|
1967
|
+
"aria-label": copy.filters.clearRange(label),
|
|
1945
1968
|
"data-testid": testId,
|
|
1946
1969
|
onClick: clear,
|
|
1947
1970
|
onKeyDown: (event) => {
|
|
@@ -1950,7 +1973,7 @@ function ClearAffordance({
|
|
|
1950
1973
|
clear(event);
|
|
1951
1974
|
},
|
|
1952
1975
|
sx: { display: "inline-flex", borderRadius: 999, p: 0.125, "&:hover": { bgcolor: "action.selected" } },
|
|
1953
|
-
children: /* @__PURE__ */
|
|
1976
|
+
children: /* @__PURE__ */ jsx13(CloseIcon, { sx: { fontSize: 14 } })
|
|
1954
1977
|
}
|
|
1955
1978
|
);
|
|
1956
1979
|
}
|
|
@@ -1965,7 +1988,7 @@ function RangeTrigger({
|
|
|
1965
1988
|
const active = isRangeSet(value);
|
|
1966
1989
|
const inverted = isRangeInverted(value);
|
|
1967
1990
|
const tone = inverted ? "error.main" : active ? "primary.main" : "divider";
|
|
1968
|
-
return /* @__PURE__ */
|
|
1991
|
+
return /* @__PURE__ */ jsx13(
|
|
1969
1992
|
Button2,
|
|
1970
1993
|
{
|
|
1971
1994
|
variant: "outlined",
|
|
@@ -1975,8 +1998,8 @@ function RangeTrigger({
|
|
|
1975
1998
|
"aria-haspopup": "dialog",
|
|
1976
1999
|
"aria-expanded": open,
|
|
1977
2000
|
onClick: (event) => onOpen(event.currentTarget),
|
|
1978
|
-
startIcon: active ? /* @__PURE__ */
|
|
1979
|
-
endIcon: /* @__PURE__ */
|
|
2001
|
+
startIcon: active ? /* @__PURE__ */ jsx13(ClearAffordance, { label: field.label, onClear: () => onChange({}), testId: `${testId}-clear-inline` }) : void 0,
|
|
2002
|
+
endIcon: /* @__PURE__ */ jsx13(ChevronDownIcon, { sx: { fontSize: 16 } }),
|
|
1980
2003
|
sx: {
|
|
1981
2004
|
borderRadius: 999,
|
|
1982
2005
|
height: 34,
|
|
@@ -1994,7 +2017,7 @@ function RangeTrigger({
|
|
|
1994
2017
|
bgcolor: active ? "action.selected" : "action.hover"
|
|
1995
2018
|
}
|
|
1996
2019
|
},
|
|
1997
|
-
children: /* @__PURE__ */
|
|
2020
|
+
children: /* @__PURE__ */ jsx13(Box4, { component: "span", sx: { overflow: "hidden", textOverflow: "ellipsis" }, children: active ? rangeChipLabel(field, value) : field.label })
|
|
1998
2021
|
}
|
|
1999
2022
|
);
|
|
2000
2023
|
}
|
|
@@ -2009,7 +2032,7 @@ function RangePill({
|
|
|
2009
2032
|
const active = isRangeSet(value);
|
|
2010
2033
|
const testId = `${testIdPrefix}-range-${field.id}`;
|
|
2011
2034
|
return /* @__PURE__ */ jsxs6(Fragment6, { children: [
|
|
2012
|
-
/* @__PURE__ */
|
|
2035
|
+
/* @__PURE__ */ jsx13(
|
|
2013
2036
|
RangeTrigger,
|
|
2014
2037
|
{
|
|
2015
2038
|
field,
|
|
@@ -2035,10 +2058,10 @@ function RangePill({
|
|
|
2035
2058
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
2036
2059
|
slotProps: { paper: { sx: { p: 2, mt: 0.5 } } },
|
|
2037
2060
|
children: [
|
|
2038
|
-
/* @__PURE__ */
|
|
2061
|
+
/* @__PURE__ */ jsx13(RangeBounds, { field, value, onChange, testId }),
|
|
2039
2062
|
active && /* @__PURE__ */ jsxs6(Box4, { sx: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 2, mt: 1.5 }, children: [
|
|
2040
|
-
/* @__PURE__ */
|
|
2041
|
-
/* @__PURE__ */
|
|
2063
|
+
/* @__PURE__ */ jsx13(Typography, { component: "span", sx: { fontSize: "0.75rem", color: "text.secondary" }, children: rangeChipLabel(field, value) }),
|
|
2064
|
+
/* @__PURE__ */ jsx13(
|
|
2042
2065
|
Button2,
|
|
2043
2066
|
{
|
|
2044
2067
|
variant: "text",
|
|
@@ -2061,14 +2084,15 @@ function PanelRangeField({
|
|
|
2061
2084
|
onChange,
|
|
2062
2085
|
testId
|
|
2063
2086
|
}) {
|
|
2087
|
+
const copy = useDataViewsCopy();
|
|
2064
2088
|
if (field.kind === "day") {
|
|
2065
2089
|
return /* @__PURE__ */ jsxs6(Box4, { sx: { display: "flex", flexDirection: "column", gap: 1 }, children: [
|
|
2066
|
-
/* @__PURE__ */
|
|
2067
|
-
/* @__PURE__ */
|
|
2090
|
+
/* @__PURE__ */ jsx13(Typography, { component: "span", sx: { fontSize: "0.75rem", fontWeight: 500, color: "text.secondary" }, children: field.label }),
|
|
2091
|
+
/* @__PURE__ */ jsx13(RangeBounds, { field, value, onChange, testId })
|
|
2068
2092
|
] });
|
|
2069
2093
|
}
|
|
2070
2094
|
return /* @__PURE__ */ jsxs6(Box4, { sx: { display: "flex", flexDirection: "column", gap: 1 }, children: [
|
|
2071
|
-
/* @__PURE__ */
|
|
2095
|
+
/* @__PURE__ */ jsx13(
|
|
2072
2096
|
TableFilter.RangeField,
|
|
2073
2097
|
{
|
|
2074
2098
|
label: field.label,
|
|
@@ -2078,12 +2102,12 @@ function PanelRangeField({
|
|
|
2078
2102
|
testId
|
|
2079
2103
|
}
|
|
2080
2104
|
),
|
|
2081
|
-
/* @__PURE__ */
|
|
2105
|
+
/* @__PURE__ */ jsx13(RangePresets, { presets: presetsFor(field, copy), value, onChange, testId })
|
|
2082
2106
|
] });
|
|
2083
2107
|
}
|
|
2084
2108
|
|
|
2085
2109
|
// src/components/data-display/DataViews/data-views-filter-panel.tsx
|
|
2086
|
-
import { Fragment as Fragment7, jsx as
|
|
2110
|
+
import { Fragment as Fragment7, jsx as jsx14, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2087
2111
|
function PillField({
|
|
2088
2112
|
field,
|
|
2089
2113
|
selected,
|
|
@@ -2093,7 +2117,7 @@ function PillField({
|
|
|
2093
2117
|
}) {
|
|
2094
2118
|
const testId = `${testIdPrefix}-filter-${field.id}`;
|
|
2095
2119
|
if (field.searchEnabled || field.control === "multiselect" || field.control === "category") {
|
|
2096
|
-
return /* @__PURE__ */
|
|
2120
|
+
return /* @__PURE__ */ jsx14(
|
|
2097
2121
|
PillControl,
|
|
2098
2122
|
{
|
|
2099
2123
|
fieldId: field.id,
|
|
@@ -2106,7 +2130,7 @@ function PillField({
|
|
|
2106
2130
|
}
|
|
2107
2131
|
);
|
|
2108
2132
|
}
|
|
2109
|
-
return /* @__PURE__ */
|
|
2133
|
+
return /* @__PURE__ */ jsx14(
|
|
2110
2134
|
TableFilter.CheckboxField,
|
|
2111
2135
|
{
|
|
2112
2136
|
label: field.label,
|
|
@@ -2129,19 +2153,20 @@ function FilterControls({
|
|
|
2129
2153
|
onChangeRange,
|
|
2130
2154
|
onClearField
|
|
2131
2155
|
}) {
|
|
2156
|
+
const copy = useDataViewsCopy();
|
|
2132
2157
|
return /* @__PURE__ */ jsxs7(Fragment7, { children: [
|
|
2133
|
-
/* @__PURE__ */
|
|
2158
|
+
/* @__PURE__ */ jsx14(
|
|
2134
2159
|
TableFilter.Keyword,
|
|
2135
2160
|
{
|
|
2136
2161
|
value: search,
|
|
2137
2162
|
onChange: onSearchChange,
|
|
2138
|
-
label:
|
|
2139
|
-
placeholder:
|
|
2163
|
+
label: copy.search.allColumnsLabel,
|
|
2164
|
+
placeholder: copy.search.keywordPlaceholder,
|
|
2140
2165
|
testId: `${testIdPrefix}-search-all`
|
|
2141
2166
|
}
|
|
2142
2167
|
),
|
|
2143
|
-
(fields.length > 0 || rangeFields.length > 0) && /* @__PURE__ */ jsxs7(TableFilter.Section, { title:
|
|
2144
|
-
fields.map((field) => /* @__PURE__ */
|
|
2168
|
+
(fields.length > 0 || rangeFields.length > 0) && /* @__PURE__ */ jsxs7(TableFilter.Section, { title: copy.filters.panelTitle, children: [
|
|
2169
|
+
fields.map((field) => /* @__PURE__ */ jsx14(
|
|
2145
2170
|
PillField,
|
|
2146
2171
|
{
|
|
2147
2172
|
field,
|
|
@@ -2152,7 +2177,7 @@ function FilterControls({
|
|
|
2152
2177
|
},
|
|
2153
2178
|
field.id
|
|
2154
2179
|
)),
|
|
2155
|
-
rangeFields.map((field) => /* @__PURE__ */
|
|
2180
|
+
rangeFields.map((field) => /* @__PURE__ */ jsx14(
|
|
2156
2181
|
PanelRangeField,
|
|
2157
2182
|
{
|
|
2158
2183
|
field,
|
|
@@ -2166,13 +2191,14 @@ function FilterControls({
|
|
|
2166
2191
|
] });
|
|
2167
2192
|
}
|
|
2168
2193
|
function GridFilterPanel(props) {
|
|
2169
|
-
|
|
2194
|
+
const copy = useDataViewsCopy();
|
|
2195
|
+
return /* @__PURE__ */ jsx14(
|
|
2170
2196
|
TableFilter.Panel,
|
|
2171
2197
|
{
|
|
2172
2198
|
onClearAll: props.onClearAll,
|
|
2173
2199
|
clearTestId: `${props.testIdPrefix}-clear-filters`,
|
|
2174
|
-
ariaLabel:
|
|
2175
|
-
children: /* @__PURE__ */
|
|
2200
|
+
ariaLabel: copy.filters.panelTitle,
|
|
2201
|
+
children: /* @__PURE__ */ jsx14(FilterControls, { ...props })
|
|
2176
2202
|
}
|
|
2177
2203
|
);
|
|
2178
2204
|
}
|
|
@@ -2181,17 +2207,18 @@ function FilterDialog({
|
|
|
2181
2207
|
onClose,
|
|
2182
2208
|
...props
|
|
2183
2209
|
}) {
|
|
2184
|
-
|
|
2210
|
+
const copy = useDataViewsCopy();
|
|
2211
|
+
return /* @__PURE__ */ jsx14(
|
|
2185
2212
|
StackedModal,
|
|
2186
2213
|
{
|
|
2187
2214
|
open,
|
|
2188
2215
|
onClose,
|
|
2189
|
-
navigationTitle:
|
|
2216
|
+
navigationTitle: copy.filters.panelTitle,
|
|
2190
2217
|
modalId: `${props.testIdPrefix}-filters`,
|
|
2191
2218
|
maxWidth: "xs",
|
|
2192
2219
|
dataTestId: `${props.testIdPrefix}-filter-dialog`,
|
|
2193
|
-
children: /* @__PURE__ */
|
|
2194
|
-
/* @__PURE__ */
|
|
2220
|
+
children: /* @__PURE__ */ jsx14(StackedModalContent, { children: /* @__PURE__ */ jsxs7(Box5, { sx: { display: "flex", flexDirection: "column", gap: 2.5 }, children: [
|
|
2221
|
+
/* @__PURE__ */ jsx14(Box5, { sx: { display: "flex", justifyContent: "flex-end" }, children: /* @__PURE__ */ jsx14(
|
|
2195
2222
|
Link,
|
|
2196
2223
|
{
|
|
2197
2224
|
component: "button",
|
|
@@ -2203,7 +2230,7 @@ function FilterDialog({
|
|
|
2203
2230
|
children: "Clear All Filters"
|
|
2204
2231
|
}
|
|
2205
2232
|
) }),
|
|
2206
|
-
/* @__PURE__ */
|
|
2233
|
+
/* @__PURE__ */ jsx14(FilterControls, { ...props })
|
|
2207
2234
|
] }) })
|
|
2208
2235
|
}
|
|
2209
2236
|
);
|
|
@@ -2213,7 +2240,7 @@ function FilterDialog({
|
|
|
2213
2240
|
import React3 from "react";
|
|
2214
2241
|
|
|
2215
2242
|
// src/components/data-display/DataViews/data-views-grid-helpers.tsx
|
|
2216
|
-
import { jsx as
|
|
2243
|
+
import { jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2217
2244
|
function isActionsColumn(col) {
|
|
2218
2245
|
return col.type === "actions" || col.id === "actions";
|
|
2219
2246
|
}
|
|
@@ -2226,7 +2253,7 @@ function buildGridColumns(columns, visibleColumns, onRowClick) {
|
|
|
2226
2253
|
hidden,
|
|
2227
2254
|
cell: (ctx) => {
|
|
2228
2255
|
const content = col.cell ? col.cell(ctx) : ctx.value == null ? "" : String(ctx.value);
|
|
2229
|
-
return /* @__PURE__ */
|
|
2256
|
+
return /* @__PURE__ */ jsx15(
|
|
2230
2257
|
Box,
|
|
2231
2258
|
{
|
|
2232
2259
|
onClick: () => onRowClick(ctx.row),
|
|
@@ -2257,6 +2284,7 @@ function buildRowActionsColumn(config) {
|
|
|
2257
2284
|
};
|
|
2258
2285
|
}
|
|
2259
2286
|
function renderAutoKebab(kebabActions, row, testIdPrefix, getRowId) {
|
|
2287
|
+
const copy = useDataViewsCopy();
|
|
2260
2288
|
const items = kebabActions.filter((action) => action.isVisible?.(row) ?? true).map((action) => ({
|
|
2261
2289
|
id: action.id,
|
|
2262
2290
|
label: action.rowLabel ? action.rowLabel(row) : action.label,
|
|
@@ -2264,12 +2292,12 @@ function renderAutoKebab(kebabActions, row, testIdPrefix, getRowId) {
|
|
|
2264
2292
|
onClick: () => void action.onSelect([row])
|
|
2265
2293
|
}));
|
|
2266
2294
|
if (items.length === 0) return null;
|
|
2267
|
-
return /* @__PURE__ */
|
|
2295
|
+
return /* @__PURE__ */ jsx15(
|
|
2268
2296
|
DropdownMenu,
|
|
2269
2297
|
{
|
|
2270
2298
|
size: "sm",
|
|
2271
2299
|
items,
|
|
2272
|
-
trigger: /* @__PURE__ */
|
|
2300
|
+
trigger: /* @__PURE__ */ jsx15(Button, { variant: "text", size: "sm", dataTestId: `${testIdPrefix}-actions-${getRowId(row)}`, "aria-label": copy.grid.rowActions, children: "\u22EE" })
|
|
2273
2301
|
}
|
|
2274
2302
|
);
|
|
2275
2303
|
}
|
|
@@ -2323,20 +2351,17 @@ function renderBulkActions({
|
|
|
2323
2351
|
clearSelection,
|
|
2324
2352
|
testIdPrefix
|
|
2325
2353
|
}) {
|
|
2354
|
+
const copy = useDataViewsCopy();
|
|
2326
2355
|
if (selectedRows.length === 0) return void 0;
|
|
2327
2356
|
if (rowActions) {
|
|
2328
2357
|
const items = bulkMenuItems(rowActions, selectedRows, clearSelection);
|
|
2329
2358
|
if (items.length === 0) return void 0;
|
|
2330
|
-
return /* @__PURE__ */
|
|
2359
|
+
return /* @__PURE__ */ jsx15(
|
|
2331
2360
|
DropdownMenu,
|
|
2332
2361
|
{
|
|
2333
2362
|
size: "sm",
|
|
2334
2363
|
items,
|
|
2335
|
-
trigger: /* @__PURE__ */
|
|
2336
|
-
"A\xE7\xF5es (",
|
|
2337
|
-
selectedRows.length,
|
|
2338
|
-
") \u25BE"
|
|
2339
|
-
] })
|
|
2364
|
+
trigger: /* @__PURE__ */ jsx15(Button, { variant: "outline", size: "sm", dataTestId: `${testIdPrefix}-bulk-actions`, children: copy.grid.bulkActions(selectedRows.length) })
|
|
2340
2365
|
}
|
|
2341
2366
|
);
|
|
2342
2367
|
}
|
|
@@ -2356,7 +2381,7 @@ function cardGridTracks(targetWidth) {
|
|
|
2356
2381
|
}
|
|
2357
2382
|
|
|
2358
2383
|
// src/components/data-display/DataViews/DataViewsBoard.tsx
|
|
2359
|
-
import { jsx as
|
|
2384
|
+
import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2360
2385
|
var DEFAULT_EXTRA_LABEL = "Sem etapa";
|
|
2361
2386
|
function groupValueOf(row, groupBy) {
|
|
2362
2387
|
const value = row[groupBy];
|
|
@@ -2398,29 +2423,27 @@ function BoardColumnHeader({
|
|
|
2398
2423
|
sum,
|
|
2399
2424
|
testId
|
|
2400
2425
|
}) {
|
|
2426
|
+
const copy = useDataViewsCopy();
|
|
2401
2427
|
return /* @__PURE__ */ jsxs9(Box, { sx: { display: "flex", flexDirection: "column", gap: 0.25 }, children: [
|
|
2402
2428
|
/* @__PURE__ */ jsxs9(Box, { sx: { display: "flex", alignItems: "baseline", justifyContent: "space-between", gap: 1 }, children: [
|
|
2403
|
-
/* @__PURE__ */
|
|
2404
|
-
/* @__PURE__ */
|
|
2429
|
+
/* @__PURE__ */ jsx16(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx16(Box, { component: "span", sx: { fontWeight: 600 }, children: label }) }),
|
|
2430
|
+
/* @__PURE__ */ jsx16(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx16(
|
|
2405
2431
|
Box,
|
|
2406
2432
|
{
|
|
2407
2433
|
component: "span",
|
|
2408
2434
|
"data-testid": `${testId}-count`,
|
|
2409
|
-
"aria-label":
|
|
2435
|
+
"aria-label": copy.board.countOnPage(label, count),
|
|
2410
2436
|
sx: { color: "text.secondary", whiteSpace: "nowrap" },
|
|
2411
|
-
children:
|
|
2412
|
-
count,
|
|
2413
|
-
" nesta p\xE1gina"
|
|
2414
|
-
]
|
|
2437
|
+
children: copy.board.onThisPage(count)
|
|
2415
2438
|
}
|
|
2416
2439
|
) })
|
|
2417
2440
|
] }),
|
|
2418
|
-
sum !== null && /* @__PURE__ */
|
|
2441
|
+
sum !== null && /* @__PURE__ */ jsx16(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx16(
|
|
2419
2442
|
Box,
|
|
2420
2443
|
{
|
|
2421
2444
|
component: "span",
|
|
2422
2445
|
"data-testid": `${testId}-sum`,
|
|
2423
|
-
"aria-label":
|
|
2446
|
+
"aria-label": copy.board.pageSum(sum),
|
|
2424
2447
|
sx: { color: "text.secondary" },
|
|
2425
2448
|
children: sum
|
|
2426
2449
|
}
|
|
@@ -2457,7 +2480,7 @@ function BoardColumn({
|
|
|
2457
2480
|
p: 1
|
|
2458
2481
|
},
|
|
2459
2482
|
children: [
|
|
2460
|
-
/* @__PURE__ */
|
|
2483
|
+
/* @__PURE__ */ jsx16(
|
|
2461
2484
|
BoardColumnHeader,
|
|
2462
2485
|
{
|
|
2463
2486
|
label: column.label,
|
|
@@ -2466,9 +2489,9 @@ function BoardColumn({
|
|
|
2466
2489
|
testId
|
|
2467
2490
|
}
|
|
2468
2491
|
),
|
|
2469
|
-
column.rows.length === 0 ? /* @__PURE__ */
|
|
2492
|
+
column.rows.length === 0 ? /* @__PURE__ */ jsx16(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx16(Box, { component: "span", "data-testid": `${testId}-empty`, sx: { color: "text.disabled" }, children: "Nada nesta etapa" }) }) : column.rows.map((row) => {
|
|
2470
2493
|
const id = getRowId(row);
|
|
2471
|
-
return /* @__PURE__ */
|
|
2494
|
+
return /* @__PURE__ */ jsx16(Box, { children: renderCard(row, {
|
|
2472
2495
|
selected: selectedIds.has(id),
|
|
2473
2496
|
onToggleSelect: () => onToggleId(id),
|
|
2474
2497
|
scale: cardScale
|
|
@@ -2490,12 +2513,13 @@ function DataViewsBoard({
|
|
|
2490
2513
|
cardScale,
|
|
2491
2514
|
dataTestId
|
|
2492
2515
|
}) {
|
|
2516
|
+
const copy = useDataViewsCopy();
|
|
2493
2517
|
const columns = groupRows(rows, board);
|
|
2494
2518
|
const width = Math.max(MIN_COLUMN_WIDTH, Math.round(BASE_COLUMN_WIDTH * cardScale));
|
|
2495
2519
|
const testId = dataTestId ? `${dataTestId}-board` : "data-views-board";
|
|
2496
2520
|
return /* @__PURE__ */ jsxs9(Box, { sx: { mt: 1.5 }, children: [
|
|
2497
|
-
/* @__PURE__ */
|
|
2498
|
-
/* @__PURE__ */
|
|
2521
|
+
/* @__PURE__ */ jsx16(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx16(Box, { component: "span", "data-testid": `${testId}-scale-note`, sx: { color: "text.secondary" }, children: copy.board.pageScopeNote }) }),
|
|
2522
|
+
/* @__PURE__ */ jsx16(
|
|
2499
2523
|
Box,
|
|
2500
2524
|
{
|
|
2501
2525
|
"data-testid": testId,
|
|
@@ -2510,7 +2534,7 @@ function DataViewsBoard({
|
|
|
2510
2534
|
overflowX: "auto",
|
|
2511
2535
|
pb: 1
|
|
2512
2536
|
},
|
|
2513
|
-
children: columns.map((column) => /* @__PURE__ */
|
|
2537
|
+
children: columns.map((column) => /* @__PURE__ */ jsx16(
|
|
2514
2538
|
BoardColumn,
|
|
2515
2539
|
{
|
|
2516
2540
|
column,
|
|
@@ -2532,7 +2556,7 @@ function DataViewsBoard({
|
|
|
2532
2556
|
|
|
2533
2557
|
// src/components/data-display/DataViews/data-views-select-all-strip.tsx
|
|
2534
2558
|
import { Checkbox as Checkbox2 } from "@mui/material";
|
|
2535
|
-
import { jsx as
|
|
2559
|
+
import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2536
2560
|
function SelectAllStrip({
|
|
2537
2561
|
rows,
|
|
2538
2562
|
getRowId,
|
|
@@ -2540,6 +2564,7 @@ function SelectAllStrip({
|
|
|
2540
2564
|
onChange,
|
|
2541
2565
|
testIdPrefix
|
|
2542
2566
|
}) {
|
|
2567
|
+
const copy = useDataViewsCopy();
|
|
2543
2568
|
if (rows.length === 0) return null;
|
|
2544
2569
|
const pageIds = rows.map(getRowId);
|
|
2545
2570
|
const selectedHere = pageIds.filter((id) => selectedIds.has(id)).length;
|
|
@@ -2571,7 +2596,7 @@ function SelectAllStrip({
|
|
|
2571
2596
|
borderRadius: 1
|
|
2572
2597
|
},
|
|
2573
2598
|
children: [
|
|
2574
|
-
/* @__PURE__ */
|
|
2599
|
+
/* @__PURE__ */ jsx17(
|
|
2575
2600
|
Checkbox2,
|
|
2576
2601
|
{
|
|
2577
2602
|
size: "small",
|
|
@@ -2579,11 +2604,11 @@ function SelectAllStrip({
|
|
|
2579
2604
|
indeterminate: some,
|
|
2580
2605
|
onChange: toggle,
|
|
2581
2606
|
"data-testid": `${testIdPrefix}-select-all-box`,
|
|
2582
|
-
inputProps: { "aria-label":
|
|
2607
|
+
inputProps: { "aria-label": copy.selection.selectAllOnPage },
|
|
2583
2608
|
sx: { p: 0.5 }
|
|
2584
2609
|
}
|
|
2585
2610
|
),
|
|
2586
|
-
/* @__PURE__ */
|
|
2611
|
+
/* @__PURE__ */ jsx17(
|
|
2587
2612
|
Button,
|
|
2588
2613
|
{
|
|
2589
2614
|
variant: "text",
|
|
@@ -2591,20 +2616,17 @@ function SelectAllStrip({
|
|
|
2591
2616
|
color: "secondary",
|
|
2592
2617
|
onClick: toggle,
|
|
2593
2618
|
dataTestId: `${testIdPrefix}-select-all-toggle`,
|
|
2594
|
-
children: all ?
|
|
2619
|
+
children: all ? copy.selection.clearSelection : copy.selection.selectAll
|
|
2595
2620
|
}
|
|
2596
2621
|
),
|
|
2597
|
-
/* @__PURE__ */
|
|
2598
|
-
rows.length,
|
|
2599
|
-
" nesta p\xE1gina"
|
|
2600
|
-
] }) })
|
|
2622
|
+
/* @__PURE__ */ jsx17(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx17(Box, { component: "span", sx: { ml: "auto", color: "text.disabled", whiteSpace: "nowrap" }, children: copy.selection.onThisPage(rows.length) }) })
|
|
2601
2623
|
]
|
|
2602
2624
|
}
|
|
2603
2625
|
);
|
|
2604
2626
|
}
|
|
2605
2627
|
|
|
2606
2628
|
// src/components/data-display/DataViews/data-views-grid-bodies.tsx
|
|
2607
|
-
import { Fragment as Fragment8, jsx as
|
|
2629
|
+
import { Fragment as Fragment8, jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2608
2630
|
function GridBody({
|
|
2609
2631
|
rows,
|
|
2610
2632
|
columns,
|
|
@@ -2618,7 +2640,7 @@ function GridBody({
|
|
|
2618
2640
|
dataTestId,
|
|
2619
2641
|
emptyState
|
|
2620
2642
|
}) {
|
|
2621
|
-
return /* @__PURE__ */
|
|
2643
|
+
return /* @__PURE__ */ jsx18(
|
|
2622
2644
|
Box,
|
|
2623
2645
|
{
|
|
2624
2646
|
sx: {
|
|
@@ -2631,7 +2653,7 @@ function GridBody({
|
|
|
2631
2653
|
"& .MuiTableCell-root": { py: rowPadding, fontSize: "0.8125rem" },
|
|
2632
2654
|
"& .MuiTableCell-head": { py: 0.5, fontSize: "0.75rem" }
|
|
2633
2655
|
},
|
|
2634
|
-
children: /* @__PURE__ */
|
|
2656
|
+
children: /* @__PURE__ */ jsx18(
|
|
2635
2657
|
DataGrid,
|
|
2636
2658
|
{
|
|
2637
2659
|
rows,
|
|
@@ -2662,9 +2684,9 @@ function CardBody({
|
|
|
2662
2684
|
emptyState
|
|
2663
2685
|
}) {
|
|
2664
2686
|
if (rows.length === 0) {
|
|
2665
|
-
return /* @__PURE__ */
|
|
2687
|
+
return /* @__PURE__ */ jsx18(Box, { sx: { mt: 1.5 }, children: emptyState });
|
|
2666
2688
|
}
|
|
2667
|
-
return /* @__PURE__ */
|
|
2689
|
+
return /* @__PURE__ */ jsx18(
|
|
2668
2690
|
Box,
|
|
2669
2691
|
{
|
|
2670
2692
|
sx: {
|
|
@@ -2678,7 +2700,7 @@ function CardBody({
|
|
|
2678
2700
|
"data-testid": dataTestId ? `${dataTestId}-cards` : "data-views-cards",
|
|
2679
2701
|
children: rows.map((row) => {
|
|
2680
2702
|
const id = getRowId(row);
|
|
2681
|
-
return /* @__PURE__ */
|
|
2703
|
+
return /* @__PURE__ */ jsx18(Box, { children: renderCard(row, {
|
|
2682
2704
|
selected: selectedIds.has(id),
|
|
2683
2705
|
onToggleSelect: () => onToggleId(id),
|
|
2684
2706
|
scale: cardScale
|
|
@@ -2700,7 +2722,7 @@ function ListBody({
|
|
|
2700
2722
|
emptyState
|
|
2701
2723
|
}) {
|
|
2702
2724
|
if (rows.length === 0) {
|
|
2703
|
-
return /* @__PURE__ */
|
|
2725
|
+
return /* @__PURE__ */ jsx18(Box, { sx: { mt: 1.5 }, children: emptyState });
|
|
2704
2726
|
}
|
|
2705
2727
|
const testId = dataTestId ? `${dataTestId}-list` : "data-views-list";
|
|
2706
2728
|
const selectionFor = (id) => ({
|
|
@@ -2709,7 +2731,7 @@ function ListBody({
|
|
|
2709
2731
|
scale: 1
|
|
2710
2732
|
});
|
|
2711
2733
|
if (group) {
|
|
2712
|
-
return /* @__PURE__ */
|
|
2734
|
+
return /* @__PURE__ */ jsx18(Box, { sx: { mt: 1.5 }, children: /* @__PURE__ */ jsx18(
|
|
2713
2735
|
ListCardGroup,
|
|
2714
2736
|
{
|
|
2715
2737
|
cells: group.cells,
|
|
@@ -2721,19 +2743,19 @@ function ListBody({
|
|
|
2721
2743
|
dataTestId: testId,
|
|
2722
2744
|
children: rows.map((row) => {
|
|
2723
2745
|
const id = getRowId(row);
|
|
2724
|
-
return /* @__PURE__ */
|
|
2746
|
+
return /* @__PURE__ */ jsx18(React3.Fragment, { children: renderListRow(row, selectionFor(id)) }, id);
|
|
2725
2747
|
})
|
|
2726
2748
|
}
|
|
2727
2749
|
) });
|
|
2728
2750
|
}
|
|
2729
|
-
return /* @__PURE__ */
|
|
2751
|
+
return /* @__PURE__ */ jsx18(
|
|
2730
2752
|
Box,
|
|
2731
2753
|
{
|
|
2732
2754
|
sx: { mt: 1.5, display: "flex", flexDirection: "column", gap: rowGap },
|
|
2733
2755
|
"data-testid": testId,
|
|
2734
2756
|
children: rows.map((row) => {
|
|
2735
2757
|
const id = getRowId(row);
|
|
2736
|
-
return /* @__PURE__ */
|
|
2758
|
+
return /* @__PURE__ */ jsx18(Box, { children: renderListRow(row, selectionFor(id)) }, id);
|
|
2737
2759
|
})
|
|
2738
2760
|
}
|
|
2739
2761
|
);
|
|
@@ -2745,7 +2767,7 @@ function Headerless({
|
|
|
2745
2767
|
children
|
|
2746
2768
|
}) {
|
|
2747
2769
|
return /* @__PURE__ */ jsxs11(Fragment8, { children: [
|
|
2748
|
-
/* @__PURE__ */
|
|
2770
|
+
/* @__PURE__ */ jsx18(
|
|
2749
2771
|
SelectAllStrip,
|
|
2750
2772
|
{
|
|
2751
2773
|
rows: c.matched,
|
|
@@ -2760,7 +2782,7 @@ function Headerless({
|
|
|
2760
2782
|
}
|
|
2761
2783
|
function headerlessBody({ c, getRowId, renderCard, renderListRow, listGroup, board, dataTestId, emptyState }, { layout, zoom, density }) {
|
|
2762
2784
|
if (layout === "list" && renderListRow) {
|
|
2763
|
-
return /* @__PURE__ */
|
|
2785
|
+
return /* @__PURE__ */ jsx18(
|
|
2764
2786
|
ListBody,
|
|
2765
2787
|
{
|
|
2766
2788
|
rows: c.matched,
|
|
@@ -2777,7 +2799,7 @@ function headerlessBody({ c, getRowId, renderCard, renderListRow, listGroup, boa
|
|
|
2777
2799
|
);
|
|
2778
2800
|
}
|
|
2779
2801
|
if (layout === "board" && board && renderCard) {
|
|
2780
|
-
return /* @__PURE__ */
|
|
2802
|
+
return /* @__PURE__ */ jsx18(
|
|
2781
2803
|
DataViewsBoard,
|
|
2782
2804
|
{
|
|
2783
2805
|
rows: c.matched,
|
|
@@ -2792,7 +2814,7 @@ function headerlessBody({ c, getRowId, renderCard, renderListRow, listGroup, boa
|
|
|
2792
2814
|
);
|
|
2793
2815
|
}
|
|
2794
2816
|
if (layout === "cards" && renderCard) {
|
|
2795
|
-
return /* @__PURE__ */
|
|
2817
|
+
return /* @__PURE__ */ jsx18(
|
|
2796
2818
|
CardBody,
|
|
2797
2819
|
{
|
|
2798
2820
|
rows: c.matched,
|
|
@@ -2814,9 +2836,9 @@ function GridMain(props) {
|
|
|
2814
2836
|
const layoutState = useDataViewsLayout();
|
|
2815
2837
|
const body = headerlessBody(props, layoutState);
|
|
2816
2838
|
if (body) {
|
|
2817
|
-
return /* @__PURE__ */
|
|
2839
|
+
return /* @__PURE__ */ jsx18(Headerless, { c, getRowId, testIdPrefix, children: body });
|
|
2818
2840
|
}
|
|
2819
|
-
return /* @__PURE__ */
|
|
2841
|
+
return /* @__PURE__ */ jsx18(
|
|
2820
2842
|
GridBody,
|
|
2821
2843
|
{
|
|
2822
2844
|
rows: c.matched,
|
|
@@ -2842,12 +2864,13 @@ import { useState as useState7 } from "react";
|
|
|
2842
2864
|
import CloseRoundedIcon from "@mui/icons-material/CloseRounded";
|
|
2843
2865
|
import FilterAltOffRoundedIcon from "@mui/icons-material/FilterAltOffRounded";
|
|
2844
2866
|
import { Tooltip } from "@mui/material";
|
|
2845
|
-
import { jsx as
|
|
2867
|
+
import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2846
2868
|
function ClearAllControl({
|
|
2847
2869
|
onClearAll,
|
|
2848
2870
|
compact,
|
|
2849
2871
|
testIdPrefix
|
|
2850
2872
|
}) {
|
|
2873
|
+
const copy = useDataViewsCopy();
|
|
2851
2874
|
const button = /* @__PURE__ */ jsxs12(
|
|
2852
2875
|
Box,
|
|
2853
2876
|
{
|
|
@@ -2855,7 +2878,7 @@ function ClearAllControl({
|
|
|
2855
2878
|
type: "button",
|
|
2856
2879
|
onClick: onClearAll,
|
|
2857
2880
|
"data-testid": `${testIdPrefix}-clear-all`,
|
|
2858
|
-
"aria-label":
|
|
2881
|
+
"aria-label": copy.filters.clearAll,
|
|
2859
2882
|
sx: {
|
|
2860
2883
|
display: "inline-flex",
|
|
2861
2884
|
alignItems: "center",
|
|
@@ -2873,24 +2896,25 @@ function ClearAllControl({
|
|
|
2873
2896
|
"&:hover": { color: "text.primary", bgcolor: "action.hover" }
|
|
2874
2897
|
},
|
|
2875
2898
|
children: [
|
|
2876
|
-
/* @__PURE__ */
|
|
2877
|
-
!compact && /* @__PURE__ */
|
|
2899
|
+
/* @__PURE__ */ jsx19(FilterAltOffRoundedIcon, { sx: { fontSize: 16 } }),
|
|
2900
|
+
!compact && /* @__PURE__ */ jsx19(Box, { component: "span", children: copy.filters.clear })
|
|
2878
2901
|
]
|
|
2879
2902
|
}
|
|
2880
2903
|
);
|
|
2881
|
-
return compact ? /* @__PURE__ */
|
|
2904
|
+
return compact ? /* @__PURE__ */ jsx19(Tooltip, { title: copy.filters.clearAll, children: button }) : button;
|
|
2882
2905
|
}
|
|
2883
2906
|
function CloseSearchControl({
|
|
2884
2907
|
onClose,
|
|
2885
2908
|
testIdPrefix
|
|
2886
2909
|
}) {
|
|
2887
|
-
|
|
2910
|
+
const copy = useDataViewsCopy();
|
|
2911
|
+
return /* @__PURE__ */ jsx19(Tooltip, { title: copy.search.close, children: /* @__PURE__ */ jsx19(
|
|
2888
2912
|
Box,
|
|
2889
2913
|
{
|
|
2890
2914
|
component: "button",
|
|
2891
2915
|
type: "button",
|
|
2892
2916
|
onClick: onClose,
|
|
2893
|
-
"aria-label":
|
|
2917
|
+
"aria-label": copy.search.close,
|
|
2894
2918
|
"data-testid": `${testIdPrefix}-search-close`,
|
|
2895
2919
|
sx: {
|
|
2896
2920
|
display: "inline-flex",
|
|
@@ -2904,7 +2928,7 @@ function CloseSearchControl({
|
|
|
2904
2928
|
color: "text.secondary",
|
|
2905
2929
|
"&:hover": { color: "text.primary", bgcolor: "action.hover" }
|
|
2906
2930
|
},
|
|
2907
|
-
children: /* @__PURE__ */
|
|
2931
|
+
children: /* @__PURE__ */ jsx19(CloseRoundedIcon, { sx: { fontSize: 18 } })
|
|
2908
2932
|
}
|
|
2909
2933
|
) });
|
|
2910
2934
|
}
|
|
@@ -2917,7 +2941,7 @@ import { useState as useState5 } from "react";
|
|
|
2917
2941
|
|
|
2918
2942
|
// src/components/data-display/DataViews/data-views-more-fields.tsx
|
|
2919
2943
|
import { Checkbox as Checkbox3 } from "@mui/material";
|
|
2920
|
-
import { jsx as
|
|
2944
|
+
import { jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2921
2945
|
var INLINE_OPTION_LIMIT = 2;
|
|
2922
2946
|
function OverflowPill({
|
|
2923
2947
|
field,
|
|
@@ -2926,9 +2950,10 @@ function OverflowPill({
|
|
|
2926
2950
|
onClear,
|
|
2927
2951
|
testIdPrefix
|
|
2928
2952
|
}) {
|
|
2953
|
+
const copy = useDataViewsCopy();
|
|
2929
2954
|
const options = field.pill?.options ?? [];
|
|
2930
2955
|
if (options.length > INLINE_OPTION_LIMIT) {
|
|
2931
|
-
return /* @__PURE__ */
|
|
2956
|
+
return /* @__PURE__ */ jsx20(
|
|
2932
2957
|
MultiSelectDropdown,
|
|
2933
2958
|
{
|
|
2934
2959
|
label: field.pill?.label ?? field.label,
|
|
@@ -2936,16 +2961,16 @@ function OverflowPill({
|
|
|
2936
2961
|
selected: new Set(values),
|
|
2937
2962
|
onToggle,
|
|
2938
2963
|
onClear,
|
|
2939
|
-
allLabel:
|
|
2964
|
+
allLabel: copy.filters.allOption,
|
|
2940
2965
|
searchable: options.length > 6 ? true : void 0,
|
|
2941
|
-
searchPlaceholder:
|
|
2942
|
-
noResultsLabel:
|
|
2966
|
+
searchPlaceholder: copy.filters.optionSearchPlaceholder,
|
|
2967
|
+
noResultsLabel: copy.filters.optionsEmpty,
|
|
2943
2968
|
layout: "pill",
|
|
2944
2969
|
"data-testid": `${testIdPrefix}-more-${field.id}`
|
|
2945
2970
|
}
|
|
2946
2971
|
);
|
|
2947
2972
|
}
|
|
2948
|
-
return /* @__PURE__ */
|
|
2973
|
+
return /* @__PURE__ */ jsx20(Box, { sx: { display: "flex", flexWrap: "wrap", gap: 0.75 }, children: (field.pill?.options ?? []).map((option) => {
|
|
2949
2974
|
const checked = values.includes(option.value);
|
|
2950
2975
|
return /* @__PURE__ */ jsxs13(
|
|
2951
2976
|
Box,
|
|
@@ -2967,7 +2992,7 @@ function OverflowPill({
|
|
|
2967
2992
|
color: checked ? "primary.main" : "text.secondary"
|
|
2968
2993
|
},
|
|
2969
2994
|
children: [
|
|
2970
|
-
/* @__PURE__ */
|
|
2995
|
+
/* @__PURE__ */ jsx20(
|
|
2971
2996
|
Checkbox3,
|
|
2972
2997
|
{
|
|
2973
2998
|
size: "small",
|
|
@@ -2990,7 +3015,7 @@ function OverflowRange({
|
|
|
2990
3015
|
testIdPrefix
|
|
2991
3016
|
}) {
|
|
2992
3017
|
if (!field.range) return null;
|
|
2993
|
-
return /* @__PURE__ */
|
|
3018
|
+
return /* @__PURE__ */ jsx20(
|
|
2994
3019
|
RangeBounds,
|
|
2995
3020
|
{
|
|
2996
3021
|
field: field.range,
|
|
@@ -3030,11 +3055,11 @@ function MoreGroup({
|
|
|
3030
3055
|
const { applied, clear } = fieldClearing({ field, pills, ranges, onTogglePill, onChangeRange });
|
|
3031
3056
|
return /* @__PURE__ */ jsxs13(Box, { sx: { mb: 1.5, "&:last-of-type": { mb: 0 } }, children: [
|
|
3032
3057
|
/* @__PURE__ */ jsxs13(Box, { sx: { display: "flex", alignItems: "center", gap: 1, mb: 0.5 }, children: [
|
|
3033
|
-
/* @__PURE__ */
|
|
3058
|
+
/* @__PURE__ */ jsx20(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsxs13(Box, { component: "span", sx: { color: "text.secondary" }, children: [
|
|
3034
3059
|
field.label,
|
|
3035
3060
|
field.group === "range" && isRangeSet(ranges[field.id] ?? {}) ? " \u2022" : ""
|
|
3036
3061
|
] }) }),
|
|
3037
|
-
applied && /* @__PURE__ */
|
|
3062
|
+
applied && /* @__PURE__ */ jsx20(
|
|
3038
3063
|
Box,
|
|
3039
3064
|
{
|
|
3040
3065
|
component: "button",
|
|
@@ -3056,7 +3081,7 @@ function MoreGroup({
|
|
|
3056
3081
|
}
|
|
3057
3082
|
)
|
|
3058
3083
|
] }),
|
|
3059
|
-
field.group === "pill" ? /* @__PURE__ */
|
|
3084
|
+
field.group === "pill" ? /* @__PURE__ */ jsx20(
|
|
3060
3085
|
OverflowPill,
|
|
3061
3086
|
{
|
|
3062
3087
|
field,
|
|
@@ -3065,7 +3090,7 @@ function MoreGroup({
|
|
|
3065
3090
|
onClear: () => (pills[field.id] ?? []).forEach((v) => onTogglePill(field.id, v, false)),
|
|
3066
3091
|
testIdPrefix
|
|
3067
3092
|
}
|
|
3068
|
-
) : /* @__PURE__ */
|
|
3093
|
+
) : /* @__PURE__ */ jsx20(
|
|
3069
3094
|
OverflowRange,
|
|
3070
3095
|
{
|
|
3071
3096
|
field,
|
|
@@ -3078,7 +3103,7 @@ function MoreGroup({
|
|
|
3078
3103
|
}
|
|
3079
3104
|
|
|
3080
3105
|
// src/components/data-display/DataViews/data-views-more-filters.tsx
|
|
3081
|
-
import { Fragment as Fragment9, jsx as
|
|
3106
|
+
import { Fragment as Fragment9, jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3082
3107
|
function MoreTrigger({
|
|
3083
3108
|
count,
|
|
3084
3109
|
appliedCount,
|
|
@@ -3086,8 +3111,9 @@ function MoreTrigger({
|
|
|
3086
3111
|
onOpen,
|
|
3087
3112
|
testIdPrefix
|
|
3088
3113
|
}) {
|
|
3114
|
+
const copy = useDataViewsCopy();
|
|
3089
3115
|
const applied = appliedCount > 0;
|
|
3090
|
-
return /* @__PURE__ */
|
|
3116
|
+
return /* @__PURE__ */ jsx21(
|
|
3091
3117
|
Button,
|
|
3092
3118
|
{
|
|
3093
3119
|
variant: "outline",
|
|
@@ -3095,7 +3121,7 @@ function MoreTrigger({
|
|
|
3095
3121
|
color: "neutral",
|
|
3096
3122
|
onClick: (event) => onOpen(event.currentTarget),
|
|
3097
3123
|
dataTestId: `${testIdPrefix}-more-filters`,
|
|
3098
|
-
"aria-label": applied ?
|
|
3124
|
+
"aria-label": applied ? copy.filters.moreFiltersApplied(count, appliedCount) : copy.filters.moreFilters(count),
|
|
3099
3125
|
children: /* @__PURE__ */ jsxs14(
|
|
3100
3126
|
Box,
|
|
3101
3127
|
{
|
|
@@ -3107,9 +3133,9 @@ function MoreTrigger({
|
|
|
3107
3133
|
color: applied ? "primary.main" : void 0
|
|
3108
3134
|
},
|
|
3109
3135
|
children: [
|
|
3110
|
-
/* @__PURE__ */
|
|
3111
|
-
!compact && /* @__PURE__ */
|
|
3112
|
-
/* @__PURE__ */
|
|
3136
|
+
/* @__PURE__ */ jsx21(FilterAltRoundedIcon, { fontSize: "small" }),
|
|
3137
|
+
!compact && /* @__PURE__ */ jsx21(Box, { component: "span", sx: { display: { xs: "none", sm: "inline" } }, children: "Mais" }),
|
|
3138
|
+
/* @__PURE__ */ jsx21(
|
|
3113
3139
|
Box,
|
|
3114
3140
|
{
|
|
3115
3141
|
component: "span",
|
|
@@ -3125,7 +3151,7 @@ function MoreTrigger({
|
|
|
3125
3151
|
children: applied ? appliedCount : count
|
|
3126
3152
|
}
|
|
3127
3153
|
),
|
|
3128
|
-
!compact && /* @__PURE__ */
|
|
3154
|
+
!compact && /* @__PURE__ */ jsx21(KeyboardArrowDownRoundedIcon, { fontSize: "small" })
|
|
3129
3155
|
]
|
|
3130
3156
|
}
|
|
3131
3157
|
)
|
|
@@ -3133,6 +3159,7 @@ function MoreTrigger({
|
|
|
3133
3159
|
);
|
|
3134
3160
|
}
|
|
3135
3161
|
function MoreHeading() {
|
|
3162
|
+
const copy = useDataViewsCopy();
|
|
3136
3163
|
return /* @__PURE__ */ jsxs14(
|
|
3137
3164
|
Box,
|
|
3138
3165
|
{
|
|
@@ -3146,8 +3173,8 @@ function MoreHeading() {
|
|
|
3146
3173
|
borderColor: "divider"
|
|
3147
3174
|
},
|
|
3148
3175
|
children: [
|
|
3149
|
-
/* @__PURE__ */
|
|
3150
|
-
/* @__PURE__ */
|
|
3176
|
+
/* @__PURE__ */ jsx21(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx21(Box, { component: "span", sx: { textTransform: "uppercase", letterSpacing: 0.5, color: "text.disabled" }, children: "Mais filtros" }) }),
|
|
3177
|
+
/* @__PURE__ */ jsx21(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx21(Box, { component: "span", sx: { ml: "auto", color: "text.disabled" }, children: copy.filters.overflowNote }) })
|
|
3151
3178
|
]
|
|
3152
3179
|
}
|
|
3153
3180
|
);
|
|
@@ -3156,7 +3183,7 @@ function MoreFooter({
|
|
|
3156
3183
|
onClearAll,
|
|
3157
3184
|
testIdPrefix
|
|
3158
3185
|
}) {
|
|
3159
|
-
return /* @__PURE__ */
|
|
3186
|
+
return /* @__PURE__ */ jsx21(Box, { sx: { px: 1.5, py: 1, borderTop: 1, borderColor: "divider" }, children: /* @__PURE__ */ jsx21(
|
|
3160
3187
|
Box,
|
|
3161
3188
|
{
|
|
3162
3189
|
component: "button",
|
|
@@ -3190,7 +3217,7 @@ function MoreFilters({
|
|
|
3190
3217
|
const [anchor, setAnchor] = useState5(null);
|
|
3191
3218
|
if (fields.length === 0) return null;
|
|
3192
3219
|
return /* @__PURE__ */ jsxs14(Fragment9, { children: [
|
|
3193
|
-
/* @__PURE__ */
|
|
3220
|
+
/* @__PURE__ */ jsx21(
|
|
3194
3221
|
MoreTrigger,
|
|
3195
3222
|
{
|
|
3196
3223
|
count: fields.length,
|
|
@@ -3211,7 +3238,7 @@ function MoreFilters({
|
|
|
3211
3238
|
testIdPrefix: rest.testIdPrefix
|
|
3212
3239
|
}
|
|
3213
3240
|
),
|
|
3214
|
-
/* @__PURE__ */
|
|
3241
|
+
/* @__PURE__ */ jsx21(
|
|
3215
3242
|
Popover2,
|
|
3216
3243
|
{
|
|
3217
3244
|
open: Boolean(anchor),
|
|
@@ -3223,9 +3250,9 @@ function MoreFilters({
|
|
|
3223
3250
|
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
3224
3251
|
slotProps: { paper: { sx: { width: 300, maxWidth: "calc(100vw - 32px)" } } },
|
|
3225
3252
|
children: /* @__PURE__ */ jsxs14(Box, { "data-testid": `${rest.testIdPrefix}-more-panel`, children: [
|
|
3226
|
-
/* @__PURE__ */
|
|
3227
|
-
/* @__PURE__ */
|
|
3228
|
-
anyApplied && /* @__PURE__ */
|
|
3253
|
+
/* @__PURE__ */ jsx21(MoreHeading, {}),
|
|
3254
|
+
/* @__PURE__ */ jsx21(Box, { sx: { maxHeight: 320, overflowY: "auto", overflowX: "hidden", p: 1.5, minWidth: 0 }, children: fields.map((field) => /* @__PURE__ */ jsx21(MoreGroup, { field, ...rest }, field.id)) }),
|
|
3255
|
+
anyApplied && /* @__PURE__ */ jsx21(MoreFooter, { onClearAll, testIdPrefix: rest.testIdPrefix })
|
|
3229
3256
|
] })
|
|
3230
3257
|
}
|
|
3231
3258
|
)
|
|
@@ -3237,7 +3264,7 @@ import CloseIcon2 from "@mui/icons-material/Close";
|
|
|
3237
3264
|
import SearchIcon from "@mui/icons-material/Search";
|
|
3238
3265
|
import { IconButton as IconButton2, InputAdornment, TextField as TextField2 } from "@mui/material";
|
|
3239
3266
|
import { useEffect as useEffect3, useRef, useState as useState6 } from "react";
|
|
3240
|
-
import { jsx as
|
|
3267
|
+
import { jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3241
3268
|
var SEARCH_DEBOUNCE_MS = 350;
|
|
3242
3269
|
function boxWidth(fill) {
|
|
3243
3270
|
return { flex: 1, minWidth: fill ? 0 : 200, maxWidth: fill ? "none" : 384 };
|
|
@@ -3250,6 +3277,7 @@ function InlineKeyword({
|
|
|
3250
3277
|
onEscape,
|
|
3251
3278
|
fill = false
|
|
3252
3279
|
}) {
|
|
3280
|
+
const copy = useDataViewsCopy();
|
|
3253
3281
|
const [draft, setDraft] = useState6(value);
|
|
3254
3282
|
const prev = useRef(value);
|
|
3255
3283
|
if (prev.current !== value) {
|
|
@@ -3261,7 +3289,7 @@ function InlineKeyword({
|
|
|
3261
3289
|
const timer = setTimeout(() => onChange(draft), SEARCH_DEBOUNCE_MS);
|
|
3262
3290
|
return () => clearTimeout(timer);
|
|
3263
3291
|
}, [draft, value, onChange]);
|
|
3264
|
-
return /* @__PURE__ */
|
|
3292
|
+
return /* @__PURE__ */ jsx22(
|
|
3265
3293
|
TextField2,
|
|
3266
3294
|
{
|
|
3267
3295
|
size: "small",
|
|
@@ -3279,19 +3307,19 @@ function InlineKeyword({
|
|
|
3279
3307
|
event.preventDefault();
|
|
3280
3308
|
if (draft !== value) onChange(draft);
|
|
3281
3309
|
},
|
|
3282
|
-
placeholder:
|
|
3283
|
-
inputProps: { "aria-label":
|
|
3310
|
+
placeholder: copy.search.placeholder,
|
|
3311
|
+
inputProps: { "aria-label": copy.search.allColumnsLabel, "data-testid": testId },
|
|
3284
3312
|
InputProps: {
|
|
3285
|
-
startAdornment: /* @__PURE__ */
|
|
3286
|
-
endAdornment: draft ? /* @__PURE__ */
|
|
3313
|
+
startAdornment: /* @__PURE__ */ jsx22(InputAdornment, { position: "start", children: /* @__PURE__ */ jsx22(SearchIcon, { sx: { fontSize: 16, color: "text.secondary" } }) }),
|
|
3314
|
+
endAdornment: draft ? /* @__PURE__ */ jsx22(InputAdornment, { position: "end", children: /* @__PURE__ */ jsx22(
|
|
3287
3315
|
IconButton2,
|
|
3288
3316
|
{
|
|
3289
3317
|
size: "small",
|
|
3290
|
-
"aria-label":
|
|
3318
|
+
"aria-label": copy.search.clear,
|
|
3291
3319
|
"data-testid": testId ? `${testId}-clear` : void 0,
|
|
3292
3320
|
onClick: () => setDraft(""),
|
|
3293
3321
|
sx: { p: 0.25 },
|
|
3294
|
-
children: /* @__PURE__ */
|
|
3322
|
+
children: /* @__PURE__ */ jsx22(CloseIcon2, { sx: { fontSize: 14 } })
|
|
3295
3323
|
}
|
|
3296
3324
|
) }) : void 0
|
|
3297
3325
|
},
|
|
@@ -3304,12 +3332,13 @@ function CollapsedSearch({
|
|
|
3304
3332
|
onOpen,
|
|
3305
3333
|
testId
|
|
3306
3334
|
}) {
|
|
3335
|
+
const copy = useDataViewsCopy();
|
|
3307
3336
|
return /* @__PURE__ */ jsxs15(
|
|
3308
3337
|
IconButton2,
|
|
3309
3338
|
{
|
|
3310
3339
|
size: "small",
|
|
3311
3340
|
onClick: onOpen,
|
|
3312
|
-
"aria-label":
|
|
3341
|
+
"aria-label": copy.search.open,
|
|
3313
3342
|
"aria-expanded": false,
|
|
3314
3343
|
"data-testid": testId ? `${testId}-collapsed` : void 0,
|
|
3315
3344
|
sx: {
|
|
@@ -3321,8 +3350,8 @@ function CollapsedSearch({
|
|
|
3321
3350
|
bgcolor: active ? "action.selected" : "background.paper"
|
|
3322
3351
|
},
|
|
3323
3352
|
children: [
|
|
3324
|
-
/* @__PURE__ */
|
|
3325
|
-
active && /* @__PURE__ */
|
|
3353
|
+
/* @__PURE__ */ jsx22(SearchIcon, { sx: { fontSize: 18 } }),
|
|
3354
|
+
active && /* @__PURE__ */ jsx22(
|
|
3326
3355
|
Box,
|
|
3327
3356
|
{
|
|
3328
3357
|
component: "span",
|
|
@@ -3343,7 +3372,7 @@ function CollapsedSearch({
|
|
|
3343
3372
|
}
|
|
3344
3373
|
|
|
3345
3374
|
// src/components/data-display/DataViews/data-views-inline-bar.tsx
|
|
3346
|
-
import { Fragment as Fragment10, jsx as
|
|
3375
|
+
import { Fragment as Fragment10, jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3347
3376
|
function SearchSlot({
|
|
3348
3377
|
search,
|
|
3349
3378
|
onSearchChange,
|
|
@@ -3355,9 +3384,9 @@ function SearchSlot({
|
|
|
3355
3384
|
testIdPrefix
|
|
3356
3385
|
}) {
|
|
3357
3386
|
if (collapsed) {
|
|
3358
|
-
return /* @__PURE__ */
|
|
3387
|
+
return /* @__PURE__ */ jsx23(CollapsedSearch, { active: search !== "", onOpen, testId: `${testIdPrefix}-search-all` });
|
|
3359
3388
|
}
|
|
3360
|
-
return /* @__PURE__ */
|
|
3389
|
+
return /* @__PURE__ */ jsx23(
|
|
3361
3390
|
InlineKeyword,
|
|
3362
3391
|
{
|
|
3363
3392
|
value: search,
|
|
@@ -3380,7 +3409,7 @@ function InlineControl({
|
|
|
3380
3409
|
testIdPrefix
|
|
3381
3410
|
}) {
|
|
3382
3411
|
if (field.group === "pill" && field.pill) {
|
|
3383
|
-
return /* @__PURE__ */
|
|
3412
|
+
return /* @__PURE__ */ jsx23(
|
|
3384
3413
|
PillControl,
|
|
3385
3414
|
{
|
|
3386
3415
|
fieldId: field.id,
|
|
@@ -3394,7 +3423,7 @@ function InlineControl({
|
|
|
3394
3423
|
);
|
|
3395
3424
|
}
|
|
3396
3425
|
if (field.group === "range" && field.range) {
|
|
3397
|
-
return /* @__PURE__ */
|
|
3426
|
+
return /* @__PURE__ */ jsx23(
|
|
3398
3427
|
RangePill,
|
|
3399
3428
|
{
|
|
3400
3429
|
field: field.range,
|
|
@@ -3449,7 +3478,7 @@ function InlineFilterControls({
|
|
|
3449
3478
|
"& > *": { flexShrink: 0 }
|
|
3450
3479
|
},
|
|
3451
3480
|
children: [
|
|
3452
|
-
/* @__PURE__ */
|
|
3481
|
+
/* @__PURE__ */ jsx23(
|
|
3453
3482
|
SearchSlot,
|
|
3454
3483
|
{
|
|
3455
3484
|
search,
|
|
@@ -3462,8 +3491,8 @@ function InlineFilterControls({
|
|
|
3462
3491
|
testIdPrefix
|
|
3463
3492
|
}
|
|
3464
3493
|
),
|
|
3465
|
-
takesOver && /* @__PURE__ */
|
|
3466
|
-
!takesOver && /* @__PURE__ */
|
|
3494
|
+
takesOver && /* @__PURE__ */ jsx23(CloseSearchControl, { onClose: close, testIdPrefix }),
|
|
3495
|
+
!takesOver && /* @__PURE__ */ jsx23(
|
|
3467
3496
|
FilterSlots,
|
|
3468
3497
|
{
|
|
3469
3498
|
inline,
|
|
@@ -3501,7 +3530,7 @@ function FilterSlots({
|
|
|
3501
3530
|
testIdPrefix
|
|
3502
3531
|
}) {
|
|
3503
3532
|
return /* @__PURE__ */ jsxs16(Fragment10, { children: [
|
|
3504
|
-
inline.map((field) => /* @__PURE__ */
|
|
3533
|
+
inline.map((field) => /* @__PURE__ */ jsx23(
|
|
3505
3534
|
InlineControl,
|
|
3506
3535
|
{
|
|
3507
3536
|
field,
|
|
@@ -3515,7 +3544,7 @@ function FilterSlots({
|
|
|
3515
3544
|
},
|
|
3516
3545
|
field.id
|
|
3517
3546
|
)),
|
|
3518
|
-
/* @__PURE__ */
|
|
3547
|
+
/* @__PURE__ */ jsx23(
|
|
3519
3548
|
MoreFilters,
|
|
3520
3549
|
{
|
|
3521
3550
|
onOpenChange: onControlOpenChange,
|
|
@@ -3530,7 +3559,7 @@ function FilterSlots({
|
|
|
3530
3559
|
testIdPrefix
|
|
3531
3560
|
}
|
|
3532
3561
|
),
|
|
3533
|
-
activeFilterCount > 0 && !clearAllHidden && /* @__PURE__ */
|
|
3562
|
+
activeFilterCount > 0 && !clearAllHidden && /* @__PURE__ */ jsx23(
|
|
3534
3563
|
ClearAllControl,
|
|
3535
3564
|
{
|
|
3536
3565
|
onClearAll,
|
|
@@ -3746,7 +3775,7 @@ import ArrowUpwardRoundedIcon from "@mui/icons-material/ArrowUpwardRounded";
|
|
|
3746
3775
|
import DragIndicatorRoundedIcon from "@mui/icons-material/DragIndicatorRounded";
|
|
3747
3776
|
import { Checkbox as Checkbox4 } from "@mui/material";
|
|
3748
3777
|
import { useState as useState8 } from "react";
|
|
3749
|
-
import { jsx as
|
|
3778
|
+
import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3750
3779
|
function moved(order, id, delta) {
|
|
3751
3780
|
const from = order.indexOf(id);
|
|
3752
3781
|
const to = from + delta;
|
|
@@ -3765,6 +3794,7 @@ function ColumnsTab({
|
|
|
3765
3794
|
onReset,
|
|
3766
3795
|
testIdPrefix
|
|
3767
3796
|
}) {
|
|
3797
|
+
const copy = useDataViewsCopy();
|
|
3768
3798
|
const [dragId, setDragId] = useState8(null);
|
|
3769
3799
|
const byId = new Map(columns.map((column) => [column.id, column]));
|
|
3770
3800
|
const ordered = order.map((id) => byId.get(id)).filter((column) => Boolean(column));
|
|
@@ -3778,19 +3808,14 @@ function ColumnsTab({
|
|
|
3778
3808
|
};
|
|
3779
3809
|
return /* @__PURE__ */ jsxs17(Box, { children: [
|
|
3780
3810
|
/* @__PURE__ */ jsxs17(Box, { sx: { display: "flex", alignItems: "center", justifyContent: "space-between", px: 1.5, py: 1 }, children: [
|
|
3781
|
-
/* @__PURE__ */
|
|
3782
|
-
/* @__PURE__ */ jsx23("strong", { children: visibleHideableCount }),
|
|
3783
|
-
" de ",
|
|
3784
|
-
columns.length,
|
|
3785
|
-
" vis\xEDveis"
|
|
3786
|
-
] }) }),
|
|
3811
|
+
/* @__PURE__ */ jsx24(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx24(Box, { component: "span", sx: { color: "text.secondary" }, "data-testid": `${testIdPrefix}-columns-count`, children: copy.columns.visibleCount(visibleHideableCount, columns.length) }) }),
|
|
3787
3812
|
/* @__PURE__ */ jsxs17(Box, { sx: { display: "flex", gap: 1 }, children: [
|
|
3788
|
-
/* @__PURE__ */
|
|
3789
|
-
/* @__PURE__ */
|
|
3813
|
+
/* @__PURE__ */ jsx24(LinkButton, { label: copy.columns.showAll, onClick: onShowAll, testId: `${testIdPrefix}-columns-show-all` }),
|
|
3814
|
+
/* @__PURE__ */ jsx24(LinkButton, { label: copy.columns.reset, onClick: onReset, testId: `${testIdPrefix}-columns-reset`, muted: true })
|
|
3790
3815
|
] })
|
|
3791
3816
|
] }),
|
|
3792
|
-
/* @__PURE__ */
|
|
3793
|
-
/* @__PURE__ */
|
|
3817
|
+
/* @__PURE__ */ jsx24(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx24(Box, { component: "span", sx: { px: 1.5, pb: 0.5, display: "block", color: "text.disabled" }, children: "Arraste para reordenar as colunas." }) }),
|
|
3818
|
+
/* @__PURE__ */ jsx24(Box, { sx: { px: 0.75, pb: 0.75 }, children: ordered.map((column) => /* @__PURE__ */ jsx24(
|
|
3794
3819
|
ColumnRow,
|
|
3795
3820
|
{
|
|
3796
3821
|
column,
|
|
@@ -3813,7 +3838,7 @@ function LinkButton({
|
|
|
3813
3838
|
testId,
|
|
3814
3839
|
muted
|
|
3815
3840
|
}) {
|
|
3816
|
-
return /* @__PURE__ */
|
|
3841
|
+
return /* @__PURE__ */ jsx24(
|
|
3817
3842
|
Box,
|
|
3818
3843
|
{
|
|
3819
3844
|
component: "button",
|
|
@@ -3866,8 +3891,8 @@ function ColumnRow({
|
|
|
3866
3891
|
"&:hover .dv-col-move": { opacity: 1 }
|
|
3867
3892
|
},
|
|
3868
3893
|
children: [
|
|
3869
|
-
/* @__PURE__ */
|
|
3870
|
-
/* @__PURE__ */
|
|
3894
|
+
/* @__PURE__ */ jsx24(Box, { component: "span", "aria-hidden": true, sx: { display: "flex", color: "action.disabled", cursor: "grab" }, children: /* @__PURE__ */ jsx24(DragIndicatorRoundedIcon, { fontSize: "small" }) }),
|
|
3895
|
+
/* @__PURE__ */ jsx24(
|
|
3871
3896
|
Checkbox4,
|
|
3872
3897
|
{
|
|
3873
3898
|
size: "small",
|
|
@@ -3877,10 +3902,10 @@ function ColumnRow({
|
|
|
3877
3902
|
"data-testid": `${testIdPrefix}-column-toggle-${column.id}`
|
|
3878
3903
|
}
|
|
3879
3904
|
),
|
|
3880
|
-
/* @__PURE__ */
|
|
3905
|
+
/* @__PURE__ */ jsx24(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx24(Box, { component: "span", sx: { flex: 1, color: visible ? "text.primary" : "text.disabled" }, children: column.label }) }),
|
|
3881
3906
|
/* @__PURE__ */ jsxs17(Box, { className: "dv-col-move", sx: { ml: "auto", display: "flex", opacity: 0, transition: "opacity .15s" }, children: [
|
|
3882
|
-
/* @__PURE__ */
|
|
3883
|
-
/* @__PURE__ */
|
|
3907
|
+
/* @__PURE__ */ jsx24(MoveButton, { label: `Mover ${column.label} para cima`, onClick: () => onMove(-1), up: true }),
|
|
3908
|
+
/* @__PURE__ */ jsx24(MoveButton, { label: `Mover ${column.label} para baixo`, onClick: () => onMove(1) })
|
|
3884
3909
|
] })
|
|
3885
3910
|
]
|
|
3886
3911
|
}
|
|
@@ -3891,7 +3916,7 @@ function MoveButton({
|
|
|
3891
3916
|
onClick,
|
|
3892
3917
|
up
|
|
3893
3918
|
}) {
|
|
3894
|
-
return /* @__PURE__ */
|
|
3919
|
+
return /* @__PURE__ */ jsx24(
|
|
3895
3920
|
Box,
|
|
3896
3921
|
{
|
|
3897
3922
|
component: "button",
|
|
@@ -3908,7 +3933,7 @@ function MoveButton({
|
|
|
3908
3933
|
color: "text.secondary",
|
|
3909
3934
|
"&:hover": { bgcolor: "action.selected" }
|
|
3910
3935
|
},
|
|
3911
|
-
children: up ? /* @__PURE__ */
|
|
3936
|
+
children: up ? /* @__PURE__ */ jsx24(ArrowUpwardRoundedIcon, { sx: { fontSize: 14 } }) : /* @__PURE__ */ jsx24(ArrowDownwardRoundedIcon, { sx: { fontSize: 14 } })
|
|
3912
3937
|
}
|
|
3913
3938
|
);
|
|
3914
3939
|
}
|
|
@@ -3927,7 +3952,7 @@ import { IconButton as IconButton3 } from "@mui/material";
|
|
|
3927
3952
|
import KeyboardArrowDownRoundedIcon2 from "@mui/icons-material/KeyboardArrowDownRounded";
|
|
3928
3953
|
import RestartAltRoundedIcon from "@mui/icons-material/RestartAltRounded";
|
|
3929
3954
|
import SaveOutlinedIcon from "@mui/icons-material/SaveOutlined";
|
|
3930
|
-
import { Fragment as Fragment11, jsx as
|
|
3955
|
+
import { Fragment as Fragment11, jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3931
3956
|
var rowSx2 = {
|
|
3932
3957
|
display: "flex",
|
|
3933
3958
|
alignItems: "center",
|
|
@@ -3950,6 +3975,7 @@ function ViewsList({
|
|
|
3950
3975
|
onOpenActions,
|
|
3951
3976
|
testIdPrefix
|
|
3952
3977
|
}) {
|
|
3978
|
+
const copy = useDataViewsCopy();
|
|
3953
3979
|
const { views, activeViewId, onSelectView } = handlers;
|
|
3954
3980
|
const onMain = !activeViewId;
|
|
3955
3981
|
return /* @__PURE__ */ jsxs18(Box, { sx: { p: 0.75 }, "data-testid": `${testIdPrefix}-views-list`, children: [
|
|
@@ -3962,8 +3988,8 @@ function ViewsList({
|
|
|
3962
3988
|
"data-testid": `${testIdPrefix}-view-main`,
|
|
3963
3989
|
sx: { ...rowSx2, color: onMain ? "primary.main" : "text.primary", fontWeight: onMain ? 600 : 400 },
|
|
3964
3990
|
children: [
|
|
3965
|
-
/* @__PURE__ */
|
|
3966
|
-
onMain && /* @__PURE__ */
|
|
3991
|
+
/* @__PURE__ */ jsx25(Box, { component: "span", sx: { flex: 1 }, children: copy.nav.mainView }),
|
|
3992
|
+
onMain && /* @__PURE__ */ jsx25(CheckRoundedIcon, { fontSize: "small" })
|
|
3967
3993
|
]
|
|
3968
3994
|
}
|
|
3969
3995
|
),
|
|
@@ -3979,27 +4005,27 @@ function ViewsList({
|
|
|
3979
4005
|
"data-testid": `${testIdPrefix}-view-${view.id}`,
|
|
3980
4006
|
sx: { ...rowSx2, minWidth: 0, color: active ? "primary.main" : "text.primary", fontWeight: active ? 600 : 400 },
|
|
3981
4007
|
children: [
|
|
3982
|
-
/* @__PURE__ */
|
|
3983
|
-
view.isDefault && /* @__PURE__ */
|
|
3984
|
-
view.pinned && /* @__PURE__ */
|
|
3985
|
-
view.shared && /* @__PURE__ */
|
|
3986
|
-
active && /* @__PURE__ */
|
|
4008
|
+
/* @__PURE__ */ jsx25(Box, { component: "span", sx: { flex: 1, minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: view.name }),
|
|
4009
|
+
view.isDefault && /* @__PURE__ */ jsx25(StarOutlineRoundedIcon, { fontSize: "small", sx: { color: "warning.main" }, titleAccess: copy.nav.defaultTag }),
|
|
4010
|
+
view.pinned && /* @__PURE__ */ jsx25(PushPinOutlinedIcon, { fontSize: "small", sx: { color: "text.disabled" }, titleAccess: "Fixada" }),
|
|
4011
|
+
view.shared && /* @__PURE__ */ jsx25(GroupOutlinedIcon, { fontSize: "small", sx: { color: "text.disabled" }, titleAccess: "Compartilhada" }),
|
|
4012
|
+
active && /* @__PURE__ */ jsx25(CheckRoundedIcon, { fontSize: "small" })
|
|
3987
4013
|
]
|
|
3988
4014
|
}
|
|
3989
4015
|
),
|
|
3990
|
-
/* @__PURE__ */
|
|
4016
|
+
/* @__PURE__ */ jsx25(
|
|
3991
4017
|
IconButton3,
|
|
3992
4018
|
{
|
|
3993
4019
|
size: "small",
|
|
3994
4020
|
onClick: () => onOpenActions(view),
|
|
3995
|
-
"aria-label":
|
|
4021
|
+
"aria-label": copy.nav.viewOptions(view.name),
|
|
3996
4022
|
"data-testid": `${testIdPrefix}-view-${view.id}-menu`,
|
|
3997
|
-
children: /* @__PURE__ */
|
|
4023
|
+
children: /* @__PURE__ */ jsx25(MoreVertRoundedIcon, { fontSize: "small" })
|
|
3998
4024
|
}
|
|
3999
4025
|
)
|
|
4000
4026
|
] }, view.id);
|
|
4001
4027
|
}),
|
|
4002
|
-
views.length === 0 && /* @__PURE__ */
|
|
4028
|
+
views.length === 0 && /* @__PURE__ */ jsx25(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx25(Box, { component: "span", sx: { display: "block", px: 1.25, py: 1.5, color: "text.secondary", lineHeight: 1.6 }, children: copy.nav.emptyHint }) })
|
|
4003
4029
|
] });
|
|
4004
4030
|
}
|
|
4005
4031
|
function ViewActions({
|
|
@@ -4008,6 +4034,7 @@ function ViewActions({
|
|
|
4008
4034
|
onBack,
|
|
4009
4035
|
testIdPrefix
|
|
4010
4036
|
}) {
|
|
4037
|
+
const copy = useDataViewsCopy();
|
|
4011
4038
|
const { onEditView, onPatchView, onDeleteView } = handlers;
|
|
4012
4039
|
const action = (key, Icon, label, onClick, opts = {}) => /* @__PURE__ */ jsxs18(
|
|
4013
4040
|
Box,
|
|
@@ -4022,9 +4049,9 @@ function ViewActions({
|
|
|
4022
4049
|
"&:hover": { bgcolor: opts.danger ? "error.lighter" : "action.hover" }
|
|
4023
4050
|
},
|
|
4024
4051
|
children: [
|
|
4025
|
-
/* @__PURE__ */
|
|
4026
|
-
/* @__PURE__ */
|
|
4027
|
-
opts.on && /* @__PURE__ */
|
|
4052
|
+
/* @__PURE__ */ jsx25(Icon, { fontSize: "small", sx: { color: opts.danger ? "inherit" : "text.disabled" } }),
|
|
4053
|
+
/* @__PURE__ */ jsx25(Box, { component: "span", sx: { flex: 1 }, children: label }),
|
|
4054
|
+
opts.on && /* @__PURE__ */ jsx25(CheckRoundedIcon, { fontSize: "small", color: "primary" })
|
|
4028
4055
|
]
|
|
4029
4056
|
}
|
|
4030
4057
|
);
|
|
@@ -4038,18 +4065,18 @@ function ViewActions({
|
|
|
4038
4065
|
"data-testid": `${testIdPrefix}-view-actions-back`,
|
|
4039
4066
|
sx: { ...rowSx2, color: "text.secondary", fontSize: "0.75rem" },
|
|
4040
4067
|
children: [
|
|
4041
|
-
/* @__PURE__ */
|
|
4042
|
-
/* @__PURE__ */
|
|
4068
|
+
/* @__PURE__ */ jsx25(ChevronLeftRoundedIcon, { fontSize: "small" }),
|
|
4069
|
+
/* @__PURE__ */ jsx25(Box, { component: "span", sx: { flex: 1, fontWeight: 600, color: "text.primary" }, children: view.name })
|
|
4043
4070
|
]
|
|
4044
4071
|
}
|
|
4045
4072
|
),
|
|
4046
|
-
/* @__PURE__ */
|
|
4047
|
-
action("edit", EditOutlinedIcon,
|
|
4048
|
-
action("default", StarOutlineRoundedIcon2,
|
|
4049
|
-
action("pin", PushPinOutlinedIcon,
|
|
4050
|
-
action("share", GroupOutlinedIcon,
|
|
4051
|
-
/* @__PURE__ */
|
|
4052
|
-
action("delete", DeleteOutlineRoundedIcon,
|
|
4073
|
+
/* @__PURE__ */ jsx25(Box, { sx: { my: 0.5, borderTop: 1, borderColor: "divider" } }),
|
|
4074
|
+
action("edit", EditOutlinedIcon, copy.nav.editView, () => onEditView(view)),
|
|
4075
|
+
action("default", StarOutlineRoundedIcon2, copy.nav.setDefault, () => onPatchView(view, { isDefault: !view.isDefault }), { on: view.isDefault }),
|
|
4076
|
+
action("pin", PushPinOutlinedIcon, copy.nav.pinToSidebar, () => onPatchView(view, { pinned: !view.pinned }), { on: view.pinned }),
|
|
4077
|
+
action("share", GroupOutlinedIcon, copy.nav.shareWithTeam, () => onPatchView(view, { shared: !view.shared }), { on: view.shared }),
|
|
4078
|
+
/* @__PURE__ */ jsx25(Box, { sx: { my: 0.5, borderTop: 1, borderColor: "divider" } }),
|
|
4079
|
+
action("delete", DeleteOutlineRoundedIcon, copy.nav.deleteView, () => onDeleteView(view), { danger: true })
|
|
4053
4080
|
] });
|
|
4054
4081
|
}
|
|
4055
4082
|
function ToggleContents({
|
|
@@ -4058,18 +4085,19 @@ function ToggleContents({
|
|
|
4058
4085
|
interactive,
|
|
4059
4086
|
testIdPrefix
|
|
4060
4087
|
}) {
|
|
4088
|
+
const copy = useDataViewsCopy();
|
|
4061
4089
|
return /* @__PURE__ */ jsxs18(Fragment11, { children: [
|
|
4062
|
-
/* @__PURE__ */
|
|
4063
|
-
view.dirty && /* @__PURE__ */
|
|
4090
|
+
/* @__PURE__ */ jsx25(Box, { component: "span", sx: { fontWeight: 600 }, "data-testid": `${testIdPrefix}-display-view-name`, children: view.activeViewName ?? "{copy.nav.mainView}" }),
|
|
4091
|
+
view.dirty && /* @__PURE__ */ jsx25(
|
|
4064
4092
|
Box,
|
|
4065
4093
|
{
|
|
4066
4094
|
component: "span",
|
|
4067
|
-
"aria-label":
|
|
4095
|
+
"aria-label": copy.nav.unsavedChanges,
|
|
4068
4096
|
"data-testid": `${testIdPrefix}-display-dirty`,
|
|
4069
4097
|
sx: { height: 6, width: 6, borderRadius: "50%", bgcolor: "primary.main" }
|
|
4070
4098
|
}
|
|
4071
4099
|
),
|
|
4072
|
-
interactive && /* @__PURE__ */
|
|
4100
|
+
interactive && /* @__PURE__ */ jsx25(
|
|
4073
4101
|
KeyboardArrowDownRoundedIcon2,
|
|
4074
4102
|
{
|
|
4075
4103
|
fontSize: "small",
|
|
@@ -4086,7 +4114,7 @@ function ViewToggle({
|
|
|
4086
4114
|
}) {
|
|
4087
4115
|
const interactive = Boolean(view.nav);
|
|
4088
4116
|
const affordance = interactive ? { px: 0.75, py: 0.25, cursor: "pointer", "&:hover": { bgcolor: "action.hover" } } : { px: 0, py: 0, cursor: "default" };
|
|
4089
|
-
return /* @__PURE__ */
|
|
4117
|
+
return /* @__PURE__ */ jsx25(
|
|
4090
4118
|
Box,
|
|
4091
4119
|
{
|
|
4092
4120
|
component: interactive ? "button" : "div",
|
|
@@ -4107,14 +4135,15 @@ function ViewToggle({
|
|
|
4107
4135
|
bgcolor: open ? "action.selected" : "transparent",
|
|
4108
4136
|
...affordance
|
|
4109
4137
|
},
|
|
4110
|
-
children: /* @__PURE__ */
|
|
4138
|
+
children: /* @__PURE__ */ jsx25(ToggleContents, { view, open, interactive, testIdPrefix })
|
|
4111
4139
|
}
|
|
4112
4140
|
);
|
|
4113
4141
|
}
|
|
4114
4142
|
function ViewHeader(props) {
|
|
4143
|
+
const copy = useDataViewsCopy();
|
|
4115
4144
|
return /* @__PURE__ */ jsxs18(Box, { sx: { display: "flex", alignItems: "center", gap: 1, px: 1.5, py: 1, borderBottom: 1, borderColor: "divider" }, children: [
|
|
4116
|
-
/* @__PURE__ */
|
|
4117
|
-
/* @__PURE__ */
|
|
4145
|
+
/* @__PURE__ */ jsx25(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx25(Box, { component: "span", sx: { textTransform: "uppercase", letterSpacing: 0.5, color: "text.disabled" }, children: copy.nav.label }) }),
|
|
4146
|
+
/* @__PURE__ */ jsx25(ViewToggle, { ...props })
|
|
4118
4147
|
] });
|
|
4119
4148
|
}
|
|
4120
4149
|
function ViewFooter({
|
|
@@ -4122,6 +4151,7 @@ function ViewFooter({
|
|
|
4122
4151
|
onDone,
|
|
4123
4152
|
testIdPrefix
|
|
4124
4153
|
}) {
|
|
4154
|
+
const copy = useDataViewsCopy();
|
|
4125
4155
|
return /* @__PURE__ */ jsxs18(
|
|
4126
4156
|
Box,
|
|
4127
4157
|
{
|
|
@@ -4137,21 +4167,21 @@ function ViewFooter({
|
|
|
4137
4167
|
bgcolor: "action.hover"
|
|
4138
4168
|
},
|
|
4139
4169
|
children: [
|
|
4140
|
-
/* @__PURE__ */
|
|
4170
|
+
/* @__PURE__ */ jsx25(
|
|
4141
4171
|
Button,
|
|
4142
4172
|
{
|
|
4143
4173
|
variant: "text",
|
|
4144
4174
|
size: "sm",
|
|
4145
4175
|
color: "neutral",
|
|
4146
4176
|
disabled: !view.dirty,
|
|
4147
|
-
startIcon: /* @__PURE__ */
|
|
4177
|
+
startIcon: /* @__PURE__ */ jsx25(RestartAltRoundedIcon, { fontSize: "small" }),
|
|
4148
4178
|
onClick: view.onReset,
|
|
4149
4179
|
dataTestId: `${testIdPrefix}-display-reset`,
|
|
4150
4180
|
children: "Redefinir"
|
|
4151
4181
|
}
|
|
4152
4182
|
),
|
|
4153
4183
|
/* @__PURE__ */ jsxs18(Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
4154
|
-
view.onUpdate && /* @__PURE__ */
|
|
4184
|
+
view.onUpdate && /* @__PURE__ */ jsx25(
|
|
4155
4185
|
Button,
|
|
4156
4186
|
{
|
|
4157
4187
|
variant: "text",
|
|
@@ -4165,18 +4195,18 @@ function ViewFooter({
|
|
|
4165
4195
|
children: "Salvar como nova"
|
|
4166
4196
|
}
|
|
4167
4197
|
),
|
|
4168
|
-
/* @__PURE__ */
|
|
4198
|
+
/* @__PURE__ */ jsx25(
|
|
4169
4199
|
Button,
|
|
4170
4200
|
{
|
|
4171
4201
|
size: "sm",
|
|
4172
4202
|
disabled: !view.dirty,
|
|
4173
|
-
startIcon: /* @__PURE__ */
|
|
4203
|
+
startIcon: /* @__PURE__ */ jsx25(SaveOutlinedIcon, { fontSize: "small" }),
|
|
4174
4204
|
onClick: () => {
|
|
4175
4205
|
(view.onUpdate ?? view.onSaveAs)();
|
|
4176
4206
|
onDone();
|
|
4177
4207
|
},
|
|
4178
4208
|
dataTestId: `${testIdPrefix}-display-save`,
|
|
4179
|
-
children: view.onUpdate ?
|
|
4209
|
+
children: view.onUpdate ? copy.nav.update : copy.nav.save
|
|
4180
4210
|
}
|
|
4181
4211
|
)
|
|
4182
4212
|
] })
|
|
@@ -4191,16 +4221,16 @@ import ArrowUpwardRoundedIcon2 from "@mui/icons-material/ArrowUpwardRounded";
|
|
|
4191
4221
|
import { useMediaQuery } from "@mui/material";
|
|
4192
4222
|
|
|
4193
4223
|
// src/components/data-display/DataViews/data-views-glyphs.tsx
|
|
4194
|
-
import { jsx as
|
|
4224
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
4195
4225
|
var FRAME = { width: 32, height: 24, display: "flex" };
|
|
4196
4226
|
function barColor(active) {
|
|
4197
4227
|
return active ? "primary.main" : "action.disabled";
|
|
4198
4228
|
}
|
|
4199
4229
|
function RowsGlyph({ gap, active }) {
|
|
4200
|
-
return /* @__PURE__ */
|
|
4230
|
+
return /* @__PURE__ */ jsx26(Box, { sx: { ...FRAME, flexDirection: "column", justifyContent: "center", gap: `${gap}px` }, children: [0, 1, 2].map((index) => /* @__PURE__ */ jsx26(Box, { sx: { height: 2, width: "100%", borderRadius: 1, bgcolor: barColor(active) } }, index)) });
|
|
4201
4231
|
}
|
|
4202
4232
|
function TableGlyph({ active }) {
|
|
4203
|
-
return /* @__PURE__ */
|
|
4233
|
+
return /* @__PURE__ */ jsx26(Box, { sx: { ...FRAME, display: "grid", gridTemplateColumns: "repeat(3, 1fr)", gap: "2px" }, children: Array.from({ length: 9 }).map((_, index) => /* @__PURE__ */ jsx26(
|
|
4204
4234
|
Box,
|
|
4205
4235
|
{
|
|
4206
4236
|
sx: { borderRadius: 0.5, bgcolor: barColor(active), opacity: index < 3 ? 1 : 0.55 }
|
|
@@ -4209,7 +4239,7 @@ function TableGlyph({ active }) {
|
|
|
4209
4239
|
)) });
|
|
4210
4240
|
}
|
|
4211
4241
|
function ListGlyph({ active }) {
|
|
4212
|
-
return /* @__PURE__ */
|
|
4242
|
+
return /* @__PURE__ */ jsx26(Box, { sx: { ...FRAME, flexDirection: "column", justifyContent: "center", gap: "4px" }, children: [0, 1, 2].map((index) => /* @__PURE__ */ jsx26(
|
|
4213
4243
|
Box,
|
|
4214
4244
|
{
|
|
4215
4245
|
sx: {
|
|
@@ -4221,23 +4251,23 @@ function ListGlyph({ active }) {
|
|
|
4221
4251
|
display: "flex",
|
|
4222
4252
|
alignItems: "center"
|
|
4223
4253
|
},
|
|
4224
|
-
children: /* @__PURE__ */
|
|
4254
|
+
children: /* @__PURE__ */ jsx26(Box, { sx: { ml: "2px", height: 3, width: 3, borderRadius: "50%", bgcolor: "background.paper" } })
|
|
4225
4255
|
},
|
|
4226
4256
|
index
|
|
4227
4257
|
)) });
|
|
4228
4258
|
}
|
|
4229
4259
|
function GridGlyph({ n = 3, active }) {
|
|
4230
|
-
return /* @__PURE__ */
|
|
4260
|
+
return /* @__PURE__ */ jsx26(Box, { sx: { ...FRAME, display: "grid", gridTemplateColumns: `repeat(${n}, 1fr)`, gap: "2px" }, children: Array.from({ length: n * 2 }).map((_, index) => /* @__PURE__ */ jsx26(Box, { sx: { borderRadius: 0.5, bgcolor: barColor(active) } }, index)) });
|
|
4231
4261
|
}
|
|
4232
4262
|
function ColumnsGlyph({ n, active }) {
|
|
4233
|
-
return /* @__PURE__ */
|
|
4263
|
+
return /* @__PURE__ */ jsx26(Box, { sx: { ...FRAME, gap: "2px" }, children: Array.from({ length: n }).map((_, column) => /* @__PURE__ */ jsx26(Box, { sx: { flex: 1, borderRadius: 0.5, bgcolor: barColor(active) } }, column)) });
|
|
4234
4264
|
}
|
|
4235
4265
|
function BoardGlyph({ active }) {
|
|
4236
|
-
return /* @__PURE__ */
|
|
4266
|
+
return /* @__PURE__ */ jsx26(Box, { sx: { ...FRAME, gap: "2px" }, children: [3, 2, 1].map((count, column) => /* @__PURE__ */ jsx26(Box, { sx: { flex: 1, display: "flex", flexDirection: "column", gap: "2px" }, children: Array.from({ length: count }).map((_, index) => /* @__PURE__ */ jsx26(Box, { sx: { height: 5, borderRadius: 0.5, bgcolor: barColor(active) } }, index)) }, column)) });
|
|
4237
4267
|
}
|
|
4238
4268
|
|
|
4239
4269
|
// src/components/data-display/DataViews/data-views-display-tabs.tsx
|
|
4240
|
-
import { jsx as
|
|
4270
|
+
import { jsx as jsx27, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4241
4271
|
function Tile({
|
|
4242
4272
|
active,
|
|
4243
4273
|
label,
|
|
@@ -4297,22 +4327,23 @@ function SortTab({
|
|
|
4297
4327
|
sortKinds,
|
|
4298
4328
|
testIdPrefix
|
|
4299
4329
|
}) {
|
|
4330
|
+
const copy = useDataViewsCopy();
|
|
4300
4331
|
const [ascLabel, descLabel] = directionLabels(sortKinds?.[activeField]);
|
|
4301
4332
|
return /* @__PURE__ */ jsxs19(Box, { sx: { p: 1 }, children: [
|
|
4302
|
-
/* @__PURE__ */
|
|
4303
|
-
/* @__PURE__ */
|
|
4333
|
+
/* @__PURE__ */ jsx27(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx27(Box, { component: "span", sx: { px: 0.5, color: "text.secondary" }, children: copy.display.direction }) }),
|
|
4334
|
+
/* @__PURE__ */ jsx27(Box, { sx: { display: "flex", gap: 0.75, mb: 1.5, mt: 0.5 }, children: ["asc", "desc"].map((direction, index) => /* @__PURE__ */ jsx27(
|
|
4304
4335
|
Tile,
|
|
4305
4336
|
{
|
|
4306
4337
|
active: activeOrder === direction,
|
|
4307
4338
|
label: index === 0 ? ascLabel : descLabel,
|
|
4308
4339
|
onClick: () => onChange(activeField || fields[0]?.value || "", direction),
|
|
4309
4340
|
testId: `${testIdPrefix}-sort-dir-${direction}`,
|
|
4310
|
-
children: direction === "asc" ? /* @__PURE__ */
|
|
4341
|
+
children: direction === "asc" ? /* @__PURE__ */ jsx27(ArrowUpwardRoundedIcon2, { fontSize: "small" }) : /* @__PURE__ */ jsx27(ArrowDownwardRoundedIcon2, { fontSize: "small" })
|
|
4311
4342
|
},
|
|
4312
4343
|
direction
|
|
4313
4344
|
)) }),
|
|
4314
|
-
/* @__PURE__ */
|
|
4315
|
-
fields.map((field) => /* @__PURE__ */
|
|
4345
|
+
/* @__PURE__ */ jsx27(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx27(Box, { component: "span", sx: { px: 0.5, color: "text.secondary" }, children: "Campo" }) }),
|
|
4346
|
+
fields.map((field) => /* @__PURE__ */ jsx27(
|
|
4316
4347
|
SortFieldRow,
|
|
4317
4348
|
{
|
|
4318
4349
|
label: field.label,
|
|
@@ -4356,54 +4387,36 @@ function SortFieldRow({
|
|
|
4356
4387
|
"&:hover": { bgcolor: "action.hover" }
|
|
4357
4388
|
},
|
|
4358
4389
|
children: [
|
|
4359
|
-
/* @__PURE__ */
|
|
4390
|
+
/* @__PURE__ */ jsx27(
|
|
4360
4391
|
Box,
|
|
4361
4392
|
{
|
|
4362
4393
|
component: "span",
|
|
4363
4394
|
sx: { height: 6, width: 6, borderRadius: "50%", bgcolor: active ? "primary.main" : "action.disabled" }
|
|
4364
4395
|
}
|
|
4365
4396
|
),
|
|
4366
|
-
/* @__PURE__ */
|
|
4397
|
+
/* @__PURE__ */ jsx27(Box, { component: "span", sx: { flex: 1, minWidth: 0 }, children: label })
|
|
4367
4398
|
]
|
|
4368
4399
|
}
|
|
4369
4400
|
);
|
|
4370
4401
|
}
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
list: "Uma linha por item, com os dados principais.",
|
|
4374
|
-
cards: "Blocos maiores, bom para poucos itens.",
|
|
4375
|
-
board: "Colunas por etapa, para acompanhar o que est\xE1 onde."
|
|
4376
|
-
};
|
|
4377
|
-
var DENSITY_HEADINGS = {
|
|
4378
|
-
table: "Altura das linhas",
|
|
4379
|
-
list: "Altura das linhas",
|
|
4380
|
-
cards: "Cards por linha",
|
|
4381
|
-
board: "Largura das colunas"
|
|
4382
|
-
};
|
|
4383
|
-
var DENSITY_LABELS = {
|
|
4384
|
-
table: { compact: "Baixa", cozy: "M\xE9dia", comfortable: "Alta" },
|
|
4385
|
-
list: { compact: "Baixa", cozy: "M\xE9dia", comfortable: "Alta" },
|
|
4386
|
-
cards: { compact: "Muitos", cozy: "M\xE9dio", comfortable: "Poucos" },
|
|
4387
|
-
board: { compact: "Estreita", cozy: "M\xE9dia", comfortable: "Larga" }
|
|
4388
|
-
};
|
|
4389
|
-
function densityTiles(layout) {
|
|
4390
|
-
const labels = DENSITY_LABELS[layout];
|
|
4402
|
+
function densityTiles(layout, copy) {
|
|
4403
|
+
const labels = copy.display.densityLabels[layout] ?? copy.display.densityLabels.table;
|
|
4391
4404
|
return [
|
|
4392
|
-
{ value: "compact", label: labels
|
|
4393
|
-
{ value: "cozy", label: labels
|
|
4394
|
-
{ value: "comfortable", label: labels
|
|
4405
|
+
{ value: "compact", label: labels?.compact ?? "compact", gap: 2, columns: 4 },
|
|
4406
|
+
{ value: "cozy", label: labels?.cozy ?? "cozy", gap: 5, columns: 3 },
|
|
4407
|
+
{ value: "comfortable", label: labels?.comfortable ?? "comfortable", gap: 8, columns: 2 }
|
|
4395
4408
|
];
|
|
4396
4409
|
}
|
|
4397
4410
|
function densityGlyph(layout, tile, active) {
|
|
4398
|
-
if (layout === "cards") return /* @__PURE__ */
|
|
4399
|
-
if (layout === "board") return /* @__PURE__ */
|
|
4400
|
-
return /* @__PURE__ */
|
|
4411
|
+
if (layout === "cards") return /* @__PURE__ */ jsx27(GridGlyph, { n: tile.columns, active });
|
|
4412
|
+
if (layout === "board") return /* @__PURE__ */ jsx27(ColumnsGlyph, { n: tile.columns, active });
|
|
4413
|
+
return /* @__PURE__ */ jsx27(RowsGlyph, { gap: tile.gap, active });
|
|
4401
4414
|
}
|
|
4402
4415
|
function layoutGlyph(layout, active) {
|
|
4403
|
-
if (layout === "table") return /* @__PURE__ */
|
|
4404
|
-
if (layout === "list") return /* @__PURE__ */
|
|
4405
|
-
if (layout === "cards") return /* @__PURE__ */
|
|
4406
|
-
return /* @__PURE__ */
|
|
4416
|
+
if (layout === "table") return /* @__PURE__ */ jsx27(TableGlyph, { active });
|
|
4417
|
+
if (layout === "list") return /* @__PURE__ */ jsx27(ListGlyph, { active });
|
|
4418
|
+
if (layout === "cards") return /* @__PURE__ */ jsx27(GridGlyph, { active });
|
|
4419
|
+
return /* @__PURE__ */ jsx27(BoardGlyph, { active });
|
|
4407
4420
|
}
|
|
4408
4421
|
var LAYOUT_TILE_LABELS = {
|
|
4409
4422
|
table: "Tabela",
|
|
@@ -4412,12 +4425,13 @@ var LAYOUT_TILE_LABELS = {
|
|
|
4412
4425
|
board: "Quadro"
|
|
4413
4426
|
};
|
|
4414
4427
|
function DensityTiles({ testIdPrefix }) {
|
|
4428
|
+
const copy = useDataViewsCopy();
|
|
4415
4429
|
const { layout, density, setDensity } = useDataViewsLayout();
|
|
4416
4430
|
const isOneColumn = useMediaQuery((t) => t.breakpoints.down("sm"));
|
|
4417
4431
|
if (layout === "cards" && isOneColumn) {
|
|
4418
|
-
return /* @__PURE__ */
|
|
4432
|
+
return /* @__PURE__ */ jsx27(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx27(Box, { component: "span", sx: { px: 0.5, pt: 0.5, display: "block", color: "text.disabled" }, children: copy.display.densityUnavailableNarrow }) });
|
|
4419
4433
|
}
|
|
4420
|
-
return /* @__PURE__ */
|
|
4434
|
+
return /* @__PURE__ */ jsx27(Box, { sx: { display: "grid", gridTemplateColumns: "repeat(3, 1fr)", gap: 0.75, mt: 0.5 }, children: densityTiles(layout, copy).map((tile) => /* @__PURE__ */ jsx27(
|
|
4421
4435
|
Tile,
|
|
4422
4436
|
{
|
|
4423
4437
|
active: density === tile.value,
|
|
@@ -4430,6 +4444,7 @@ function DensityTiles({ testIdPrefix }) {
|
|
|
4430
4444
|
)) });
|
|
4431
4445
|
}
|
|
4432
4446
|
function DisplayTab({ testIdPrefix }) {
|
|
4447
|
+
const copy = useDataViewsCopy();
|
|
4433
4448
|
const { layout, setLayout, canUseCards, canUseList, canUseBoard } = useDataViewsLayout();
|
|
4434
4449
|
const available = [
|
|
4435
4450
|
"table",
|
|
@@ -4438,8 +4453,8 @@ function DisplayTab({ testIdPrefix }) {
|
|
|
4438
4453
|
...canUseBoard ? ["board"] : []
|
|
4439
4454
|
];
|
|
4440
4455
|
return /* @__PURE__ */ jsxs19(Box, { sx: { p: 1 }, children: [
|
|
4441
|
-
/* @__PURE__ */
|
|
4442
|
-
/* @__PURE__ */
|
|
4456
|
+
/* @__PURE__ */ jsx27(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx27(Box, { component: "span", sx: { px: 0.5, color: "text.secondary" }, children: "Formato" }) }),
|
|
4457
|
+
/* @__PURE__ */ jsx27(
|
|
4443
4458
|
Box,
|
|
4444
4459
|
{
|
|
4445
4460
|
sx: {
|
|
@@ -4448,7 +4463,7 @@ function DisplayTab({ testIdPrefix }) {
|
|
|
4448
4463
|
gap: 0.75,
|
|
4449
4464
|
mt: 0.5
|
|
4450
4465
|
},
|
|
4451
|
-
children: available.map((value) => /* @__PURE__ */
|
|
4466
|
+
children: available.map((value) => /* @__PURE__ */ jsx27(
|
|
4452
4467
|
Tile,
|
|
4453
4468
|
{
|
|
4454
4469
|
active: layout === value,
|
|
@@ -4461,29 +4476,32 @@ function DisplayTab({ testIdPrefix }) {
|
|
|
4461
4476
|
))
|
|
4462
4477
|
}
|
|
4463
4478
|
),
|
|
4464
|
-
/* @__PURE__ */
|
|
4465
|
-
/* @__PURE__ */
|
|
4466
|
-
/* @__PURE__ */
|
|
4467
|
-
!canUseBoard && /* @__PURE__ */
|
|
4479
|
+
/* @__PURE__ */ jsx27(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx27(Box, { component: "span", sx: { px: 0.5, py: 1, display: "block", color: "text.disabled" }, children: copy.display.layoutHints[layout] }) }),
|
|
4480
|
+
/* @__PURE__ */ jsx27(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx27(Box, { component: "span", sx: { px: 0.5, color: "text.secondary" }, children: copy.display.densityHeadings[layout] }) }),
|
|
4481
|
+
/* @__PURE__ */ jsx27(DensityTiles, { testIdPrefix }),
|
|
4482
|
+
!canUseBoard && /* @__PURE__ */ jsx27(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx27(Box, { component: "span", sx: { px: 0.5, pt: 1.25, display: "block", color: "text.disabled" }, children: copy.display.boardUnavailable }) })
|
|
4468
4483
|
] });
|
|
4469
4484
|
}
|
|
4470
4485
|
|
|
4471
4486
|
// src/components/data-display/DataViews/data-views-display-panel.tsx
|
|
4472
|
-
import { Fragment as Fragment12, jsx as
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4487
|
+
import { Fragment as Fragment12, jsx as jsx28, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
4488
|
+
function displayTabs(copy) {
|
|
4489
|
+
return [
|
|
4490
|
+
{ key: "sort", label: copy.display.sortTab },
|
|
4491
|
+
{ key: "columns", label: copy.display.columnsTab },
|
|
4492
|
+
{ key: "display", label: copy.display.panelTab }
|
|
4493
|
+
];
|
|
4494
|
+
}
|
|
4478
4495
|
function PanelTabs({
|
|
4479
4496
|
tab,
|
|
4480
4497
|
onChange,
|
|
4481
4498
|
muted,
|
|
4482
4499
|
testIdPrefix
|
|
4483
4500
|
}) {
|
|
4484
|
-
|
|
4501
|
+
const copy = useDataViewsCopy();
|
|
4502
|
+
return /* @__PURE__ */ jsx28(Box, { sx: { display: "flex", gap: 0.5, p: 0.75, bgcolor: "action.hover", borderBottom: 1, borderColor: "divider" }, children: displayTabs(copy).map((entry) => {
|
|
4485
4503
|
const active = tab === entry.key && !muted;
|
|
4486
|
-
return /* @__PURE__ */
|
|
4504
|
+
return /* @__PURE__ */ jsx28(
|
|
4487
4505
|
Box,
|
|
4488
4506
|
{
|
|
4489
4507
|
component: "button",
|
|
@@ -4518,7 +4536,7 @@ function PanelBody({
|
|
|
4518
4536
|
testIdPrefix
|
|
4519
4537
|
}) {
|
|
4520
4538
|
if (tab === "sort") {
|
|
4521
|
-
return /* @__PURE__ */
|
|
4539
|
+
return /* @__PURE__ */ jsx28(
|
|
4522
4540
|
SortTab,
|
|
4523
4541
|
{
|
|
4524
4542
|
fields: c.resolvedSortFields,
|
|
@@ -4531,7 +4549,7 @@ function PanelBody({
|
|
|
4531
4549
|
);
|
|
4532
4550
|
}
|
|
4533
4551
|
if (tab === "columns") {
|
|
4534
|
-
return /* @__PURE__ */
|
|
4552
|
+
return /* @__PURE__ */ jsx28(
|
|
4535
4553
|
ColumnsTab,
|
|
4536
4554
|
{
|
|
4537
4555
|
columns: c.hideableColumns,
|
|
@@ -4545,7 +4563,7 @@ function PanelBody({
|
|
|
4545
4563
|
}
|
|
4546
4564
|
);
|
|
4547
4565
|
}
|
|
4548
|
-
return /* @__PURE__ */
|
|
4566
|
+
return /* @__PURE__ */ jsx28(DisplayTab, { testIdPrefix });
|
|
4549
4567
|
}
|
|
4550
4568
|
function PanelSurface({
|
|
4551
4569
|
c,
|
|
@@ -4563,7 +4581,7 @@ function PanelSurface({
|
|
|
4563
4581
|
testIdPrefix
|
|
4564
4582
|
}) {
|
|
4565
4583
|
return /* @__PURE__ */ jsxs20(Box, { "data-testid": `${testIdPrefix}-display-panel`, children: [
|
|
4566
|
-
view && /* @__PURE__ */
|
|
4584
|
+
view && /* @__PURE__ */ jsx28(
|
|
4567
4585
|
ViewHeader,
|
|
4568
4586
|
{
|
|
4569
4587
|
view,
|
|
@@ -4572,7 +4590,7 @@ function PanelSurface({
|
|
|
4572
4590
|
testIdPrefix
|
|
4573
4591
|
}
|
|
4574
4592
|
),
|
|
4575
|
-
/* @__PURE__ */
|
|
4593
|
+
/* @__PURE__ */ jsx28(
|
|
4576
4594
|
PanelTabs,
|
|
4577
4595
|
{
|
|
4578
4596
|
tab,
|
|
@@ -4581,7 +4599,7 @@ function PanelSurface({
|
|
|
4581
4599
|
testIdPrefix
|
|
4582
4600
|
}
|
|
4583
4601
|
),
|
|
4584
|
-
/* @__PURE__ */
|
|
4602
|
+
/* @__PURE__ */ jsx28(Box, { sx: { maxHeight: 320, minHeight: 220, overflowY: "auto" }, children: nav ? /* @__PURE__ */ jsx28(
|
|
4585
4603
|
ViewsBody,
|
|
4586
4604
|
{
|
|
4587
4605
|
nav,
|
|
@@ -4590,8 +4608,8 @@ function PanelSurface({
|
|
|
4590
4608
|
onBack,
|
|
4591
4609
|
testIdPrefix
|
|
4592
4610
|
}
|
|
4593
|
-
) : /* @__PURE__ */
|
|
4594
|
-
view && /* @__PURE__ */
|
|
4611
|
+
) : /* @__PURE__ */ jsx28(PanelBody, { tab, c, sortKinds, testIdPrefix }) }),
|
|
4612
|
+
view && /* @__PURE__ */ jsx28(ViewFooter, { view, onDone, testIdPrefix })
|
|
4595
4613
|
] });
|
|
4596
4614
|
}
|
|
4597
4615
|
function ViewsBody({
|
|
@@ -4603,9 +4621,9 @@ function ViewsBody({
|
|
|
4603
4621
|
}) {
|
|
4604
4622
|
const live = actionsFor ? nav.views.find((view) => view.id === actionsFor.id) : void 0;
|
|
4605
4623
|
if (live) {
|
|
4606
|
-
return /* @__PURE__ */
|
|
4624
|
+
return /* @__PURE__ */ jsx28(ViewActions, { view: live, handlers: nav, onBack, testIdPrefix });
|
|
4607
4625
|
}
|
|
4608
|
-
return /* @__PURE__ */
|
|
4626
|
+
return /* @__PURE__ */ jsx28(ViewsList, { handlers: nav, onOpenActions, testIdPrefix });
|
|
4609
4627
|
}
|
|
4610
4628
|
function DisplayTrigger({
|
|
4611
4629
|
dirty,
|
|
@@ -4613,7 +4631,8 @@ function DisplayTrigger({
|
|
|
4613
4631
|
onOpen,
|
|
4614
4632
|
testIdPrefix
|
|
4615
4633
|
}) {
|
|
4616
|
-
|
|
4634
|
+
const copy = useDataViewsCopy();
|
|
4635
|
+
return /* @__PURE__ */ jsx28(
|
|
4617
4636
|
Button,
|
|
4618
4637
|
{
|
|
4619
4638
|
variant: "outline",
|
|
@@ -4621,13 +4640,13 @@ function DisplayTrigger({
|
|
|
4621
4640
|
color: "neutral",
|
|
4622
4641
|
onClick: (event) => onOpen(event.currentTarget),
|
|
4623
4642
|
dataTestId: `${testIdPrefix}-display-trigger`,
|
|
4624
|
-
"aria-label":
|
|
4625
|
-
title: compact ?
|
|
4643
|
+
"aria-label": copy.display.trigger,
|
|
4644
|
+
title: compact ? copy.display.trigger : void 0,
|
|
4626
4645
|
children: /* @__PURE__ */ jsxs20(Box, { component: "span", sx: { display: "inline-flex", alignItems: "center", gap: 0.5 }, children: [
|
|
4627
|
-
/* @__PURE__ */
|
|
4628
|
-
!compact && /* @__PURE__ */
|
|
4629
|
-
dirty && /* @__PURE__ */
|
|
4630
|
-
!compact && /* @__PURE__ */
|
|
4646
|
+
/* @__PURE__ */ jsx28(DisplaySettingsRoundedIcon, { fontSize: "small" }),
|
|
4647
|
+
!compact && /* @__PURE__ */ jsx28(Box, { component: "span", sx: { display: { xs: "none", sm: "inline" } }, children: copy.display.trigger }),
|
|
4648
|
+
dirty && /* @__PURE__ */ jsx28(Box, { component: "span", sx: { height: 6, width: 6, borderRadius: "50%", bgcolor: "primary.main" } }),
|
|
4649
|
+
!compact && /* @__PURE__ */ jsx28(KeyboardArrowDownRoundedIcon3, { fontSize: "small" })
|
|
4631
4650
|
] })
|
|
4632
4651
|
}
|
|
4633
4652
|
);
|
|
@@ -4650,7 +4669,7 @@ function DataViewsDisplayPanel({
|
|
|
4650
4669
|
setActionsFor(null);
|
|
4651
4670
|
};
|
|
4652
4671
|
return /* @__PURE__ */ jsxs20(Fragment12, { children: [
|
|
4653
|
-
/* @__PURE__ */
|
|
4672
|
+
/* @__PURE__ */ jsx28(
|
|
4654
4673
|
DisplayTrigger,
|
|
4655
4674
|
{
|
|
4656
4675
|
dirty: Boolean(view?.dirty),
|
|
@@ -4659,7 +4678,7 @@ function DataViewsDisplayPanel({
|
|
|
4659
4678
|
testIdPrefix
|
|
4660
4679
|
}
|
|
4661
4680
|
),
|
|
4662
|
-
/* @__PURE__ */
|
|
4681
|
+
/* @__PURE__ */ jsx28(
|
|
4663
4682
|
Popover3,
|
|
4664
4683
|
{
|
|
4665
4684
|
open: Boolean(anchor),
|
|
@@ -4668,7 +4687,7 @@ function DataViewsDisplayPanel({
|
|
|
4668
4687
|
anchorOrigin: { vertical: "bottom", horizontal: "right" },
|
|
4669
4688
|
transformOrigin: { vertical: "top", horizontal: "right" },
|
|
4670
4689
|
slotProps: { paper: { sx: { width: 320, maxWidth: "calc(100vw - 32px)" } } },
|
|
4671
|
-
children: /* @__PURE__ */
|
|
4690
|
+
children: /* @__PURE__ */ jsx28(
|
|
4672
4691
|
PanelSurface,
|
|
4673
4692
|
{
|
|
4674
4693
|
c,
|
|
@@ -4702,12 +4721,7 @@ import DownloadRoundedIcon from "@mui/icons-material/DownloadRounded";
|
|
|
4702
4721
|
import KeyboardArrowDownRoundedIcon4 from "@mui/icons-material/KeyboardArrowDownRounded";
|
|
4703
4722
|
import { CircularProgress, Popover as Popover4 } from "@mui/material";
|
|
4704
4723
|
import { useState as useState10 } from "react";
|
|
4705
|
-
import { Fragment as Fragment13, jsx as
|
|
4706
|
-
var FORMAT_COPY = {
|
|
4707
|
-
xlsx: { label: "Excel (.xlsx)", hint: "Abre direto, com as colunas dimensionadas" },
|
|
4708
|
-
csv: { label: "CSV (.csv)", hint: "Para importar em outro sistema" },
|
|
4709
|
-
json: { label: "JSON (.json)", hint: "Para integra\xE7\xF5es" }
|
|
4710
|
-
};
|
|
4724
|
+
import { Fragment as Fragment13, jsx as jsx29, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
4711
4725
|
var ALL_FORMATS = ["xlsx", "csv", "json"];
|
|
4712
4726
|
function scopeLabel(selected, total) {
|
|
4713
4727
|
if (selected > 0) {
|
|
@@ -4721,7 +4735,8 @@ function ExportTrigger({
|
|
|
4721
4735
|
testIdPrefix,
|
|
4722
4736
|
compact
|
|
4723
4737
|
}) {
|
|
4724
|
-
|
|
4738
|
+
const copy = useDataViewsCopy();
|
|
4739
|
+
return /* @__PURE__ */ jsx29(
|
|
4725
4740
|
Button,
|
|
4726
4741
|
{
|
|
4727
4742
|
variant: "outline",
|
|
@@ -4730,12 +4745,12 @@ function ExportTrigger({
|
|
|
4730
4745
|
disabled: busy,
|
|
4731
4746
|
onClick: (event) => onOpen(event.currentTarget),
|
|
4732
4747
|
dataTestId: `${testIdPrefix}-export-trigger`,
|
|
4733
|
-
"aria-label":
|
|
4734
|
-
title: compact ?
|
|
4748
|
+
"aria-label": copy.export.trigger,
|
|
4749
|
+
title: compact ? copy.export.trigger : void 0,
|
|
4735
4750
|
children: /* @__PURE__ */ jsxs21(Box, { component: "span", sx: { display: "inline-flex", alignItems: "center", gap: 0.5 }, children: [
|
|
4736
|
-
busy ? /* @__PURE__ */
|
|
4737
|
-
!compact && /* @__PURE__ */
|
|
4738
|
-
!compact && /* @__PURE__ */
|
|
4751
|
+
busy ? /* @__PURE__ */ jsx29(CircularProgress, { size: 14 }) : /* @__PURE__ */ jsx29(DownloadRoundedIcon, { fontSize: "small" }),
|
|
4752
|
+
!compact && /* @__PURE__ */ jsx29(Box, { component: "span", sx: { display: { xs: "none", sm: "inline" } }, children: "Exportar" }),
|
|
4753
|
+
!compact && /* @__PURE__ */ jsx29(KeyboardArrowDownRoundedIcon4, { fontSize: "small" })
|
|
4739
4754
|
] })
|
|
4740
4755
|
}
|
|
4741
4756
|
);
|
|
@@ -4745,6 +4760,7 @@ function FormatRow({
|
|
|
4745
4760
|
onPick,
|
|
4746
4761
|
testIdPrefix
|
|
4747
4762
|
}) {
|
|
4763
|
+
const copy = useDataViewsCopy();
|
|
4748
4764
|
return /* @__PURE__ */ jsxs21(
|
|
4749
4765
|
Box,
|
|
4750
4766
|
{
|
|
@@ -4767,8 +4783,8 @@ function FormatRow({
|
|
|
4767
4783
|
"&:hover": { bgcolor: "action.hover" }
|
|
4768
4784
|
},
|
|
4769
4785
|
children: [
|
|
4770
|
-
/* @__PURE__ */
|
|
4771
|
-
/* @__PURE__ */
|
|
4786
|
+
/* @__PURE__ */ jsx29(Box, { component: "span", sx: { fontSize: "0.8125rem" }, children: copy.export.formats[format]?.label ?? format }),
|
|
4787
|
+
/* @__PURE__ */ jsx29(Box, { component: "span", sx: { fontSize: "0.6875rem", color: "text.disabled" }, children: copy.export.formats[format]?.hint ?? "" })
|
|
4772
4788
|
]
|
|
4773
4789
|
}
|
|
4774
4790
|
);
|
|
@@ -4781,18 +4797,16 @@ function ExportPanel({
|
|
|
4781
4797
|
onPick,
|
|
4782
4798
|
testIdPrefix
|
|
4783
4799
|
}) {
|
|
4800
|
+
const copy = useDataViewsCopy();
|
|
4784
4801
|
return /* @__PURE__ */ jsxs21(Box, { "data-testid": `${testIdPrefix}-export-panel`, children: [
|
|
4785
4802
|
/* @__PURE__ */ jsxs21(Box, { sx: { px: 1.5, pt: 1, pb: 1, borderBottom: 1, borderColor: "divider" }, children: [
|
|
4786
|
-
/* @__PURE__ */
|
|
4803
|
+
/* @__PURE__ */ jsx29(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsxs21(Box, { component: "span", "data-testid": `${testIdPrefix}-export-scope`, children: [
|
|
4787
4804
|
"Exportando ",
|
|
4788
4805
|
scopeLabel(selectedCount, totalCount)
|
|
4789
4806
|
] }) }),
|
|
4790
|
-
/* @__PURE__ */
|
|
4791
|
-
columnCount,
|
|
4792
|
-
" colunas vis\xEDveis, na ordem atual"
|
|
4793
|
-
] }) })
|
|
4807
|
+
/* @__PURE__ */ jsx29(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx29(Box, { component: "span", sx: { color: "text.disabled" }, children: copy.export.visibleColumns(columnCount) }) })
|
|
4794
4808
|
] }),
|
|
4795
|
-
formats.map((format) => /* @__PURE__ */
|
|
4809
|
+
formats.map((format) => /* @__PURE__ */ jsx29(
|
|
4796
4810
|
FormatRow,
|
|
4797
4811
|
{
|
|
4798
4812
|
format,
|
|
@@ -4831,8 +4845,8 @@ function DataViewsExportMenu({
|
|
|
4831
4845
|
}
|
|
4832
4846
|
};
|
|
4833
4847
|
return /* @__PURE__ */ jsxs21(Fragment13, { children: [
|
|
4834
|
-
/* @__PURE__ */
|
|
4835
|
-
/* @__PURE__ */
|
|
4848
|
+
/* @__PURE__ */ jsx29(ExportTrigger, { busy, onOpen: setAnchor, testIdPrefix, compact }),
|
|
4849
|
+
/* @__PURE__ */ jsx29(
|
|
4836
4850
|
Popover4,
|
|
4837
4851
|
{
|
|
4838
4852
|
open: Boolean(anchor),
|
|
@@ -4841,7 +4855,7 @@ function DataViewsExportMenu({
|
|
|
4841
4855
|
anchorOrigin: { vertical: "bottom", horizontal: "right" },
|
|
4842
4856
|
transformOrigin: { vertical: "top", horizontal: "right" },
|
|
4843
4857
|
slotProps: { paper: { sx: { width: 260, maxWidth: "calc(100vw - 32px)" } } },
|
|
4844
|
-
children: /* @__PURE__ */
|
|
4858
|
+
children: /* @__PURE__ */ jsx29(
|
|
4845
4859
|
ExportPanel,
|
|
4846
4860
|
{
|
|
4847
4861
|
formats: config.formats ?? ALL_FORMATS,
|
|
@@ -4858,12 +4872,12 @@ function DataViewsExportMenu({
|
|
|
4858
4872
|
}
|
|
4859
4873
|
|
|
4860
4874
|
// src/components/data-display/DataViews/data-views-toolbar.tsx
|
|
4861
|
-
import { Fragment as Fragment14, jsx as
|
|
4875
|
+
import { Fragment as Fragment14, jsx as jsx30, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4862
4876
|
function ToolbarRightControls(props) {
|
|
4863
4877
|
const { testIdPrefix, matchedCount, totalCount, filterOpen, setFilterOpen } = props;
|
|
4864
4878
|
return /* @__PURE__ */ jsxs22(Fragment14, { children: [
|
|
4865
4879
|
!props.counterHidden && /* @__PURE__ */ jsxs22(Fragment14, { children: [
|
|
4866
|
-
/* @__PURE__ */
|
|
4880
|
+
/* @__PURE__ */ jsx30(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsxs22(
|
|
4867
4881
|
Box,
|
|
4868
4882
|
{
|
|
4869
4883
|
component: "span",
|
|
@@ -4876,7 +4890,7 @@ function ToolbarRightControls(props) {
|
|
|
4876
4890
|
]
|
|
4877
4891
|
}
|
|
4878
4892
|
) }),
|
|
4879
|
-
/* @__PURE__ */
|
|
4893
|
+
/* @__PURE__ */ jsx30(
|
|
4880
4894
|
Divider,
|
|
4881
4895
|
{
|
|
4882
4896
|
orientation: "vertical",
|
|
@@ -4886,7 +4900,7 @@ function ToolbarRightControls(props) {
|
|
|
4886
4900
|
)
|
|
4887
4901
|
] }),
|
|
4888
4902
|
props.toolbarRightSlot,
|
|
4889
|
-
/* @__PURE__ */
|
|
4903
|
+
/* @__PURE__ */ jsx30(
|
|
4890
4904
|
DataViewsDisplayPanel,
|
|
4891
4905
|
{
|
|
4892
4906
|
c: props.c,
|
|
@@ -4896,7 +4910,7 @@ function ToolbarRightControls(props) {
|
|
|
4896
4910
|
compact: props.compactControls
|
|
4897
4911
|
}
|
|
4898
4912
|
),
|
|
4899
|
-
props.exportConfig && /* @__PURE__ */
|
|
4913
|
+
props.exportConfig && /* @__PURE__ */ jsx30(
|
|
4900
4914
|
DataViewsExportMenu,
|
|
4901
4915
|
{
|
|
4902
4916
|
config: props.exportConfig,
|
|
@@ -4908,7 +4922,7 @@ function ToolbarRightControls(props) {
|
|
|
4908
4922
|
compact: props.compactControls
|
|
4909
4923
|
}
|
|
4910
4924
|
),
|
|
4911
|
-
props.showFilterTrigger !== false && /* @__PURE__ */
|
|
4925
|
+
props.showFilterTrigger !== false && /* @__PURE__ */ jsx30(
|
|
4912
4926
|
FilterTrigger,
|
|
4913
4927
|
{
|
|
4914
4928
|
open: filterOpen,
|
|
@@ -4921,7 +4935,7 @@ function ToolbarRightControls(props) {
|
|
|
4921
4935
|
}
|
|
4922
4936
|
function GridToolbar(props) {
|
|
4923
4937
|
const { testIdPrefix, selectedRows } = props;
|
|
4924
|
-
return /* @__PURE__ */
|
|
4938
|
+
return /* @__PURE__ */ jsx30(
|
|
4925
4939
|
Box,
|
|
4926
4940
|
{
|
|
4927
4941
|
ref: props.barRef,
|
|
@@ -4933,7 +4947,7 @@ function GridToolbar(props) {
|
|
|
4933
4947
|
mx: { xs: -2, md: -3 },
|
|
4934
4948
|
px: { xs: 2, md: 3 }
|
|
4935
4949
|
},
|
|
4936
|
-
children: /* @__PURE__ */
|
|
4950
|
+
children: /* @__PURE__ */ jsx30(
|
|
4937
4951
|
ContentToolbar,
|
|
4938
4952
|
{
|
|
4939
4953
|
hasSelection: selectedRows.length > 0,
|
|
@@ -4951,7 +4965,7 @@ function GridToolbar(props) {
|
|
|
4951
4965
|
}),
|
|
4952
4966
|
leadingControls: props.filterControls,
|
|
4953
4967
|
exclusiveSelection: true,
|
|
4954
|
-
rightControls: /* @__PURE__ */
|
|
4968
|
+
rightControls: /* @__PURE__ */ jsx30(ToolbarRightControls, { ...props })
|
|
4955
4969
|
}
|
|
4956
4970
|
)
|
|
4957
4971
|
}
|
|
@@ -4959,7 +4973,7 @@ function GridToolbar(props) {
|
|
|
4959
4973
|
}
|
|
4960
4974
|
|
|
4961
4975
|
// src/components/data-display/DataViews/data-views-shell-toolbar.tsx
|
|
4962
|
-
import { jsx as
|
|
4976
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
4963
4977
|
function ShellToolbar({
|
|
4964
4978
|
c,
|
|
4965
4979
|
rows,
|
|
@@ -4981,7 +4995,7 @@ function ShellToolbar({
|
|
|
4981
4995
|
label: col.label,
|
|
4982
4996
|
visible: c.state.visibleColumns.includes(col.id)
|
|
4983
4997
|
}));
|
|
4984
|
-
return /* @__PURE__ */
|
|
4998
|
+
return /* @__PURE__ */ jsx31(
|
|
4985
4999
|
GridToolbar,
|
|
4986
5000
|
{
|
|
4987
5001
|
c,
|
|
@@ -5018,7 +5032,7 @@ function ShellToolbar({
|
|
|
5018
5032
|
// src/components/data-display/DataViews/data-views-empty.tsx
|
|
5019
5033
|
import FilterAltOffRoundedIcon2 from "@mui/icons-material/FilterAltOffRounded";
|
|
5020
5034
|
import InboxRoundedIcon from "@mui/icons-material/InboxRounded";
|
|
5021
|
-
import { Fragment as Fragment15, jsx as
|
|
5035
|
+
import { Fragment as Fragment15, jsx as jsx32, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
5022
5036
|
function DataViewsEmpty({
|
|
5023
5037
|
filtered,
|
|
5024
5038
|
onClearFilters,
|
|
@@ -5039,7 +5053,7 @@ function DataViewsEmpty({
|
|
|
5039
5053
|
px: 2
|
|
5040
5054
|
},
|
|
5041
5055
|
children: [
|
|
5042
|
-
/* @__PURE__ */
|
|
5056
|
+
/* @__PURE__ */ jsx32(
|
|
5043
5057
|
Box,
|
|
5044
5058
|
{
|
|
5045
5059
|
sx: {
|
|
@@ -5050,13 +5064,13 @@ function DataViewsEmpty({
|
|
|
5050
5064
|
bgcolor: "action.hover",
|
|
5051
5065
|
color: "text.disabled"
|
|
5052
5066
|
},
|
|
5053
|
-
children: /* @__PURE__ */
|
|
5067
|
+
children: /* @__PURE__ */ jsx32(Icon, {})
|
|
5054
5068
|
}
|
|
5055
5069
|
),
|
|
5056
5070
|
filtered ? /* @__PURE__ */ jsxs23(Fragment15, { children: [
|
|
5057
|
-
/* @__PURE__ */
|
|
5058
|
-
/* @__PURE__ */
|
|
5059
|
-
/* @__PURE__ */
|
|
5071
|
+
/* @__PURE__ */ jsx32(Text, { variant: "body", as: "p", children: /* @__PURE__ */ jsx32(Box, { component: "span", sx: { fontWeight: 600 }, children: "Nenhum resultado para esses filtros" }) }),
|
|
5072
|
+
/* @__PURE__ */ jsx32(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx32(Box, { component: "span", sx: { display: "block", mt: 0.5, mb: 2, color: "text.secondary", maxWidth: 380 }, children: "Ajuste ou remova os filtros." }) }),
|
|
5073
|
+
/* @__PURE__ */ jsx32(
|
|
5060
5074
|
Button,
|
|
5061
5075
|
{
|
|
5062
5076
|
variant: "outline",
|
|
@@ -5078,13 +5092,13 @@ function DataViewsEmpty({
|
|
|
5078
5092
|
}
|
|
5079
5093
|
|
|
5080
5094
|
// src/components/data-display/DataViews/data-views-pagination.tsx
|
|
5081
|
-
import { jsx as
|
|
5095
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
5082
5096
|
function DataViewsPagination({
|
|
5083
5097
|
c,
|
|
5084
5098
|
testIdPrefix
|
|
5085
5099
|
}) {
|
|
5086
5100
|
if (!c.serverMode || c.serverPageCount <= 1) return null;
|
|
5087
|
-
return /* @__PURE__ */
|
|
5101
|
+
return /* @__PURE__ */ jsx33(Box, { sx: { mt: 2, display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsx33(
|
|
5088
5102
|
Pagination,
|
|
5089
5103
|
{
|
|
5090
5104
|
page: c.serverPage,
|
|
@@ -5097,7 +5111,7 @@ function DataViewsPagination({
|
|
|
5097
5111
|
|
|
5098
5112
|
// src/components/data-display/DataViews/data-views-scopes.tsx
|
|
5099
5113
|
import { useEffect as useEffect4, useMemo as useMemo2, useRef as useRef3 } from "react";
|
|
5100
|
-
import { jsx as
|
|
5114
|
+
import { jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
5101
5115
|
function resolveScope(scopes, stored) {
|
|
5102
5116
|
if (scopes.length === 0) return void 0;
|
|
5103
5117
|
const declared = stored !== void 0 && scopes.some((scope) => scope.id === stored);
|
|
@@ -5172,7 +5186,7 @@ function ScopeCount({
|
|
|
5172
5186
|
active,
|
|
5173
5187
|
testId
|
|
5174
5188
|
}) {
|
|
5175
|
-
return /* @__PURE__ */
|
|
5189
|
+
return /* @__PURE__ */ jsx34(
|
|
5176
5190
|
Box,
|
|
5177
5191
|
{
|
|
5178
5192
|
component: "span",
|
|
@@ -5222,7 +5236,7 @@ function ScopeTab({
|
|
|
5222
5236
|
sx: scopeTabSx(active),
|
|
5223
5237
|
children: [
|
|
5224
5238
|
scope.label,
|
|
5225
|
-
count !== void 0 && /* @__PURE__ */
|
|
5239
|
+
count !== void 0 && /* @__PURE__ */ jsx34(
|
|
5226
5240
|
ScopeCount,
|
|
5227
5241
|
{
|
|
5228
5242
|
count,
|
|
@@ -5255,6 +5269,7 @@ function DataViewsScopeTabs({
|
|
|
5255
5269
|
counts,
|
|
5256
5270
|
testIdPrefix
|
|
5257
5271
|
}) {
|
|
5272
|
+
const copy = useDataViewsCopy();
|
|
5258
5273
|
const stripRef = useScrollActiveIntoView(value);
|
|
5259
5274
|
const moveTo = (index) => {
|
|
5260
5275
|
stripRef.current?.querySelectorAll('[role="tab"]')?.[index]?.focus();
|
|
@@ -5266,7 +5281,7 @@ function DataViewsScopeTabs({
|
|
|
5266
5281
|
0,
|
|
5267
5282
|
scopes.findIndex((scope) => scope.id === value)
|
|
5268
5283
|
);
|
|
5269
|
-
return /* @__PURE__ */
|
|
5284
|
+
return /* @__PURE__ */ jsx34(Box, { ref: stripRef, role: "tablist", "aria-label": copy.filters.scopesLabel, "data-testid": `${testIdPrefix}-scopes`, sx: STRIP_SX, children: scopes.map((scope, index) => /* @__PURE__ */ jsx34(
|
|
5270
5285
|
ScopeTab,
|
|
5271
5286
|
{
|
|
5272
5287
|
scope,
|
|
@@ -5283,7 +5298,7 @@ function DataViewsScopeTabs({
|
|
|
5283
5298
|
}
|
|
5284
5299
|
|
|
5285
5300
|
// src/components/data-display/DataViews/data-views-scope-tabs.tsx
|
|
5286
|
-
import { jsx as
|
|
5301
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
5287
5302
|
function ScopeTabsSlot({
|
|
5288
5303
|
scopes,
|
|
5289
5304
|
scopeFieldId,
|
|
@@ -5296,7 +5311,7 @@ function ScopeTabsSlot({
|
|
|
5296
5311
|
const { layout } = useDataViewsLayout();
|
|
5297
5312
|
const boardOwnsThisPartition = layout === "board" && Boolean(scopeFieldId) && scopeFieldId === board?.groupBy;
|
|
5298
5313
|
if (boardOwnsThisPartition) return null;
|
|
5299
|
-
return /* @__PURE__ */
|
|
5314
|
+
return /* @__PURE__ */ jsx35(
|
|
5300
5315
|
DataViewsScopeTabs,
|
|
5301
5316
|
{
|
|
5302
5317
|
scopes,
|
|
@@ -5309,7 +5324,7 @@ function ScopeTabsSlot({
|
|
|
5309
5324
|
}
|
|
5310
5325
|
|
|
5311
5326
|
// src/components/data-display/DataViews/data-views-grid-parts.tsx
|
|
5312
|
-
import { jsx as
|
|
5327
|
+
import { jsx as jsx36, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
5313
5328
|
function GridHeaderRow({
|
|
5314
5329
|
title,
|
|
5315
5330
|
headerActions,
|
|
@@ -5329,8 +5344,8 @@ function GridHeaderRow({
|
|
|
5329
5344
|
pb: 1.5
|
|
5330
5345
|
},
|
|
5331
5346
|
children: [
|
|
5332
|
-
title ? /* @__PURE__ */
|
|
5333
|
-
headerActions && /* @__PURE__ */
|
|
5347
|
+
title ? /* @__PURE__ */ jsx36(Text, { variant: "heading", size: "lg", as: "h2", children: title }) : /* @__PURE__ */ jsx36(Box, {}),
|
|
5348
|
+
headerActions && /* @__PURE__ */ jsx36(Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: headerActions })
|
|
5334
5349
|
]
|
|
5335
5350
|
}
|
|
5336
5351
|
);
|
|
@@ -5394,7 +5409,7 @@ function ShellStack({
|
|
|
5394
5409
|
}) {
|
|
5395
5410
|
const { c, testIdPrefix, dataTestId, scopes = [], emptyState, inlineFilters = false } = props;
|
|
5396
5411
|
const { showInline, useModal, inlineVisible, filterProps, split, onControlOpenChange } = filters;
|
|
5397
|
-
const body = /* @__PURE__ */
|
|
5412
|
+
const body = /* @__PURE__ */ jsx36(
|
|
5398
5413
|
DataViewsEmpty,
|
|
5399
5414
|
{
|
|
5400
5415
|
filtered: c.activeFilterCount > 0 || c.state.search !== "",
|
|
@@ -5403,9 +5418,9 @@ function ShellStack({
|
|
|
5403
5418
|
testIdPrefix
|
|
5404
5419
|
}
|
|
5405
5420
|
);
|
|
5406
|
-
return /* @__PURE__ */
|
|
5407
|
-
/* @__PURE__ */
|
|
5408
|
-
/* @__PURE__ */
|
|
5421
|
+
return /* @__PURE__ */ jsx36(TableFilter, { open: c.filterOpen, onOpenChange: c.setFilterOpen, hasActiveFilters: c.activeFilterCount > 0, children: /* @__PURE__ */ jsxs25(Stack, { spacing: 0, "data-testid": dataTestId ? `${dataTestId}-container` : void 0, children: [
|
|
5422
|
+
/* @__PURE__ */ jsx36(GridHeaderRow, { title: props.title, headerActions: props.headerActions, testIdPrefix }),
|
|
5423
|
+
/* @__PURE__ */ jsx36(
|
|
5409
5424
|
ShellToolbar,
|
|
5410
5425
|
{
|
|
5411
5426
|
c,
|
|
@@ -5413,7 +5428,7 @@ function ShellStack({
|
|
|
5413
5428
|
sortKinds: props.sortKinds,
|
|
5414
5429
|
displayView: props.displayView,
|
|
5415
5430
|
exportConfig: props.exportConfig,
|
|
5416
|
-
filterControls: inlineVisible ? /* @__PURE__ */
|
|
5431
|
+
filterControls: inlineVisible ? /* @__PURE__ */ jsx36(
|
|
5417
5432
|
InlineFilterControls,
|
|
5418
5433
|
{
|
|
5419
5434
|
...filterProps,
|
|
@@ -5432,7 +5447,7 @@ function ShellStack({
|
|
|
5432
5447
|
showInline
|
|
5433
5448
|
}
|
|
5434
5449
|
),
|
|
5435
|
-
/* @__PURE__ */
|
|
5450
|
+
/* @__PURE__ */ jsx36(
|
|
5436
5451
|
ScopeTabsSlot,
|
|
5437
5452
|
{
|
|
5438
5453
|
scopes,
|
|
@@ -5446,7 +5461,7 @@ function ShellStack({
|
|
|
5446
5461
|
),
|
|
5447
5462
|
/* @__PURE__ */ jsxs25(TableFilter.Layout, { children: [
|
|
5448
5463
|
/* @__PURE__ */ jsxs25(TableFilter.Main, { children: [
|
|
5449
|
-
/* @__PURE__ */
|
|
5464
|
+
/* @__PURE__ */ jsx36(
|
|
5450
5465
|
GridMain,
|
|
5451
5466
|
{
|
|
5452
5467
|
c,
|
|
@@ -5460,11 +5475,11 @@ function ShellStack({
|
|
|
5460
5475
|
emptyState: body
|
|
5461
5476
|
}
|
|
5462
5477
|
),
|
|
5463
|
-
/* @__PURE__ */
|
|
5478
|
+
/* @__PURE__ */ jsx36(DataViewsPagination, { c, testIdPrefix })
|
|
5464
5479
|
] }),
|
|
5465
|
-
inlineFilters ? null : /* @__PURE__ */
|
|
5480
|
+
inlineFilters ? null : /* @__PURE__ */ jsx36(GridFilterPanel, { ...filterProps })
|
|
5466
5481
|
] }),
|
|
5467
|
-
useModal && /* @__PURE__ */
|
|
5482
|
+
useModal && /* @__PURE__ */ jsx36(FilterDialog, { open: c.filterOpen, onClose: () => c.setFilterOpen(false), ...filterProps })
|
|
5468
5483
|
] }) });
|
|
5469
5484
|
}
|
|
5470
5485
|
function GridShell(props) {
|
|
@@ -5500,8 +5515,8 @@ function GridShell(props) {
|
|
|
5500
5515
|
ignoreStoredLayout,
|
|
5501
5516
|
viewLayout: c.state.layout,
|
|
5502
5517
|
children: [
|
|
5503
|
-
/* @__PURE__ */
|
|
5504
|
-
/* @__PURE__ */
|
|
5518
|
+
/* @__PURE__ */ jsx36(LayoutStateSync, { c }),
|
|
5519
|
+
/* @__PURE__ */ jsx36(ShellStack, { props, filters })
|
|
5505
5520
|
]
|
|
5506
5521
|
}
|
|
5507
5522
|
);
|
|
@@ -5833,7 +5848,7 @@ function useDataViewsState({
|
|
|
5833
5848
|
}
|
|
5834
5849
|
|
|
5835
5850
|
// src/components/data-display/DataViews/DataViewsGrid.tsx
|
|
5836
|
-
import { jsx as
|
|
5851
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
5837
5852
|
function useVisibleRowsNotifier(matched, onVisibleRowsChange) {
|
|
5838
5853
|
const visibleSignature = JSON.stringify(matched);
|
|
5839
5854
|
const lastSignature = useRef6(null);
|
|
@@ -5847,11 +5862,11 @@ function DataViewsGrid(props) {
|
|
|
5847
5862
|
const { rangeFields = [], testIdPrefix = "table" } = props;
|
|
5848
5863
|
const controller = useDataViewsState({ ...props, rangeFields, testIdPrefix });
|
|
5849
5864
|
useVisibleRowsNotifier(controller.matched, props.onVisibleRowsChange);
|
|
5850
|
-
return /* @__PURE__ */
|
|
5865
|
+
return /* @__PURE__ */ jsx37(GridShell, { ...props, c: controller, rangeFields, testIdPrefix });
|
|
5851
5866
|
}
|
|
5852
5867
|
|
|
5853
5868
|
// src/components/data-display/DataViews/DataViewsTableBase.tsx
|
|
5854
|
-
import { useEffect as useEffect9, useMemo as
|
|
5869
|
+
import { useEffect as useEffect9, useMemo as useMemo7, useRef as useRef8, useState as useState16 } from "react";
|
|
5855
5870
|
|
|
5856
5871
|
// src/components/data-display/DataViews/data-views-dirty.ts
|
|
5857
5872
|
function isSet(range) {
|
|
@@ -5887,7 +5902,7 @@ function viewStateKey(state) {
|
|
|
5887
5902
|
}
|
|
5888
5903
|
|
|
5889
5904
|
// src/components/data-display/DataViews/DeleteViewDialog.tsx
|
|
5890
|
-
import { jsx as
|
|
5905
|
+
import { jsx as jsx38, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
5891
5906
|
function DeleteViewDialog({
|
|
5892
5907
|
view,
|
|
5893
5908
|
onClose,
|
|
@@ -5896,29 +5911,27 @@ function DeleteViewDialog({
|
|
|
5896
5911
|
entityLabel = "Os registros",
|
|
5897
5912
|
testIdPrefix = "view"
|
|
5898
5913
|
}) {
|
|
5914
|
+
const copy = useDataViewsCopy();
|
|
5899
5915
|
if (!view) return null;
|
|
5900
|
-
return /* @__PURE__ */
|
|
5916
|
+
return /* @__PURE__ */ jsx38(
|
|
5901
5917
|
Dialog,
|
|
5902
5918
|
{
|
|
5903
5919
|
open: true,
|
|
5904
5920
|
onClose,
|
|
5905
|
-
title:
|
|
5921
|
+
title: copy.deleteView.title,
|
|
5906
5922
|
size: "sm",
|
|
5907
5923
|
showCloseButton: true,
|
|
5908
5924
|
dataTestId: `${testIdPrefix}-delete-modal`,
|
|
5909
|
-
children: /* @__PURE__ */
|
|
5925
|
+
children: /* @__PURE__ */ jsx38(DialogContent, { children: /* @__PURE__ */ jsxs26(Stack, { spacing: 1.5, children: [
|
|
5910
5926
|
/* @__PURE__ */ jsxs26(Text, { variant: "body", as: "p", "data-testid": `${testIdPrefix}-delete-target`, children: [
|
|
5911
5927
|
"Excluir ",
|
|
5912
|
-
/* @__PURE__ */
|
|
5928
|
+
/* @__PURE__ */ jsx38("strong", { children: view.name }),
|
|
5913
5929
|
"?"
|
|
5914
5930
|
] }),
|
|
5915
|
-
view.shared && /* @__PURE__ */
|
|
5916
|
-
/* @__PURE__ */
|
|
5917
|
-
entityLabel,
|
|
5918
|
-
" n\xE3o s\xE3o afetados; apenas o recorte salvo \xE9 removido."
|
|
5919
|
-
] }),
|
|
5931
|
+
view.shared && /* @__PURE__ */ jsx38(Text, { variant: "body", color: "warning", as: "p", "data-testid": `${testIdPrefix}-delete-shared`, children: copy.deleteView.sharedWarning }),
|
|
5932
|
+
/* @__PURE__ */ jsx38(Text, { variant: "body", color: "secondary", as: "p", children: copy.deleteView.rowsUnaffected(entityLabel) }),
|
|
5920
5933
|
/* @__PURE__ */ jsxs26(Stack, { direction: "row", spacing: 1.5, sx: { justifyContent: "flex-end", pt: 0.5 }, children: [
|
|
5921
|
-
/* @__PURE__ */
|
|
5934
|
+
/* @__PURE__ */ jsx38(
|
|
5922
5935
|
Button,
|
|
5923
5936
|
{
|
|
5924
5937
|
variant: "text",
|
|
@@ -5928,13 +5941,13 @@ function DeleteViewDialog({
|
|
|
5928
5941
|
children: "Cancelar"
|
|
5929
5942
|
}
|
|
5930
5943
|
),
|
|
5931
|
-
/* @__PURE__ */
|
|
5944
|
+
/* @__PURE__ */ jsx38(
|
|
5932
5945
|
Button,
|
|
5933
5946
|
{
|
|
5934
5947
|
color: "danger",
|
|
5935
5948
|
onClick: () => onConfirm(view),
|
|
5936
5949
|
dataTestId: `${testIdPrefix}-delete-confirm`,
|
|
5937
|
-
children:
|
|
5950
|
+
children: copy.deleteView.confirm
|
|
5938
5951
|
}
|
|
5939
5952
|
)
|
|
5940
5953
|
] })
|
|
@@ -5944,21 +5957,29 @@ function DeleteViewDialog({
|
|
|
5944
5957
|
}
|
|
5945
5958
|
|
|
5946
5959
|
// src/components/data-display/DataViews/ManageViewsDialog.tsx
|
|
5947
|
-
import {
|
|
5960
|
+
import { useMemo as useMemo6 } from "react";
|
|
5961
|
+
import { jsx as jsx39, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
5948
5962
|
function tags(view) {
|
|
5963
|
+
const copy = useDataViewsCopy();
|
|
5949
5964
|
const list = [];
|
|
5950
|
-
if (view.isDefault) list.push(
|
|
5965
|
+
if (view.isDefault) list.push(copy.manageViews.defaultTag);
|
|
5951
5966
|
if (view.pinned) list.push("Fixada");
|
|
5952
5967
|
if (view.shared) list.push("Compartilhada");
|
|
5953
|
-
if (!view.isOwner) list.push(
|
|
5968
|
+
if (!view.isOwner) list.push(copy.manageViews.otherUserTag);
|
|
5954
5969
|
return list;
|
|
5955
5970
|
}
|
|
5956
5971
|
function ManageViewRow({
|
|
5957
5972
|
view,
|
|
5958
5973
|
onEdit,
|
|
5959
5974
|
onDelete,
|
|
5960
|
-
testIdPrefix
|
|
5975
|
+
testIdPrefix,
|
|
5976
|
+
confirmCopy
|
|
5961
5977
|
}) {
|
|
5978
|
+
const ConfirmButton = useMemo6(
|
|
5979
|
+
() => createConfirmButton(confirmCopy, confirmCopy.defaultError),
|
|
5980
|
+
[confirmCopy]
|
|
5981
|
+
);
|
|
5982
|
+
const copy = useDataViewsCopy();
|
|
5962
5983
|
return /* @__PURE__ */ jsxs27(
|
|
5963
5984
|
Stack,
|
|
5964
5985
|
{
|
|
@@ -5968,12 +5989,12 @@ function ManageViewRow({
|
|
|
5968
5989
|
"data-testid": `${testIdPrefix}-manage-row-${view.id}`,
|
|
5969
5990
|
children: [
|
|
5970
5991
|
/* @__PURE__ */ jsxs27(Box, { sx: { minWidth: 0 }, children: [
|
|
5971
|
-
/* @__PURE__ */
|
|
5972
|
-
view.description && /* @__PURE__ */
|
|
5973
|
-
tags(view).length > 0 && /* @__PURE__ */
|
|
5992
|
+
/* @__PURE__ */ jsx39(Text, { variant: "body", size: "sm", as: "span", weight: "semibold", children: view.name }),
|
|
5993
|
+
view.description && /* @__PURE__ */ jsx39(Text, { variant: "caption", as: "p", color: "secondary", children: view.description }),
|
|
5994
|
+
tags(view).length > 0 && /* @__PURE__ */ jsx39(Text, { variant: "caption", as: "p", color: "secondary", children: tags(view).join(" \xB7 ") })
|
|
5974
5995
|
] }),
|
|
5975
5996
|
view.isOwner && /* @__PURE__ */ jsxs27(Stack, { direction: "row", spacing: 1, sx: { flex: "0 0 auto" }, children: [
|
|
5976
|
-
/* @__PURE__ */
|
|
5997
|
+
/* @__PURE__ */ jsx39(
|
|
5977
5998
|
Button,
|
|
5978
5999
|
{
|
|
5979
6000
|
variant: "text",
|
|
@@ -5983,7 +6004,7 @@ function ManageViewRow({
|
|
|
5983
6004
|
children: "Editar"
|
|
5984
6005
|
}
|
|
5985
6006
|
),
|
|
5986
|
-
/* @__PURE__ */
|
|
6007
|
+
/* @__PURE__ */ jsx39(
|
|
5987
6008
|
ConfirmButton,
|
|
5988
6009
|
{
|
|
5989
6010
|
variant: "text",
|
|
@@ -5991,13 +6012,13 @@ function ManageViewRow({
|
|
|
5991
6012
|
color: "danger",
|
|
5992
6013
|
onClick: () => onDelete(view),
|
|
5993
6014
|
confirm: {
|
|
5994
|
-
title:
|
|
6015
|
+
title: copy.manageViews.deleteTitle,
|
|
5995
6016
|
entityName: view.name,
|
|
5996
|
-
description:
|
|
5997
|
-
confirmText:
|
|
6017
|
+
description: copy.manageViews.deleteBody,
|
|
6018
|
+
confirmText: copy.manageViews.deleteConfirm
|
|
5998
6019
|
},
|
|
5999
6020
|
dataTestId: `${testIdPrefix}-manage-delete-${view.id}`,
|
|
6000
|
-
children:
|
|
6021
|
+
children: copy.manageViews.deleteConfirm
|
|
6001
6022
|
}
|
|
6002
6023
|
)
|
|
6003
6024
|
] })
|
|
@@ -6011,20 +6032,23 @@ function ManageViewsDialog({
|
|
|
6011
6032
|
views,
|
|
6012
6033
|
onEdit,
|
|
6013
6034
|
onDelete,
|
|
6014
|
-
testIdPrefix = "views"
|
|
6035
|
+
testIdPrefix = "views",
|
|
6036
|
+
confirmCopy
|
|
6015
6037
|
}) {
|
|
6016
|
-
|
|
6038
|
+
const copy = useDataViewsCopy();
|
|
6039
|
+
return /* @__PURE__ */ jsx39(
|
|
6017
6040
|
Dialog,
|
|
6018
6041
|
{
|
|
6019
6042
|
open,
|
|
6020
6043
|
onClose,
|
|
6021
|
-
title:
|
|
6044
|
+
title: copy.manageViews.title,
|
|
6022
6045
|
size: "md",
|
|
6023
6046
|
showCloseButton: true,
|
|
6024
6047
|
dataTestId: `${testIdPrefix}-manage-dialog`,
|
|
6025
|
-
children: /* @__PURE__ */
|
|
6048
|
+
children: /* @__PURE__ */ jsx39(DialogContent, { children: /* @__PURE__ */ jsx39(Stack, { spacing: 1.5, "data-testid": `${testIdPrefix}-manage-list`, children: views.length === 0 ? /* @__PURE__ */ jsx39(Text, { variant: "body", as: "p", children: copy.manageViews.empty }) : views.map((view) => /* @__PURE__ */ jsx39(
|
|
6026
6049
|
ManageViewRow,
|
|
6027
6050
|
{
|
|
6051
|
+
confirmCopy,
|
|
6028
6052
|
view,
|
|
6029
6053
|
onEdit,
|
|
6030
6054
|
onDelete,
|
|
@@ -6065,8 +6089,45 @@ function describeViewState(state, fields, columns) {
|
|
|
6065
6089
|
return { filters, columns: columnsHidden, sort };
|
|
6066
6090
|
}
|
|
6067
6091
|
|
|
6092
|
+
// src/components/data-display/DataViews/save-view-preview.tsx
|
|
6093
|
+
import { jsx as jsx40, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
6094
|
+
function SummaryRow({
|
|
6095
|
+
label,
|
|
6096
|
+
items,
|
|
6097
|
+
testId
|
|
6098
|
+
}) {
|
|
6099
|
+
if (items.length === 0) return null;
|
|
6100
|
+
return /* @__PURE__ */ jsxs28(Box, { sx: { display: "flex", gap: 1.5 }, "data-testid": testId, children: [
|
|
6101
|
+
/* @__PURE__ */ jsx40(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx40(Box, { component: "span", sx: { width: 116, flexShrink: 0, color: "text.secondary" }, children: label }) }),
|
|
6102
|
+
/* @__PURE__ */ jsx40(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx40(Box, { component: "span", sx: { minWidth: 0, flex: 1 }, children: items.join(", ") }) })
|
|
6103
|
+
] });
|
|
6104
|
+
}
|
|
6105
|
+
function PreviewBox({ preview, testIdPrefix }) {
|
|
6106
|
+
const copy = useDataViewsCopy();
|
|
6107
|
+
const empty = preview.filters.length === 0 && preview.columns.length === 0 && preview.sort.length === 0;
|
|
6108
|
+
return /* @__PURE__ */ jsxs28(Box, { sx: { p: 1.5, borderRadius: 1.5, bgcolor: "action.hover", border: (theme) => `1px solid ${theme.palette.divider}` }, children: [
|
|
6109
|
+
/* @__PURE__ */ jsx40(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx40(
|
|
6110
|
+
Box,
|
|
6111
|
+
{
|
|
6112
|
+
component: "span",
|
|
6113
|
+
sx: { display: "block", mb: 1, textTransform: "uppercase", letterSpacing: 0.6, fontWeight: 600, color: "text.disabled" },
|
|
6114
|
+
children: copy.saveView.previewHeading
|
|
6115
|
+
}
|
|
6116
|
+
) }),
|
|
6117
|
+
empty ? (
|
|
6118
|
+
// Saving is still allowed — an operator may be naming the default on
|
|
6119
|
+
// purpose — but it should not be a surprise afterwards.
|
|
6120
|
+
/* @__PURE__ */ jsx40(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx40(Box, { component: "span", sx: { color: "warning.main", lineHeight: 1.6 }, "data-testid": `${testIdPrefix}-preview-empty`, children: copy.saveView.previewUnchanged }) })
|
|
6121
|
+
) : /* @__PURE__ */ jsxs28(Stack, { spacing: 0.75, children: [
|
|
6122
|
+
/* @__PURE__ */ jsx40(SummaryRow, { label: copy.saveView.previewFilters, items: preview.filters, testId: `${testIdPrefix}-preview-filters` }),
|
|
6123
|
+
/* @__PURE__ */ jsx40(SummaryRow, { label: copy.saveView.previewHiddenColumns, items: preview.columns, testId: `${testIdPrefix}-preview-columns` }),
|
|
6124
|
+
/* @__PURE__ */ jsx40(SummaryRow, { label: copy.saveView.sortRowLabel, items: preview.sort, testId: `${testIdPrefix}-preview-sort` })
|
|
6125
|
+
] })
|
|
6126
|
+
] });
|
|
6127
|
+
}
|
|
6128
|
+
|
|
6068
6129
|
// src/components/data-display/DataViews/SaveViewModal.tsx
|
|
6069
|
-
import { jsx as
|
|
6130
|
+
import { jsx as jsx41, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
6070
6131
|
function FlagRow({
|
|
6071
6132
|
icon,
|
|
6072
6133
|
title,
|
|
@@ -6075,7 +6136,7 @@ function FlagRow({
|
|
|
6075
6136
|
onChange,
|
|
6076
6137
|
testId
|
|
6077
6138
|
}) {
|
|
6078
|
-
return /* @__PURE__ */
|
|
6139
|
+
return /* @__PURE__ */ jsxs29(
|
|
6079
6140
|
Box,
|
|
6080
6141
|
{
|
|
6081
6142
|
component: "label",
|
|
@@ -6090,12 +6151,12 @@ function FlagRow({
|
|
|
6090
6151
|
"&:hover": { bgcolor: "action.hover" }
|
|
6091
6152
|
},
|
|
6092
6153
|
children: [
|
|
6093
|
-
/* @__PURE__ */
|
|
6094
|
-
/* @__PURE__ */
|
|
6095
|
-
/* @__PURE__ */
|
|
6096
|
-
/* @__PURE__ */
|
|
6154
|
+
/* @__PURE__ */ jsx41(Box, { sx: { mt: 0.25, color: "text.disabled", display: "flex" }, children: icon }),
|
|
6155
|
+
/* @__PURE__ */ jsxs29(Box, { sx: { minWidth: 0, flex: 1 }, children: [
|
|
6156
|
+
/* @__PURE__ */ jsx41(Text, { variant: "body", as: "span", children: /* @__PURE__ */ jsx41(Box, { component: "span", sx: { display: "block", fontSize: "0.875rem" }, children: title }) }),
|
|
6157
|
+
/* @__PURE__ */ jsx41(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx41(Box, { component: "span", sx: { display: "block", color: "text.secondary", lineHeight: 1.5 }, children: description }) })
|
|
6097
6158
|
] }),
|
|
6098
|
-
/* @__PURE__ */
|
|
6159
|
+
/* @__PURE__ */ jsx41(
|
|
6099
6160
|
Switch,
|
|
6100
6161
|
{
|
|
6101
6162
|
size: "sm",
|
|
@@ -6117,35 +6178,36 @@ function FlagsSwitches({
|
|
|
6117
6178
|
setIsDefault,
|
|
6118
6179
|
testIdPrefix
|
|
6119
6180
|
}) {
|
|
6120
|
-
|
|
6121
|
-
|
|
6181
|
+
const copy = useDataViewsCopy();
|
|
6182
|
+
return /* @__PURE__ */ jsxs29(Stack, { spacing: 0, children: [
|
|
6183
|
+
/* @__PURE__ */ jsx41(
|
|
6122
6184
|
FlagRow,
|
|
6123
6185
|
{
|
|
6124
|
-
icon: /* @__PURE__ */
|
|
6125
|
-
title:
|
|
6126
|
-
description:
|
|
6186
|
+
icon: /* @__PURE__ */ jsx41(PushPinOutlinedIcon2, { fontSize: "small" }),
|
|
6187
|
+
title: copy.saveView.pinnedTitle,
|
|
6188
|
+
description: copy.saveView.pinnedDescription,
|
|
6127
6189
|
checked: pinned,
|
|
6128
6190
|
onChange: setPinned,
|
|
6129
6191
|
testId: `${testIdPrefix}-save-pinned`
|
|
6130
6192
|
}
|
|
6131
6193
|
),
|
|
6132
|
-
/* @__PURE__ */
|
|
6194
|
+
/* @__PURE__ */ jsx41(
|
|
6133
6195
|
FlagRow,
|
|
6134
6196
|
{
|
|
6135
|
-
icon: /* @__PURE__ */
|
|
6136
|
-
title:
|
|
6137
|
-
description:
|
|
6197
|
+
icon: /* @__PURE__ */ jsx41(GroupOutlinedIcon2, { fontSize: "small" }),
|
|
6198
|
+
title: copy.saveView.sharedTitle,
|
|
6199
|
+
description: copy.saveView.sharedDescription,
|
|
6138
6200
|
checked: shared,
|
|
6139
6201
|
onChange: setShared,
|
|
6140
6202
|
testId: `${testIdPrefix}-save-shared`
|
|
6141
6203
|
}
|
|
6142
6204
|
),
|
|
6143
|
-
/* @__PURE__ */
|
|
6205
|
+
/* @__PURE__ */ jsx41(
|
|
6144
6206
|
FlagRow,
|
|
6145
6207
|
{
|
|
6146
|
-
icon: /* @__PURE__ */
|
|
6147
|
-
title:
|
|
6148
|
-
description:
|
|
6208
|
+
icon: /* @__PURE__ */ jsx41(StarOutlineRoundedIcon3, { fontSize: "small" }),
|
|
6209
|
+
title: copy.saveView.setDefaultTitle,
|
|
6210
|
+
description: copy.saveView.setDefaultDescription,
|
|
6149
6211
|
checked: isDefault,
|
|
6150
6212
|
onChange: setIsDefault,
|
|
6151
6213
|
testId: `${testIdPrefix}-save-default`
|
|
@@ -6153,39 +6215,6 @@ function FlagsSwitches({
|
|
|
6153
6215
|
)
|
|
6154
6216
|
] });
|
|
6155
6217
|
}
|
|
6156
|
-
function SummaryRow({
|
|
6157
|
-
label,
|
|
6158
|
-
items,
|
|
6159
|
-
testId
|
|
6160
|
-
}) {
|
|
6161
|
-
if (items.length === 0) return null;
|
|
6162
|
-
return /* @__PURE__ */ jsxs28(Box, { sx: { display: "flex", gap: 1.5 }, "data-testid": testId, children: [
|
|
6163
|
-
/* @__PURE__ */ jsx39(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx39(Box, { component: "span", sx: { width: 116, flexShrink: 0, color: "text.secondary" }, children: label }) }),
|
|
6164
|
-
/* @__PURE__ */ jsx39(Text, { variant: "caption", as: "span", children: /* @__PURE__ */ jsx39(Box, { component: "span", sx: { minWidth: 0, flex: 1 }, children: items.join(", ") }) })
|
|
6165
|
-
] });
|
|
6166
|
-
}
|
|
6167
|
-
function PreviewBox({ preview, testIdPrefix }) {
|
|
6168
|
-
const empty = preview.filters.length === 0 && preview.columns.length === 0 && preview.sort.length === 0;
|
|
6169
|
-
return /* @__PURE__ */ jsxs28(Box, { sx: { p: 1.5, borderRadius: 1.5, bgcolor: "action.hover", border: (theme) => `1px solid ${theme.palette.divider}` }, children: [
|
|
6170
|
-
/* @__PURE__ */ jsx39(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx39(
|
|
6171
|
-
Box,
|
|
6172
|
-
{
|
|
6173
|
-
component: "span",
|
|
6174
|
-
sx: { display: "block", mb: 1, textTransform: "uppercase", letterSpacing: 0.6, fontWeight: 600, color: "text.disabled" },
|
|
6175
|
-
children: "O que esta vis\xE3o guarda"
|
|
6176
|
-
}
|
|
6177
|
-
) }),
|
|
6178
|
-
empty ? (
|
|
6179
|
-
// Saving is still allowed — an operator may be naming the default on
|
|
6180
|
-
// purpose — but it should not be a surprise afterwards.
|
|
6181
|
-
/* @__PURE__ */ jsx39(Text, { variant: "caption", as: "p", children: /* @__PURE__ */ jsx39(Box, { component: "span", sx: { color: "warning.main", lineHeight: 1.6 }, "data-testid": `${testIdPrefix}-preview-empty`, children: "Nada foi alterado \u2014 esta vis\xE3o ficar\xE1 igual \xE0 Vis\xE3o principal." }) })
|
|
6182
|
-
) : /* @__PURE__ */ jsxs28(Stack, { spacing: 0.75, children: [
|
|
6183
|
-
/* @__PURE__ */ jsx39(SummaryRow, { label: "Filtros", items: preview.filters, testId: `${testIdPrefix}-preview-filters` }),
|
|
6184
|
-
/* @__PURE__ */ jsx39(SummaryRow, { label: "Colunas ocultas", items: preview.columns, testId: `${testIdPrefix}-preview-columns` }),
|
|
6185
|
-
/* @__PURE__ */ jsx39(SummaryRow, { label: "Ordena\xE7\xE3o", items: preview.sort, testId: `${testIdPrefix}-preview-sort` })
|
|
6186
|
-
] })
|
|
6187
|
-
] });
|
|
6188
|
-
}
|
|
6189
6218
|
function seedForm(editing) {
|
|
6190
6219
|
if (!editing) {
|
|
6191
6220
|
return { name: "", description: "", pinned: false, shared: false, isDefault: false };
|
|
@@ -6199,6 +6228,7 @@ function seedForm(editing) {
|
|
|
6199
6228
|
};
|
|
6200
6229
|
}
|
|
6201
6230
|
function useSaveViewForm(editing, onSave) {
|
|
6231
|
+
const copy = useDataViewsCopy();
|
|
6202
6232
|
const initial = seedForm(editing);
|
|
6203
6233
|
const [name, setName] = useState14(initial.name);
|
|
6204
6234
|
const [description, setDescription] = useState14(initial.description);
|
|
@@ -6214,7 +6244,7 @@ function useSaveViewForm(editing, onSave) {
|
|
|
6214
6244
|
try {
|
|
6215
6245
|
await onSave({ name: name.trim(), description: description.trim(), shared, pinned, isDefault });
|
|
6216
6246
|
} catch (cause) {
|
|
6217
|
-
setError(cause instanceof Error ? cause.message :
|
|
6247
|
+
setError(cause instanceof Error ? cause.message : copy.saveView.saveFailed);
|
|
6218
6248
|
} finally {
|
|
6219
6249
|
setSaving(false);
|
|
6220
6250
|
}
|
|
@@ -6235,6 +6265,19 @@ function useSaveViewForm(editing, onSave) {
|
|
|
6235
6265
|
submit
|
|
6236
6266
|
};
|
|
6237
6267
|
}
|
|
6268
|
+
function FormFooter({
|
|
6269
|
+
editing,
|
|
6270
|
+
canSave,
|
|
6271
|
+
onSubmit,
|
|
6272
|
+
onClose,
|
|
6273
|
+
testIdPrefix
|
|
6274
|
+
}) {
|
|
6275
|
+
const copy = useDataViewsCopy();
|
|
6276
|
+
return /* @__PURE__ */ jsxs29(Stack, { direction: "row", spacing: 1.5, sx: { justifyContent: "flex-end" }, children: [
|
|
6277
|
+
/* @__PURE__ */ jsx41(Button, { variant: "text", color: "neutral", onClick: onClose, dataTestId: `${testIdPrefix}-save-cancel`, children: copy.saveView.cancel }),
|
|
6278
|
+
/* @__PURE__ */ jsx41(Button, { onClick: onSubmit, disabled: !canSave, dataTestId: `${testIdPrefix}-save-submit`, children: editing ? copy.saveView.submitEditing : copy.saveView.submitCreating })
|
|
6279
|
+
] });
|
|
6280
|
+
}
|
|
6238
6281
|
function SaveViewModal({
|
|
6239
6282
|
open,
|
|
6240
6283
|
onClose,
|
|
@@ -6245,43 +6288,44 @@ function SaveViewModal({
|
|
|
6245
6288
|
onSave,
|
|
6246
6289
|
testIdPrefix = "view"
|
|
6247
6290
|
}) {
|
|
6291
|
+
const copy = useDataViewsCopy();
|
|
6248
6292
|
const form = useSaveViewForm(editing, onSave);
|
|
6249
6293
|
const preview = describeViewState(currentState, fields, columns);
|
|
6250
|
-
return /* @__PURE__ */
|
|
6294
|
+
return /* @__PURE__ */ jsx41(
|
|
6251
6295
|
Dialog,
|
|
6252
6296
|
{
|
|
6253
6297
|
open,
|
|
6254
6298
|
onClose,
|
|
6255
|
-
title: editing ?
|
|
6299
|
+
title: editing ? copy.saveView.titleEditing : copy.saveView.titleCreating,
|
|
6256
6300
|
size: "sm",
|
|
6257
6301
|
showCloseButton: true,
|
|
6258
6302
|
dataTestId: `${testIdPrefix}-save-modal`,
|
|
6259
|
-
children: /* @__PURE__ */
|
|
6260
|
-
/* @__PURE__ */
|
|
6303
|
+
children: /* @__PURE__ */ jsx41(DialogContent, { children: /* @__PURE__ */ jsxs29(Stack, { spacing: 2, "data-testid": `${testIdPrefix}-save-form`, children: [
|
|
6304
|
+
/* @__PURE__ */ jsx41(
|
|
6261
6305
|
Input,
|
|
6262
6306
|
{
|
|
6263
6307
|
size: "sm",
|
|
6264
6308
|
fullWidth: true,
|
|
6265
|
-
label:
|
|
6266
|
-
placeholder:
|
|
6309
|
+
label: copy.saveView.nameLabel,
|
|
6310
|
+
placeholder: copy.saveView.namePlaceholder,
|
|
6267
6311
|
value: form.name,
|
|
6268
6312
|
onChange: (event) => form.setName(event.target.value),
|
|
6269
6313
|
"data-testid": `${testIdPrefix}-save-name`
|
|
6270
6314
|
}
|
|
6271
6315
|
),
|
|
6272
|
-
/* @__PURE__ */
|
|
6316
|
+
/* @__PURE__ */ jsx41(
|
|
6273
6317
|
Input,
|
|
6274
6318
|
{
|
|
6275
6319
|
size: "sm",
|
|
6276
6320
|
fullWidth: true,
|
|
6277
|
-
label:
|
|
6278
|
-
placeholder:
|
|
6321
|
+
label: copy.saveView.descriptionLabel,
|
|
6322
|
+
placeholder: copy.saveView.descriptionPlaceholder,
|
|
6279
6323
|
value: form.description,
|
|
6280
6324
|
onChange: (event) => form.setDescription(event.target.value),
|
|
6281
6325
|
"data-testid": `${testIdPrefix}-save-description`
|
|
6282
6326
|
}
|
|
6283
6327
|
),
|
|
6284
|
-
/* @__PURE__ */
|
|
6328
|
+
/* @__PURE__ */ jsx41(
|
|
6285
6329
|
FlagsSwitches,
|
|
6286
6330
|
{
|
|
6287
6331
|
pinned: form.pinned,
|
|
@@ -6293,40 +6337,39 @@ function SaveViewModal({
|
|
|
6293
6337
|
testIdPrefix
|
|
6294
6338
|
}
|
|
6295
6339
|
),
|
|
6296
|
-
/* @__PURE__ */
|
|
6297
|
-
form.error && /* @__PURE__ */
|
|
6298
|
-
/* @__PURE__ */
|
|
6299
|
-
|
|
6300
|
-
|
|
6301
|
-
|
|
6302
|
-
|
|
6303
|
-
|
|
6304
|
-
|
|
6305
|
-
|
|
6306
|
-
|
|
6307
|
-
|
|
6308
|
-
)
|
|
6309
|
-
] })
|
|
6340
|
+
/* @__PURE__ */ jsx41(PreviewBox, { preview, testIdPrefix }),
|
|
6341
|
+
form.error && /* @__PURE__ */ jsx41(Text, { variant: "caption", color: "danger", as: "p", "data-testid": `${testIdPrefix}-save-error`, children: form.error }),
|
|
6342
|
+
/* @__PURE__ */ jsx41(
|
|
6343
|
+
FormFooter,
|
|
6344
|
+
{
|
|
6345
|
+
editing,
|
|
6346
|
+
canSave: form.canSave,
|
|
6347
|
+
onSubmit: () => void form.submit(),
|
|
6348
|
+
onClose,
|
|
6349
|
+
testIdPrefix
|
|
6350
|
+
}
|
|
6351
|
+
)
|
|
6310
6352
|
] }) })
|
|
6311
6353
|
}
|
|
6312
6354
|
);
|
|
6313
6355
|
}
|
|
6314
6356
|
|
|
6315
6357
|
// src/components/data-display/DataViews/data-views-table-parts.tsx
|
|
6316
|
-
import { Fragment as Fragment16, jsx as
|
|
6358
|
+
import { Fragment as Fragment16, jsx as jsx42, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
6317
6359
|
function ViewMutationErrorAlert({
|
|
6318
6360
|
error,
|
|
6319
6361
|
onClose,
|
|
6320
6362
|
testIdPrefix
|
|
6321
6363
|
}) {
|
|
6364
|
+
const copy = useDataViewsCopy();
|
|
6322
6365
|
if (!error) {
|
|
6323
6366
|
return null;
|
|
6324
6367
|
}
|
|
6325
|
-
return /* @__PURE__ */
|
|
6368
|
+
return /* @__PURE__ */ jsx42(
|
|
6326
6369
|
Alert,
|
|
6327
6370
|
{
|
|
6328
6371
|
variant: "danger",
|
|
6329
|
-
title:
|
|
6372
|
+
title: copy.nav.updateFailed,
|
|
6330
6373
|
description: error,
|
|
6331
6374
|
closable: true,
|
|
6332
6375
|
onClose,
|
|
@@ -6349,8 +6392,9 @@ function ViewDialogs({
|
|
|
6349
6392
|
onDelete,
|
|
6350
6393
|
testIdPrefix
|
|
6351
6394
|
}) {
|
|
6352
|
-
|
|
6353
|
-
|
|
6395
|
+
const copy = useDataViewsCopy();
|
|
6396
|
+
return /* @__PURE__ */ jsxs30(Fragment16, { children: [
|
|
6397
|
+
/* @__PURE__ */ jsx42(
|
|
6354
6398
|
SaveViewModal,
|
|
6355
6399
|
{
|
|
6356
6400
|
open: saveOpen,
|
|
@@ -6364,9 +6408,10 @@ function ViewDialogs({
|
|
|
6364
6408
|
},
|
|
6365
6409
|
editing ? `edit-${editing.id}` : "create"
|
|
6366
6410
|
),
|
|
6367
|
-
/* @__PURE__ */
|
|
6411
|
+
/* @__PURE__ */ jsx42(
|
|
6368
6412
|
ManageViewsDialog,
|
|
6369
6413
|
{
|
|
6414
|
+
confirmCopy: copy.confirmAction,
|
|
6370
6415
|
open: manageOpen,
|
|
6371
6416
|
onClose: onCloseManage,
|
|
6372
6417
|
views,
|
|
@@ -6436,6 +6481,7 @@ function useAppliedView(router, columnIds, views, initialView, initialState) {
|
|
|
6436
6481
|
return { applied, currentRef, activeViewName, applyView, selectMain };
|
|
6437
6482
|
}
|
|
6438
6483
|
function useSavedViewsController(persistence, router, columnIds, views, initialView, initialState) {
|
|
6484
|
+
const copy = useDataViewsCopy();
|
|
6439
6485
|
const { applied, currentRef, activeViewName, applyView, selectMain } = useAppliedView(router, columnIds, views, initialView, initialState);
|
|
6440
6486
|
const [saveOpen, setSaveOpen] = useState15(false);
|
|
6441
6487
|
const [editing, setEditing] = useState15(null);
|
|
@@ -6454,7 +6500,7 @@ function useSavedViewsController(persistence, router, columnIds, views, initialV
|
|
|
6454
6500
|
setMutationError(null);
|
|
6455
6501
|
router.refresh();
|
|
6456
6502
|
} else {
|
|
6457
|
-
setMutationError(error ??
|
|
6503
|
+
setMutationError(error ?? copy.nav.saveFailed);
|
|
6458
6504
|
}
|
|
6459
6505
|
};
|
|
6460
6506
|
const { handleSave: saveView, patchView, handleDelete } = useViewMutations(
|
|
@@ -6499,10 +6545,10 @@ function useSavedViewsController(persistence, router, columnIds, views, initialV
|
|
|
6499
6545
|
}
|
|
6500
6546
|
|
|
6501
6547
|
// src/components/data-display/DataViews/DataViewsTableBase.tsx
|
|
6502
|
-
import { Fragment as Fragment17, jsx as
|
|
6548
|
+
import { Fragment as Fragment17, jsx as jsx43, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
6503
6549
|
function useUrlSyncState(server, initialState) {
|
|
6504
6550
|
const isServerMode = server !== void 0;
|
|
6505
|
-
return
|
|
6551
|
+
return useMemo7(
|
|
6506
6552
|
() => isServerMode && initialState ? {
|
|
6507
6553
|
search: initialState.search,
|
|
6508
6554
|
pills: initialState.pills,
|
|
@@ -6605,9 +6651,9 @@ function DataViewsTableBase(props) {
|
|
|
6605
6651
|
onRequestDelete: setPendingDelete
|
|
6606
6652
|
});
|
|
6607
6653
|
const syncState = useUrlSyncState(server, initialState);
|
|
6608
|
-
return /* @__PURE__ */
|
|
6609
|
-
/* @__PURE__ */
|
|
6610
|
-
/* @__PURE__ */
|
|
6654
|
+
return /* @__PURE__ */ jsxs31(Fragment17, { children: [
|
|
6655
|
+
/* @__PURE__ */ jsx43(ViewMutationErrorAlert, { error: ctl.mutationError, onClose: ctl.clearMutationError, testIdPrefix }),
|
|
6656
|
+
/* @__PURE__ */ jsx43(
|
|
6611
6657
|
DataViewsGrid,
|
|
6612
6658
|
{
|
|
6613
6659
|
...props,
|
|
@@ -6619,7 +6665,7 @@ function DataViewsTableBase(props) {
|
|
|
6619
6665
|
}
|
|
6620
6666
|
),
|
|
6621
6667
|
renderViewDialogs(ctl, fields, columns, views, testIdPrefix, markSaved),
|
|
6622
|
-
/* @__PURE__ */
|
|
6668
|
+
/* @__PURE__ */ jsx43(
|
|
6623
6669
|
DeleteViewDialog,
|
|
6624
6670
|
{
|
|
6625
6671
|
view: pendingDelete,
|
|
@@ -6634,7 +6680,7 @@ function DataViewsTableBase(props) {
|
|
|
6634
6680
|
] });
|
|
6635
6681
|
}
|
|
6636
6682
|
function renderViewDialogs(ctl, fields, columns, views, testIdPrefix, onSaved) {
|
|
6637
|
-
return /* @__PURE__ */
|
|
6683
|
+
return /* @__PURE__ */ jsx43(
|
|
6638
6684
|
ViewDialogs,
|
|
6639
6685
|
{
|
|
6640
6686
|
saveOpen: ctl.saveOpen,
|
|
@@ -6664,6 +6710,7 @@ export {
|
|
|
6664
6710
|
DEFAULT_CELL_WIDTH,
|
|
6665
6711
|
DEFAULT_RAILS,
|
|
6666
6712
|
DataViewsBoard,
|
|
6713
|
+
DataViewsCopyProvider,
|
|
6667
6714
|
DataViewsGrid,
|
|
6668
6715
|
DataViewsScopeTabs,
|
|
6669
6716
|
DataViewsTableBase,
|
|
@@ -6676,6 +6723,7 @@ export {
|
|
|
6676
6723
|
cardScaleForZoom,
|
|
6677
6724
|
resolveScope,
|
|
6678
6725
|
toSavedViewSummary,
|
|
6726
|
+
useDataViewsCopy,
|
|
6679
6727
|
useDragItem
|
|
6680
6728
|
};
|
|
6681
6729
|
//# sourceMappingURL=DataViews.js.map
|