@owp/core 2.5.9 → 2.5.11

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.
Files changed (91) hide show
  1. package/dist/_virtual/index10.js +2 -2
  2. package/dist/_virtual/index12.js +2 -2
  3. package/dist/_virtual/index13.js +2 -2
  4. package/dist/_virtual/index14.js +2 -2
  5. package/dist/_virtual/index15.js +2 -2
  6. package/dist/_virtual/index16.js +4 -4
  7. package/dist/_virtual/index17.js +4 -4
  8. package/dist/_virtual/index18.js +4 -4
  9. package/dist/_virtual/index19.js +4 -4
  10. package/dist/_virtual/index20.js +2 -2
  11. package/dist/_virtual/index21.js +2 -2
  12. package/dist/_virtual/index22.js +2 -2
  13. package/dist/_virtual/index5.js +2 -2
  14. package/dist/components/OwpTable/OwpFieldTable.js +108 -92
  15. package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
  16. package/dist/components/OwpTable/OwpTable.js +161 -141
  17. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  18. package/dist/components/OwpTable/internal/FieldTableValue.js +43 -0
  19. package/dist/components/OwpTable/internal/FieldTableValue.js.map +1 -0
  20. package/dist/components/OwpTable/internal/defaultTableStyle.js +13 -10
  21. package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -1
  22. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +170 -169
  23. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  24. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +195 -147
  25. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
  26. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +79 -76
  27. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
  28. package/dist/configs/defaultConfig.js +110 -70
  29. package/dist/configs/defaultConfig.js.map +1 -1
  30. package/dist/constants/tableTheme.js +7 -6
  31. package/dist/constants/tableTheme.js.map +1 -1
  32. package/dist/features/themePreview/components/ThemePreviewCanvas.js +275 -273
  33. package/dist/features/themePreview/components/ThemePreviewCanvas.js.map +1 -1
  34. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js +552 -316
  35. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js.map +1 -1
  36. package/dist/features/themePreview/components/ThemePreviewColorField.js +227 -202
  37. package/dist/features/themePreview/components/ThemePreviewColorField.js.map +1 -1
  38. package/dist/features/themePreview/components/ThemePreviewControls.js +270 -220
  39. package/dist/features/themePreview/components/ThemePreviewControls.js.map +1 -1
  40. package/dist/features/themePreview/components/themePreviewCanvas.shared.js +38 -38
  41. package/dist/features/themePreview/components/themePreviewCanvas.shared.js.map +1 -1
  42. package/dist/features/themePreview/configs/settings.js +33 -20
  43. package/dist/features/themePreview/configs/settings.js.map +1 -1
  44. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js +227 -220
  45. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js.map +1 -1
  46. package/dist/features/themePreview/hooks/useThemePreview.js +250 -226
  47. package/dist/features/themePreview/hooks/useThemePreview.js.map +1 -1
  48. package/dist/features/themePreview/utils/themePreviewDefinitions.js +63 -30
  49. package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -1
  50. package/dist/features/themePreview/utils/themePreviewSettings.js +188 -151
  51. package/dist/features/themePreview/utils/themePreviewSettings.js.map +1 -1
  52. package/dist/features/themePreview.js +18 -17
  53. package/dist/layout/components/navbar/NavbarToggleButton.js +46 -42
  54. package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
  55. package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
  56. package/dist/node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/match/index.js +1 -1
  57. package/dist/node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/parse/index.js +1 -1
  58. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
  59. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
  60. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
  61. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
  62. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
  63. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
  64. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  65. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
  66. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
  67. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
  68. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
  69. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  70. package/dist/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
  71. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  72. 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
  73. package/dist/owp-app.css +1 -1
  74. package/dist/types/components/OwpTable/OwpFieldTable.d.ts +7 -3
  75. package/dist/types/components/OwpTable/OwpTable.d.ts +3 -1
  76. package/dist/types/components/OwpTable/internal/FieldTableValue.d.ts +17 -0
  77. package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +3 -0
  78. package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +3 -1
  79. package/dist/types/components/OwpTreeGrid/internal/treeGridTheme.d.ts +1 -1
  80. package/dist/types/configs/defaultConfig.d.ts +42 -3
  81. package/dist/types/constants/tableTheme.d.ts +1 -0
  82. package/dist/types/features/themePreview/components/ThemePreviewCanvasSections.d.ts +8 -0
  83. package/dist/types/features/themePreview/components/themePreviewCanvas.shared.d.ts +3 -3
  84. package/dist/types/features/themePreview/configs/settings.d.ts +12 -0
  85. package/dist/types/features/themePreview/utils/index.d.ts +1 -1
  86. package/dist/types/features/themePreview/utils/themePreviewSettings.d.ts +11 -1
  87. package/dist/types/index.d.ts +1 -0
  88. package/dist/types/types/OwpMuiThemeTypes.d.ts +9 -0
  89. package/dist/types/types/OwpTableThemeTypes.d.ts +1 -0
  90. package/dist/types/types/index.d.ts +1 -0
  91. package/package.json +1 -1
@@ -1,45 +1,51 @@
1
- var E = Object.defineProperty;
2
- var o = (e, t) => E(e, "name", { value: t, configurable: !0 });
3
- import { toolbarCuratedPresetKeys as _ } from "../configs/presets.js";
4
- import { defaultSnackbarTheme as d, defaultSnackbarProviderProps as k } from "../configs/snackbar.js";
5
- import { merge as l } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/merge.js";
6
- import { isString as N } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isString.js";
7
- import { isObject as h } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isObject.js";
8
- const j = "__custom__", V = ["grid", "table", "snackbar"];
9
- let v = null, S = null;
10
- const b = "snackbarProviderProps.";
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 h(e) ? e : {};
13
- }
14
- o(u, "asObjectRecord");
15
- function I(e, t = d) {
16
- const a = "snackbar" in e && h(e.snackbar) ? e.snackbar : void 0;
17
- return l({}, d, t, a);
18
- }
19
- o(I, "getThemePreviewSnackbarTheme");
20
- function R(e, t = k) {
21
- const a = "snackbarProviderProps" in e && h(e.snackbarProviderProps) ? e.snackbarProviderProps : void 0;
22
- return l(
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
- k,
25
- t,
26
- a
30
+ p,
31
+ r,
32
+ n
27
33
  );
28
34
  }
29
- o(R, "getThemePreviewSnackbarProviderProps");
30
- function T(e, t = d) {
31
- return l({}, e, {
32
- snackbar: I(e, t),
33
- snackbarProviderProps: R(e)
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
- o(T, "createThemePreviewSettings");
37
- function A(e) {
42
+ i(w, "createThemePreviewSettings");
43
+ function X(e) {
38
44
  return V.includes(e);
39
45
  }
40
- o(A, "isThemePreviewCustomSection");
41
- function p(e, t) {
42
- switch (t) {
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[t].palette);
56
+ return u(e.theme[r].palette);
51
57
  }
52
58
  }
53
- o(p, "getThemePreviewSectionTarget");
54
- function w(e) {
55
- return T(e);
59
+ i(M, "getThemePreviewSectionTarget");
60
+ function _(e) {
61
+ return w(e);
56
62
  }
57
- o(w, "cloneThemePreviewSettings");
58
- function H(e, t, a = d) {
59
- return l({}, T(e, a), {
60
- theme: t
63
+ i(_, "cloneThemePreviewSettings");
64
+ function Y(e, r, n = f) {
65
+ return P({}, w(e, n), {
66
+ theme: r
61
67
  });
62
68
  }
63
- o(H, "getThemePreviewResetSettings");
64
- function O(e, t, a) {
65
- const [r, i] = a.startsWith(b) ? [u(e.snackbarProviderProps), a.slice(b.length)] : [p(e, t), a], n = i.split(".").reduce((c, s) => u(c)[s], r);
66
- return typeof n == "number" ? String(n) : N(n) ? n : "";
67
- }
68
- o(O, "getThemePreviewPaletteValue");
69
- function f(e, t) {
70
- return e.theme[t].palette.mode === "dark" ? "dark" : "light";
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
- o(f, "getThemePreviewSectionMode");
73
- function F(e) {
74
- return T(v ?? e);
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
- o(F, "getThemePreviewDraftSettings");
77
- function U(e) {
78
- v = w(e);
100
+ i(B, "getThemePreviewMatchedPresetKeys");
101
+ function q(e) {
102
+ return w(k ?? e);
79
103
  }
80
- o(U, "setThemePreviewDraftSettings");
81
- function X(e, t) {
82
- return l(
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: t,
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
- S ?? {}
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
- o(X, "getThemePreviewSelectionState");
95
- function Y(e) {
96
- S = l({}, e);
130
+ i(G, "getThemePreviewSelectionState");
131
+ function J(e) {
132
+ T = P({}, e);
97
133
  }
98
- o(Y, "setThemePreviewSelectionState");
99
- function $() {
100
- v = null, S = null;
134
+ i(J, "setThemePreviewSelectionState");
135
+ function L() {
136
+ k = null, T = null;
101
137
  }
102
- o($, "resetThemePreviewSessionState");
103
- function x(e, t, a) {
104
- const r = t.split("."), i = r.pop();
105
- if (!i)
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 n = e;
108
- r.forEach((s) => {
109
- const P = n[s];
110
- h(P) || (n[s] = {}), n = u(n[s]);
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 c = n[i];
113
- if (typeof c == "number") {
114
- const s = Number(a.replace(/,/g, "."));
115
- n[i] = Number.isNaN(s) ? c : s;
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
- n[i] = a;
154
+ a[c] = n;
119
155
  }
120
- o(x, "applyThemePreviewPaletteValue");
121
- function y(e, t, a) {
122
- if (!a.length)
156
+ i(D, "applyThemePreviewPaletteValue");
157
+ function O(e, r, n) {
158
+ if (!n.length)
123
159
  return e;
124
- const r = w(e), i = p(r, t), n = u(r.snackbarProviderProps);
125
- switch (a.forEach(({ path: c, value: s }) => {
126
- const P = c.startsWith(
127
- b
128
- ), m = P ? c.slice(b.length) : c;
129
- x(
130
- P ? n : i,
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
- s
168
+ o
133
169
  );
134
- }), r.snackbarProviderProps = n, t) {
170
+ }), t.snackbarProviderProps = a, r) {
135
171
  case "grid":
136
- return r.theme.main.grid = i, r;
172
+ return t.theme.main.grid = c, t;
137
173
  case "table":
138
- return r.theme.main.table = i, r;
174
+ return t.theme.main.table = c, t;
139
175
  case "snackbar":
140
- return r.snackbar = i, r;
176
+ return t.snackbar = c, t;
141
177
  default:
142
- return r.theme[t].palette = i, r;
178
+ return t.theme[r].palette = c, t;
143
179
  }
144
180
  }
145
- o(y, "setThemePreviewPaletteValues");
146
- function q(e, t, a, r) {
147
- return y(e, t, [{ path: a, value: r }]);
148
- }
149
- o(q, "setThemePreviewPaletteValue");
150
- function z(e) {
151
- const t = /^(light|dark)(\d+)$/, a = new Set(_);
152
- return Object.entries(e).reduce((r, [i, n]) => (n != null && n.palette && r.push({
153
- key: i,
154
- label: i,
155
- mode: n.palette.mode === "dark" ? "dark" : "light",
156
- sections: a.has(i) ? ["toolbar"] : void 0,
157
- originalIndex: r.length
158
- }), r), []).sort((r, i) => {
159
- const n = r.key.match(t), c = i.key.match(t), s = !!n;
160
- if (s !== !!c)
161
- return s ? 1 : -1;
162
- if (n && c) {
163
- const m = (n[1] === "light" ? 0 : 1) - (c[1] === "light" ? 0 : 1);
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(n[2]) - Number(c[2]);
202
+ const g = Number(a[2]) - Number(s[2]);
167
203
  if (g !== 0)
168
204
  return g;
169
205
  }
170
- return r.originalIndex - i.originalIndex;
171
- }).map((r) => ({
172
- key: r.key,
173
- label: r.label,
174
- mode: r.mode,
175
- sections: r.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
- o(z, "getThemePreviewPresetOptions");
179
- function G(e, t, a) {
214
+ i(y, "getThemePreviewPresetOptions");
215
+ function N(e, r, n) {
180
216
  return e.filter(
181
- (r) => r.mode === a && (!r.sections || r.sections.includes(t))
217
+ (t) => t.mode === n && (!t.sections || t.sections.includes(r))
182
218
  );
183
219
  }
184
- o(G, "getThemePreviewPresetOptionsByMode");
185
- function J(e, t, a) {
186
- return l({}, e, {
220
+ i(N, "getThemePreviewPresetOptionsByMode");
221
+ function Z(e, r, n) {
222
+ return P({}, e, {
187
223
  theme: {
188
- [t]: a
224
+ [r]: n
189
225
  }
190
226
  });
191
227
  }
192
- o(J, "applyThemePreviewPreset");
228
+ i(Z, "applyThemePreviewPreset");
193
229
  export {
194
- j as THEME_PREVIEW_CUSTOM_PRESET_KEY,
195
- J as applyThemePreviewPreset,
196
- w as cloneThemePreviewSettings,
197
- F as getThemePreviewDraftSettings,
198
- O as getThemePreviewPaletteValue,
199
- z as getThemePreviewPresetOptions,
200
- G as getThemePreviewPresetOptionsByMode,
201
- H as getThemePreviewResetSettings,
202
- f as getThemePreviewSectionMode,
203
- X as getThemePreviewSelectionState,
204
- A as isThemePreviewCustomSection,
205
- $ as resetThemePreviewSessionState,
206
- U as setThemePreviewDraftSettings,
207
- q as setThemePreviewPaletteValue,
208
- y as setThemePreviewPaletteValues,
209
- Y as setThemePreviewSelectionState
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 p, themePreviewPresetContractKeys as h, themesConfig as n, toolbarCuratedPresetKeys as f } from "./themePreview/configs/presets.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 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 K } from "./themePreview/configs/surface.js";
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, getThemePreviewPaletteValue as Pe, getThemePreviewPresetOptions as le, getThemePreviewPresetOptionsByMode as se, getThemePreviewResetSettings as Te, getThemePreviewSectionMode as ve, getThemePreviewSelectionState as pe, isThemePreviewCustomSection as he, resetThemePreviewSessionState as ne, setThemePreviewDraftSettings as fe, setThemePreviewPaletteValue as we, setThemePreviewPaletteValues as de, setThemePreviewSelectionState as Se } from "./themePreview/utils/themePreviewSettings.js";
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
- K as defaultLayoutSurface,
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 getThemePreviewPaletteValue,
51
- le as getThemePreviewPresetOptions,
52
- se as getThemePreviewPresetOptionsByMode,
53
- Te as getThemePreviewResetSettings,
54
- ve as getThemePreviewSectionMode,
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
- he as isThemePreviewCustomSection,
58
- p as lightPaletteText,
58
+ ne as isThemePreviewCustomSection,
59
+ h as lightPaletteText,
59
60
  x as persistThemePreviewAppliedSettings,
60
61
  y as persistThemePreviewTemporaryState,
61
- ne as resetThemePreviewSessionState,
62
- fe as setThemePreviewDraftSettings,
63
- we as setThemePreviewPaletteValue,
64
- de as setThemePreviewPaletteValues,
65
- Se as setThemePreviewSelectionState,
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
- h as themePreviewPresetContractKeys,
69
+ p as themePreviewPresetContractKeys,
69
70
  te as themePreviewSectionOptions,
70
71
  n as themesConfig,
71
72
  J as toColorPickerValue,