@toolbox-web/grid-react 1.4.0 → 1.5.1

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 (42) hide show
  1. package/README.md +1 -1
  2. package/chunks/grid-detail-panel-CR7YUhdN.js +52 -0
  3. package/chunks/grid-responsive-card-BB28Zl2O.js +45 -0
  4. package/chunks/portal-bridge-DLA6Zs11.js +51 -0
  5. package/chunks/react-column-config-Sb-U7Bq3.js +109 -0
  6. package/chunks/react-grid-adapter-CzByOnua.js +416 -0
  7. package/features/editing.js +5 -0
  8. package/features/filtering.d.ts.map +1 -1
  9. package/features/filtering.js +55 -45
  10. package/features/grouping-columns.js +18 -23
  11. package/features/grouping-rows.js +11 -16
  12. package/features/index.js +3 -3
  13. package/features/master-detail.js +18 -0
  14. package/features/pinned-rows.d.ts.map +1 -1
  15. package/features/pinned-rows.js +24 -17
  16. package/features/responsive.js +18 -0
  17. package/index.d.ts +1 -0
  18. package/index.d.ts.map +1 -1
  19. package/index.js +422 -1000
  20. package/lib/column-shorthand.d.ts +27 -1
  21. package/lib/column-shorthand.d.ts.map +1 -1
  22. package/lib/context-types.d.ts +17 -2
  23. package/lib/context-types.d.ts.map +1 -1
  24. package/lib/data-grid.d.ts.map +1 -1
  25. package/lib/editor-mount-hooks.d.ts +39 -0
  26. package/lib/editor-mount-hooks.d.ts.map +1 -0
  27. package/lib/event-props.d.ts +134 -6
  28. package/lib/event-props.d.ts.map +1 -1
  29. package/lib/feature-props.d.ts +20 -2
  30. package/lib/feature-props.d.ts.map +1 -1
  31. package/lib/portal-bridge.d.ts +11 -0
  32. package/lib/portal-bridge.d.ts.map +1 -1
  33. package/lib/react-column-config.d.ts +12 -0
  34. package/lib/react-column-config.d.ts.map +1 -1
  35. package/lib/react-grid-adapter.d.ts +61 -11
  36. package/lib/react-grid-adapter.d.ts.map +1 -1
  37. package/lib/use-grid-overlay.d.ts +2 -0
  38. package/lib/use-grid-overlay.d.ts.map +1 -1
  39. package/lib/use-grid.d.ts +2 -0
  40. package/lib/use-grid.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/chunks/portal-bridge-DZ4yQkmm.js +0 -42
@@ -1,28 +1,38 @@
1
1
  import { FilteringPlugin as F } from "@toolbox-web/grid/plugins/filtering";
2
- import { useContext as G, useCallback as n } from "react";
3
- import { r as h, a as k } from "../chunks/portal-bridge-DZ4yQkmm.js";
2
+ import { useContext as h, useCallback as n } from "react";
4
3
  import { registerFeature as E } from "@toolbox-web/grid/features/registry";
5
- import { G as R } from "../chunks/grid-element-context-BU3WvNtM.js";
4
+ import { G as k } from "../chunks/grid-element-context-BU3WvNtM.js";
5
+ import { r as C, a as m } from "../chunks/portal-bridge-DLA6Zs11.js";
6
+ import { r as R } from "../chunks/react-grid-adapter-CzByOnua.js";
6
7
  E("filtering", (l) => {
7
8
  if (typeof l == "boolean") return new F();
8
9
  if (!l) return new F();
9
10
  const o = l, e = { ...o };
10
11
  if (typeof o.filterPanelRenderer == "function" && o.filterPanelRenderer.length <= 1) {
11
- const f = o.filterPanelRenderer, a = /* @__PURE__ */ new WeakMap();
12
- e.filterPanelRenderer = (g, c) => {
13
- const d = a.get(g);
14
- d && h(d);
15
- const s = document.createElement("div");
16
- s.style.display = "contents";
17
- const u = k(s, f(c));
18
- a.set(g, u), g.appendChild(s);
12
+ const f = o.filterPanelRenderer, s = /* @__PURE__ */ new WeakMap();
13
+ e.filterPanelRenderer = (a, g) => {
14
+ const c = s.get(a);
15
+ c && C(c);
16
+ const d = document.createElement("div");
17
+ d.style.display = "contents";
18
+ const u = m(d, f(g));
19
+ s.set(a, u), a.appendChild(d);
19
20
  };
20
21
  }
21
22
  return new F(e);
22
23
  });
23
- function v(l) {
24
- const o = G(R), e = n(() => (l ? document.querySelector(l) : o?.current)?.getPluginByName("filtering"), [o, l]), f = n(
25
- (t, i, r) => {
24
+ R((l, o, { trackPortal: e }) => {
25
+ const f = l;
26
+ return (s, a) => {
27
+ const g = document.createElement("div");
28
+ g.style.display = "contents";
29
+ const c = s.closest("tbw-grid") ?? o, d = m(g, f(a), void 0, c);
30
+ e(d, g, !1), s.appendChild(g);
31
+ };
32
+ });
33
+ function K(l) {
34
+ const o = h(k), e = n(() => (l ? document.querySelector(l) : o?.current)?.getPluginByName("filtering"), [o, l]), f = n(
35
+ (t, r, i) => {
26
36
  const p = e();
27
37
  if (!p) {
28
38
  console.warn(
@@ -33,13 +43,13 @@ function v(l) {
33
43
  );
34
44
  return;
35
45
  }
36
- p.setFilter(t, i, r);
46
+ p.setFilter(t, r, i);
37
47
  },
38
48
  [e]
39
- ), a = n((t) => e()?.getFilter(t), [e]), g = n(() => e()?.getFilters() ?? [], [e]), c = n(
40
- (t, i) => {
41
- const r = e();
42
- if (!r) {
49
+ ), s = n((t) => e()?.getFilter(t), [e]), a = n(() => e()?.getFilters() ?? [], [e]), g = n(
50
+ (t, r) => {
51
+ const i = e();
52
+ if (!i) {
43
53
  console.warn(
44
54
  `[tbw-grid:filtering] FilteringPlugin not found.
45
55
 
@@ -48,13 +58,13 @@ function v(l) {
48
58
  );
49
59
  return;
50
60
  }
51
- r.setFilterModel(t, i);
61
+ i.setFilterModel(t, r);
52
62
  },
53
63
  [e]
54
- ), d = n(
64
+ ), c = n(
55
65
  (t) => {
56
- const i = e();
57
- if (!i) {
66
+ const r = e();
67
+ if (!r) {
58
68
  console.warn(
59
69
  `[tbw-grid:filtering] FilteringPlugin not found.
60
70
 
@@ -63,13 +73,13 @@ function v(l) {
63
73
  );
64
74
  return;
65
75
  }
66
- i.clearAllFilters(t);
76
+ r.clearAllFilters(t);
67
77
  },
68
78
  [e]
69
- ), s = n(
70
- (t, i) => {
71
- const r = e();
72
- if (!r) {
79
+ ), d = n(
80
+ (t, r) => {
81
+ const i = e();
82
+ if (!i) {
73
83
  console.warn(
74
84
  `[tbw-grid:filtering] FilteringPlugin not found.
75
85
 
@@ -78,16 +88,16 @@ function v(l) {
78
88
  );
79
89
  return;
80
90
  }
81
- r.clearFieldFilter(t, i);
91
+ i.clearFieldFilter(t, r);
82
92
  },
83
93
  [e]
84
- ), u = n((t) => e()?.isFieldFiltered(t) ?? !1, [e]), m = n(() => e()?.getFilteredRowCount() ?? 0, [e]), w = n((t) => e()?.getUniqueValues(t) ?? [], [e]), b = n(() => e()?.getStaleFilters() ?? [], [e]), P = n(
94
+ ), u = n((t) => e()?.isFieldFiltered(t) ?? !1, [e]), w = n(() => e()?.getFilteredRowCount() ?? 0, [e]), b = n((t) => e()?.getUniqueValues(t) ?? [], [e]), y = n(() => e()?.getStaleFilters() ?? [], [e]), P = n(
85
95
  (t) => e()?.getBlankMode(t) ?? "all",
86
96
  [e]
87
- ), y = n(
88
- (t, i) => {
89
- const r = e();
90
- if (!r) {
97
+ ), G = n(
98
+ (t, r) => {
99
+ const i = e();
100
+ if (!i) {
91
101
  console.warn(
92
102
  `[tbw-grid:filtering] FilteringPlugin not found.
93
103
 
@@ -96,25 +106,25 @@ function v(l) {
96
106
  );
97
107
  return;
98
108
  }
99
- r.toggleBlankFilter(t, i);
109
+ i.toggleBlankFilter(t, r);
100
110
  },
101
111
  [e]
102
112
  );
103
113
  return {
104
114
  setFilter: f,
105
- getFilter: a,
106
- getFilters: g,
107
- setFilterModel: c,
108
- clearAllFilters: d,
109
- clearFieldFilter: s,
115
+ getFilter: s,
116
+ getFilters: a,
117
+ setFilterModel: g,
118
+ clearAllFilters: c,
119
+ clearFieldFilter: d,
110
120
  isFieldFiltered: u,
111
- getFilteredRowCount: m,
112
- getUniqueValues: w,
113
- getStaleFilters: b,
121
+ getFilteredRowCount: w,
122
+ getUniqueValues: b,
123
+ getStaleFilters: y,
114
124
  getBlankMode: P,
115
- toggleBlankFilter: y
125
+ toggleBlankFilter: G
116
126
  };
117
127
  }
118
128
  export {
119
- v as useGridFiltering
129
+ K as useGridFiltering
120
130
  };
@@ -1,26 +1,21 @@
1
- import { GroupingColumnsPlugin as u } from "@toolbox-web/grid/plugins/grouping-columns";
2
- import { a as s } from "../chunks/portal-bridge-DZ4yQkmm.js";
3
- import { registerFeature as i } from "@toolbox-web/grid/features/registry";
4
- function p(n) {
5
- const e = /* @__PURE__ */ new WeakMap();
6
- return (o) => {
7
- const r = document.createElement("div");
8
- r.style.display = "contents";
9
- const t = s(r, n(o));
10
- return e.set(r, t), r;
11
- };
1
+ import { GroupingColumnsPlugin as t } from "@toolbox-web/grid/plugins/grouping-columns";
2
+ import { registerFeature as c } from "@toolbox-web/grid/features/registry";
3
+ import { c as p } from "../chunks/portal-bridge-DLA6Zs11.js";
4
+ function u(n) {
5
+ const r = p(n);
6
+ return (o) => r(o) ?? document.createElement("div");
12
7
  }
13
- i("groupingColumns", (n) => {
14
- if (typeof n == "boolean") return new u();
15
- if (!n) return new u();
16
- const e = n, o = { ...e };
17
- if (typeof e.groupHeaderRenderer == "function") {
18
- const r = e.groupHeaderRenderer;
19
- o.groupHeaderRenderer = p(r);
8
+ c("groupingColumns", (n) => {
9
+ if (typeof n == "boolean") return new t();
10
+ if (!n) return new t();
11
+ const r = n, o = { ...r };
12
+ if (typeof r.groupHeaderRenderer == "function") {
13
+ const e = r.groupHeaderRenderer;
14
+ o.groupHeaderRenderer = u(e);
20
15
  }
21
- return Array.isArray(e.columnGroups) && (o.columnGroups = e.columnGroups.map((r) => {
22
- if (typeof r.renderer != "function") return r;
23
- const t = r.renderer;
24
- return { ...r, renderer: p(t) };
25
- })), new u(o);
16
+ return Array.isArray(r.columnGroups) && (o.columnGroups = r.columnGroups.map((e) => {
17
+ if (typeof e.renderer != "function") return e;
18
+ const i = e.renderer;
19
+ return { ...e, renderer: u(i) };
20
+ })), new t(o);
26
21
  });
@@ -1,18 +1,13 @@
1
- import { GroupingRowsPlugin as n } from "@toolbox-web/grid/plugins/grouping-rows";
2
- import { a as c } from "../chunks/portal-bridge-DZ4yQkmm.js";
3
- import { registerFeature as a } from "@toolbox-web/grid/features/registry";
4
- a("groupingRows", (r) => {
5
- if (typeof r == "boolean") return new n();
6
- if (!r) return new n();
7
- const o = r, t = { ...o };
8
- if (typeof o.groupRowRenderer == "function") {
9
- const p = o.groupRowRenderer, s = /* @__PURE__ */ new WeakMap();
10
- t.groupRowRenderer = (i) => {
11
- const e = document.createElement("div");
12
- e.style.display = "contents";
13
- const u = c(e, p(i));
14
- return s.set(e, u), e;
15
- };
1
+ import { GroupingRowsPlugin as o } from "@toolbox-web/grid/plugins/grouping-rows";
2
+ import { registerFeature as c } from "@toolbox-web/grid/features/registry";
3
+ import { c as p } from "../chunks/portal-bridge-DLA6Zs11.js";
4
+ c("groupingRows", (e) => {
5
+ if (typeof e == "boolean") return new o();
6
+ if (!e) return new o();
7
+ const r = e, n = { ...r };
8
+ if (typeof r.groupRowRenderer == "function") {
9
+ const t = r.groupRowRenderer, i = p(t);
10
+ n.groupRowRenderer = (u) => i(u) ?? document.createElement("div");
16
11
  }
17
- return new n(t);
12
+ return new o(n);
18
13
  });
package/features/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import "@toolbox-web/grid/features/clipboard";
2
2
  import "@toolbox-web/grid/features/column-virtualization";
3
3
  import "@toolbox-web/grid/features/context-menu";
4
- import "@toolbox-web/grid/features/editing";
4
+ import "./editing.js";
5
5
  import "react";
6
6
  import "../chunks/grid-element-context-BU3WvNtM.js";
7
7
  import "@toolbox-web/grid/features/export";
8
8
  import "./filtering.js";
9
9
  import "./grouping-columns.js";
10
10
  import "./grouping-rows.js";
11
- import "@toolbox-web/grid/features/master-detail";
11
+ import "./master-detail.js";
12
12
  import "@toolbox-web/grid/features/multi-sort";
13
13
  import "@toolbox-web/grid/features/pinned-columns";
14
14
  import "./pinned-rows.js";
@@ -16,7 +16,7 @@ import "@toolbox-web/grid/features/pivot";
16
16
  import "@toolbox-web/grid/features/print";
17
17
  import "@toolbox-web/grid/features/reorder-columns";
18
18
  import "@toolbox-web/grid/features/reorder-rows";
19
- import "@toolbox-web/grid/features/responsive";
19
+ import "./responsive.js";
20
20
  import "@toolbox-web/grid/features/row-drag-drop";
21
21
  import "@toolbox-web/grid/features/selection";
22
22
  import "@toolbox-web/grid/features/server-side";
@@ -1 +1,19 @@
1
1
  import "@toolbox-web/grid/features/master-detail";
2
+ import { g as c } from "../chunks/grid-detail-panel-CR7YUhdN.js";
3
+ import { a as s } from "../chunks/portal-bridge-DLA6Zs11.js";
4
+ import { a as d } from "../chunks/react-grid-adapter-CzByOnua.js";
5
+ d((r, { trackPortal: n }) => {
6
+ const t = c(r);
7
+ if (t)
8
+ return (o, a) => {
9
+ const e = document.createElement("div");
10
+ e.className = "react-detail-panel";
11
+ const i = s(
12
+ e,
13
+ t({ row: o, rowIndex: a }),
14
+ void 0,
15
+ r
16
+ );
17
+ return n(i, e, !1), e;
18
+ };
19
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"pinned-rows.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/features/pinned-rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,wCAAwC,CAAC"}
1
+ {"version":3,"file":"pinned-rows.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/features/pinned-rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,wCAAwC,CAAC"}
@@ -1,22 +1,29 @@
1
1
  import "@toolbox-web/grid/features/pinned-rows";
2
2
  import { PinnedRowsPlugin as o } from "@toolbox-web/grid/plugins/pinned-rows";
3
- import { a as u } from "../chunks/portal-bridge-DZ4yQkmm.js";
4
- import { registerFeature as p } from "@toolbox-web/grid/features/registry";
5
- p("pinnedRows", (n) => {
6
- if (typeof n == "boolean") return new o();
7
- if (!n) return new o();
8
- const t = n, s = { ...t };
9
- return Array.isArray(t.customPanels) && (s.customPanels = t.customPanels.map((e) => {
10
- if (typeof e.render != "function") return e;
11
- const i = e.render, c = /* @__PURE__ */ new WeakMap();
3
+ import { registerFeature as m } from "@toolbox-web/grid/features/registry";
4
+ import { c } from "../chunks/portal-bridge-DLA6Zs11.js";
5
+ function u(r) {
6
+ return c(r);
7
+ }
8
+ function p(r) {
9
+ if (!("render" in r) || r.render == null) return r;
10
+ if (Array.isArray(r.render)) {
11
+ const t = r.render.map((e) => typeof e?.render != "function" ? e : { zone: e.zone, render: u(e.render) });
12
+ return { ...r, render: t };
13
+ }
14
+ return typeof r.render == "function" ? { ...r, render: u(r.render) } : r;
15
+ }
16
+ m("pinnedRows", (r) => {
17
+ if (typeof r == "boolean") return new o();
18
+ if (!r) return new o();
19
+ const t = r, { slots: e, customPanels: d, ...f } = t, i = { ...f };
20
+ return Array.isArray(d) && (i.customPanels = d.map((n) => {
21
+ if (typeof n.render != "function") return n;
22
+ const a = c(n.render);
12
23
  return {
13
- ...e,
14
- render: (a) => {
15
- const r = document.createElement("div");
16
- r.style.display = "contents";
17
- const m = u(r, i(a));
18
- return c.set(r, m), r;
19
- }
24
+ ...n,
25
+ // customPanels expect HTMLElement (not nullable); coerce null → empty wrapper.
26
+ render: (s) => a(s) ?? document.createElement("div")
20
27
  };
21
- })), new o(s);
28
+ })), Array.isArray(e) && (i.slots = e.map(p)), new o(i);
22
29
  });
@@ -1 +1,19 @@
1
1
  import "@toolbox-web/grid/features/responsive";
2
+ import { g as i } from "../chunks/grid-responsive-card-BB28Zl2O.js";
3
+ import { a as c } from "../chunks/portal-bridge-DLA6Zs11.js";
4
+ import { b as d } from "../chunks/react-grid-adapter-CzByOnua.js";
5
+ d((r, { trackPortal: o }) => {
6
+ const n = i(r);
7
+ if (n)
8
+ return (t, s) => {
9
+ const e = document.createElement("div");
10
+ e.className = "react-responsive-card";
11
+ const a = c(
12
+ e,
13
+ n({ row: t, index: s }),
14
+ void 0,
15
+ r
16
+ );
17
+ return o(a, e, !1), e;
18
+ };
19
+ });
package/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export { GridResponsiveCard, type GridResponsiveCardProps, type ResponsiveCardCo
6
6
  export { GridToolButtons, type GridToolButtonsProps } from './lib/grid-tool-button';
7
7
  export { GridToolPanel, type GridToolPanelProps, type ToolPanelContext } from './lib/grid-tool-panel';
8
8
  export type { AllFeatureProps, FeatureProps, SSRProps } from './lib/feature-props';
9
+ export { applyColumnDefaults, hasColumnShorthands, normalizeColumns, parseColumnShorthand, } from './lib/column-shorthand';
9
10
  export type { ColumnShorthand } from './lib/column-shorthand';
10
11
  export type { EventHandler, EventProps } from './lib/event-props';
11
12
  export { GridTypeProvider, useGridTypeDefaults, useTypeDefault, type GridTypeProviderProps, type TypeDefault, type TypeDefaultsMap, } from './lib/grid-type-registry';
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../libs/grid-react/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,YAAY,CAAC;AAGpB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGtG,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGnF,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGtG,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG3E,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG1E,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../libs/grid-react/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,YAAY,CAAC;AAGpB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGtG,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGnF,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGtG,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG3E,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG1E,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}