@12-apps/ui 6.24.1 → 6.24.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +6 -6
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +7 -7
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +1 -1
- package/dist/{chunk-6RZDDUSM.js → chunk-7GKRZJWI.js} +2 -2
- package/dist/{chunk-JQ45NDBS.js → chunk-DI7HGYPX.js} +2 -2
- package/dist/{chunk-2C47DEVU.js → chunk-JD4IVP22.js} +2 -2
- package/dist/{chunk-TSYWI3NP.js → chunk-NXNNICH7.js} +2 -2
- package/dist/{chunk-2FDBR77W.js → chunk-O6AZDQJJ.js} +2 -2
- package/dist/chunk-O6AZDQJJ.js.map +1 -0
- package/dist/{chunk-XO753WHD.js → chunk-QX2PLXQA.js} +2 -2
- package/dist/{chunk-OAYX4XN7.js → chunk-SQNW22ZZ.js} +2 -2
- package/dist/data-display/DataViews.js +7 -7
- 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/package.json +1 -1
- package/src/components/data-display/DataViews/data-views-view-nav.tsx +3 -3
- package/dist/chunk-2FDBR77W.js.map +0 -1
- /package/dist/{chunk-6RZDDUSM.js.map → chunk-7GKRZJWI.js.map} +0 -0
- /package/dist/{chunk-JQ45NDBS.js.map → chunk-DI7HGYPX.js.map} +0 -0
- /package/dist/{chunk-2C47DEVU.js.map → chunk-JD4IVP22.js.map} +0 -0
- /package/dist/{chunk-TSYWI3NP.js.map → chunk-NXNNICH7.js.map} +0 -0
- /package/dist/{chunk-XO753WHD.js.map → chunk-QX2PLXQA.js.map} +0 -0
- /package/dist/{chunk-OAYX4XN7.js.map → chunk-SQNW22ZZ.js.map} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
DataViewsGrid
|
|
4
|
-
} from "../../../../chunk-
|
|
5
|
-
import "../../../../chunk-
|
|
4
|
+
} from "../../../../chunk-QX2PLXQA.js";
|
|
5
|
+
import "../../../../chunk-NXNNICH7.js";
|
|
6
6
|
import "../../../../chunk-BPLFM2GL.js";
|
|
7
7
|
import "../../../../chunk-E55CJV65.js";
|
|
8
8
|
import "../../../../chunk-PN5CQKA2.js";
|
|
@@ -21,21 +21,21 @@ import "../../../../chunk-CBOB5AV6.js";
|
|
|
21
21
|
import "../../../../chunk-HP2ODXNA.js";
|
|
22
22
|
import "../../../../chunk-TQ6FPOPD.js";
|
|
23
23
|
import "../../../../chunk-IAGOUTI6.js";
|
|
24
|
-
import "../../../../chunk-
|
|
24
|
+
import "../../../../chunk-7GKRZJWI.js";
|
|
25
25
|
import "../../../../chunk-KX75HM5U.js";
|
|
26
26
|
import "../../../../chunk-XKV5ZIBG.js";
|
|
27
27
|
import "../../../../chunk-A7Q5AQVD.js";
|
|
28
28
|
import "../../../../chunk-OGGHD64H.js";
|
|
29
29
|
import "../../../../chunk-CZPU5TW3.js";
|
|
30
30
|
import "../../../../chunk-6VP2L3DJ.js";
|
|
31
|
-
import "../../../../chunk-
|
|
32
|
-
import "../../../../chunk-
|
|
31
|
+
import "../../../../chunk-JD4IVP22.js";
|
|
32
|
+
import "../../../../chunk-SQNW22ZZ.js";
|
|
33
33
|
import "../../../../chunk-7NSX7A5H.js";
|
|
34
34
|
import "../../../../chunk-DW5FRWRQ.js";
|
|
35
35
|
import "../../../../chunk-SNR537TI.js";
|
|
36
36
|
import "../../../../chunk-XUJG2HFW.js";
|
|
37
37
|
import "../../../../chunk-ZPIMPOHV.js";
|
|
38
|
-
import "../../../../chunk-
|
|
38
|
+
import "../../../../chunk-O6AZDQJJ.js";
|
|
39
39
|
import "../../../../chunk-TX5V42AY.js";
|
|
40
40
|
import "../../../../chunk-TW3BXVEU.js";
|
|
41
41
|
import "../../../../chunk-YGQX7BNI.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
DataViewsTableBase
|
|
4
|
-
} from "../../../../chunk-
|
|
4
|
+
} from "../../../../chunk-DI7HGYPX.js";
|
|
5
5
|
import "../../../../chunk-4X4KM4ZB.js";
|
|
6
|
-
import "../../../../chunk-
|
|
6
|
+
import "../../../../chunk-QX2PLXQA.js";
|
|
7
7
|
import "../../../../chunk-ZOLAYP2D.js";
|
|
8
|
-
import "../../../../chunk-
|
|
8
|
+
import "../../../../chunk-NXNNICH7.js";
|
|
9
9
|
import "../../../../chunk-BPLFM2GL.js";
|
|
10
10
|
import "../../../../chunk-E55CJV65.js";
|
|
11
11
|
import "../../../../chunk-PN5CQKA2.js";
|
|
@@ -24,21 +24,21 @@ import "../../../../chunk-CBOB5AV6.js";
|
|
|
24
24
|
import "../../../../chunk-HP2ODXNA.js";
|
|
25
25
|
import "../../../../chunk-TQ6FPOPD.js";
|
|
26
26
|
import "../../../../chunk-IAGOUTI6.js";
|
|
27
|
-
import "../../../../chunk-
|
|
27
|
+
import "../../../../chunk-7GKRZJWI.js";
|
|
28
28
|
import "../../../../chunk-KX75HM5U.js";
|
|
29
29
|
import "../../../../chunk-XKV5ZIBG.js";
|
|
30
30
|
import "../../../../chunk-A7Q5AQVD.js";
|
|
31
31
|
import "../../../../chunk-OGGHD64H.js";
|
|
32
32
|
import "../../../../chunk-CZPU5TW3.js";
|
|
33
33
|
import "../../../../chunk-6VP2L3DJ.js";
|
|
34
|
-
import "../../../../chunk-
|
|
35
|
-
import "../../../../chunk-
|
|
34
|
+
import "../../../../chunk-JD4IVP22.js";
|
|
35
|
+
import "../../../../chunk-SQNW22ZZ.js";
|
|
36
36
|
import "../../../../chunk-7NSX7A5H.js";
|
|
37
37
|
import "../../../../chunk-DW5FRWRQ.js";
|
|
38
38
|
import "../../../../chunk-SNR537TI.js";
|
|
39
39
|
import "../../../../chunk-XUJG2HFW.js";
|
|
40
40
|
import "../../../../chunk-ZPIMPOHV.js";
|
|
41
|
-
import "../../../../chunk-
|
|
41
|
+
import "../../../../chunk-O6AZDQJJ.js";
|
|
42
42
|
import "../../../../chunk-U2YJCNRU.js";
|
|
43
43
|
import "../../../../chunk-CHPZTF34.js";
|
|
44
44
|
import "../../../../chunk-6JGPPTLX.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
DataViewsDisplayPanel
|
|
4
|
-
} from "../../../../chunk-
|
|
4
|
+
} from "../../../../chunk-SQNW22ZZ.js";
|
|
5
5
|
import "../../../../chunk-7NSX7A5H.js";
|
|
6
6
|
import "../../../../chunk-DW5FRWRQ.js";
|
|
7
7
|
import "../../../../chunk-SNR537TI.js";
|
|
8
8
|
import "../../../../chunk-ZPIMPOHV.js";
|
|
9
|
-
import "../../../../chunk-
|
|
9
|
+
import "../../../../chunk-O6AZDQJJ.js";
|
|
10
10
|
import "../../../../chunk-LHHAYZ55.js";
|
|
11
11
|
import "../../../../chunk-KHG57NAE.js";
|
|
12
12
|
import "../../../../chunk-PGM5RRQO.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
GridShell
|
|
4
|
-
} from "../../../../chunk-
|
|
4
|
+
} from "../../../../chunk-NXNNICH7.js";
|
|
5
5
|
import "../../../../chunk-BPLFM2GL.js";
|
|
6
6
|
import "../../../../chunk-E55CJV65.js";
|
|
7
7
|
import "../../../../chunk-PN5CQKA2.js";
|
|
@@ -20,21 +20,21 @@ import "../../../../chunk-CBOB5AV6.js";
|
|
|
20
20
|
import "../../../../chunk-HP2ODXNA.js";
|
|
21
21
|
import "../../../../chunk-TQ6FPOPD.js";
|
|
22
22
|
import "../../../../chunk-IAGOUTI6.js";
|
|
23
|
-
import "../../../../chunk-
|
|
23
|
+
import "../../../../chunk-7GKRZJWI.js";
|
|
24
24
|
import "../../../../chunk-KX75HM5U.js";
|
|
25
25
|
import "../../../../chunk-XKV5ZIBG.js";
|
|
26
26
|
import "../../../../chunk-A7Q5AQVD.js";
|
|
27
27
|
import "../../../../chunk-OGGHD64H.js";
|
|
28
28
|
import "../../../../chunk-CZPU5TW3.js";
|
|
29
29
|
import "../../../../chunk-6VP2L3DJ.js";
|
|
30
|
-
import "../../../../chunk-
|
|
31
|
-
import "../../../../chunk-
|
|
30
|
+
import "../../../../chunk-JD4IVP22.js";
|
|
31
|
+
import "../../../../chunk-SQNW22ZZ.js";
|
|
32
32
|
import "../../../../chunk-7NSX7A5H.js";
|
|
33
33
|
import "../../../../chunk-DW5FRWRQ.js";
|
|
34
34
|
import "../../../../chunk-SNR537TI.js";
|
|
35
35
|
import "../../../../chunk-XUJG2HFW.js";
|
|
36
36
|
import "../../../../chunk-ZPIMPOHV.js";
|
|
37
|
-
import "../../../../chunk-
|
|
37
|
+
import "../../../../chunk-O6AZDQJJ.js";
|
|
38
38
|
import "../../../../chunk-LYKV3C7B.js";
|
|
39
39
|
import "../../../../chunk-U2ZDN2AL.js";
|
|
40
40
|
import "../../../../chunk-LHHAYZ55.js";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
ShellToolbar
|
|
4
|
-
} from "../../../../chunk-
|
|
5
|
-
import "../../../../chunk-
|
|
6
|
-
import "../../../../chunk-
|
|
4
|
+
} from "../../../../chunk-7GKRZJWI.js";
|
|
5
|
+
import "../../../../chunk-JD4IVP22.js";
|
|
6
|
+
import "../../../../chunk-SQNW22ZZ.js";
|
|
7
7
|
import "../../../../chunk-7NSX7A5H.js";
|
|
8
8
|
import "../../../../chunk-DW5FRWRQ.js";
|
|
9
9
|
import "../../../../chunk-SNR537TI.js";
|
|
10
10
|
import "../../../../chunk-XUJG2HFW.js";
|
|
11
11
|
import "../../../../chunk-ZPIMPOHV.js";
|
|
12
|
-
import "../../../../chunk-
|
|
12
|
+
import "../../../../chunk-O6AZDQJJ.js";
|
|
13
13
|
import "../../../../chunk-U2ZDN2AL.js";
|
|
14
14
|
import "../../../../chunk-LHHAYZ55.js";
|
|
15
15
|
import "../../../../chunk-KHG57NAE.js";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
GridToolbar
|
|
4
|
-
} from "../../../../chunk-
|
|
5
|
-
import "../../../../chunk-
|
|
4
|
+
} from "../../../../chunk-JD4IVP22.js";
|
|
5
|
+
import "../../../../chunk-SQNW22ZZ.js";
|
|
6
6
|
import "../../../../chunk-7NSX7A5H.js";
|
|
7
7
|
import "../../../../chunk-DW5FRWRQ.js";
|
|
8
8
|
import "../../../../chunk-SNR537TI.js";
|
|
9
9
|
import "../../../../chunk-XUJG2HFW.js";
|
|
10
10
|
import "../../../../chunk-ZPIMPOHV.js";
|
|
11
|
-
import "../../../../chunk-
|
|
11
|
+
import "../../../../chunk-O6AZDQJJ.js";
|
|
12
12
|
import "../../../../chunk-U2ZDN2AL.js";
|
|
13
13
|
import "../../../../chunk-LHHAYZ55.js";
|
|
14
14
|
import "../../../../chunk-KHG57NAE.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
GridToolbar
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JD4IVP22.js";
|
|
4
4
|
|
|
5
5
|
// src/components/data-display/DataViews/data-views-shell-toolbar.tsx
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -64,4 +64,4 @@ function ShellToolbar({
|
|
|
64
64
|
export {
|
|
65
65
|
ShellToolbar
|
|
66
66
|
};
|
|
67
|
-
//# sourceMappingURL=chunk-
|
|
67
|
+
//# sourceMappingURL=chunk-7GKRZJWI.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-4X4KM4ZB.js";
|
|
4
4
|
import {
|
|
5
5
|
DataViewsGrid
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QX2PLXQA.js";
|
|
7
7
|
import {
|
|
8
8
|
viewStateKey
|
|
9
9
|
} from "./chunk-ZOLAYP2D.js";
|
|
@@ -178,4 +178,4 @@ function renderViewDialogs(ctl, fields, columns, views, testIdPrefix, onSaved) {
|
|
|
178
178
|
export {
|
|
179
179
|
DataViewsTableBase
|
|
180
180
|
};
|
|
181
|
-
//# sourceMappingURL=chunk-
|
|
181
|
+
//# sourceMappingURL=chunk-DI7HGYPX.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DataViewsDisplayPanel
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SQNW22ZZ.js";
|
|
4
4
|
import {
|
|
5
5
|
DataViewsExportMenu
|
|
6
6
|
} from "./chunk-XUJG2HFW.js";
|
|
@@ -133,4 +133,4 @@ function GridToolbar(props) {
|
|
|
133
133
|
export {
|
|
134
134
|
GridToolbar
|
|
135
135
|
};
|
|
136
|
-
//# sourceMappingURL=chunk-
|
|
136
|
+
//# sourceMappingURL=chunk-JD4IVP22.js.map
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
} from "./chunk-TQ6FPOPD.js";
|
|
24
24
|
import {
|
|
25
25
|
ShellToolbar
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-7GKRZJWI.js";
|
|
27
27
|
import {
|
|
28
28
|
resolveSelectionExtra
|
|
29
29
|
} from "./chunk-KX75HM5U.js";
|
|
@@ -237,4 +237,4 @@ function GridShell(props) {
|
|
|
237
237
|
export {
|
|
238
238
|
GridShell
|
|
239
239
|
};
|
|
240
|
-
//# sourceMappingURL=chunk-
|
|
240
|
+
//# sourceMappingURL=chunk-NXNNICH7.js.map
|
|
@@ -160,7 +160,7 @@ function ToggleContents({
|
|
|
160
160
|
}) {
|
|
161
161
|
const copy = useDataViewsCopy();
|
|
162
162
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
163
|
-
/* @__PURE__ */ jsx(default2, { component: "span", sx: { fontWeight: 600 }, "data-testid": `${testIdPrefix}-display-view-name`, children: view.activeViewName ??
|
|
163
|
+
/* @__PURE__ */ jsx(default2, { component: "span", sx: { fontWeight: 600 }, "data-testid": `${testIdPrefix}-display-view-name`, children: view.activeViewName ?? copy.nav.mainView }),
|
|
164
164
|
view.dirty && /* @__PURE__ */ jsx(
|
|
165
165
|
default2,
|
|
166
166
|
{
|
|
@@ -294,4 +294,4 @@ export {
|
|
|
294
294
|
ViewHeader,
|
|
295
295
|
ViewFooter
|
|
296
296
|
};
|
|
297
|
-
//# sourceMappingURL=chunk-
|
|
297
|
+
//# sourceMappingURL=chunk-O6AZDQJJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/DataViews/data-views-view-nav.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The saved views, rendered INSIDE the Exibir panel rather than in a dropdown\n * of their own.\n *\n * Two levels, both of them replacing the panel's BODY (the tabs stay put):\n * the list of views, and one view's actions. It is a drill-down and not a\n * nested menu on purpose — an absolutely positioned popover inside the panel's\n * own scroll container gets clipped by it, which is how copy.nav.deleteView ends\n * up unreachable. One level, no clipping, and it works on touch.\n */\nimport ChevronLeftRoundedIcon from \"@mui/icons-material/ChevronLeftRounded\";\nimport CheckRoundedIcon from \"@mui/icons-material/CheckRounded\";\nimport DeleteOutlineRoundedIcon from \"@mui/icons-material/DeleteOutlineRounded\";\nimport EditOutlinedIcon from \"@mui/icons-material/EditOutlined\";\nimport GroupOutlinedIcon from \"@mui/icons-material/GroupOutlined\";\nimport MoreVertRoundedIcon from \"@mui/icons-material/MoreVertRounded\";\nimport PushPinOutlinedIcon from \"@mui/icons-material/PushPinOutlined\";\nimport StarOutlineRoundedIcon from \"@mui/icons-material/StarOutlined\";\nimport StarOutlineRoundedIcon2 from \"@mui/icons-material/StarOutlineRounded\";\nimport IconButton from \"@mui/material/IconButton/index.js\";\n\nimport KeyboardArrowDownRoundedIcon from \"@mui/icons-material/KeyboardArrowDownRounded\";\nimport RestartAltRoundedIcon from \"@mui/icons-material/RestartAltRounded\";\nimport SaveOutlinedIcon from \"@mui/icons-material/SaveOutlined\";\n\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { Button } from \"../../form/Button\";\nimport { Box } from \"../../../mui/Box\";\nimport { Text } from \"../../typography/Text\";\n\nimport type { DisplayPanelView } from \"./data-views-display-panel\";\nimport type { SavedViewSummary } from \"./data-views-types\";\n\n/** What the panel needs to drive the views without owning any of them. */\nexport interface ViewNavHandlers {\n views: SavedViewSummary[];\n activeViewId?: string | null;\n /** `null` selects the built-in view named by `copy.nav.mainView`. */\n onSelectView: (id: string | null) => void;\n onEditView: (view: SavedViewSummary) => void;\n onPatchView: (\n view: SavedViewSummary,\n changes: Partial<Pick<SavedViewSummary, \"isDefault\" | \"pinned\" | \"shared\">>,\n ) => void;\n onDeleteView: (view: SavedViewSummary) => void;\n}\n\nconst rowSx = {\n display: \"flex\",\n alignItems: \"center\",\n gap: 1,\n width: \"100%\",\n px: 1.25,\n py: 1,\n border: 0,\n borderRadius: 1,\n bgcolor: \"transparent\",\n cursor: \"pointer\",\n font: \"inherit\",\n fontSize: \"0.8125rem\",\n textAlign: \"left\",\n color: \"text.primary\",\n \"&:hover\": { bgcolor: \"action.hover\" },\n} as const;\n\n/** The list: the built-in view, then each saved one with its own \"⋮\". */\nexport function ViewsList({\n handlers,\n onOpenActions,\n testIdPrefix,\n}: {\n handlers: ViewNavHandlers;\n onOpenActions: (view: SavedViewSummary) => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n const { views, activeViewId, onSelectView } = handlers;\n const onMain = !activeViewId;\n return (\n <Box sx={{ p: 0.75 }} data-testid={`${testIdPrefix}-views-list`}>\n <Box\n component=\"button\"\n type=\"button\"\n onClick={() => onSelectView(null)}\n data-testid={`${testIdPrefix}-view-main`}\n sx={{ ...rowSx, color: onMain ? \"primary.main\" : \"text.primary\", fontWeight: onMain ? 600 : 400 }}\n >\n <Box component=\"span\" sx={{ flex: 1 }}>\n {copy.nav.mainView}\n </Box>\n {onMain && <CheckRoundedIcon fontSize=\"small\" />}\n </Box>\n\n {views.map((view) => {\n const active = view.id === activeViewId;\n return (\n <Box key={view.id} sx={{ display: \"flex\", alignItems: \"center\" }}>\n <Box\n component=\"button\"\n type=\"button\"\n onClick={() => onSelectView(view.id)}\n data-testid={`${testIdPrefix}-view-${view.id}`}\n sx={{ ...rowSx, minWidth: 0, color: active ? \"primary.main\" : \"text.primary\", fontWeight: active ? 600 : 400 }}\n >\n <Box component=\"span\" sx={{ flex: 1, minWidth: 0, overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" }}>\n {view.name}\n </Box>\n {/* What the row-menu toggles DID, readable without opening it:\n a view set as default, pinned or shared says so here. */}\n {view.isDefault && (\n <StarOutlineRoundedIcon fontSize=\"small\" sx={{ color: \"warning.main\" }} titleAccess={copy.nav.defaultTag} />\n )}\n {view.pinned && (\n <PushPinOutlinedIcon fontSize=\"small\" sx={{ color: \"text.disabled\" }} titleAccess=\"Fixada\" />\n )}\n {view.shared && (\n <GroupOutlinedIcon fontSize=\"small\" sx={{ color: \"text.disabled\" }} titleAccess=\"Compartilhada\" />\n )}\n {active && <CheckRoundedIcon fontSize=\"small\" />}\n </Box>\n <IconButton\n size=\"small\"\n onClick={() => onOpenActions(view)}\n aria-label={copy.nav.viewOptions(view.name)}\n data-testid={`${testIdPrefix}-view-${view.id}-menu`}\n >\n <MoreVertRoundedIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n );\n })}\n\n {views.length === 0 && (\n <Text variant=\"caption\" as=\"p\">\n <Box component=\"span\" sx={{ display: \"block\", px: 1.25, py: 1.5, color: \"text.secondary\", lineHeight: 1.6 }}>\n {copy.nav.emptyHint}\n </Box>\n </Text>\n )}\n </Box>\n );\n}\n\n/** One view's actions, reached from its \"⋮\" and left by the back row. */\nexport function ViewActions({\n view,\n handlers,\n onBack,\n testIdPrefix,\n}: {\n view: SavedViewSummary;\n handlers: ViewNavHandlers;\n onBack: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n const { onEditView, onPatchView, onDeleteView } = handlers;\n const action = (\n key: string,\n Icon: typeof StarOutlineRoundedIcon2,\n label: string,\n onClick: () => void,\n opts: { on?: boolean; danger?: boolean } = {},\n ): React.JSX.Element => (\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onClick}\n data-testid={`${testIdPrefix}-view-action-${key}`}\n sx={{\n ...rowSx,\n color: opts.danger ? \"error.main\" : \"text.primary\",\n \"&:hover\": { bgcolor: opts.danger ? \"error.lighter\" : \"action.hover\" },\n }}\n >\n <Icon fontSize=\"small\" sx={{ color: opts.danger ? \"inherit\" : \"text.disabled\" }} />\n <Box component=\"span\" sx={{ flex: 1 }}>\n {label}\n </Box>\n {opts.on && <CheckRoundedIcon fontSize=\"small\" color=\"primary\" />}\n </Box>\n );\n\n return (\n <Box sx={{ p: 0.75 }} data-testid={`${testIdPrefix}-view-actions`}>\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onBack}\n data-testid={`${testIdPrefix}-view-actions-back`}\n sx={{ ...rowSx, color: \"text.secondary\", fontSize: \"0.75rem\" }}\n >\n <ChevronLeftRoundedIcon fontSize=\"small\" />\n <Box component=\"span\" sx={{ flex: 1, fontWeight: 600, color: \"text.primary\" }}>\n {view.name}\n </Box>\n </Box>\n <Box sx={{ my: 0.5, borderTop: 1, borderColor: \"divider\" }} />\n {action(\"edit\", EditOutlinedIcon, copy.nav.editView, () => onEditView(view))}\n {action(\"default\", StarOutlineRoundedIcon2, copy.nav.setDefault, () => onPatchView(view, { isDefault: !view.isDefault }), { on: view.isDefault })}\n {action(\"pin\", PushPinOutlinedIcon, copy.nav.pinToSidebar, () => onPatchView(view, { pinned: !view.pinned }), { on: view.pinned })}\n {action(\"share\", GroupOutlinedIcon, copy.nav.shareWithTeam, () => onPatchView(view, { shared: !view.shared }), { on: view.shared })}\n <Box sx={{ my: 0.5, borderTop: 1, borderColor: \"divider\" }} />\n {action(\"delete\", DeleteOutlineRoundedIcon, copy.nav.deleteView, () => onDeleteView(view), { danger: true })}\n </Box>\n );\n}\n\n/** Name, unsaved dot, chevron — the parts, so the toggle has one decision. */\nfunction ToggleContents({\n view,\n open,\n interactive,\n testIdPrefix,\n}: {\n view: DisplayPanelView;\n open: boolean;\n interactive: boolean;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <>\n <Box component=\"span\" sx={{ fontWeight: 600 }} data-testid={`${testIdPrefix}-display-view-name`}>\n {view.activeViewName ?? copy.nav.mainView}\n </Box>\n {view.dirty && (\n <Box\n component=\"span\"\n aria-label={copy.nav.unsavedChanges}\n data-testid={`${testIdPrefix}-display-dirty`}\n sx={{ height: 6, width: 6, borderRadius: \"50%\", bgcolor: \"primary.main\" }}\n />\n )}\n {interactive && (\n <KeyboardArrowDownRoundedIcon\n fontSize=\"small\"\n sx={{ color: \"text.disabled\", transform: open ? \"rotate(180deg)\" : \"none\" }}\n />\n )}\n </>\n );\n}\n\n/** The name + unsaved dot; a button only when there are views to open. */\nfunction ViewToggle({\n view,\n open,\n onToggle,\n testIdPrefix,\n}: {\n view: DisplayPanelView;\n open: boolean;\n onToggle: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const interactive = Boolean(view.nav);\n // One decision, not eight: a panel with no views renders the same row as\n // plain text rather than as a button that opens nothing.\n const affordance = interactive\n ? { px: 0.75, py: 0.25, cursor: \"pointer\", \"&:hover\": { bgcolor: \"action.hover\" } }\n : { px: 0, py: 0, cursor: \"default\" };\n return (\n <Box\n component={interactive ? \"button\" : \"div\"}\n type={interactive ? \"button\" : undefined}\n onClick={interactive ? onToggle : undefined}\n aria-expanded={interactive ? open : undefined}\n data-testid={`${testIdPrefix}-display-view-toggle`}\n sx={{\n ml: \"auto\",\n display: \"flex\",\n alignItems: \"center\",\n gap: 0.75,\n minWidth: 0,\n border: 0,\n borderRadius: 1,\n font: \"inherit\",\n fontSize: \"0.75rem\",\n bgcolor: open ? \"action.selected\" : \"transparent\",\n ...affordance,\n }}\n >\n <ToggleContents view={view} open={open} interactive={interactive} testIdPrefix={testIdPrefix} />\n </Box>\n );\n}\n\n/** The VISÃO row above the tabs. */\nexport function ViewHeader(props: {\n view: DisplayPanelView;\n open: boolean;\n onToggle: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1, px: 1.5, py: 1, borderBottom: 1, borderColor: \"divider\" }}>\n <Text variant=\"caption\" as=\"span\">\n <Box component=\"span\" sx={{ textTransform: \"uppercase\", letterSpacing: 0.5, color: \"text.disabled\" }}>\n {copy.nav.label}\n </Box>\n </Text>\n <ViewToggle {...props} />\n </Box>\n );\n}\n\n/** Redefinir / Salvar como nova / Atualizar, pinned below the tabs. */\nexport function ViewFooter({\n view,\n onDone,\n testIdPrefix,\n}: {\n view: DisplayPanelView;\n onDone: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 1,\n px: 1.5,\n py: 1,\n borderTop: 1,\n borderColor: \"divider\",\n bgcolor: \"action.hover\",\n }}\n >\n <Button\n variant=\"text\"\n size=\"sm\"\n color=\"neutral\"\n disabled={!view.dirty}\n startIcon={<RestartAltRoundedIcon fontSize=\"small\" />}\n onClick={view.onReset}\n dataTestId={`${testIdPrefix}-display-reset`}\n >\n {copy.nav.reset}\n </Button>\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}>\n {/* Only meaningful with a view APPLIED: on the main view the single\n \"Salvar visão\" already is \"save as new\". */}\n {view.onUpdate && (\n <Button\n variant=\"text\"\n size=\"sm\"\n color=\"neutral\"\n onClick={() => {\n view.onSaveAs();\n onDone();\n }}\n dataTestId={`${testIdPrefix}-display-save-as`}\n >\n {copy.nav.saveAs}\n </Button>\n )}\n {/* Enabled only when something in Ordenar / Colunas / Exibição (or the\n filters the view also stores) differs from the applied view: the\n filled button is a STATE — \"there is something to save\" — not a\n permanent fixture. */}\n <Button\n size=\"sm\"\n disabled={!view.dirty}\n startIcon={<SaveOutlinedIcon fontSize=\"small\" />}\n onClick={() => {\n (view.onUpdate ?? view.onSaveAs)();\n onDone();\n }}\n dataTestId={`${testIdPrefix}-display-save`}\n >\n {view.onUpdate ? copy.nav.update : copy.nav.save}\n </Button>\n </Box>\n </Box>\n );\n}\n\n"],"mappings":"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","names":["default"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
GridShell
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NXNNICH7.js";
|
|
4
4
|
import {
|
|
5
5
|
useDataViewsState
|
|
6
6
|
} from "./chunk-TX5V42AY.js";
|
|
@@ -27,4 +27,4 @@ function DataViewsGrid(props) {
|
|
|
27
27
|
export {
|
|
28
28
|
DataViewsGrid
|
|
29
29
|
};
|
|
30
|
-
//# sourceMappingURL=chunk-
|
|
30
|
+
//# sourceMappingURL=chunk-QX2PLXQA.js.map
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
ViewFooter,
|
|
11
11
|
ViewHeader,
|
|
12
12
|
ViewsList
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-O6AZDQJJ.js";
|
|
14
14
|
import {
|
|
15
15
|
useDataViewsCopy
|
|
16
16
|
} from "./chunk-KHG57NAE.js";
|
|
@@ -261,4 +261,4 @@ function DataViewsDisplayPanel({
|
|
|
261
261
|
export {
|
|
262
262
|
DataViewsDisplayPanel
|
|
263
263
|
};
|
|
264
|
-
//# sourceMappingURL=chunk-
|
|
264
|
+
//# sourceMappingURL=chunk-SQNW22ZZ.js.map
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
} from "../chunk-JWW2Z3RH.js";
|
|
4
4
|
import {
|
|
5
5
|
DataViewsTableBase
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-DI7HGYPX.js";
|
|
7
7
|
import "../chunk-4X4KM4ZB.js";
|
|
8
8
|
import {
|
|
9
9
|
DataViewsGrid
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-QX2PLXQA.js";
|
|
11
11
|
import {
|
|
12
12
|
BaseListCard
|
|
13
13
|
} from "../chunk-WR5JFDQ5.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
DropIndicator,
|
|
23
23
|
useDragItem
|
|
24
24
|
} from "../chunk-JCJGJX7V.js";
|
|
25
|
-
import "../chunk-
|
|
25
|
+
import "../chunk-NXNNICH7.js";
|
|
26
26
|
import "../chunk-BPLFM2GL.js";
|
|
27
27
|
import {
|
|
28
28
|
DataViewsBoard
|
|
@@ -43,7 +43,7 @@ import "../chunk-CBOB5AV6.js";
|
|
|
43
43
|
import "../chunk-HP2ODXNA.js";
|
|
44
44
|
import "../chunk-TQ6FPOPD.js";
|
|
45
45
|
import "../chunk-IAGOUTI6.js";
|
|
46
|
-
import "../chunk-
|
|
46
|
+
import "../chunk-7GKRZJWI.js";
|
|
47
47
|
import "../chunk-KX75HM5U.js";
|
|
48
48
|
import "../chunk-XKV5ZIBG.js";
|
|
49
49
|
import "../chunk-A7Q5AQVD.js";
|
|
@@ -56,8 +56,8 @@ import {
|
|
|
56
56
|
import {
|
|
57
57
|
DEFAULT_CELL_WIDTH
|
|
58
58
|
} from "../chunk-6VP2L3DJ.js";
|
|
59
|
-
import "../chunk-
|
|
60
|
-
import "../chunk-
|
|
59
|
+
import "../chunk-JD4IVP22.js";
|
|
60
|
+
import "../chunk-SQNW22ZZ.js";
|
|
61
61
|
import "../chunk-7NSX7A5H.js";
|
|
62
62
|
import "../chunk-DW5FRWRQ.js";
|
|
63
63
|
import "../chunk-SNR537TI.js";
|
|
@@ -66,7 +66,7 @@ import {
|
|
|
66
66
|
cardMinWidthForZoom,
|
|
67
67
|
cardScaleForZoom
|
|
68
68
|
} from "../chunk-ZPIMPOHV.js";
|
|
69
|
-
import "../chunk-
|
|
69
|
+
import "../chunk-O6AZDQJJ.js";
|
|
70
70
|
import "../chunk-U2YJCNRU.js";
|
|
71
71
|
import "../chunk-CHPZTF34.js";
|
|
72
72
|
import "../chunk-6JGPPTLX.js";
|
|
@@ -4,7 +4,7 @@ import type { SavedViewSummary } from "./data-views-types";
|
|
|
4
4
|
export interface ViewNavHandlers {
|
|
5
5
|
views: SavedViewSummary[];
|
|
6
6
|
activeViewId?: string | null;
|
|
7
|
-
/** `null` selects the built-in
|
|
7
|
+
/** `null` selects the built-in view named by `copy.nav.mainView`. */
|
|
8
8
|
onSelectView: (id: string | null) => void;
|
|
9
9
|
onEditView: (view: SavedViewSummary) => void;
|
|
10
10
|
onPatchView: (view: SavedViewSummary, changes: Partial<Pick<SavedViewSummary, "isDefault" | "pinned" | "shared">>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-views-view-nav.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-view-nav.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,
|
|
1
|
+
{"version":3,"file":"data-views-view-nav.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-view-nav.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,qEAAqE;IACrE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,CACX,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC,KACxE,IAAI,CAAC;IACV,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAChD;AAoBD,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,aAAa,EACb,YAAY,GACb,EAAE;IACD,QAAQ,EAAE,eAAe,CAAC;IAC1B,aAAa,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmEpB;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,YAAY,GACb,EAAE;IACD,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAoDpB;AAkFD,oCAAoC;AACpC,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAChC,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAYpB;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,MAAM,EACN,YAAY,GACb,EAAE;IACD,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+DpB"}
|
package/package.json
CHANGED
|
@@ -37,7 +37,7 @@ import type { SavedViewSummary } from "./data-views-types";
|
|
|
37
37
|
export interface ViewNavHandlers {
|
|
38
38
|
views: SavedViewSummary[];
|
|
39
39
|
activeViewId?: string | null;
|
|
40
|
-
/** `null` selects the built-in
|
|
40
|
+
/** `null` selects the built-in view named by `copy.nav.mainView`. */
|
|
41
41
|
onSelectView: (id: string | null) => void;
|
|
42
42
|
onEditView: (view: SavedViewSummary) => void;
|
|
43
43
|
onPatchView: (
|
|
@@ -224,7 +224,7 @@ function ToggleContents({
|
|
|
224
224
|
return (
|
|
225
225
|
<>
|
|
226
226
|
<Box component="span" sx={{ fontWeight: 600 }} data-testid={`${testIdPrefix}-display-view-name`}>
|
|
227
|
-
{view.activeViewName ??
|
|
227
|
+
{view.activeViewName ?? copy.nav.mainView}
|
|
228
228
|
</Box>
|
|
229
229
|
{view.dirty && (
|
|
230
230
|
<Box
|
|
@@ -345,7 +345,7 @@ export function ViewFooter({
|
|
|
345
345
|
{copy.nav.reset}
|
|
346
346
|
</Button>
|
|
347
347
|
<Box sx={{ display: "flex", alignItems: "center", gap: 1 }}>
|
|
348
|
-
{/* Only meaningful with a view APPLIED: on
|
|
348
|
+
{/* Only meaningful with a view APPLIED: on the main view the single
|
|
349
349
|
"Salvar visão" already is "save as new". */}
|
|
350
350
|
{view.onUpdate && (
|
|
351
351
|
<Button
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/DataViews/data-views-view-nav.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The saved views, rendered INSIDE the Exibir panel rather than in a dropdown\n * of their own.\n *\n * Two levels, both of them replacing the panel's BODY (the tabs stay put):\n * the list of views, and one view's actions. It is a drill-down and not a\n * nested menu on purpose — an absolutely positioned popover inside the panel's\n * own scroll container gets clipped by it, which is how copy.nav.deleteView ends\n * up unreachable. One level, no clipping, and it works on touch.\n */\nimport ChevronLeftRoundedIcon from \"@mui/icons-material/ChevronLeftRounded\";\nimport CheckRoundedIcon from \"@mui/icons-material/CheckRounded\";\nimport DeleteOutlineRoundedIcon from \"@mui/icons-material/DeleteOutlineRounded\";\nimport EditOutlinedIcon from \"@mui/icons-material/EditOutlined\";\nimport GroupOutlinedIcon from \"@mui/icons-material/GroupOutlined\";\nimport MoreVertRoundedIcon from \"@mui/icons-material/MoreVertRounded\";\nimport PushPinOutlinedIcon from \"@mui/icons-material/PushPinOutlined\";\nimport StarOutlineRoundedIcon from \"@mui/icons-material/StarOutlined\";\nimport StarOutlineRoundedIcon2 from \"@mui/icons-material/StarOutlineRounded\";\nimport IconButton from \"@mui/material/IconButton/index.js\";\n\nimport KeyboardArrowDownRoundedIcon from \"@mui/icons-material/KeyboardArrowDownRounded\";\nimport RestartAltRoundedIcon from \"@mui/icons-material/RestartAltRounded\";\nimport SaveOutlinedIcon from \"@mui/icons-material/SaveOutlined\";\n\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { Button } from \"../../form/Button\";\nimport { Box } from \"../../../mui/Box\";\nimport { Text } from \"../../typography/Text\";\n\nimport type { DisplayPanelView } from \"./data-views-display-panel\";\nimport type { SavedViewSummary } from \"./data-views-types\";\n\n/** What the panel needs to drive the views without owning any of them. */\nexport interface ViewNavHandlers {\n views: SavedViewSummary[];\n activeViewId?: string | null;\n /** `null` selects the built-in \"{copy.nav.mainView}\". */\n onSelectView: (id: string | null) => void;\n onEditView: (view: SavedViewSummary) => void;\n onPatchView: (\n view: SavedViewSummary,\n changes: Partial<Pick<SavedViewSummary, \"isDefault\" | \"pinned\" | \"shared\">>,\n ) => void;\n onDeleteView: (view: SavedViewSummary) => void;\n}\n\nconst rowSx = {\n display: \"flex\",\n alignItems: \"center\",\n gap: 1,\n width: \"100%\",\n px: 1.25,\n py: 1,\n border: 0,\n borderRadius: 1,\n bgcolor: \"transparent\",\n cursor: \"pointer\",\n font: \"inherit\",\n fontSize: \"0.8125rem\",\n textAlign: \"left\",\n color: \"text.primary\",\n \"&:hover\": { bgcolor: \"action.hover\" },\n} as const;\n\n/** The list: the built-in view, then each saved one with its own \"⋮\". */\nexport function ViewsList({\n handlers,\n onOpenActions,\n testIdPrefix,\n}: {\n handlers: ViewNavHandlers;\n onOpenActions: (view: SavedViewSummary) => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n const { views, activeViewId, onSelectView } = handlers;\n const onMain = !activeViewId;\n return (\n <Box sx={{ p: 0.75 }} data-testid={`${testIdPrefix}-views-list`}>\n <Box\n component=\"button\"\n type=\"button\"\n onClick={() => onSelectView(null)}\n data-testid={`${testIdPrefix}-view-main`}\n sx={{ ...rowSx, color: onMain ? \"primary.main\" : \"text.primary\", fontWeight: onMain ? 600 : 400 }}\n >\n <Box component=\"span\" sx={{ flex: 1 }}>\n {copy.nav.mainView}\n </Box>\n {onMain && <CheckRoundedIcon fontSize=\"small\" />}\n </Box>\n\n {views.map((view) => {\n const active = view.id === activeViewId;\n return (\n <Box key={view.id} sx={{ display: \"flex\", alignItems: \"center\" }}>\n <Box\n component=\"button\"\n type=\"button\"\n onClick={() => onSelectView(view.id)}\n data-testid={`${testIdPrefix}-view-${view.id}`}\n sx={{ ...rowSx, minWidth: 0, color: active ? \"primary.main\" : \"text.primary\", fontWeight: active ? 600 : 400 }}\n >\n <Box component=\"span\" sx={{ flex: 1, minWidth: 0, overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" }}>\n {view.name}\n </Box>\n {/* What the row-menu toggles DID, readable without opening it:\n a view set as default, pinned or shared says so here. */}\n {view.isDefault && (\n <StarOutlineRoundedIcon fontSize=\"small\" sx={{ color: \"warning.main\" }} titleAccess={copy.nav.defaultTag} />\n )}\n {view.pinned && (\n <PushPinOutlinedIcon fontSize=\"small\" sx={{ color: \"text.disabled\" }} titleAccess=\"Fixada\" />\n )}\n {view.shared && (\n <GroupOutlinedIcon fontSize=\"small\" sx={{ color: \"text.disabled\" }} titleAccess=\"Compartilhada\" />\n )}\n {active && <CheckRoundedIcon fontSize=\"small\" />}\n </Box>\n <IconButton\n size=\"small\"\n onClick={() => onOpenActions(view)}\n aria-label={copy.nav.viewOptions(view.name)}\n data-testid={`${testIdPrefix}-view-${view.id}-menu`}\n >\n <MoreVertRoundedIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n );\n })}\n\n {views.length === 0 && (\n <Text variant=\"caption\" as=\"p\">\n <Box component=\"span\" sx={{ display: \"block\", px: 1.25, py: 1.5, color: \"text.secondary\", lineHeight: 1.6 }}>\n {copy.nav.emptyHint}\n </Box>\n </Text>\n )}\n </Box>\n );\n}\n\n/** One view's actions, reached from its \"⋮\" and left by the back row. */\nexport function ViewActions({\n view,\n handlers,\n onBack,\n testIdPrefix,\n}: {\n view: SavedViewSummary;\n handlers: ViewNavHandlers;\n onBack: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n const { onEditView, onPatchView, onDeleteView } = handlers;\n const action = (\n key: string,\n Icon: typeof StarOutlineRoundedIcon2,\n label: string,\n onClick: () => void,\n opts: { on?: boolean; danger?: boolean } = {},\n ): React.JSX.Element => (\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onClick}\n data-testid={`${testIdPrefix}-view-action-${key}`}\n sx={{\n ...rowSx,\n color: opts.danger ? \"error.main\" : \"text.primary\",\n \"&:hover\": { bgcolor: opts.danger ? \"error.lighter\" : \"action.hover\" },\n }}\n >\n <Icon fontSize=\"small\" sx={{ color: opts.danger ? \"inherit\" : \"text.disabled\" }} />\n <Box component=\"span\" sx={{ flex: 1 }}>\n {label}\n </Box>\n {opts.on && <CheckRoundedIcon fontSize=\"small\" color=\"primary\" />}\n </Box>\n );\n\n return (\n <Box sx={{ p: 0.75 }} data-testid={`${testIdPrefix}-view-actions`}>\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onBack}\n data-testid={`${testIdPrefix}-view-actions-back`}\n sx={{ ...rowSx, color: \"text.secondary\", fontSize: \"0.75rem\" }}\n >\n <ChevronLeftRoundedIcon fontSize=\"small\" />\n <Box component=\"span\" sx={{ flex: 1, fontWeight: 600, color: \"text.primary\" }}>\n {view.name}\n </Box>\n </Box>\n <Box sx={{ my: 0.5, borderTop: 1, borderColor: \"divider\" }} />\n {action(\"edit\", EditOutlinedIcon, copy.nav.editView, () => onEditView(view))}\n {action(\"default\", StarOutlineRoundedIcon2, copy.nav.setDefault, () => onPatchView(view, { isDefault: !view.isDefault }), { on: view.isDefault })}\n {action(\"pin\", PushPinOutlinedIcon, copy.nav.pinToSidebar, () => onPatchView(view, { pinned: !view.pinned }), { on: view.pinned })}\n {action(\"share\", GroupOutlinedIcon, copy.nav.shareWithTeam, () => onPatchView(view, { shared: !view.shared }), { on: view.shared })}\n <Box sx={{ my: 0.5, borderTop: 1, borderColor: \"divider\" }} />\n {action(\"delete\", DeleteOutlineRoundedIcon, copy.nav.deleteView, () => onDeleteView(view), { danger: true })}\n </Box>\n );\n}\n\n/** Name, unsaved dot, chevron — the parts, so the toggle has one decision. */\nfunction ToggleContents({\n view,\n open,\n interactive,\n testIdPrefix,\n}: {\n view: DisplayPanelView;\n open: boolean;\n interactive: boolean;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <>\n <Box component=\"span\" sx={{ fontWeight: 600 }} data-testid={`${testIdPrefix}-display-view-name`}>\n {view.activeViewName ?? \"{copy.nav.mainView}\"}\n </Box>\n {view.dirty && (\n <Box\n component=\"span\"\n aria-label={copy.nav.unsavedChanges}\n data-testid={`${testIdPrefix}-display-dirty`}\n sx={{ height: 6, width: 6, borderRadius: \"50%\", bgcolor: \"primary.main\" }}\n />\n )}\n {interactive && (\n <KeyboardArrowDownRoundedIcon\n fontSize=\"small\"\n sx={{ color: \"text.disabled\", transform: open ? \"rotate(180deg)\" : \"none\" }}\n />\n )}\n </>\n );\n}\n\n/** The name + unsaved dot; a button only when there are views to open. */\nfunction ViewToggle({\n view,\n open,\n onToggle,\n testIdPrefix,\n}: {\n view: DisplayPanelView;\n open: boolean;\n onToggle: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const interactive = Boolean(view.nav);\n // One decision, not eight: a panel with no views renders the same row as\n // plain text rather than as a button that opens nothing.\n const affordance = interactive\n ? { px: 0.75, py: 0.25, cursor: \"pointer\", \"&:hover\": { bgcolor: \"action.hover\" } }\n : { px: 0, py: 0, cursor: \"default\" };\n return (\n <Box\n component={interactive ? \"button\" : \"div\"}\n type={interactive ? \"button\" : undefined}\n onClick={interactive ? onToggle : undefined}\n aria-expanded={interactive ? open : undefined}\n data-testid={`${testIdPrefix}-display-view-toggle`}\n sx={{\n ml: \"auto\",\n display: \"flex\",\n alignItems: \"center\",\n gap: 0.75,\n minWidth: 0,\n border: 0,\n borderRadius: 1,\n font: \"inherit\",\n fontSize: \"0.75rem\",\n bgcolor: open ? \"action.selected\" : \"transparent\",\n ...affordance,\n }}\n >\n <ToggleContents view={view} open={open} interactive={interactive} testIdPrefix={testIdPrefix} />\n </Box>\n );\n}\n\n/** The VISÃO row above the tabs. */\nexport function ViewHeader(props: {\n view: DisplayPanelView;\n open: boolean;\n onToggle: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1, px: 1.5, py: 1, borderBottom: 1, borderColor: \"divider\" }}>\n <Text variant=\"caption\" as=\"span\">\n <Box component=\"span\" sx={{ textTransform: \"uppercase\", letterSpacing: 0.5, color: \"text.disabled\" }}>\n {copy.nav.label}\n </Box>\n </Text>\n <ViewToggle {...props} />\n </Box>\n );\n}\n\n/** Redefinir / Salvar como nova / Atualizar, pinned below the tabs. */\nexport function ViewFooter({\n view,\n onDone,\n testIdPrefix,\n}: {\n view: DisplayPanelView;\n onDone: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 1,\n px: 1.5,\n py: 1,\n borderTop: 1,\n borderColor: \"divider\",\n bgcolor: \"action.hover\",\n }}\n >\n <Button\n variant=\"text\"\n size=\"sm\"\n color=\"neutral\"\n disabled={!view.dirty}\n startIcon={<RestartAltRoundedIcon fontSize=\"small\" />}\n onClick={view.onReset}\n dataTestId={`${testIdPrefix}-display-reset`}\n >\n {copy.nav.reset}\n </Button>\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}>\n {/* Only meaningful with a view APPLIED: on {copy.nav.mainView} the single\n \"Salvar visão\" already is \"save as new\". */}\n {view.onUpdate && (\n <Button\n variant=\"text\"\n size=\"sm\"\n color=\"neutral\"\n onClick={() => {\n view.onSaveAs();\n onDone();\n }}\n dataTestId={`${testIdPrefix}-display-save-as`}\n >\n {copy.nav.saveAs}\n </Button>\n )}\n {/* Enabled only when something in Ordenar / Colunas / Exibição (or the\n filters the view also stores) differs from the applied view: the\n filled button is a STATE — \"there is something to save\" — not a\n permanent fixture. */}\n <Button\n size=\"sm\"\n disabled={!view.dirty}\n startIcon={<SaveOutlinedIcon fontSize=\"small\" />}\n onClick={() => {\n (view.onUpdate ?? view.onSaveAs)();\n onDone();\n }}\n dataTestId={`${testIdPrefix}-display-save`}\n >\n {view.onUpdate ? copy.nav.update : copy.nav.save}\n </Button>\n </Box>\n </Box>\n );\n}\n\n"],"mappings":"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","names":["default"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|