@owp/core 2.5.8 → 2.5.10
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/_virtual/index16.js +4 -4
- package/dist/_virtual/index17.js +4 -4
- package/dist/_virtual/index18.js +4 -4
- package/dist/_virtual/index19.js +4 -4
- package/dist/components/OwpDialog/OwpDialog.js +67 -46
- package/dist/components/OwpDialog/OwpDialog.js.map +1 -1
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +162 -153
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
- package/dist/components/OwpTable/OwpDataTable.js +297 -283
- package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
- package/dist/components/OwpTable/OwpFieldTable.js +98 -86
- package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
- package/dist/components/OwpTable/OwpTable.js +145 -127
- package/dist/components/OwpTable/OwpTable.js.map +1 -1
- package/dist/components/OwpTable/internal/defaultTableStyle.js +21 -15
- package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +195 -147
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
- package/dist/constants/tableTheme.js.map +1 -1
- package/dist/features/themePreview/components/ThemePreviewCanvas.js +300 -263
- package/dist/features/themePreview/components/ThemePreviewCanvas.js.map +1 -1
- package/dist/features/themePreview/components/ThemePreviewCanvasSections.js +148 -141
- package/dist/features/themePreview/components/ThemePreviewCanvasSections.js.map +1 -1
- package/dist/features/themePreview/components/ThemePreviewColorField.js +168 -138
- package/dist/features/themePreview/components/ThemePreviewColorField.js.map +1 -1
- package/dist/features/themePreview/components/ThemePreviewControls.js +410 -218
- package/dist/features/themePreview/components/ThemePreviewControls.js.map +1 -1
- package/dist/features/themePreview/components/themePreviewCanvas.shared.js +145 -125
- package/dist/features/themePreview/components/themePreviewCanvas.shared.js.map +1 -1
- package/dist/features/themePreview/configs/table.js +4 -2
- package/dist/features/themePreview/configs/table.js.map +1 -1
- package/dist/features/themePreview/dialogs/ThemePreviewDialog.js +124 -118
- package/dist/features/themePreview/dialogs/ThemePreviewDialog.js.map +1 -1
- package/dist/features/themePreview/hooks/useThemePreview.js +275 -193
- package/dist/features/themePreview/hooks/useThemePreview.js.map +1 -1
- package/dist/features/themePreview/utils/themePreviewDefinitions.js +8 -0
- package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -1
- package/dist/features/themePreview/utils/themePreviewSettings.js +188 -151
- package/dist/features/themePreview/utils/themePreviewSettings.js.map +1 -1
- package/dist/features/themePreview.js +18 -17
- package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
- package/dist/layout/components/toolbar/ToolbarLayout.js +36 -35
- package/dist/layout/components/toolbar/ToolbarLayout.js.map +1 -1
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/RestartAltOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/RestartAltOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
- package/dist/node_modules/.pnpm/react-overlays@5.2.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-overlays/esm/Portal.js +1 -1
- package/dist/owp-app.css +1 -1
- package/dist/types/components/OwpDialog/OwpDialog.d.ts +2 -0
- package/dist/types/components/OwpTable/OwpFieldTable.d.ts +3 -2
- package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +2 -0
- package/dist/types/constants/tableTheme.d.ts +1 -0
- package/dist/types/features/themePreview/components/ThemePreviewColorField.d.ts +3 -1
- package/dist/types/features/themePreview/components/ThemePreviewControls.d.ts +4 -1
- package/dist/types/features/themePreview/configs/settings.d.ts +2 -0
- package/dist/types/features/themePreview/configs/table.d.ts +2 -0
- package/dist/types/features/themePreview/hooks/useThemePreview.d.ts +3 -0
- package/dist/types/features/themePreview/utils/index.d.ts +1 -1
- package/dist/types/features/themePreview/utils/themePreviewSettings.d.ts +11 -1
- package/dist/types/types/OwpTableThemeTypes.d.ts +8 -0
- package/package.json +1 -1
|
@@ -1,45 +1,51 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
import { toolbarCuratedPresetKeys as
|
|
4
|
-
import { defaultSnackbarTheme as
|
|
5
|
-
import { merge as
|
|
6
|
-
import { isString as
|
|
7
|
-
import { isObject as
|
|
8
|
-
const
|
|
9
|
-
let
|
|
10
|
-
const
|
|
1
|
+
var x = Object.defineProperty;
|
|
2
|
+
var i = (e, r) => x(e, "name", { value: r, configurable: !0 });
|
|
3
|
+
import { toolbarCuratedPresetKeys as I } from "../configs/presets.js";
|
|
4
|
+
import { defaultSnackbarTheme as f, defaultSnackbarProviderProps as p } from "../configs/snackbar.js";
|
|
5
|
+
import { merge as P } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/merge.js";
|
|
6
|
+
import { isString as R } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isString.js";
|
|
7
|
+
import { isObject as d } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isObject.js";
|
|
8
|
+
const S = "__custom__", V = ["grid", "table", "snackbar"];
|
|
9
|
+
let k = null, T = null;
|
|
10
|
+
const h = "snackbarProviderProps.";
|
|
11
11
|
function u(e) {
|
|
12
|
-
return
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
return d(e) ? e : {};
|
|
13
|
+
}
|
|
14
|
+
i(u, "asObjectRecord");
|
|
15
|
+
function E(e, r) {
|
|
16
|
+
return d(r) ? d(e) ? Object.entries(r).every(
|
|
17
|
+
([n, t]) => E(u(e)[n], t)
|
|
18
|
+
) : !1 : e === r;
|
|
19
|
+
}
|
|
20
|
+
i(E, "isThemePreviewPresetValueMatch");
|
|
21
|
+
function C(e, r = f) {
|
|
22
|
+
const n = "snackbar" in e && d(e.snackbar) ? e.snackbar : void 0;
|
|
23
|
+
return P({}, f, r, n);
|
|
24
|
+
}
|
|
25
|
+
i(C, "getThemePreviewSnackbarTheme");
|
|
26
|
+
function j(e, r = p) {
|
|
27
|
+
const n = "snackbarProviderProps" in e && d(e.snackbarProviderProps) ? e.snackbarProviderProps : void 0;
|
|
28
|
+
return P(
|
|
23
29
|
{},
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
p,
|
|
31
|
+
r,
|
|
32
|
+
n
|
|
27
33
|
);
|
|
28
34
|
}
|
|
29
|
-
|
|
30
|
-
function
|
|
31
|
-
return
|
|
32
|
-
snackbar:
|
|
33
|
-
snackbarProviderProps:
|
|
35
|
+
i(j, "getThemePreviewSnackbarProviderProps");
|
|
36
|
+
function w(e, r = f) {
|
|
37
|
+
return P({}, e, {
|
|
38
|
+
snackbar: C(e, r),
|
|
39
|
+
snackbarProviderProps: j(e)
|
|
34
40
|
});
|
|
35
41
|
}
|
|
36
|
-
|
|
37
|
-
function
|
|
42
|
+
i(w, "createThemePreviewSettings");
|
|
43
|
+
function X(e) {
|
|
38
44
|
return V.includes(e);
|
|
39
45
|
}
|
|
40
|
-
|
|
41
|
-
function
|
|
42
|
-
switch (
|
|
46
|
+
i(X, "isThemePreviewCustomSection");
|
|
47
|
+
function M(e, r) {
|
|
48
|
+
switch (r) {
|
|
43
49
|
case "grid":
|
|
44
50
|
return u(e.theme.main.grid);
|
|
45
51
|
case "table":
|
|
@@ -47,165 +53,196 @@ function p(e, t) {
|
|
|
47
53
|
case "snackbar":
|
|
48
54
|
return u(e.snackbar);
|
|
49
55
|
default:
|
|
50
|
-
return u(e.theme[
|
|
56
|
+
return u(e.theme[r].palette);
|
|
51
57
|
}
|
|
52
58
|
}
|
|
53
|
-
|
|
54
|
-
function
|
|
55
|
-
return
|
|
59
|
+
i(M, "getThemePreviewSectionTarget");
|
|
60
|
+
function _(e) {
|
|
61
|
+
return w(e);
|
|
56
62
|
}
|
|
57
|
-
|
|
58
|
-
function
|
|
59
|
-
return
|
|
60
|
-
theme:
|
|
63
|
+
i(_, "cloneThemePreviewSettings");
|
|
64
|
+
function Y(e, r, n = f) {
|
|
65
|
+
return P({}, w(e, n), {
|
|
66
|
+
theme: r
|
|
61
67
|
});
|
|
62
68
|
}
|
|
63
|
-
|
|
64
|
-
function
|
|
65
|
-
const [
|
|
66
|
-
return typeof
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function
|
|
70
|
-
return e.theme[
|
|
69
|
+
i(Y, "getThemePreviewResetSettings");
|
|
70
|
+
function $(e, r, n) {
|
|
71
|
+
const [t, c] = n.startsWith(h) ? [u(e.snackbarProviderProps), n.slice(h.length)] : [M(e, r), n], a = c.split(".").reduce((s, o) => u(s)[o], t);
|
|
72
|
+
return typeof a == "number" ? String(a) : R(a) ? a : "";
|
|
73
|
+
}
|
|
74
|
+
i($, "getThemePreviewPaletteValue");
|
|
75
|
+
function b(e, r) {
|
|
76
|
+
return e.theme[r].palette.mode === "dark" ? "dark" : "light";
|
|
77
|
+
}
|
|
78
|
+
i(b, "getThemePreviewSectionMode");
|
|
79
|
+
function v(e, r, n, t) {
|
|
80
|
+
var a;
|
|
81
|
+
const c = b(e, r);
|
|
82
|
+
return ((a = N(t, r, c).find(
|
|
83
|
+
(s) => {
|
|
84
|
+
var o;
|
|
85
|
+
return E(
|
|
86
|
+
e.theme[r].palette,
|
|
87
|
+
(o = n[s.key]) == null ? void 0 : o.palette
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
)) == null ? void 0 : a.key) ?? S;
|
|
71
91
|
}
|
|
72
|
-
|
|
73
|
-
function
|
|
74
|
-
return
|
|
92
|
+
i(v, "getThemePreviewMatchedPresetKey");
|
|
93
|
+
function B(e, r, n = y(r)) {
|
|
94
|
+
return {
|
|
95
|
+
main: v(e, "main", r, n),
|
|
96
|
+
navbar: v(e, "navbar", r, n),
|
|
97
|
+
toolbar: v(e, "toolbar", r, n)
|
|
98
|
+
};
|
|
75
99
|
}
|
|
76
|
-
|
|
77
|
-
function
|
|
78
|
-
|
|
100
|
+
i(B, "getThemePreviewMatchedPresetKeys");
|
|
101
|
+
function q(e) {
|
|
102
|
+
return w(k ?? e);
|
|
79
103
|
}
|
|
80
|
-
|
|
81
|
-
function
|
|
82
|
-
|
|
104
|
+
i(q, "getThemePreviewDraftSettings");
|
|
105
|
+
function z(e) {
|
|
106
|
+
k = _(e);
|
|
107
|
+
}
|
|
108
|
+
i(z, "setThemePreviewDraftSettings");
|
|
109
|
+
function G(e, r, n) {
|
|
110
|
+
const t = y(n), c = {
|
|
111
|
+
main: b(e, "main"),
|
|
112
|
+
navbar: b(e, "navbar"),
|
|
113
|
+
toolbar: b(e, "toolbar")
|
|
114
|
+
}, a = B(e, n, t), s = P(
|
|
83
115
|
{
|
|
84
|
-
selectedPresetKeys:
|
|
85
|
-
selectedModes:
|
|
86
|
-
main: f(e, "main"),
|
|
87
|
-
navbar: f(e, "navbar"),
|
|
88
|
-
toolbar: f(e, "toolbar")
|
|
89
|
-
}
|
|
116
|
+
selectedPresetKeys: a,
|
|
117
|
+
selectedModes: c
|
|
90
118
|
},
|
|
91
|
-
|
|
119
|
+
T ?? {}
|
|
92
120
|
);
|
|
121
|
+
return Object.keys(c).forEach((o) => {
|
|
122
|
+
const l = N(
|
|
123
|
+
t,
|
|
124
|
+
o,
|
|
125
|
+
s.selectedModes[o]
|
|
126
|
+
);
|
|
127
|
+
s.selectedPresetKeys[o] !== S && (l.some((m) => m.key === s.selectedPresetKeys[o]) || (s.selectedPresetKeys[o] = a[o] !== S ? a[o] : r[o]));
|
|
128
|
+
}), s;
|
|
93
129
|
}
|
|
94
|
-
|
|
95
|
-
function
|
|
96
|
-
|
|
130
|
+
i(G, "getThemePreviewSelectionState");
|
|
131
|
+
function J(e) {
|
|
132
|
+
T = P({}, e);
|
|
97
133
|
}
|
|
98
|
-
|
|
99
|
-
function
|
|
100
|
-
|
|
134
|
+
i(J, "setThemePreviewSelectionState");
|
|
135
|
+
function L() {
|
|
136
|
+
k = null, T = null;
|
|
101
137
|
}
|
|
102
|
-
|
|
103
|
-
function
|
|
104
|
-
const
|
|
105
|
-
if (!
|
|
138
|
+
i(L, "resetThemePreviewSessionState");
|
|
139
|
+
function D(e, r, n) {
|
|
140
|
+
const t = r.split("."), c = t.pop();
|
|
141
|
+
if (!c)
|
|
106
142
|
return;
|
|
107
|
-
let
|
|
108
|
-
|
|
109
|
-
const
|
|
110
|
-
|
|
143
|
+
let a = e;
|
|
144
|
+
t.forEach((o) => {
|
|
145
|
+
const l = a[o];
|
|
146
|
+
d(l) || (a[o] = {}), a = u(a[o]);
|
|
111
147
|
});
|
|
112
|
-
const
|
|
113
|
-
if (typeof
|
|
114
|
-
const
|
|
115
|
-
|
|
148
|
+
const s = a[c];
|
|
149
|
+
if (typeof s == "number") {
|
|
150
|
+
const o = Number(n.replace(/,/g, "."));
|
|
151
|
+
a[c] = Number.isNaN(o) ? s : o;
|
|
116
152
|
return;
|
|
117
153
|
}
|
|
118
|
-
|
|
154
|
+
a[c] = n;
|
|
119
155
|
}
|
|
120
|
-
|
|
121
|
-
function
|
|
122
|
-
if (!
|
|
156
|
+
i(D, "applyThemePreviewPaletteValue");
|
|
157
|
+
function O(e, r, n) {
|
|
158
|
+
if (!n.length)
|
|
123
159
|
return e;
|
|
124
|
-
const
|
|
125
|
-
switch (
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
), m =
|
|
129
|
-
|
|
130
|
-
|
|
160
|
+
const t = _(e), c = M(t, r), a = u(t.snackbarProviderProps);
|
|
161
|
+
switch (n.forEach(({ path: s, value: o }) => {
|
|
162
|
+
const l = s.startsWith(
|
|
163
|
+
h
|
|
164
|
+
), m = l ? s.slice(h.length) : s;
|
|
165
|
+
D(
|
|
166
|
+
l ? a : c,
|
|
131
167
|
m,
|
|
132
|
-
|
|
168
|
+
o
|
|
133
169
|
);
|
|
134
|
-
}),
|
|
170
|
+
}), t.snackbarProviderProps = a, r) {
|
|
135
171
|
case "grid":
|
|
136
|
-
return
|
|
172
|
+
return t.theme.main.grid = c, t;
|
|
137
173
|
case "table":
|
|
138
|
-
return
|
|
174
|
+
return t.theme.main.table = c, t;
|
|
139
175
|
case "snackbar":
|
|
140
|
-
return
|
|
176
|
+
return t.snackbar = c, t;
|
|
141
177
|
default:
|
|
142
|
-
return
|
|
178
|
+
return t.theme[r].palette = c, t;
|
|
143
179
|
}
|
|
144
180
|
}
|
|
145
|
-
|
|
146
|
-
function
|
|
147
|
-
return
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
function
|
|
151
|
-
const
|
|
152
|
-
return Object.entries(e).reduce((
|
|
153
|
-
key:
|
|
154
|
-
label:
|
|
155
|
-
mode:
|
|
156
|
-
sections:
|
|
157
|
-
originalIndex:
|
|
158
|
-
}),
|
|
159
|
-
const
|
|
160
|
-
if (
|
|
161
|
-
return
|
|
162
|
-
if (
|
|
163
|
-
const m = (
|
|
181
|
+
i(O, "setThemePreviewPaletteValues");
|
|
182
|
+
function Q(e, r, n, t) {
|
|
183
|
+
return O(e, r, [{ path: n, value: t }]);
|
|
184
|
+
}
|
|
185
|
+
i(Q, "setThemePreviewPaletteValue");
|
|
186
|
+
function y(e) {
|
|
187
|
+
const r = /^(light|dark)(\d+)$/, n = new Set(I);
|
|
188
|
+
return Object.entries(e).reduce((t, [c, a]) => (a != null && a.palette && t.push({
|
|
189
|
+
key: c,
|
|
190
|
+
label: c,
|
|
191
|
+
mode: a.palette.mode === "dark" ? "dark" : "light",
|
|
192
|
+
sections: n.has(c) ? ["toolbar"] : void 0,
|
|
193
|
+
originalIndex: t.length
|
|
194
|
+
}), t), []).sort((t, c) => {
|
|
195
|
+
const a = t.key.match(r), s = c.key.match(r), o = !!a;
|
|
196
|
+
if (o !== !!s)
|
|
197
|
+
return o ? 1 : -1;
|
|
198
|
+
if (a && s) {
|
|
199
|
+
const m = (a[1] === "light" ? 0 : 1) - (s[1] === "light" ? 0 : 1);
|
|
164
200
|
if (m !== 0)
|
|
165
201
|
return m;
|
|
166
|
-
const g = Number(
|
|
202
|
+
const g = Number(a[2]) - Number(s[2]);
|
|
167
203
|
if (g !== 0)
|
|
168
204
|
return g;
|
|
169
205
|
}
|
|
170
|
-
return
|
|
171
|
-
}).map((
|
|
172
|
-
key:
|
|
173
|
-
label:
|
|
174
|
-
mode:
|
|
175
|
-
sections:
|
|
206
|
+
return t.originalIndex - c.originalIndex;
|
|
207
|
+
}).map((t) => ({
|
|
208
|
+
key: t.key,
|
|
209
|
+
label: t.label,
|
|
210
|
+
mode: t.mode,
|
|
211
|
+
sections: t.sections
|
|
176
212
|
}));
|
|
177
213
|
}
|
|
178
|
-
|
|
179
|
-
function
|
|
214
|
+
i(y, "getThemePreviewPresetOptions");
|
|
215
|
+
function N(e, r, n) {
|
|
180
216
|
return e.filter(
|
|
181
|
-
(
|
|
217
|
+
(t) => t.mode === n && (!t.sections || t.sections.includes(r))
|
|
182
218
|
);
|
|
183
219
|
}
|
|
184
|
-
|
|
185
|
-
function
|
|
186
|
-
return
|
|
220
|
+
i(N, "getThemePreviewPresetOptionsByMode");
|
|
221
|
+
function Z(e, r, n) {
|
|
222
|
+
return P({}, e, {
|
|
187
223
|
theme: {
|
|
188
|
-
[
|
|
224
|
+
[r]: n
|
|
189
225
|
}
|
|
190
226
|
});
|
|
191
227
|
}
|
|
192
|
-
|
|
228
|
+
i(Z, "applyThemePreviewPreset");
|
|
193
229
|
export {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
230
|
+
S as THEME_PREVIEW_CUSTOM_PRESET_KEY,
|
|
231
|
+
Z as applyThemePreviewPreset,
|
|
232
|
+
_ as cloneThemePreviewSettings,
|
|
233
|
+
q as getThemePreviewDraftSettings,
|
|
234
|
+
B as getThemePreviewMatchedPresetKeys,
|
|
235
|
+
$ as getThemePreviewPaletteValue,
|
|
236
|
+
y as getThemePreviewPresetOptions,
|
|
237
|
+
N as getThemePreviewPresetOptionsByMode,
|
|
238
|
+
Y as getThemePreviewResetSettings,
|
|
239
|
+
b as getThemePreviewSectionMode,
|
|
240
|
+
G as getThemePreviewSelectionState,
|
|
241
|
+
X as isThemePreviewCustomSection,
|
|
242
|
+
L as resetThemePreviewSessionState,
|
|
243
|
+
z as setThemePreviewDraftSettings,
|
|
244
|
+
Q as setThemePreviewPaletteValue,
|
|
245
|
+
O as setThemePreviewPaletteValues,
|
|
246
|
+
J as setThemePreviewSelectionState
|
|
210
247
|
};
|
|
211
248
|
//# sourceMappingURL=themePreviewSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themePreviewSettings.js","sources":["../../../../src/features/themePreview/utils/themePreviewSettings.ts"],"sourcesContent":["import { toolbarCuratedPresetKeys } from '@/features/themePreview/configs/presets';\nimport {\n defaultSnackbarProviderProps,\n defaultSnackbarTheme,\n type SnackbarProviderTheme,\n type SnackbarTheme,\n} from '@/features/themePreview/configs/snackbar';\nimport type { OwpSettingsConfigType } from '@/types';\nimport { isObject, isString, merge } from 'es-toolkit/compat';\nimport type { PartialDeep } from 'type-fest';\nimport type {\n ThemePreviewMode,\n ThemePreviewPresetKeyBySection,\n ThemePreviewPresetOption,\n ThemePreviewPresetSectionKey,\n ThemePreviewPresetThemes,\n ThemePreviewSectionKey,\n ThemePreviewSettings,\n} from '../types';\n\nexport const THEME_PREVIEW_CUSTOM_PRESET_KEY = '__custom__';\nconst themePreviewCustomSectionKeys = ['grid', 'table', 'snackbar'] as const;\n\ntype ThemePreviewSelectionState = {\n selectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n selectedPresetKeys: ThemePreviewPresetKeyBySection;\n};\n\nlet persistedThemePreviewDraftSettings: ThemePreviewSettings | null = null;\nlet persistedThemePreviewSelectionState: ThemePreviewSelectionState | null = null;\nconst THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX = 'snackbarProviderProps.';\ntype ThemePreviewPaletteValueUpdate = {\n path: string;\n value: string;\n};\n\nfunction asObjectRecord(value: unknown) {\n return isObject(value) ? (value as Record<string, unknown>) : {};\n}\n\nfunction getThemePreviewSnackbarTheme(\n settings: OwpSettingsConfigType | ThemePreviewSettings,\n snackbar = defaultSnackbarTheme,\n) {\n const nextSnackbar =\n 'snackbar' in settings && isObject(settings.snackbar) ? settings.snackbar : undefined;\n\n return merge({}, defaultSnackbarTheme, snackbar, nextSnackbar) as SnackbarTheme;\n}\n\nfunction getThemePreviewSnackbarProviderProps(\n settings: OwpSettingsConfigType | ThemePreviewSettings,\n snackbarProviderProps = defaultSnackbarProviderProps,\n) {\n const nextSnackbarProviderProps =\n 'snackbarProviderProps' in settings && isObject(settings.snackbarProviderProps)\n ? settings.snackbarProviderProps\n : undefined;\n\n return merge(\n {},\n defaultSnackbarProviderProps,\n snackbarProviderProps,\n nextSnackbarProviderProps,\n ) as SnackbarProviderTheme;\n}\n\nfunction createThemePreviewSettings(\n settings: OwpSettingsConfigType | ThemePreviewSettings,\n snackbar = defaultSnackbarTheme,\n) {\n return merge({}, settings, {\n snackbar: getThemePreviewSnackbarTheme(settings, snackbar),\n snackbarProviderProps: getThemePreviewSnackbarProviderProps(settings),\n }) as ThemePreviewSettings;\n}\n\nexport function isThemePreviewCustomSection(sectionKey: ThemePreviewSectionKey) {\n return (themePreviewCustomSectionKeys as readonly ThemePreviewSectionKey[]).includes(sectionKey);\n}\n\nfunction getThemePreviewSectionTarget(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n) {\n switch (sectionKey) {\n case 'grid':\n return asObjectRecord(settings.theme.main.grid);\n case 'table':\n return asObjectRecord(settings.theme.main.table);\n case 'snackbar':\n return asObjectRecord(settings.snackbar);\n default:\n return asObjectRecord(settings.theme[sectionKey].palette);\n }\n}\n\nexport function cloneThemePreviewSettings(settings: ThemePreviewSettings) {\n return createThemePreviewSettings(settings);\n}\n\nexport function getThemePreviewResetSettings(\n settings: OwpSettingsConfigType,\n resetTheme: PartialDeep<OwpSettingsConfigType['theme']>,\n snackbar = defaultSnackbarTheme,\n) {\n return merge({}, createThemePreviewSettings(settings, snackbar), {\n theme: resetTheme,\n }) as ThemePreviewSettings;\n}\n\nexport function getThemePreviewPaletteValue(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n path: string,\n) {\n const [pathSource, resolvedPath] = path.startsWith(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX)\n ? [asObjectRecord(settings.snackbarProviderProps), path.slice(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX.length)]\n : [getThemePreviewSectionTarget(settings, sectionKey), path];\n\n const value = resolvedPath.split('.').reduce<unknown>((acc, key) => {\n const currentValue = asObjectRecord(acc);\n\n return currentValue[key];\n }, pathSource);\n\n if (typeof value === 'number') {\n return String(value);\n }\n\n return isString(value) ? value : '';\n}\n\nexport function getThemePreviewSectionMode(\n settings: OwpSettingsConfigType,\n sectionKey: ThemePreviewPresetSectionKey,\n) {\n return settings.theme[sectionKey].palette.mode === 'dark' ? 'dark' : 'light';\n}\n\nexport function getThemePreviewDraftSettings(currentSettings: OwpSettingsConfigType) {\n return createThemePreviewSettings(persistedThemePreviewDraftSettings ?? currentSettings);\n}\n\nexport function setThemePreviewDraftSettings(settings: ThemePreviewSettings) {\n persistedThemePreviewDraftSettings = cloneThemePreviewSettings(settings);\n}\n\nexport function getThemePreviewSelectionState(\n settings: OwpSettingsConfigType,\n initialPresetKeys: ThemePreviewPresetKeyBySection,\n) {\n return merge(\n {\n selectedPresetKeys: initialPresetKeys,\n selectedModes: {\n main: getThemePreviewSectionMode(settings, 'main'),\n navbar: getThemePreviewSectionMode(settings, 'navbar'),\n toolbar: getThemePreviewSectionMode(settings, 'toolbar'),\n },\n },\n persistedThemePreviewSelectionState ?? {},\n ) as ThemePreviewSelectionState;\n}\n\nexport function setThemePreviewSelectionState(selectionState: ThemePreviewSelectionState) {\n persistedThemePreviewSelectionState = merge({}, selectionState) as ThemePreviewSelectionState;\n}\n\nexport function resetThemePreviewSessionState() {\n persistedThemePreviewDraftSettings = null;\n persistedThemePreviewSelectionState = null;\n}\n\nfunction applyThemePreviewPaletteValue(\n target: Record<string, unknown>,\n path: string,\n value: string,\n) {\n const pathKeys = path.split('.');\n const lastPathKey = pathKeys.pop();\n\n if (!lastPathKey) {\n return;\n }\n\n let currentTarget = target;\n\n pathKeys.forEach((key) => {\n const nextTarget = currentTarget[key];\n\n if (!isObject(nextTarget)) {\n currentTarget[key] = {};\n }\n\n currentTarget = asObjectRecord(currentTarget[key]);\n });\n\n const currentValue = currentTarget[lastPathKey];\n\n if (typeof currentValue === 'number') {\n const nextNumericValue = Number(value.replace(/,/g, '.'));\n currentTarget[lastPathKey] = Number.isNaN(nextNumericValue) ? currentValue : nextNumericValue;\n return;\n }\n\n currentTarget[lastPathKey] = value;\n}\n\nexport function setThemePreviewPaletteValues(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n updates: ThemePreviewPaletteValueUpdate[],\n) {\n if (!updates.length) {\n return settings;\n }\n\n const nextSettings = cloneThemePreviewSettings(settings);\n const sectionTarget = getThemePreviewSectionTarget(nextSettings, sectionKey);\n const snackbarProviderPropsTarget = asObjectRecord(nextSettings.snackbarProviderProps);\n\n updates.forEach(({ path, value }) => {\n const isSnackbarProviderPropsPath = path.startsWith(\n THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX,\n );\n const resolvedPath = isSnackbarProviderPropsPath\n ? path.slice(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX.length)\n : path;\n\n applyThemePreviewPaletteValue(\n isSnackbarProviderPropsPath ? snackbarProviderPropsTarget : sectionTarget,\n resolvedPath,\n value,\n );\n });\n\n nextSettings.snackbarProviderProps = snackbarProviderPropsTarget as SnackbarProviderTheme;\n\n switch (sectionKey) {\n case 'grid':\n nextSettings.theme.main.grid =\n sectionTarget as OwpSettingsConfigType['theme']['main']['grid'];\n return nextSettings;\n case 'table':\n nextSettings.theme.main.table =\n sectionTarget as OwpSettingsConfigType['theme']['main']['table'];\n return nextSettings;\n case 'snackbar':\n nextSettings.snackbar = sectionTarget as SnackbarTheme;\n return nextSettings;\n default:\n nextSettings.theme[sectionKey].palette = sectionTarget;\n return nextSettings;\n }\n}\n\nexport function setThemePreviewPaletteValue(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n path: string,\n value: string,\n) {\n return setThemePreviewPaletteValues(settings, sectionKey, [{ path, value }]);\n}\n\nexport function getThemePreviewPresetOptions(presetThemes: ThemePreviewPresetThemes) {\n const numberedPresetPattern = /^(light|dark)(\\d+)$/;\n const toolbarCuratedPresetKeySet = new Set<string>(toolbarCuratedPresetKeys);\n\n return Object.entries(presetThemes)\n .reduce<Array<ThemePreviewPresetOption & { originalIndex: number }>>((acc, [key, theme]) => {\n if (!theme?.palette) {\n return acc;\n }\n\n acc.push({\n key,\n label: key,\n mode: theme.palette.mode === 'dark' ? 'dark' : 'light',\n sections: toolbarCuratedPresetKeySet.has(key) ? ['toolbar'] : undefined,\n originalIndex: acc.length,\n });\n\n return acc;\n }, [])\n .sort((leftOption, rightOption) => {\n const leftMatch = leftOption.key.match(numberedPresetPattern);\n const rightMatch = rightOption.key.match(numberedPresetPattern);\n const leftIsNumberedPreset = Boolean(leftMatch);\n const rightIsNumberedPreset = Boolean(rightMatch);\n\n if (leftIsNumberedPreset !== rightIsNumberedPreset) {\n return leftIsNumberedPreset ? 1 : -1;\n }\n\n if (leftMatch && rightMatch) {\n const familyOrder =\n (leftMatch[1] === 'light' ? 0 : 1) - (rightMatch[1] === 'light' ? 0 : 1);\n\n if (familyOrder !== 0) {\n return familyOrder;\n }\n\n const presetNumberOrder = Number(leftMatch[2]) - Number(rightMatch[2]);\n\n if (presetNumberOrder !== 0) {\n return presetNumberOrder;\n }\n }\n\n return leftOption.originalIndex - rightOption.originalIndex;\n })\n .map((presetOption) => ({\n key: presetOption.key,\n label: presetOption.label,\n mode: presetOption.mode,\n sections: presetOption.sections,\n }));\n}\n\nexport function getThemePreviewPresetOptionsByMode(\n presetOptions: ThemePreviewPresetOption[],\n sectionKey: ThemePreviewPresetSectionKey,\n mode: 'light' | 'dark',\n) {\n return presetOptions.filter(\n (presetOption) =>\n presetOption.mode === mode &&\n (!presetOption.sections || presetOption.sections.includes(sectionKey)),\n );\n}\n\nexport function applyThemePreviewPreset(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewPresetSectionKey,\n presetTheme: ThemePreviewPresetThemes[string],\n) {\n return merge({}, settings, {\n theme: {\n [sectionKey]: presetTheme,\n },\n }) as ThemePreviewSettings;\n}\n"],"names":["THEME_PREVIEW_CUSTOM_PRESET_KEY","themePreviewCustomSectionKeys","persistedThemePreviewDraftSettings","persistedThemePreviewSelectionState","THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX","asObjectRecord","value","isObject","__name","getThemePreviewSnackbarTheme","settings","snackbar","defaultSnackbarTheme","nextSnackbar","merge","getThemePreviewSnackbarProviderProps","snackbarProviderProps","defaultSnackbarProviderProps","nextSnackbarProviderProps","createThemePreviewSettings","isThemePreviewCustomSection","sectionKey","getThemePreviewSectionTarget","cloneThemePreviewSettings","getThemePreviewResetSettings","resetTheme","getThemePreviewPaletteValue","path","pathSource","resolvedPath","acc","key","isString","getThemePreviewSectionMode","getThemePreviewDraftSettings","currentSettings","setThemePreviewDraftSettings","getThemePreviewSelectionState","initialPresetKeys","setThemePreviewSelectionState","selectionState","resetThemePreviewSessionState","applyThemePreviewPaletteValue","target","pathKeys","lastPathKey","currentTarget","nextTarget","currentValue","nextNumericValue","setThemePreviewPaletteValues","updates","nextSettings","sectionTarget","snackbarProviderPropsTarget","isSnackbarProviderPropsPath","setThemePreviewPaletteValue","getThemePreviewPresetOptions","presetThemes","numberedPresetPattern","toolbarCuratedPresetKeySet","toolbarCuratedPresetKeys","theme","leftOption","rightOption","leftMatch","rightMatch","leftIsNumberedPreset","familyOrder","presetNumberOrder","presetOption","getThemePreviewPresetOptionsByMode","presetOptions","mode","applyThemePreviewPreset","presetTheme"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"themePreviewSettings.js","sources":["../../../../src/features/themePreview/utils/themePreviewSettings.ts"],"sourcesContent":["import { toolbarCuratedPresetKeys } from '@/features/themePreview/configs/presets';\nimport {\n defaultSnackbarProviderProps,\n defaultSnackbarTheme,\n type SnackbarProviderTheme,\n type SnackbarTheme,\n} from '@/features/themePreview/configs/snackbar';\nimport type { OwpSettingsConfigType } from '@/types';\nimport { isObject, isString, merge } from 'es-toolkit/compat';\nimport type { PartialDeep } from 'type-fest';\nimport type {\n ThemePreviewMode,\n ThemePreviewPresetKeyBySection,\n ThemePreviewPresetOption,\n ThemePreviewPresetSectionKey,\n ThemePreviewPresetThemes,\n ThemePreviewSectionKey,\n ThemePreviewSettings,\n} from '../types';\n\nexport const THEME_PREVIEW_CUSTOM_PRESET_KEY = '__custom__';\nconst themePreviewCustomSectionKeys = ['grid', 'table', 'snackbar'] as const;\n\ntype ThemePreviewSelectionState = {\n selectedModes: Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n selectedPresetKeys: ThemePreviewPresetKeyBySection;\n};\n\nlet persistedThemePreviewDraftSettings: ThemePreviewSettings | null = null;\nlet persistedThemePreviewSelectionState: ThemePreviewSelectionState | null = null;\nconst THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX = 'snackbarProviderProps.';\ntype ThemePreviewPaletteValueUpdate = {\n path: string;\n value: string;\n};\n\nfunction asObjectRecord(value: unknown) {\n return isObject(value) ? (value as Record<string, unknown>) : {};\n}\n\nfunction isThemePreviewPresetValueMatch(targetValue: unknown, presetValue: unknown): boolean {\n if (isObject(presetValue)) {\n if (!isObject(targetValue)) {\n return false;\n }\n\n return Object.entries(presetValue as Record<string, unknown>).every(([key, value]) =>\n isThemePreviewPresetValueMatch(asObjectRecord(targetValue)[key], value),\n );\n }\n\n return targetValue === presetValue;\n}\n\nfunction getThemePreviewSnackbarTheme(\n settings: OwpSettingsConfigType | ThemePreviewSettings,\n snackbar = defaultSnackbarTheme,\n) {\n const nextSnackbar =\n 'snackbar' in settings && isObject(settings.snackbar) ? settings.snackbar : undefined;\n\n return merge({}, defaultSnackbarTheme, snackbar, nextSnackbar) as SnackbarTheme;\n}\n\nfunction getThemePreviewSnackbarProviderProps(\n settings: OwpSettingsConfigType | ThemePreviewSettings,\n snackbarProviderProps = defaultSnackbarProviderProps,\n) {\n const nextSnackbarProviderProps =\n 'snackbarProviderProps' in settings && isObject(settings.snackbarProviderProps)\n ? settings.snackbarProviderProps\n : undefined;\n\n return merge(\n {},\n defaultSnackbarProviderProps,\n snackbarProviderProps,\n nextSnackbarProviderProps,\n ) as SnackbarProviderTheme;\n}\n\nfunction createThemePreviewSettings(\n settings: OwpSettingsConfigType | ThemePreviewSettings,\n snackbar = defaultSnackbarTheme,\n) {\n return merge({}, settings, {\n snackbar: getThemePreviewSnackbarTheme(settings, snackbar),\n snackbarProviderProps: getThemePreviewSnackbarProviderProps(settings),\n }) as ThemePreviewSettings;\n}\n\nexport function isThemePreviewCustomSection(sectionKey: ThemePreviewSectionKey) {\n return (themePreviewCustomSectionKeys as readonly ThemePreviewSectionKey[]).includes(sectionKey);\n}\n\nfunction getThemePreviewSectionTarget(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n) {\n switch (sectionKey) {\n case 'grid':\n return asObjectRecord(settings.theme.main.grid);\n case 'table':\n return asObjectRecord(settings.theme.main.table);\n case 'snackbar':\n return asObjectRecord(settings.snackbar);\n default:\n return asObjectRecord(settings.theme[sectionKey].palette);\n }\n}\n\nexport function cloneThemePreviewSettings(settings: ThemePreviewSettings) {\n return createThemePreviewSettings(settings);\n}\n\nexport function getThemePreviewResetSettings(\n settings: OwpSettingsConfigType,\n resetTheme: PartialDeep<OwpSettingsConfigType['theme']>,\n snackbar = defaultSnackbarTheme,\n) {\n return merge({}, createThemePreviewSettings(settings, snackbar), {\n theme: resetTheme,\n }) as ThemePreviewSettings;\n}\n\nexport function getThemePreviewPaletteValue(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n path: string,\n) {\n const [pathSource, resolvedPath] = path.startsWith(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX)\n ? [asObjectRecord(settings.snackbarProviderProps), path.slice(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX.length)]\n : [getThemePreviewSectionTarget(settings, sectionKey), path];\n\n const value = resolvedPath.split('.').reduce<unknown>((acc, key) => {\n const currentValue = asObjectRecord(acc);\n\n return currentValue[key];\n }, pathSource);\n\n if (typeof value === 'number') {\n return String(value);\n }\n\n return isString(value) ? value : '';\n}\n\nexport function getThemePreviewSectionMode(\n settings: OwpSettingsConfigType,\n sectionKey: ThemePreviewPresetSectionKey,\n) {\n return settings.theme[sectionKey].palette.mode === 'dark' ? 'dark' : 'light';\n}\n\nfunction getThemePreviewMatchedPresetKey(\n settings: OwpSettingsConfigType,\n sectionKey: ThemePreviewPresetSectionKey,\n presetThemes: ThemePreviewPresetThemes,\n presetOptions: ThemePreviewPresetOption[],\n) {\n const selectedMode = getThemePreviewSectionMode(settings, sectionKey);\n\n return (\n getThemePreviewPresetOptionsByMode(presetOptions, sectionKey, selectedMode).find((presetOption) =>\n isThemePreviewPresetValueMatch(\n settings.theme[sectionKey].palette,\n presetThemes[presetOption.key]?.palette,\n ),\n )?.key ?? THEME_PREVIEW_CUSTOM_PRESET_KEY\n );\n}\n\nexport function getThemePreviewMatchedPresetKeys(\n settings: OwpSettingsConfigType,\n presetThemes: ThemePreviewPresetThemes,\n presetOptions = getThemePreviewPresetOptions(presetThemes),\n) {\n return {\n main: getThemePreviewMatchedPresetKey(settings, 'main', presetThemes, presetOptions),\n navbar: getThemePreviewMatchedPresetKey(settings, 'navbar', presetThemes, presetOptions),\n toolbar: getThemePreviewMatchedPresetKey(settings, 'toolbar', presetThemes, presetOptions),\n } satisfies ThemePreviewPresetKeyBySection;\n}\n\nexport function getThemePreviewDraftSettings(currentSettings: OwpSettingsConfigType) {\n return createThemePreviewSettings(persistedThemePreviewDraftSettings ?? currentSettings);\n}\n\nexport function setThemePreviewDraftSettings(settings: ThemePreviewSettings) {\n persistedThemePreviewDraftSettings = cloneThemePreviewSettings(settings);\n}\n\nexport function getThemePreviewSelectionState(\n settings: OwpSettingsConfigType,\n initialPresetKeys: ThemePreviewPresetKeyBySection,\n presetThemes: ThemePreviewPresetThemes,\n) {\n const presetOptions = getThemePreviewPresetOptions(presetThemes);\n const selectedModes = {\n main: getThemePreviewSectionMode(settings, 'main'),\n navbar: getThemePreviewSectionMode(settings, 'navbar'),\n toolbar: getThemePreviewSectionMode(settings, 'toolbar'),\n } satisfies Record<ThemePreviewPresetSectionKey, ThemePreviewMode>;\n const matchedPresetKeys = getThemePreviewMatchedPresetKeys(settings, presetThemes, presetOptions);\n const nextSelectionState = merge(\n {\n selectedPresetKeys: matchedPresetKeys,\n selectedModes,\n },\n persistedThemePreviewSelectionState ?? {},\n ) as ThemePreviewSelectionState;\n\n (Object.keys(selectedModes) as ThemePreviewPresetSectionKey[]).forEach((sectionKey) => {\n const optionsByMode = getThemePreviewPresetOptionsByMode(\n presetOptions,\n sectionKey,\n nextSelectionState.selectedModes[sectionKey],\n );\n\n if (nextSelectionState.selectedPresetKeys[sectionKey] === THEME_PREVIEW_CUSTOM_PRESET_KEY) {\n return;\n }\n\n if (optionsByMode.some((presetOption) => presetOption.key === nextSelectionState.selectedPresetKeys[sectionKey])) {\n return;\n }\n\n nextSelectionState.selectedPresetKeys[sectionKey] =\n matchedPresetKeys[sectionKey] !== THEME_PREVIEW_CUSTOM_PRESET_KEY\n ? matchedPresetKeys[sectionKey]\n : initialPresetKeys[sectionKey];\n });\n\n return nextSelectionState;\n}\n\nexport function setThemePreviewSelectionState(selectionState: ThemePreviewSelectionState) {\n persistedThemePreviewSelectionState = merge({}, selectionState) as ThemePreviewSelectionState;\n}\n\nexport function resetThemePreviewSessionState() {\n persistedThemePreviewDraftSettings = null;\n persistedThemePreviewSelectionState = null;\n}\n\nfunction applyThemePreviewPaletteValue(\n target: Record<string, unknown>,\n path: string,\n value: string,\n) {\n const pathKeys = path.split('.');\n const lastPathKey = pathKeys.pop();\n\n if (!lastPathKey) {\n return;\n }\n\n let currentTarget = target;\n\n pathKeys.forEach((key) => {\n const nextTarget = currentTarget[key];\n\n if (!isObject(nextTarget)) {\n currentTarget[key] = {};\n }\n\n currentTarget = asObjectRecord(currentTarget[key]);\n });\n\n const currentValue = currentTarget[lastPathKey];\n\n if (typeof currentValue === 'number') {\n const nextNumericValue = Number(value.replace(/,/g, '.'));\n currentTarget[lastPathKey] = Number.isNaN(nextNumericValue) ? currentValue : nextNumericValue;\n return;\n }\n\n currentTarget[lastPathKey] = value;\n}\n\nexport function setThemePreviewPaletteValues(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n updates: ThemePreviewPaletteValueUpdate[],\n) {\n if (!updates.length) {\n return settings;\n }\n\n const nextSettings = cloneThemePreviewSettings(settings);\n const sectionTarget = getThemePreviewSectionTarget(nextSettings, sectionKey);\n const snackbarProviderPropsTarget = asObjectRecord(nextSettings.snackbarProviderProps);\n\n updates.forEach(({ path, value }) => {\n const isSnackbarProviderPropsPath = path.startsWith(\n THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX,\n );\n const resolvedPath = isSnackbarProviderPropsPath\n ? path.slice(THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX.length)\n : path;\n\n applyThemePreviewPaletteValue(\n isSnackbarProviderPropsPath ? snackbarProviderPropsTarget : sectionTarget,\n resolvedPath,\n value,\n );\n });\n\n nextSettings.snackbarProviderProps = snackbarProviderPropsTarget as SnackbarProviderTheme;\n\n switch (sectionKey) {\n case 'grid':\n nextSettings.theme.main.grid =\n sectionTarget as OwpSettingsConfigType['theme']['main']['grid'];\n return nextSettings;\n case 'table':\n nextSettings.theme.main.table =\n sectionTarget as OwpSettingsConfigType['theme']['main']['table'];\n return nextSettings;\n case 'snackbar':\n nextSettings.snackbar = sectionTarget as SnackbarTheme;\n return nextSettings;\n default:\n nextSettings.theme[sectionKey].palette = sectionTarget;\n return nextSettings;\n }\n}\n\nexport function setThemePreviewPaletteValue(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewSectionKey,\n path: string,\n value: string,\n) {\n return setThemePreviewPaletteValues(settings, sectionKey, [{ path, value }]);\n}\n\nexport function getThemePreviewPresetOptions(presetThemes: ThemePreviewPresetThemes) {\n const numberedPresetPattern = /^(light|dark)(\\d+)$/;\n const toolbarCuratedPresetKeySet = new Set<string>(toolbarCuratedPresetKeys);\n\n return Object.entries(presetThemes)\n .reduce<Array<ThemePreviewPresetOption & { originalIndex: number }>>((acc, [key, theme]) => {\n if (!theme?.palette) {\n return acc;\n }\n\n acc.push({\n key,\n label: key,\n mode: theme.palette.mode === 'dark' ? 'dark' : 'light',\n sections: toolbarCuratedPresetKeySet.has(key) ? ['toolbar'] : undefined,\n originalIndex: acc.length,\n });\n\n return acc;\n }, [])\n .sort((leftOption, rightOption) => {\n const leftMatch = leftOption.key.match(numberedPresetPattern);\n const rightMatch = rightOption.key.match(numberedPresetPattern);\n const leftIsNumberedPreset = Boolean(leftMatch);\n const rightIsNumberedPreset = Boolean(rightMatch);\n\n if (leftIsNumberedPreset !== rightIsNumberedPreset) {\n return leftIsNumberedPreset ? 1 : -1;\n }\n\n if (leftMatch && rightMatch) {\n const familyOrder =\n (leftMatch[1] === 'light' ? 0 : 1) - (rightMatch[1] === 'light' ? 0 : 1);\n\n if (familyOrder !== 0) {\n return familyOrder;\n }\n\n const presetNumberOrder = Number(leftMatch[2]) - Number(rightMatch[2]);\n\n if (presetNumberOrder !== 0) {\n return presetNumberOrder;\n }\n }\n\n return leftOption.originalIndex - rightOption.originalIndex;\n })\n .map((presetOption) => ({\n key: presetOption.key,\n label: presetOption.label,\n mode: presetOption.mode,\n sections: presetOption.sections,\n }));\n}\n\nexport function getThemePreviewPresetOptionsByMode(\n presetOptions: ThemePreviewPresetOption[],\n sectionKey: ThemePreviewPresetSectionKey,\n mode: 'light' | 'dark',\n) {\n return presetOptions.filter(\n (presetOption) =>\n presetOption.mode === mode &&\n (!presetOption.sections || presetOption.sections.includes(sectionKey)),\n );\n}\n\nexport function applyThemePreviewPreset(\n settings: ThemePreviewSettings,\n sectionKey: ThemePreviewPresetSectionKey,\n presetTheme: ThemePreviewPresetThemes[string],\n) {\n return merge({}, settings, {\n theme: {\n [sectionKey]: presetTheme,\n },\n }) as ThemePreviewSettings;\n}\n"],"names":["THEME_PREVIEW_CUSTOM_PRESET_KEY","themePreviewCustomSectionKeys","persistedThemePreviewDraftSettings","persistedThemePreviewSelectionState","THEME_PREVIEW_SNACKBAR_PROVIDER_PROPS_PATH_PREFIX","asObjectRecord","value","isObject","__name","isThemePreviewPresetValueMatch","targetValue","presetValue","key","getThemePreviewSnackbarTheme","settings","snackbar","defaultSnackbarTheme","nextSnackbar","merge","getThemePreviewSnackbarProviderProps","snackbarProviderProps","defaultSnackbarProviderProps","nextSnackbarProviderProps","createThemePreviewSettings","isThemePreviewCustomSection","sectionKey","getThemePreviewSectionTarget","cloneThemePreviewSettings","getThemePreviewResetSettings","resetTheme","getThemePreviewPaletteValue","path","pathSource","resolvedPath","acc","isString","getThemePreviewSectionMode","getThemePreviewMatchedPresetKey","presetThemes","presetOptions","selectedMode","_a","getThemePreviewPresetOptionsByMode","presetOption","getThemePreviewMatchedPresetKeys","getThemePreviewPresetOptions","getThemePreviewDraftSettings","currentSettings","setThemePreviewDraftSettings","getThemePreviewSelectionState","initialPresetKeys","selectedModes","matchedPresetKeys","nextSelectionState","optionsByMode","setThemePreviewSelectionState","selectionState","resetThemePreviewSessionState","applyThemePreviewPaletteValue","target","pathKeys","lastPathKey","currentTarget","nextTarget","currentValue","nextNumericValue","setThemePreviewPaletteValues","updates","nextSettings","sectionTarget","snackbarProviderPropsTarget","isSnackbarProviderPropsPath","setThemePreviewPaletteValue","numberedPresetPattern","toolbarCuratedPresetKeySet","toolbarCuratedPresetKeys","theme","leftOption","rightOption","leftMatch","rightMatch","leftIsNumberedPreset","familyOrder","presetNumberOrder","mode","applyThemePreviewPreset","presetTheme"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { defaultGridTheme as r } from "./themePreview/configs/grid.js";
|
|
2
|
-
import { darkPaletteText as i, defaultNavbarDivider as a, defaultNavbarSecondaryPalette as m, defaultPrimaryPalette as P, defaultSecondaryPalette as l, defaultToolbarDivider as s, defaultToolbarSecondaryPalette as T, designSystemPresetKeys as v, lightPaletteText as
|
|
2
|
+
import { darkPaletteText as i, defaultNavbarDivider as a, defaultNavbarSecondaryPalette as m, defaultPrimaryPalette as P, defaultSecondaryPalette as l, defaultToolbarDivider as s, defaultToolbarSecondaryPalette as T, designSystemPresetKeys as v, lightPaletteText as h, themePreviewPresetContractKeys as p, themesConfig as n, toolbarCuratedPresetKeys as f } from "./themePreview/configs/presets.js";
|
|
3
3
|
import { clearThemePreviewAppliedSettings as d, clearThemePreviewTemporaryState as S, getResolvedThemePreviewSettingsConfig as g, getThemePreviewAppliedSettings as u, getThemePreviewTemporaryState as c, persistThemePreviewAppliedSettings as x, persistThemePreviewTemporaryState as y } from "./themePreview/configs/previewStorage.js";
|
|
4
4
|
import { defaultSettingsConfig as b } from "./themePreview/configs/settings.js";
|
|
5
5
|
import { defaultSnackbarProviderProps as E, defaultSnackbarTheme as D, snackbarVariantKeys as k } from "./themePreview/configs/snackbar.js";
|
|
6
|
-
import { defaultLayoutSurface as
|
|
6
|
+
import { defaultLayoutSurface as A } from "./themePreview/configs/surface.js";
|
|
7
7
|
import { defaultTableTheme as O } from "./themePreview/configs/table.js";
|
|
8
8
|
import { ThemePreviewCanvas as _ } from "./themePreview/components/ThemePreviewCanvas.js";
|
|
9
9
|
import { ThemePreviewColorField as G } from "./themePreview/components/ThemePreviewColorField.js";
|
|
@@ -13,7 +13,7 @@ import { useThemePreview as U } from "./themePreview/hooks/useThemePreview.js";
|
|
|
13
13
|
import { applyColorPickerValue as Y, canDeriveThemePreviewColor as j, deriveThemePreviewPaletteGroupValues as q, getColorAlphaValue as z, toColorPickerValue as J } from "./themePreview/utils/color.js";
|
|
14
14
|
import { createThemePreviewAppConfigFiles as X, createThemePreviewExportData as Z } from "./themePreview/utils/themePreviewExport.js";
|
|
15
15
|
import { themePreviewFieldGroupsBySection as ee, themePreviewSectionOptions as te } from "./themePreview/utils/themePreviewDefinitions.js";
|
|
16
|
-
import { THEME_PREVIEW_CUSTOM_PRESET_KEY as oe, applyThemePreviewPreset as ie, cloneThemePreviewSettings as ae, getThemePreviewDraftSettings as me,
|
|
16
|
+
import { THEME_PREVIEW_CUSTOM_PRESET_KEY as oe, applyThemePreviewPreset as ie, cloneThemePreviewSettings as ae, getThemePreviewDraftSettings as me, getThemePreviewMatchedPresetKeys as Pe, getThemePreviewPaletteValue as le, getThemePreviewPresetOptions as se, getThemePreviewPresetOptionsByMode as Te, getThemePreviewResetSettings as ve, getThemePreviewSectionMode as he, getThemePreviewSelectionState as pe, isThemePreviewCustomSection as ne, resetThemePreviewSessionState as fe, setThemePreviewDraftSettings as we, setThemePreviewPaletteValue as de, setThemePreviewPaletteValues as Se, setThemePreviewSelectionState as ge } from "./themePreview/utils/themePreviewSettings.js";
|
|
17
17
|
export {
|
|
18
18
|
oe as THEME_PREVIEW_CUSTOM_PRESET_KEY,
|
|
19
19
|
_ as ThemePreviewCanvas,
|
|
@@ -30,7 +30,7 @@ export {
|
|
|
30
30
|
Z as createThemePreviewExportData,
|
|
31
31
|
i as darkPaletteText,
|
|
32
32
|
r as defaultGridTheme,
|
|
33
|
-
|
|
33
|
+
A as defaultLayoutSurface,
|
|
34
34
|
a as defaultNavbarDivider,
|
|
35
35
|
m as defaultNavbarSecondaryPalette,
|
|
36
36
|
P as defaultPrimaryPalette,
|
|
@@ -47,25 +47,26 @@ export {
|
|
|
47
47
|
g as getResolvedThemePreviewSettingsConfig,
|
|
48
48
|
u as getThemePreviewAppliedSettings,
|
|
49
49
|
me as getThemePreviewDraftSettings,
|
|
50
|
-
Pe as
|
|
51
|
-
le as
|
|
52
|
-
se as
|
|
53
|
-
Te as
|
|
54
|
-
ve as
|
|
50
|
+
Pe as getThemePreviewMatchedPresetKeys,
|
|
51
|
+
le as getThemePreviewPaletteValue,
|
|
52
|
+
se as getThemePreviewPresetOptions,
|
|
53
|
+
Te as getThemePreviewPresetOptionsByMode,
|
|
54
|
+
ve as getThemePreviewResetSettings,
|
|
55
|
+
he as getThemePreviewSectionMode,
|
|
55
56
|
pe as getThemePreviewSelectionState,
|
|
56
57
|
c as getThemePreviewTemporaryState,
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
ne as isThemePreviewCustomSection,
|
|
59
|
+
h as lightPaletteText,
|
|
59
60
|
x as persistThemePreviewAppliedSettings,
|
|
60
61
|
y as persistThemePreviewTemporaryState,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
fe as resetThemePreviewSessionState,
|
|
63
|
+
we as setThemePreviewDraftSettings,
|
|
64
|
+
de as setThemePreviewPaletteValue,
|
|
65
|
+
Se as setThemePreviewPaletteValues,
|
|
66
|
+
ge as setThemePreviewSelectionState,
|
|
66
67
|
k as snackbarVariantKeys,
|
|
67
68
|
ee as themePreviewFieldGroupsBySection,
|
|
68
|
-
|
|
69
|
+
p as themePreviewPresetContractKeys,
|
|
69
70
|
te as themePreviewSectionOptions,
|
|
70
71
|
n as themesConfig,
|
|
71
72
|
J as toColorPickerValue,
|
|
@@ -18,11 +18,11 @@ import { styled as te } from "@mui/material/styles";
|
|
|
18
18
|
import z from "@mui/material/TextField";
|
|
19
19
|
import ne from "@mui/material/Tooltip";
|
|
20
20
|
import E from "@mui/material/Typography";
|
|
21
|
-
import D from "../../../_virtual/
|
|
22
|
-
import re from "../../../_virtual/
|
|
21
|
+
import D from "../../../_virtual/index16.js";
|
|
22
|
+
import re from "../../../_virtual/index17.js";
|
|
23
23
|
import { clsx as B } from "../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
|
|
24
24
|
import { useMemo as oe, useReducer as ie, useRef as T, useEffect as se } from "react";
|
|
25
|
-
import W from "../../../_virtual/
|
|
25
|
+
import W from "../../../_virtual/index18.js";
|
|
26
26
|
import { useNavigate as ae } from "react-router-dom";
|
|
27
27
|
import { toolbarToggleSx as le } from "./toggleStyles.js";
|
|
28
28
|
import { OwpSvgIcon as w } from "../../../components/OwpSvgIcon/OwpSvgIcon.js";
|