@pstdio/ui 0.43.0-nightly.20261012031318 → 0.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/{MermaidComponent-Ck8YZ-eC.js → MermaidComponent-X7N-8w2S.js} +2 -2
  2. package/dist/{MermaidComponent-Ck8YZ-eC.js.map → MermaidComponent-X7N-8w2S.js.map} +1 -1
  3. package/dist/chat-ui.d.ts +50 -50
  4. package/dist/chat-ui.js +2 -2
  5. package/dist/{collection-view-grouping-DmjlnPQj.js → collection-view-grouping-DnuJ1U4R.js} +24 -24
  6. package/dist/{collection-view-grouping-DmjlnPQj.js.map → collection-view-grouping-DnuJ1U4R.js.map} +1 -1
  7. package/dist/{collection-view-search-CW7B2YP1.js → collection-view-search-D_7Qvz7p.js} +22 -16
  8. package/dist/collection-view-search-D_7Qvz7p.js.map +1 -0
  9. package/dist/collection-view.d.ts +90 -3
  10. package/dist/collection-view.js +112 -2
  11. package/dist/collection-view.js.map +1 -0
  12. package/dist/{data-table-stats-row-B2MYAoHu.js → data-table-stats-row-C8CtvdDt.js} +2 -2
  13. package/dist/{data-table-stats-row-B2MYAoHu.js.map → data-table-stats-row-C8CtvdDt.js.map} +1 -1
  14. package/dist/data-table.d.ts +1 -2
  15. package/dist/data-table.js +14 -14
  16. package/dist/data-table.js.map +1 -1
  17. package/dist/{display-sort-control-CmFg-wcP.js → display-sort-control-n3L5WvkJ.js} +86 -86
  18. package/dist/{display-sort-control-CmFg-wcP.js.map → display-sort-control-n3L5WvkJ.js.map} +1 -1
  19. package/dist/{edit-mode-data-table-oEYutEBB.js → edit-mode-data-table-BclZ-pWe.js} +8 -8
  20. package/dist/{edit-mode-data-table-oEYutEBB.js.map → edit-mode-data-table-BclZ-pWe.js.map} +1 -1
  21. package/dist/{index-DNurZJZ3.d.ts → index-DjZsR4Ey.d.ts} +1 -1
  22. package/dist/index.d.ts +50 -50
  23. package/dist/kanban-renderer.d.ts +1 -1
  24. package/dist/kanban-renderer.js +79 -79
  25. package/dist/kanban-renderer.js.map +1 -1
  26. package/dist/{markdown-editor-oklbG4fY.js → markdown-editor-CN4qOKky.js} +4 -4
  27. package/dist/{markdown-editor-oklbG4fY.js.map → markdown-editor-CN4qOKky.js.map} +1 -1
  28. package/dist/{param-editor-Br3Qm5B4.js → param-editor-28dBRSV4.js} +2 -2
  29. package/dist/{param-editor-Br3Qm5B4.js.map → param-editor-28dBRSV4.js.map} +1 -1
  30. package/dist/{param-editor-field-Cg-C40tt.js → param-editor-field-GxhFb86w.js} +2 -2
  31. package/dist/{param-editor-field-Cg-C40tt.js.map → param-editor-field-GxhFb86w.js.map} +1 -1
  32. package/dist/param-editor.js +2 -2
  33. package/dist/{rich-text-DSZ23B46.js → rich-text-DOK4dDeb.js} +2 -2
  34. package/dist/{rich-text-DSZ23B46.js.map → rich-text-DOK4dDeb.js.map} +1 -1
  35. package/dist/rich-text.js +3 -3
  36. package/dist/{workspace-badge-BKtB805G.d.ts → workspace-badge-oFp29Gbe.d.ts} +1 -1
  37. package/package.json +2 -2
  38. package/dist/collection-view-search-CW7B2YP1.js.map +0 -1
  39. package/dist/index-DgwJmKVC.d.ts +0 -80
@@ -1,4 +1,91 @@
1
- import { A as CollectionSavedView, F as ViewFilterGroup, I as ViewFilterRule, L as ViewSort, M as CollectionViewsSource, N as EMPTY_VIEW_FILTER, a as CollectionViewStoreState, i as CollectionViewStoreInitialState, j as CollectionViewState, o as useCollectionViewStore, r as withTitleField } from "./collection-view-fields-CajuwtKF.js";
2
- import { a as searchRows, c as CollectionViewBarProps, i as useCollectionViews, n as ViewBarPopoverProps, o as filterRowsByView, r as CollectionViewsInput, s as CollectionViewBar, t as ViewBarPopover } from "./index-DgwJmKVC.js";
3
- export { type CollectionSavedView, CollectionViewBar, type CollectionViewBarProps, type CollectionViewState, type CollectionViewStoreInitialState, type CollectionViewStoreState, type CollectionViewsInput, type CollectionViewsSource, EMPTY_VIEW_FILTER, ViewBarPopover, type ViewBarPopoverProps, type ViewFilterGroup, type ViewFilterRule, type ViewSort, filterRowsByView, searchRows, useCollectionViewStore, useCollectionViews, withTitleField };
1
+ import { A as CollectionSavedView, F as ViewFilterGroup, I as ViewFilterRule, L as ViewSort, M as CollectionViewsSource, N as EMPTY_VIEW_FILTER, a as CollectionViewStoreState, i as CollectionViewStoreInitialState, j as CollectionViewState, o as useCollectionViewStore, r as withTitleField, s as AttributeDescriptor, x as KanbanRendererRow } from "./collection-view-fields-CajuwtKF.js";
2
+ import { ReactNode, RefObject } from "react";
3
+ import { ViewFilterGroup as ViewFilterGroup$1, ViewFilterRule as ViewFilterRule$1 } from "@pstdio/sdk/extensions";
4
+ //#region src/components/collection-view/filter-rule-value.d.ts
5
+ interface RuleValueOption {
6
+ value: string;
7
+ label: string;
8
+ count?: number;
9
+ icon?: string | null;
10
+ color?: string;
11
+ }
12
+ //#endregion
13
+ //#region src/components/collection-view/collection-filter.d.ts
14
+ interface CollectionFilterProps {
15
+ itemLabel?: string;
16
+ fields: AttributeDescriptor[];
17
+ filter: ViewFilterGroup$1;
18
+ optionsFor: (field: AttributeDescriptor) => RuleValueOption[];
19
+ onFilterChange: (filter: ViewFilterGroup$1) => void;
20
+ }
21
+ /** The collection picker and editable criteria, without saved views or search. */
22
+ export declare function CollectionFilter(props: CollectionFilterProps): import("react/jsx-runtime").JSX.Element;
23
+ //#endregion
24
+ //#region src/components/collection-view/collection-view-bar.d.ts
25
+ interface CollectionViewBarProps<TSettings> {
26
+ storageKey: string;
27
+ /** Singular resource label used as the subject of boolean predicates. */
28
+ itemLabel?: string;
29
+ initialState: CollectionViewStoreInitialState<TSettings>;
30
+ views: (CollectionSavedView<TSettings> & {
31
+ builtIn: boolean;
32
+ })[];
33
+ viewsSource?: CollectionViewsSource<TSettings>;
34
+ /** Every field of the view. Filter offers the filterable ones and Sort the sortable ones. */
35
+ fields: AttributeDescriptor[];
36
+ optionsFor: (field: AttributeDescriptor) => RuleValueOption[];
37
+ /** Search is screen state owned by the renderer. It is never saved. */
38
+ search: string;
39
+ onSearchChange: (value: string) => void;
40
+ searchResultLabel?: string;
41
+ leading?: ReactNode;
42
+ actions?: ReactNode;
43
+ displayControl: ReactNode;
44
+ align?: "split" | "end";
45
+ }
46
+ /** One view bar for data tables and both kanban displays: saved views, then Search, Filter, and Display. */
47
+ export declare const CollectionViewBar: <TSettings>(props: CollectionViewBarProps<TSettings>) => import("react/jsx-runtime").JSX.Element;
48
+ //#endregion
49
+ //#region src/components/collection-view/collection-view-filter.d.ts
50
+ /** Rules that are incomplete or no longer fit a field are skipped, so they never hide rows. */
51
+ export declare const filterRowsByView: <TRow extends KanbanRendererRow>(rows: TRow[], filter: ViewFilterGroup$1, fields: AttributeDescriptor[], today?: Date) => TRow[];
52
+ //#endregion
53
+ //#region src/components/collection-view/collection-view-search.d.ts
54
+ /** Search only looks at the text a view shows, which the caller collects per row. */
55
+ export declare const searchRows: <TRow>(rows: TRow[], query: string, textsOf: (row: TRow) => string[]) => TRow[];
56
+ //#endregion
57
+ //#region src/components/collection-view/use-collection-views.d.ts
58
+ interface CollectionViewsInput<TSettings> {
59
+ storageKey: string;
60
+ fields?: AttributeDescriptor[];
61
+ initialState: CollectionViewStoreInitialState<TSettings>;
62
+ viewsSource?: CollectionViewsSource<TSettings>;
63
+ defaultViews?: CollectionSavedView<TSettings>[];
64
+ defaultActiveViewId?: string;
65
+ }
66
+ /** Picks the views a renderer offers and keeps the store on a view that still exists. */
67
+ export declare const useCollectionViews: <TSettings>(input: CollectionViewsInput<TSettings>) => {
68
+ views: (CollectionSavedView<TSettings> & {
69
+ builtIn: boolean;
70
+ })[];
71
+ defaultId: string | undefined;
72
+ };
73
+ //#endregion
74
+ //#region src/components/collection-view/view-bar-popover.d.ts
75
+ interface ViewBarPopoverProps {
76
+ open: boolean;
77
+ onOpenChange: (open: boolean) => void;
78
+ /** The button the menu opens from. Several buttons can open the same menu. */
79
+ anchorRef: RefObject<HTMLElement | null>;
80
+ width: string;
81
+ placement?: "bottom-start" | "bottom-end";
82
+ /** The quick picker draws its own panes edge to edge. */
83
+ padding?: "0" | "2xs";
84
+ testId?: string;
85
+ children: ReactNode;
86
+ }
87
+ /** The menu shell for Search, Filter, and Sort. Menus inside it render in place, so using them never closes it. */
88
+ export declare const ViewBarPopover: (props: ViewBarPopoverProps) => import("react/jsx-runtime").JSX.Element;
89
+ //#endregion
90
+ export { type CollectionFilterProps, type CollectionSavedView, type CollectionViewBarProps, type CollectionViewState, type CollectionViewStoreInitialState, type CollectionViewStoreState, type CollectionViewsInput, type CollectionViewsSource, EMPTY_VIEW_FILTER, type ViewBarPopoverProps, type ViewFilterGroup, type ViewFilterRule, type ViewSort, useCollectionViewStore, withTitleField };
4
91
  export {};
@@ -1,2 +1,112 @@
1
- import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, y as s } from "./collection-view-search-CW7B2YP1.js";
2
- export { o as CollectionViewBar, a as EMPTY_VIEW_FILTER, r as ViewBarPopover, t as filterRowsByView, i as searchRows, e as useCollectionViewStore, n as useCollectionViews, s as withTitleField };
1
+ import { n as e } from "./scroll-area-crJfiiuF.js";
2
+ import { F as t, I as n, L as r, T as i, _ as a, a as o, c as s, d as c, f as l, g as u, i as d, l as f, n as p, o as m, r as h, s as g, u as _, v } from "./collection-view-search-D_7Qvz7p.js";
3
+ import { Button as y, HStack as b, Icon as x } from "@chakra-ui/react";
4
+ import { c as S } from "react/compiler-runtime";
5
+ import { jsx as C, jsxs as w } from "react/jsx-runtime";
6
+ import { useRef as T, useState as E } from "react";
7
+ import { ListFilter as D } from "lucide-react";
8
+ //#region src/components/collection-view/collection-filter.tsx
9
+ function O(i) {
10
+ let o = S(28), { itemLabel: d, fields: p, optionsFor: h, onFilterChange: _ } = i, O = d === void 0 ? "Item" : d, A = n(i.filter), j = p.filter(k), M = T(null), [N, P] = E(!1), [F, I] = E(null), L = (e) => {
11
+ let t = A.rules.findIndex((t) => t.attributeId === e.attributeId);
12
+ if (Array.isArray(e.value) && e.value.length === 0) {
13
+ _(v(A, t, void 0)), I(null);
14
+ return;
15
+ }
16
+ let n = t === -1 ? a(A, e) : v(A, t, e);
17
+ _(n), Array.isArray(e.value) || (P(!1), I(t === -1 ? n.rules.length - 1 : t));
18
+ }, R = f(A), z;
19
+ o[0] !== N || o[1] !== P || o[2] !== I ? (z = () => {
20
+ I(null), P(!N);
21
+ }, o[0] = N, o[1] = P, o[2] = I, o[3] = z) : z = o[3];
22
+ let B;
23
+ o[4] === Symbol.for("react.memo_cache_sentinel") ? (B = /* @__PURE__ */ C(x, { as: D }), o[4] = B) : B = o[4];
24
+ let V = b, H = A.rules.map((e, t) => {
25
+ let n = j.find((t) => {
26
+ let { id: n } = t;
27
+ return n === e.attributeId;
28
+ });
29
+ return /* @__PURE__ */ C(s, {
30
+ fields: j,
31
+ rule: e,
32
+ options: n ? h(n) : [],
33
+ open: F === t,
34
+ onOpenChange: (e) => {
35
+ I(e ? t : null), e && P(!1);
36
+ },
37
+ onChange: (e) => _(v(A, t, e)),
38
+ onRemove: () => {
39
+ I(null), _(v(A, t, void 0));
40
+ }
41
+ }, `${t}:${e.attributeId}`);
42
+ }), U = A.groups?.map((e, t) => /* @__PURE__ */ C(c, {
43
+ fields: j,
44
+ group: e,
45
+ optionsFor: h,
46
+ onChange: (e) => _(r(A, t, e)),
47
+ onRemove: () => _(r(A, t))
48
+ }, t)), W;
49
+ o[5] !== V || o[6] !== H || o[7] !== U ? (W = /* @__PURE__ */ w(V, {
50
+ minW: "0",
51
+ gap: "2xs",
52
+ overflowX: "auto",
53
+ children: [H, U]
54
+ }), o[5] = V, o[6] = H, o[7] = U, o[8] = W) : W = o[8];
55
+ let G;
56
+ o[9] !== A || o[10] !== _ || o[11] !== P ? (G = () => {
57
+ P(!1), _(t(A));
58
+ }, o[9] = A, o[10] = _, o[11] = P, o[12] = G) : G = o[12];
59
+ let K;
60
+ o[13] !== _ || o[14] !== P || o[15] !== I ? (K = () => {
61
+ P(!1), I(null), _(g);
62
+ }, o[13] = _, o[14] = P, o[15] = I, o[16] = K) : K = o[16];
63
+ let q;
64
+ o[17] !== A || o[18] !== j || o[19] !== h || o[20] !== L || o[21] !== G || o[22] !== K ? (q = /* @__PURE__ */ C(m, {
65
+ fields: j,
66
+ filter: A,
67
+ optionsFor: h,
68
+ onSelectRule: L,
69
+ onAddAdvanced: G,
70
+ onClear: K
71
+ }), o[17] = A, o[18] = j, o[19] = h, o[20] = L, o[21] = G, o[22] = K, o[23] = q) : q = o[23];
72
+ let J;
73
+ return o[24] !== N || o[25] !== P || o[26] !== q ? (J = /* @__PURE__ */ C(l, {
74
+ open: N,
75
+ onOpenChange: P,
76
+ anchorRef: M,
77
+ placement: "bottom-start",
78
+ width: "min(440px, calc(100vw - 32px))",
79
+ padding: "0",
80
+ testId: "filter-menu-popover",
81
+ children: q
82
+ }), o[24] = N, o[25] = P, o[26] = q, o[27] = J) : J = o[27], /* @__PURE__ */ C(u.Provider, {
83
+ value: O,
84
+ children: /* @__PURE__ */ w(b, {
85
+ "data-testid": "collection-filter",
86
+ minW: "0",
87
+ gap: "2xs",
88
+ children: [
89
+ /* @__PURE__ */ C(e, {
90
+ content: "Filter",
91
+ children: /* @__PURE__ */ w(y, {
92
+ ref: M,
93
+ "aria-label": "Filter",
94
+ variant: R ? "subtle" : "ghost",
95
+ size: "2xs",
96
+ onClick: z,
97
+ children: [B, R || null]
98
+ })
99
+ }),
100
+ W,
101
+ J
102
+ ]
103
+ })
104
+ });
105
+ }
106
+ function k(e) {
107
+ return e.filterable;
108
+ }
109
+ //#endregion
110
+ export { O as CollectionFilter, h as CollectionViewBar, g as EMPTY_VIEW_FILTER, l as ViewBarPopover, _ as filterRowsByView, p as searchRows, o as useCollectionViewStore, d as useCollectionViews, i as withTitleField };
111
+
112
+ //# sourceMappingURL=collection-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-view.js","names":["Button","HStack","Icon","ViewFilterGroup","ViewFilterRule","ListFilter","useRef","useState","Tooltip","AttributeDescriptor","addAdvancedGroup","normalFilter","setAdvancedGroup","AdvancedFilterPill","CollectionItemLabelContext","countFilterRules","FilterRulePill","addRule","setRuleAt","EMPTY_VIEW_FILTER","FilterMenu","RuleValueOption","ViewBarPopover","CollectionFilterProps","itemLabel","fields","filter","optionsFor","field","onFilterChange","CollectionFilter","props","$","_c","t0","undefined","filterFields","_temp","anchorRef","open","setOpen","ruleIndex","setRuleIndex","selectRule","rule","index","rules","findIndex","entry","attributeId","Array","isArray","value","length","next","count","t1","t2","Symbol","for","T0","t3","t4","t5","t7","map","rule_0","index_0","field_0","find","t6","id","isOpen","next_0","t8","groups","group","index_1","next_1","t9","t10","t11","t12","t13","filterable","_c","Tooltip","Tooltip$1","addAdvancedGroup","normalFilter","setAdvancedGroup","withTitleField","addRule","useCollectionViewStore","FilterRulePill","AdvancedFilterPill","ViewBarPopover","CollectionItemLabelContext","useCollectionViews","countFilterRules","searchRows","FilterMenu","CollectionViewBar","EMPTY_VIEW_FILTER","filterRowsByView","CollectionFilter","$","c","t0","props","itemLabel","filter","filterFields","fields","_temp","anchorRef","useRef","open","setOpen","useState","ruleIndex","setRuleIndex","selectRule","index","entry","rule","onFilterChange","setRuleAt","next","count","t1","t2","Icon","ListFilter","T0","HStack","t7","field_0","t6","id","rule_0","optionsFor","index_0","isOpen","next_0","t8","index_1","next_1","t9","t10","t11","t12","t13","Button","field"],"sources":["../src/components/collection-view/collection-filter.tsx"],"sourcesContent":["import { Button, HStack, Icon } from \"@chakra-ui/react\";\nimport type { ViewFilterGroup, ViewFilterRule } from \"@pstdio/sdk/extensions\";\nimport { ListFilter } from \"lucide-react\";\nimport { useRef, useState } from \"react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport type { AttributeDescriptor } from \"../kanban-renderer/types\";\nimport { addAdvancedGroup, normalFilter, setAdvancedGroup } from \"./advanced-filter\";\nimport { AdvancedFilterPill } from \"./advanced-filter-pill\";\nimport { CollectionItemLabelContext } from \"./collection-item-label\";\nimport { countFilterRules } from \"./collection-view-filter\";\nimport { FilterRulePill } from \"./collection-view-pills\";\nimport { addRule, setRuleAt } from \"./collection-view-rules\";\nimport { EMPTY_VIEW_FILTER } from \"./collection-view-types\";\nimport { FilterMenu } from \"./filter-menu\";\nimport type { RuleValueOption } from \"./filter-rule-value\";\nimport { ViewBarPopover } from \"./view-bar-popover\";\n\nexport interface CollectionFilterProps {\n itemLabel?: string;\n fields: AttributeDescriptor[];\n filter: ViewFilterGroup;\n optionsFor: (field: AttributeDescriptor) => RuleValueOption[];\n onFilterChange: (filter: ViewFilterGroup) => void;\n}\n\n/** The collection picker and editable criteria, without saved views or search. */\nexport function CollectionFilter(props: CollectionFilterProps) {\n const { itemLabel = \"Item\", fields, optionsFor, onFilterChange } = props;\n const filter = normalFilter(props.filter);\n const filterFields = fields.filter((field) => field.filterable);\n const anchorRef = useRef<HTMLButtonElement>(null);\n const [open, setOpen] = useState(false);\n const [ruleIndex, setRuleIndex] = useState<number | null>(null);\n const selectRule = (rule: ViewFilterRule) => {\n const index = filter.rules.findIndex((entry) => entry.attributeId === rule.attributeId);\n if (Array.isArray(rule.value) && rule.value.length === 0) {\n onFilterChange(setRuleAt(filter, index, undefined));\n setRuleIndex(null);\n return;\n }\n const next = index === -1 ? addRule(filter, rule) : setRuleAt(filter, index, rule);\n onFilterChange(next);\n if (!Array.isArray(rule.value)) {\n setOpen(false);\n setRuleIndex(index === -1 ? next.rules.length - 1 : index);\n }\n };\n const count = countFilterRules(filter);\n return (\n <CollectionItemLabelContext.Provider value={itemLabel}>\n <HStack data-testid=\"collection-filter\" minW=\"0\" gap=\"2xs\">\n <Tooltip content=\"Filter\">\n <Button\n ref={anchorRef}\n aria-label=\"Filter\"\n variant={count ? \"subtle\" : \"ghost\"}\n size=\"2xs\"\n onClick={() => {\n setRuleIndex(null);\n setOpen(!open);\n }}\n >\n <Icon as={ListFilter} />\n {count || null}\n </Button>\n </Tooltip>\n <HStack minW=\"0\" gap=\"2xs\" overflowX=\"auto\">\n {filter.rules.map((rule, index) => {\n const field = filterFields.find(({ id }) => id === rule.attributeId);\n return (\n <FilterRulePill\n key={`${index}:${rule.attributeId}`}\n fields={filterFields}\n rule={rule}\n options={field ? optionsFor(field) : []}\n open={ruleIndex === index}\n onOpenChange={(isOpen) => {\n setRuleIndex(isOpen ? index : null);\n if (isOpen) setOpen(false);\n }}\n onChange={(next) => onFilterChange(setRuleAt(filter, index, next))}\n onRemove={() => {\n setRuleIndex(null);\n onFilterChange(setRuleAt(filter, index, undefined));\n }}\n />\n );\n })}\n {filter.groups?.map((group, index) => (\n <AdvancedFilterPill\n key={index}\n fields={filterFields}\n group={group}\n optionsFor={optionsFor}\n onChange={(next) => onFilterChange(setAdvancedGroup(filter, index, next))}\n onRemove={() => onFilterChange(setAdvancedGroup(filter, index))}\n />\n ))}\n </HStack>\n <ViewBarPopover\n open={open}\n onOpenChange={setOpen}\n anchorRef={anchorRef}\n placement=\"bottom-start\"\n width=\"min(440px, calc(100vw - 32px))\"\n padding=\"0\"\n testId=\"filter-menu-popover\"\n >\n <FilterMenu\n fields={filterFields}\n filter={filter}\n optionsFor={optionsFor}\n onSelectRule={selectRule}\n onAddAdvanced={() => {\n setOpen(false);\n onFilterChange(addAdvancedGroup(filter));\n }}\n onClear={() => {\n setOpen(false);\n setRuleIndex(null);\n onFilterChange(EMPTY_VIEW_FILTER);\n }}\n />\n </ViewBarPopover>\n </HStack>\n </CollectionItemLabelContext.Provider>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { g as e } from "./edit-mode-data-table-oEYutEBB.js";
1
+ import { g as e } from "./edit-mode-data-table-BclZ-pWe.js";
2
2
  import { Box as t, Flex as n, Table as r, Text as i } from "@chakra-ui/react";
3
3
  import { c as a } from "react/compiler-runtime";
4
4
  import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
@@ -412,4 +412,4 @@ function z(e) {
412
412
  //#endregion
413
413
  export { N as DataTableStatsRow };
414
414
 
415
- //# sourceMappingURL=data-table-stats-row-B2MYAoHu.js.map
415
+ //# sourceMappingURL=data-table-stats-row-C8CtvdDt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-table-stats-row-B2MYAoHu.js","names":["Chart","UseChartProps","useChart","ReactNode","Bar","BarChart","Tooltip","RechartsTooltip","useActiveTooltipCoordinate","usePlotArea","XAxis","YAxis","ChartSeries","NonNullable","T","StringKeyOf","Extract","StatChartCrosshair","$","_c","coordinate","plotArea","t0","y","height","t1","x","t2","width","t3","t4","DataTableStatChartProps","data","dataKey","color","ariaLabel","tooltipLabel","datum","tooltipValue","value","tooltipSeriesLabel","layout","categoryKey","domain","barSize","barCategoryGap","DataTableStatChart","props","undefined","name","series","chart","getBarValue","t5","datum_0","getCategoryValue","t6","t7","Symbol","for","top","right","bottom","left","t8","t9","t10","t11","t12","label","payload","datum_1","t13","t14","t15","t16","zIndex","t17","t18","t19","_c","_Fragment","RechartsTooltip","isDisplayValue","RowData","HistogramBin","start","end","count","HistogramStat","min","max","bins","TopValueStat","label","percentage","getStatValue","value","sortValue","getColumnStatValues","rows","columnId","map","row","filter","undefined","countUniqueStatValues","Set","size","buildTopValuesStat","limit","values","counts","Map","set","get","groups","entries","String","Math","round","length","sort","left","right","localeCompare","topGroups","slice","otherCount","reduce","total","group","buildHistogramStat","binCount","binWidth","Array","from","_","index","binIndex","floor","Box","Flex","Table","Text","Header","HeaderGroup","DataTableStatChart","buildHistogramStat","buildTopValuesStat","countUniqueStatValues","DataTableColumnStat","RowData","formatNumber","Intl","NumberFormat","undefined","maximumFractionDigits","format","STAT_CHART_COLOR","SingleValueStatProps","value","count","SingleValueStat","props","$","_c","t0","t1","t2","t3","t4","UniqueStatProps","rows","columnId","UniqueStat","T0","T1","t5","t6","t7","Symbol","for","t8","HistogramStatProps","binCount","HistogramStat","T2","t10","t9","bb0","histogram","t11","valueCount","bins","reduce","_temp","min","max","_temp2","_temp3","t12","t13","TopValuesStatProps","limit","TopValuesStat","groups","length","label","map","_temp6","DataTableStatProps","stat","DataTableStat","type","DataTableStatCellProps","header","headerGroup","columnStats","Partial","Record","fullWidth","DataTableStatCell","column","id","borderRight","headers","indexOf","width","DataTableStatsRowProps","noBorder","DataTableStatsRow","hasVisibleStats","some","header_0","total","bin","bin_0","start","end","Number","_temp4","datum","_temp5","group","percentage","_c","isDisplayValue","Tooltip$1","StatChartCrosshair","$","c","coordinate","useActiveTooltipCoordinate","plotArea","usePlotArea","t0","t1","t2","t3","t4","DataTableStatChart","props","layout","barCategoryGap","color","dataKey","data","chart","useChart","datum","getBarValue","t5","categoryKey","datum_0","getCategoryValue","t6","t7","t8","domain","Fragment","XAxis","YAxis","t9","t10","barSize","Bar","t11","t12","tooltipLabel","datum_1","payload","label","t13","tooltipSeriesLabel","tooltipValue","value","t14","Chart","t15","t16","t17","t18","BarChart","t19","ariaLabel","height","getStatValue","getColumnStatValues","rows","row","columnId","countUniqueStatValues","buildTopValuesStat","values","counts","groups","count","right","left","topGroups","limit","otherCount","total","group","buildHistogramStat","min","max","binWidth","binCount","bins","index","binIndex","formatNumber","STAT_CHART_COLOR","SingleValueStat","Text","Flex","UniqueStat","T0","T1","HistogramStat","T2","histogram","valueCount","_temp","_temp2","_temp3","TopValuesStat","_temp6","DataTableStat","stat","DataTableStatCell","columnStats","header","fullWidth","headerGroup","Table","DataTableStatsRow","noBorder","header_0","bin","bin_0","_temp4","_temp5","Box"],"sources":["../src/components/data-table/data-table-stat-chart.tsx","../src/components/data-table/data-table-stats.ts","../src/components/data-table/data-table-stats-row.tsx"],"sourcesContent":["import { Chart, type UseChartProps, useChart } from \"@chakra-ui/charts\";\nimport type { ReactNode } from \"react\";\nimport {\n Bar,\n BarChart,\n Tooltip as RechartsTooltip,\n useActiveTooltipCoordinate,\n usePlotArea,\n XAxis,\n YAxis,\n} from \"recharts\";\n\ntype ChartSeries<T> = NonNullable<UseChartProps<T>[\"series\"]>[number];\ntype StringKeyOf<T> = Extract<keyof T, string>;\n\nconst StatChartCrosshair = () => {\n const coordinate = useActiveTooltipCoordinate();\n const plotArea = usePlotArea();\n\n if (!coordinate || !plotArea) return null;\n\n return (\n <g pointerEvents=\"none\" stroke=\"var(--chakra-colors-border-emphasized)\" strokeWidth=\"1\">\n <line x1={coordinate.x} x2={coordinate.x} y1={plotArea.y} y2={plotArea.y + plotArea.height} />\n <line x1={plotArea.x} x2={plotArea.x + plotArea.width} y1={coordinate.y} y2={coordinate.y} />\n </g>\n );\n};\n\ninterface DataTableStatChartProps<T extends object> {\n data: T[];\n dataKey: StringKeyOf<T>;\n color: ChartSeries<T>[\"color\"];\n height: string;\n ariaLabel: string;\n tooltipLabel: (datum: T) => ReactNode;\n tooltipValue: (value: string | number) => ReactNode;\n tooltipSeriesLabel: string;\n layout?: \"horizontal\" | \"vertical\";\n categoryKey?: StringKeyOf<T>;\n domain?: [number, number];\n barSize?: number;\n barCategoryGap?: number;\n}\n\nexport const DataTableStatChart = <T extends object>(props: DataTableStatChartProps<T>) => {\n const {\n data,\n dataKey,\n color,\n height,\n ariaLabel,\n tooltipLabel,\n tooltipValue,\n tooltipSeriesLabel,\n layout = \"horizontal\",\n categoryKey,\n domain,\n barSize,\n barCategoryGap = 1,\n } = props;\n const chart = useChart({ data, series: [{ name: dataKey, color }] });\n const getBarValue = (datum: T) => datum[dataKey] as string | number;\n const getCategoryValue = categoryKey ? (datum: T) => datum[categoryKey] as string | number : undefined;\n\n return (\n <Chart.Root chart={chart} height={height} aspectRatio=\"auto\" cursor=\"crosshair\" aria-label={ariaLabel}>\n <BarChart\n responsive\n data={chart.data}\n layout={layout}\n margin={{ top: 2, right: 0, bottom: 0, left: 0 }}\n barCategoryGap={barCategoryGap}\n >\n {layout === \"vertical\" ? (\n <>\n <XAxis type=\"number\" domain={domain} hide />\n <YAxis type=\"category\" dataKey={getCategoryValue} hide />\n </>\n ) : null}\n <Bar dataKey={getBarValue} fill={chart.color(color)} barSize={barSize} isAnimationActive={false} />\n <RechartsTooltip\n allowEscapeViewBox={{ x: true, y: true }}\n content={\n <Chart.Tooltip\n labelFormatter={(label, payload) => {\n const datum = payload[0]?.payload as T | undefined;\n return datum ? tooltipLabel(datum) : label;\n }}\n formatter={(value) => [tooltipValue(value), tooltipSeriesLabel]}\n />\n }\n cursor={<StatChartCrosshair />}\n isAnimationActive={false}\n wrapperStyle={{ zIndex: 1800 }}\n />\n </BarChart>\n </Chart.Root>\n );\n};\n","import { isDisplayValue } from \"./helpers\";\nimport type { RowData } from \"./types\";\n\nexport interface HistogramBin {\n start: number;\n end: number;\n count: number;\n}\n\nexport interface HistogramStat {\n min: number;\n max: number;\n bins: HistogramBin[];\n}\n\nexport interface TopValueStat {\n label: string;\n count: number;\n percentage: number;\n}\n\nconst getStatValue = (value: unknown) => (isDisplayValue(value) ? value.sortValue : value);\n\nconst getColumnStatValues = (rows: RowData[], columnId: string) =>\n rows\n .map((row) => getStatValue(row[columnId]))\n .filter((value) => value !== null && value !== undefined && value !== \"\");\n\nexport const countUniqueStatValues = (rows: RowData[], columnId: string) =>\n new Set(getColumnStatValues(rows, columnId)).size;\n\nexport const buildTopValuesStat = (rows: RowData[], columnId: string, limit: number) => {\n const values = getColumnStatValues(rows, columnId);\n const counts = new Map<unknown, number>();\n\n for (const value of values) {\n counts.set(value, (counts.get(value) ?? 0) + 1);\n }\n\n const groups: TopValueStat[] = [...counts.entries()]\n .map(([value, count]) => ({\n label: String(value),\n count,\n percentage: Math.round((count / values.length) * 100),\n }))\n .sort((left, right) => right.count - left.count || left.label.localeCompare(right.label));\n const topGroups = groups.slice(0, limit);\n const otherCount = groups.slice(limit).reduce((total, group) => total + group.count, 0);\n\n if (otherCount === 0) return topGroups;\n\n return [\n ...topGroups,\n {\n label: \"Other\",\n count: otherCount,\n percentage: Math.round((otherCount / values.length) * 100),\n },\n ];\n};\n\nexport const buildHistogramStat = (rows: RowData[], columnId: string, binCount: number): HistogramStat | null => {\n const values = getColumnStatValues(rows, columnId).filter((value): value is number => typeof value === \"number\");\n if (values.length === 0) return null;\n\n const min = Math.min(...values);\n const max = Math.max(...values);\n const binWidth = (max - min) / binCount;\n const bins = Array.from({ length: binCount }, (_, index) => ({\n start: min + binWidth * index,\n end: min + binWidth * (index + 1),\n count: 0,\n }));\n\n for (const value of values) {\n const binIndex = value === max || binWidth === 0 ? binCount - 1 : Math.floor((value - min) / binWidth);\n bins[binIndex]!.count += 1;\n }\n\n return { min, max, bins };\n};\n","import { Box, Flex, Table, Text } from \"@chakra-ui/react\";\nimport type { Header, HeaderGroup } from \"@tanstack/react-table\";\nimport { DataTableStatChart } from \"./data-table-stat-chart\";\nimport { buildHistogramStat, buildTopValuesStat, countUniqueStatValues } from \"./data-table-stats\";\nimport type { DataTableColumnStat, RowData } from \"./types\";\n\nconst formatNumber = new Intl.NumberFormat(undefined, { maximumFractionDigits: 2 }).format;\nconst STAT_CHART_COLOR = \"vis.categorical.1\";\n\ninterface SingleValueStatProps {\n value: string;\n count: number;\n}\n\nconst SingleValueStat = (props: SingleValueStatProps) => {\n const { value, count } = props;\n\n return (\n <Flex data-single-value-stat direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\" minWidth=\"0\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\" maxWidth=\"100%\" truncate>\n {value}\n </Text>\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n {formatNumber(count)} {count === 1 ? \"value\" : \"values\"}\n </Text>\n </Flex>\n );\n};\n\ninterface UniqueStatProps {\n rows: RowData[];\n columnId: string;\n}\n\nconst UniqueStat = (props: UniqueStatProps) => {\n const { rows, columnId } = props;\n const count = countUniqueStatValues(rows, columnId);\n\n return (\n <Flex direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\">\n {formatNumber(count)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n unique values\n </Text>\n </Flex>\n );\n};\n\ninterface HistogramStatProps {\n rows: RowData[];\n columnId: string;\n binCount: number;\n}\n\nconst HistogramStat = (props: HistogramStatProps) => {\n const { rows, columnId, binCount } = props;\n const histogram = buildHistogramStat(rows, columnId, binCount);\n\n if (!histogram) {\n return (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n No numeric values\n </Text>\n );\n }\n\n const valueCount = histogram.bins.reduce((total, bin) => total + bin.count, 0);\n if (histogram.min === histogram.max) {\n return <SingleValueStat value={formatNumber(histogram.min)} count={valueCount} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n <DataTableStatChart\n data={histogram.bins}\n dataKey=\"count\"\n color={STAT_CHART_COLOR}\n height=\"40px\"\n ariaLabel={`Distribution for ${columnId}`}\n tooltipLabel={(bin) => `${formatNumber(bin.start)} – ${formatNumber(bin.end)}`}\n tooltipValue={(value) => `${formatNumber(Number(value))} values`}\n tooltipSeriesLabel=\"Count\"\n />\n <Flex justifyContent=\"space-between\" gap=\"xs\">\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.min)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.max)}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\ninterface TopValuesStatProps {\n rows: RowData[];\n columnId: string;\n limit: number;\n}\n\nconst TopValuesStat = (props: TopValuesStatProps) => {\n const { rows, columnId, limit } = props;\n const groups = buildTopValuesStat(rows, columnId, limit);\n\n if (groups.length === 1 && groups[0]) {\n return <SingleValueStat value={groups[0].label} count={groups[0].count} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n {groups.map((group) => (\n <Box key={group.label} position=\"relative\" height=\"18px\">\n <DataTableStatChart\n data={[group]}\n dataKey=\"percentage\"\n categoryKey=\"label\"\n color={STAT_CHART_COLOR}\n height=\"18px\"\n ariaLabel={`${group.label}: ${group.percentage}%`}\n layout=\"vertical\"\n domain={[0, 100]}\n barSize={18}\n tooltipLabel={(datum) => `${datum.label} · ${formatNumber(datum.count)} values`}\n tooltipValue={(value) => `${formatNumber(Number(value))}%`}\n tooltipSeriesLabel=\"Share\"\n />\n <Flex\n position=\"absolute\"\n inset=\"0\"\n paddingX=\"2xs\"\n justifyContent=\"space-between\"\n gap=\"xs\"\n pointerEvents=\"none\"\n >\n <Text textStyle=\"label/2XS\" color=\"fg.inverted\" truncate>\n {group.label}\n </Text>\n <Text textStyle=\"label/2XS/medium\" color=\"fg.muted\">\n {group.percentage}%\n </Text>\n </Flex>\n </Box>\n ))}\n </Flex>\n );\n};\n\ninterface DataTableStatProps {\n rows: RowData[];\n columnId: string;\n stat: DataTableColumnStat;\n}\n\nconst DataTableStat = (props: DataTableStatProps) => {\n const { rows, columnId, stat } = props;\n\n if (stat.type === \"unique\") return <UniqueStat rows={rows} columnId={columnId} />;\n if (stat.type === \"histogram\") {\n return <HistogramStat rows={rows} columnId={columnId} binCount={stat.bins ?? 10} />;\n }\n return <TopValuesStat rows={rows} columnId={columnId} limit={stat.limit ?? 2} />;\n};\n\ninterface DataTableStatCellProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n}\n\nconst DataTableStatCell = (props: DataTableStatCellProps) => {\n const { header, headerGroup, rows, columnStats, fullWidth } = props;\n const stat = columnStats[header.column.id];\n\n return (\n <Table.ColumnHeader\n data-column-id={header.column.id}\n data-stat-type={stat?.type}\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n padding=\"xs\"\n verticalAlign=\"middle\"\n overflow=\"hidden\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n {stat ? <DataTableStat rows={rows} columnId={header.column.id} stat={stat} /> : null}\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableStatsRowProps {\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n noBorder?: boolean;\n}\n\nexport const DataTableStatsRow = (props: DataTableStatsRowProps) => {\n const { headerGroup, rows, columnStats, fullWidth, noBorder } = props;\n const hasVisibleStats = headerGroup.headers.some((header) => columnStats[header.column.id]);\n\n if (!hasVisibleStats) return null;\n\n return (\n <Table.Row\n className=\"data-table-stats-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableStatCell\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n rows={rows}\n columnStats={columnStats}\n fullWidth={fullWidth}\n />\n ))}\n </Table.Row>\n );\n};\n"],"mappings":";;;;;;;AAeA,IAAMiB,UAAqB;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACzBC,IAAmBZ,EAA2B,GAC9Ca,IAAiBZ,EAAY;CAE7B,IAAI,CAACW,KAAD,CAAgBC,GAAQ,OAAS;CAI6B,IAAAC,IAAAD,EAAQE,IAAKF,EAAQG,QAAOC;CAAA,AAAAP,EAAA,OAAAE,EAAAM,KAAAR,EAAA,OAAAG,EAAAE,KAAAL,EAAA,OAAAI,KAA1FG,IAAA,kBAAA,QAAA;EAAU,IAAAL,EAAUM;EAAQ,IAAAN,EAAUM;EAAQ,IAAAL,EAAQE;EAAQ,IAAAD;CAA4B,CAAA,GAAIJ,EAAA,KAAAE,EAAAM,GAAAR,EAAA,KAAAG,EAAAE,GAAAL,EAAA,KAAAI,GAAAJ,EAAA,KAAAO,KAAAA,IAAAP,EAAA;CACpE,IAAAS,IAAAN,EAAQK,IAAKL,EAAQO,OAAMC;CAAA,AAAAX,EAAA,OAAAE,EAAAG,KAAAL,EAAA,OAAAG,EAAAK,KAAAR,EAAA,OAAAS,KAArDE,IAAA,kBAAA,QAAA;EAAU,IAAAR,EAAQK;EAAQ,IAAAC;EAAiC,IAAAP,EAAUG;EAAQ,IAAAH,EAAUG;CAAE,CAAA,GAAIL,EAAA,KAAAE,EAAAG,GAAAL,EAAA,KAAAG,EAAAK,GAAAR,EAAA,KAAAS,GAAAT,EAAA,KAAAW,KAAAA,IAAAX,EAAA;CAAA,IAAAY;CAC3F,OAD2FZ,EAAA,OAAAO,KAAAP,EAAA,OAAAW,KAF/FC,IAAA,kBAAA,KAAA;EAAiB,eAAA;EAAc,QAAA;EAAqD,aAAA;EAApF,UAAA,CACEL,GACAI,CACE;KAAAX,EAAA,KAAAO,GAAAP,EAAA,KAAAW,GAAAX,EAAA,MAAAY,KAAAA,IAAAZ,EAAA,KAHJY;AAGI,GAoBKgB,KAAqBC,MAAA;CAAA,IAAA7B,IAAAC,EAAA,EAAA,GAChC,EAAAa,SAAAC,YAAAC,UAAAV,WAAAW,cAAAC,iBAAAE,iBAAAE,uBAAAC,QAAAnB,GAAAoB,gBAAAC,WAAAC,YAAAC,gBAAApB,MAcIsB,GALFN,IAAAnB,MAAA0B,KAAAA,IAAA,eAAA1B,GAIAuB,IAAApB,MAAAuB,KAAAA,IAAA,IAAAvB,GAAkBE;CAAA,AAAAT,EAAA,OAAAgB,KAAAhB,EAAA,OAAAe,KAEmBN,IAAA,CAAC;EAAAsB,MAAQhB;EAAOC;CAAQ,CAAC,GAAChB,EAAA,KAAAgB,GAAAhB,EAAA,KAAAe,GAAAf,EAAA,KAAAS,KAAAA,IAAAT,EAAA;CAAA,IAAAW;CAAA,AAAAX,EAAA,OAAAc,KAAAd,EAAA,OAAAS,KAA1CE,IAAA;EAAAG;EAAAkB,QAAgBvB;CAA2B,GAACT,EAAA,KAAAc,GAAAd,EAAA,KAAAS,GAAAT,EAAA,KAAAW,KAAAA,IAAAX,EAAA;CAAnE,IAAAiC,IAAcjD,EAAS2B,CAA4C,GAAEC;CAAA,AAAAZ,EAAA,OAAAe,IACFH,IAAAZ,EAAA,MAA/CY,KAAAO,MAAcA,EAAMJ,IAA2Bf,EAAA,KAAAe,GAAAf,EAAA,KAAAY;CAAnE,IAAAsB,IAAoBtB,GAAgDuB;CAAA,AAAAnC,EAAA,OAAAwB,IACkCW,IAAAnC,EAAA,MAA7EmC,IAAAX,KAAAY,MAA4BjB,EAAMK,KAAlCM,KAAAA,GAA6E9B,EAAA,KAAAwB,GAAAxB,EAAA,KAAAmC;CAAtG,IAAAE,IAAyBF,GAMbG,IAAAL,EAAKnB,MAAKyB;CAAA,AAAAvC,EAAA,QAAAwC,OAAAC,IAAA,2BAAA,KAERF,IAAA;EAAAG,KAAO;EAACC,OAAS;EAACC,QAAU;EAACC,MAAQ;CAAE,GAAC7C,EAAA,MAAAuC,KAAAA,IAAAvC,EAAA;CAAA,IAAA8C;CAAA,AAAA9C,EAAA,QAAAyB,KAAAzB,EAAA,QAAAqC,KAAArC,EAAA,QAAAuB,KAG/CuB,IAAAvB,MAAW,aAAX,kBAAAwC,GAAA,EAAA,UAAA,CAEG,kBAACwM,GAAD;EAAY,MAAA;EAAiB9O;EAAQ,MAAA;CAAI,CAAA,GACzC,kBAAC+O,GAAD;EAAY,MAAA;EAAoBnO,SAAAA;EAAkB,MAAA;CAAI,CAAA,CAAG,EAAA,CAAA,IAH5D,MAKOrC,EAAA,MAAAyB,GAAAzB,EAAA,MAAAqC,GAAArC,EAAA,MAAAuB,GAAAvB,EAAA,MAAA8C,KAAAA,IAAA9C,EAAA;CAAA,IAAA+C;CAAA,AAAA/C,EAAA,QAAAiC,KAAAjC,EAAA,QAAAgB,KACyB+B,IAAAd,EAAKjB,MAAOA,CAAK,GAAChB,EAAA,MAAAiC,GAAAjC,EAAA,MAAAgB,GAAAhB,EAAA,MAAA+C,KAAAA,IAAA/C,EAAA;CAAA,IAAAgD;CAAA,AAAAhD,EAAA,QAAA0B,KAAA1B,EAAA,QAAAkC,KAAAlC,EAAA,QAAA+C,KAAnDC,IAAA,kBAAC4N,GAAD;EAAc1O,SAAAA;EAAmB,MAAAa;EAA6BrB;EAA4B,mBAAA;CAAK,CAAA,GAAI1B,EAAA,MAAA0B,GAAA1B,EAAA,MAAAkC,GAAAlC,EAAA,MAAA+C,GAAA/C,EAAA,MAAAgD,KAAAA,IAAAhD,EAAA;CAAA,IAAAiD;CAAA,AAAAjD,EAAA,QAAAwC,OAAAC,IAAA,2BAAA,KAE7EQ,IAAA;EAAAzC,GAAK;EAAIH,GAAK;CAAK,GAACL,EAAA,MAAAiD,KAAAA,IAAAjD,EAAA;CAAA,IAAAkD;CAAA,AAAAlD,EAAA,QAAAkB,IAMnCgC,IAAAlD,EAAA,OAHekD,KAAAC,GAAAC,MAAA;EACd,IAAAC,IAAcD,EAAO,EAAY,EAAAA;EAAkB,OAC5CjC,IAAQD,EAAaC,CAAa,IAAlCgC;CAAmC,GAC3CnD,EAAA,MAAAkB,GAAAlB,EAAA,MAAAkD;CAAA,IAAAI;CAAA,AAAAtD,EAAA,QAAAsB,KAAAtB,EAAA,QAAAoB,KACUkC,KAAAjC,MAAW,CAACD,EAAaC,CAAK,GAAGC,CAAkB,GAACtB,EAAA,MAAAsB,GAAAtB,EAAA,MAAAoB,GAAApB,EAAA,MAAAsD,KAAAA,IAAAtD,EAAA;CAAA,IAAAuD;CAAA,AAAAvD,EAAA,QAAAkD,KAAAlD,EAAA,QAAAsD,KALjEC,IAAA,kBAAAiO,EAAA,SAAA;EACkB,gBAAAtO;EAIL,WAAAI;CAAoD,CAAA,GAC/DtD,EAAA,MAAAkD,GAAAlD,EAAA,MAAAsD,GAAAtD,EAAA,MAAAuD,KAAAA,IAAAvD,EAAA;CAAA,IAAAwD;CAAA,AAAAxD,EAAA,QAAAwC,OAAAC,IAAA,2BAAA,KAEIe,IAAA,kBAAC+K,GAAD,CAAmB,CAAA,GAAGvO,EAAA,MAAAwD,KAAAA,IAAAxD,EAAA;CAAA,IAAAyD;CAAA,AAAAzD,EAAA,QAAAwC,OAAAC,IAAA,2BAAA,KAEhBgB,IAAA,EAAAC,QAAU,KAAK,GAAC1D,EAAA,MAAAyD,KAAAA,IAAAzD,EAAA;CAAA,IAAA2D;CAAA,AAAA3D,EAAA,QAAAuD,IAC9BI,IAAA3D,EAAA,OAdF2D,IAAA,kBAACK,GAAD;EACsB,oBAAAf;EAElB,SAAAM;EAQM,QAAAC;EACW,mBAAA;EACL,cAAAC;CAAgB,CAAA,GAC9BzD,EAAA,MAAAuD,GAAAvD,EAAA,MAAA2D;CAAA,IAAAC;CAAA,AAAA5D,EAAA,QAAA2B,KAAA3B,EAAA,QAAAiC,EAAAnB,QAAAd,EAAA,QAAAuB,KAAAvB,EAAA,QAAAgD,KAAAhD,EAAA,QAAA2D,KAAA3D,EAAA,QAAA8C,KA5BJc,IAAA,kBAACiO,GAAD;EACE,YAAA;EACM,MAAAvP;EACEf;EACA,QAAAgB;EACQZ;EALlB,UAAA;GAOGmB;GAMDE;GACAW;EAdO;KA6BE3D,EAAA,MAAA2B,GAAA3B,EAAA,MAAAiC,EAAAnB,MAAAd,EAAA,MAAAuB,GAAAvB,EAAA,MAAAgD,GAAAhD,EAAA,MAAA2D,GAAA3D,EAAA,MAAA8C,GAAA9C,EAAA,MAAA4D,KAAAA,IAAA5D,EAAA;CAAA,IAAA6D;CACA,OADA7D,EAAA,QAAAiB,KAAAjB,EAAA,QAAAiC,KAAAjC,EAAA,QAAAM,KAAAN,EAAA,QAAA4D,KA9BbC,IAAA,kBAAA2N,EAAA,MAAA;EAAmBvP;EAAe3B;EAAoB,aAAA;EAAc,QAAA;EAAwBW,cAAAA;EAC1F2C,UAAAA;CA8BF,CAAA,GAAa5D,EAAA,MAAAiB,GAAAjB,EAAA,MAAAiC,GAAAjC,EAAA,MAAAM,GAAAN,EAAA,MAAA4D,GAAA5D,EAAA,MAAA6D,KAAAA,IAAA7D,EAAA,KA/Bb6D;AA+Ba,GC5EXiB,KAAgBC,MAAoBd,EAAec,CAAK,IAAIA,EAAMC,YAAYD,GAE9EE,KAAuBC,GAAiBC,MAC5CD,EACGE,KAAKC,MAAQP,EAAaO,EAAIF,EAAS,CAAC,CAAC,CACzCG,QAAQP,MAAUA,KAAU,QAA+BA,MAAU,EAAE,GAE/DS,KAAyBN,GAAiBC,MACrD,IAAIM,IAAIR,EAAoBC,GAAMC,CAAQ,CAAC,CAAC,CAACO,MAElCC,KAAsBT,GAAiBC,GAAkBS,MAAkB;CACtF,IAAMC,IAASZ,EAAoBC,GAAMC,CAAQ,GAC3CW,oBAAS,IAAIC,IAAqB;CAExC,KAAK,IAAMhB,KAASc,GAClBC,EAAOE,IAAIjB,IAAQe,EAAOG,IAAIlB,CAAK,KAAK,KAAK,CAAC;CAGhD,IAAMmB,IAAyB,CAAC,GAAGJ,EAAOK,QAAQ,CAAC,CAAC,CACjDf,KAAK,CAACL,GAAOT,QAAY;EACxBM,OAAOwB,OAAOrB,CAAK;EACnBT;EACAO,YAAYwB,KAAKC,MAAOhC,IAAQuB,EAAOU,SAAU,GAAG;CACtD,EAAE,CAAC,CACFC,MAAMC,GAAMC,MAAUA,EAAMpC,QAAQmC,EAAKnC,SAASmC,EAAK7B,MAAM+B,cAAcD,EAAM9B,KAAK,CAAC,GACpFgC,IAAYV,EAAOW,MAAM,GAAGjB,CAAK,GACjCkB,IAAaZ,EAAOW,MAAMjB,CAAK,CAAC,CAACmB,QAAQC,GAAOC,MAAUD,IAAQC,EAAM3C,OAAO,CAAC;CAItF,OAFIwC,MAAe,IAAUF,IAEtB,CACL,GAAGA,GACH;EACEhC,OAAO;EACPN,OAAOwC;EACPjC,YAAYwB,KAAKC,MAAOQ,IAAajB,EAAOU,SAAU,GAAG;CAC3D,CAAC;AAEL,GAEaW,KAAsBhC,GAAiBC,GAAkBgC,MAA2C;CAC/G,IAAMtB,IAASZ,EAAoBC,GAAMC,CAAQ,CAAC,CAACG,QAAQP,MAA2B,OAAOA,KAAU,QAAQ;CAC/G,IAAIc,EAAOU,WAAW,GAAG,OAAO;CAEhC,IAAM/B,IAAM6B,KAAK7B,IAAI,GAAGqB,CAAM,GACxBpB,IAAM4B,KAAK5B,IAAI,GAAGoB,CAAM,GACxBuB,KAAY3C,IAAMD,KAAO2C,GACzBzC,IAAO2C,MAAMC,KAAK,EAAEf,QAAQY,EAAS,IAAII,GAAGC,OAAW;EAC3DpD,OAAOI,IAAM4C,IAAWI;EACxBnD,KAAKG,IAAM4C,KAAYI,IAAQ;EAC/BlD,OAAO;CACT,EAAE;CAEF,KAAK,IAAMS,KAASc,GAAQ;EAC1B,IAAM4B,IAAW1C,MAAUN,KAAO2C,MAAa,IAAID,IAAW,IAAId,KAAKqB,OAAO3C,IAAQP,KAAO4C,CAAQ;EACrG1C,EAAK+C,EAAS,CAAEnD,SAAS;CAC3B;CAEA,OAAO;EAAEE;EAAKC;EAAKC;CAAK;AAC1B,GC1EM6D,IAAe,IAAIC,KAAKC,aAAaC,KAAAA,GAAW,EAAEC,uBAAuB,EAAE,CAAC,CAAC,CAACC,QAC9EC,IAAmB,qBAOnBI,KAAkBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACtB,EAAAL,UAAAC,aAAyBE,GAAMG;CAAA,AAAAF,EAAA,OAAAJ,IAMpBM,IAAAF,EAAA,MAFPE,IAAA,kBAACyK,GAAD;EAAgB,WAAA;EAA4B,YAAA;EAAa,UAAA;EAAO,UAAA;EAC7D/K,UAAAA;CADE,CAAA,GAEEI,EAAA,KAAAJ,GAAAI,EAAA,KAAAE;CAAA,IAAAC;CAAA,AAAAH,EAAA,OAAAH,IAEeM,IAAAH,EAAA,MAAnBG,IAAAf,EAAaS,CAAK,GAACG,EAAA,KAAAH,GAAAG,EAAA,KAAAG;CAAG,IAAAC,IAAAP,MAAU,IAAV,UAAA,UAAgCQ;CAAA,AAAAL,EAAA,OAAAG,KAAAH,EAAA,OAAAI,KADzDC,IAAA,kBAACsK,GAAD;EAAgB,WAAA;EAAiB,OAAA;EAAjC,UAAA;GACGxK;GAAoB;GAAEC;EADpB;KAEEJ,EAAA,KAAAG,GAAAH,EAAA,KAAAI,GAAAJ,EAAA,KAAAK,KAAAA,IAAAL,EAAA;CAAA,IAAAM;CACF,OADEN,EAAA,OAAAE,KAAAF,EAAA,OAAAK,KANTC,IAAA,kBAACsK,GAAD;EAAM,0BAAA;EAAiC,WAAA;EAAa,KAAA;EAAiB,YAAA;EAAsB,UAAA;EAA3F,UAAA,CACE1K,GAGAG,CAJG;KAOEL,EAAA,KAAAE,GAAAF,EAAA,KAAAK,GAAAL,EAAA,KAAAM,KAAAA,IAAAN,EAAA,IAPPM;AAOO,GASLI,KAAaX,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACjB,EAAAO,SAAAC,gBAA2BV,GAAMY,GAAAC,GAAAV,GAAAC,GAAAC,GAAAC,GAAAC,GAAAO;CAAA,IAAAb,EAAA,OAAAS,KAAAT,EAAA,OAAAQ,GAAA;EACjC,IAAAX,IAAcZ,EAAsBuB,GAAMC,CAAQ;EAKxBT,AAFvBY,IAAAnC,GAAe4B,IAAA,UAAaC,IAAA,OAAiBO,IAAA,cAC3CF,IAAAhC,GAAeuB,IAAA,kBAA4BC,IAAA,KACzCC,IAAAhB,EAAaS,CAAK,GAACG,EAAA,KAAAS,GAAAT,EAAA,KAAAQ,GAAAR,EAAA,KAAAW,GAAAX,EAAA,KAAAY,GAAAZ,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAI,GAAAJ,EAAA,KAAAK,GAAAL,EAAA,KAAAM,GAAAN,EAAA,KAAAa;CAAA,OAAAA,AAAAF,IAAAX,EAAA,IAAAY,IAAAZ,EAAA,IAAAE,IAAAF,EAAA,IAAAG,IAAAH,EAAA,IAAAI,IAAAJ,EAAA,IAAAK,IAAAL,EAAA,IAAAM,IAAAN,EAAA,IAAAa,IAAAb,EAAA;CAAA,IAAAc;CAAA,AAAAd,EAAA,QAAAW,KAAAX,EAAA,QAAAE,KAAAF,EAAA,QAAAG,KAAAH,EAAA,QAAAI,KADtBU,IAAA,kBAACgK,GAAD;EAAgB,WAAA5K;EAA4B,YAAAC;EACzCC,UAAAA;CADE,CAAA,GAEEJ,EAAA,MAAAW,GAAAX,EAAA,MAAAE,GAAAF,EAAA,MAAAG,GAAAH,EAAA,MAAAI,GAAAJ,EAAA,MAAAc,KAAAA,IAAAd,EAAA;CAAA,IAAAe;CAAA,AAAAf,EAAA,QAAAgB,OAAAC,IAAA,2BAAA,KACPF,IAAA,kBAAC4J,GAAD;EAAgB,WAAA;EAAyB,OAAA;EAAW,UAAA;CAA/C,CAAA,GAEE3K,EAAA,MAAAe,KAAAA,IAAAf,EAAA;CAAA,IAAAkB;CACF,OADElB,EAAA,QAAAY,KAAAZ,EAAA,QAAAK,KAAAL,EAAA,QAAAM,KAAAN,EAAA,QAAAa,KAAAb,EAAA,QAAAc,KANTI,IAAA,kBAAC6J,GAAD;EAAgB,WAAA1K;EAAa,KAAAC;EAAiB,YAAAO;EAA9C,UAAA,CACEC,GAGAC,CAJG;KAOEf,EAAA,MAAAY,GAAAZ,EAAA,MAAAK,GAAAL,EAAA,MAAAM,GAAAN,EAAA,MAAAa,GAAAb,EAAA,MAAAc,GAAAd,EAAA,MAAAkB,KAAAA,IAAAlB,EAAA,KAPPkB;AAOO,GAULG,KAAgBtB,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACpB,EAAAO,SAAAC,aAAAW,gBAAqCrB,GAAMY,GAAAC,GAAAU,GAAApB,GAAAC,GAAAoB,GAAAnB,GAAAC,GAAAC,GAAAO,GAAAC,GAAAC,GAAAG,GAAAM;CAAA,IAAAxB,EAAA,OAAAoB,KAAApB,EAAA,OAAAS,KAAAT,EAAA,OAAAQ,GAAA;EAKvCe,IAAAP,OAEOC,IAFP,6BAEM;EAACQ,KAAA;GANX,IAAAC,IAAkB3C,EAAmByB,GAAMC,GAAUW,CAAQ;GAE7D,IAAI,CAACM,GAAS;IAAA,IAAAC;IAEVJ,AAFUvB,EAAA,QAAAgB,OAAAC,IAAA,2BAAA,KAEVU,IAAA,kBAACgJ,GAAD;KAAgB,WAAA;KAAyB,OAAA;KAAW,UAAA;IAA/C,CAAA,GAEE3K,EAAA,MAAA2B,KAAAA,IAAA3B,EAAA,KAFPuB,IAAAI;IAAA,MAAAF;GAEO;GAIX,IAAAG,IAAmBF,EAASG,KAAKC,OAAQC,GAAmC,CAAC;GAC7E,IAAIL,EAASM,QAASN,EAASO,KAAI;IAC1BV,IAAA,kBAACmJ,GAAD;KAAwB,OAAAtL,EAAasC,EAASM,GAAI;KAAUJ,OAAAA;IAAU,CAAA;IAAtE,MAAAH;GAA0E;GAoB1ErB,AAhBNkB,IAAA7C,GAAeqC,IAAA,UAAeC,IAAA,QAAWG,IAAA,OACxCM,IAAA,kBAACwE,GAAD;IACQ,MAAAtE,EAASG;IACP,SAAA;IACDnC,OAAAA;IACA,QAAA;IACI,WAAA,oBAAoBe;IACjB,cAAAyB;IACA,cAAAC;IACK,oBAAA;GAAO,CAAA,GAE3BvB,IAAAnC,GAAoB4B,IAAA,iBAAoBC,IAAA,MACvCO,IAAA,kBAAC8J,GAAD;IAAgB,WAAA;IAAyB,OAAA;IACtCvL,UAAAA,EAAasC,EAASM,GAAI;GADxB,CAAA,GAGJrB,IAAAhC,GAAeuB,IAAA,oBAAyBC,IAAA,YACtCC,IAAAhB,EAAasC,EAASO,GAAI;EAAC;EAAAjC,AAAAA,EAAA,KAAAoB,GAAApB,EAAA,KAAAS,GAAAT,EAAA,KAAAQ,GAAAR,EAAA,KAAAW,GAAAX,EAAA,KAAAY,GAAAZ,EAAA,KAAAsB,GAAAtB,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAuB,GAAAvB,EAAA,KAAAI,GAAAJ,EAAA,MAAAK,GAAAL,EAAA,MAAAM,GAAAN,EAAA,MAAAa,GAAAb,EAAA,MAAAc,GAAAd,EAAA,MAAAe,GAAAf,EAAA,MAAAkB,GAAAlB,EAAA,MAAAwB;CAAA,OAAAA,AAAAb,IAAAX,EAAA,IAAAY,IAAAZ,EAAA,IAAAsB,IAAAtB,EAAA,IAAAE,IAAAF,EAAA,IAAAG,IAAAH,EAAA,IAAAuB,IAAAvB,EAAA,IAAAI,IAAAJ,EAAA,IAAAK,IAAAL,EAAA,KAAAM,IAAAN,EAAA,KAAAa,IAAAb,EAAA,KAAAc,IAAAd,EAAA,KAAAe,IAAAf,EAAA,KAAAkB,IAAAlB,EAAA,KAAAwB,IAAAxB,EAAA;CAAA,IAAAuB,MAAAP,OAAAC,IAAA,6BAAA,GAAA,OAAAM;CAAA,IAAAI;CAAA,AAAA3B,EAAA,QAAAW,KAAAX,EAAA,QAAAE,KAAAF,EAAA,QAAAG,KAAAH,EAAA,QAAAI,KAD9BuB,IAAA,kBAACmJ,GAAD;EAAgB,WAAA5K;EAAyB,OAAAC;EACtCC,UAAAA;CADE,CAAA,GAEEJ,EAAA,MAAAW,GAAAX,EAAA,MAAAE,GAAAF,EAAA,MAAAG,GAAAH,EAAA,MAAAI,GAAAJ,EAAA,MAAA2B,KAAAA,IAAA3B,EAAA;CAAA,IAAAoC;CAAA,AAAApC,EAAA,QAAAY,KAAAZ,EAAA,QAAA2B,KAAA3B,EAAA,QAAAK,KAAAL,EAAA,QAAAM,KAAAN,EAAA,QAAAa,KANTuB,IAAA,kBAAC2I,GAAD;EAAqB,gBAAA1K;EAAoB,KAAAC;EAAzC,UAAA,CACEO,GAGAc,CAJG;KAOE3B,EAAA,MAAAY,GAAAZ,EAAA,MAAA2B,GAAA3B,EAAA,MAAAK,GAAAL,EAAA,MAAAM,GAAAN,EAAA,MAAAa,GAAAb,EAAA,MAAAoC,KAAAA,IAAApC,EAAA;CAAA,IAAAqC;CACF,OADErC,EAAA,QAAAsB,KAAAtB,EAAA,QAAAoC,KAAApC,EAAA,QAAAc,KAAAd,EAAA,QAAAe,KAAAf,EAAA,QAAAkB,KAAAlB,EAAA,QAAAwB,KAlBTa,IAAA,kBAAC4I,GAAD;EAAgB,WAAAnK;EAAe,OAAAC;EAAW,KAAAG;EAA1C,UAAA,CACEM,GAUAY,CAXG;KAmBEpC,EAAA,MAAAsB,GAAAtB,EAAA,MAAAoC,GAAApC,EAAA,MAAAc,GAAAd,EAAA,MAAAe,GAAAf,EAAA,MAAAkB,GAAAlB,EAAA,MAAAwB,GAAAxB,EAAA,MAAAqC,KAAAA,IAAArC,EAAA,KAnBPqC;AAmBO,GAULG,KAAgBzC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACpB,EAAAO,SAAAC,aAAA8B,aAAkCxC,GAAMY,GAAAT,GAAAC,GAAAC,GAAAC,GAAAC;CAAA,IAAAN,EAAA,OAAAS,KAAAT,EAAA,OAAAuC,KAAAvC,EAAA,OAAAQ,GAAA;EAI/BF,IAAAU,OAAmEC,IAAnE,6BAAkE;EAACQ,KAAA;GAH5E,IAAAgB,IAAezD,EAAmBwB,GAAMC,GAAU8B,CAAK;GAEvD,IAAIE,EAAMC,WAAY,KAAKD,EAAM,IAAG;IAC3BnC,IAAA,kBAACoK,GAAD;KAAwB,OAAAjI,EAAM,EAAG,CAAAE;KAAe,OAAAF,EAAM,EAAG,CAAA5C;IAAM,CAAA;IAA/D,MAAA4B;GAAmE;GAKvEpB,AADFM,IAAAlC,GAAeyB,IAAA,UAAeC,IAAA,QAAWC,IAAA,OACvCC,IAAAoC,EAAMG,IAAKC,CAgCX;EAAC;EAAA7C,AAAAA,EAAA,KAAAS,GAAAT,EAAA,KAAAuC,GAAAvC,EAAA,KAAAQ,GAAAR,EAAA,KAAAW,GAAAX,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAI,GAAAJ,EAAA,KAAAK,GAAAL,EAAA,KAAAM;CAAA,OAAAA,AAAAK,IAAAX,EAAA,IAAAE,IAAAF,EAAA,IAAAG,IAAAH,EAAA,IAAAI,IAAAJ,EAAA,IAAAK,IAAAL,EAAA,IAAAM,IAAAN,EAAA;CAAA,IAAAM,MAAAU,OAAAC,IAAA,6BAAA,GAAA,OAAAX;CAAA,IAAAO;CACG,OADHb,EAAA,OAAAW,KAAAX,EAAA,QAAAE,KAAAF,EAAA,QAAAG,KAAAH,EAAA,QAAAI,KAAAJ,EAAA,QAAAK,KAjCJQ,IAAA,kBAACiK,GAAD;EAAgB,WAAA5K;EAAe,OAAAC;EAAW,KAAAC;EACvCC,UAAAA;CADE,CAAA,GAkCEL,EAAA,KAAAW,GAAAX,EAAA,MAAAE,GAAAF,EAAA,MAAAG,GAAAH,EAAA,MAAAI,GAAAJ,EAAA,MAAAK,GAAAL,EAAA,MAAAa,KAAAA,IAAAb,EAAA,KAlCPa;AAkCO,GAULmC,KAAgBjD,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACpB,EAAAO,SAAAC,aAAAsC,YAAiChD;CAEjC,IAAIgD,EAAIE,SAAU,UAAQ;EAAA,IAAA/C;EAAuD,OAAvDF,EAAA,OAAAS,KAAAT,EAAA,OAAAQ,KAASN,IAAA,kBAAC2K,GAAD;GAAkBrK;GAAgBC;EAAQ,CAAA,GAAIT,EAAA,KAAAS,GAAAT,EAAA,KAAAQ,GAAAR,EAAA,KAAAE,KAAAA,IAAAF,EAAA,IAA9CE;CAA8C;CACjF,IAAI6C,EAAIE,SAAU,aAAW;EACqC,IAAA/C,IAAA6C,EAAIlB,QAAJ,IAAe1B;EAAI,OAAJH,EAAA,OAAAS,KAAAT,EAAA,OAAAQ,KAAAR,EAAA,OAAAE,KAAxEC,IAAA,kBAAC6K,GAAD;GAAqBxK;GAAgBC;GAAoB,UAAAP;EAAe,CAAA,GAAIF,EAAA,KAAAS,GAAAT,EAAA,KAAAQ,GAAAR,EAAA,KAAAE,GAAAF,EAAA,KAAAG,KAAAA,IAAAH,EAAA,IAA5EG;CAA4E;CAExB,IAAAD,IAAA6C,EAAIR,SAAJ,GAAepC;CAAI,OAAJH,EAAA,OAAAS,KAAAT,EAAA,OAAAQ,KAAAR,EAAA,OAAAE,KAArEC,IAAA,kBAACoL,GAAD;EAAqB/K;EAAgBC;EAAiB,OAAAP;CAAe,CAAA,GAAIF,EAAA,KAAAS,GAAAT,EAAA,KAAAQ,GAAAR,EAAA,KAAAE,GAAAF,EAAA,MAAAG,KAAAA,IAAAH,EAAA,KAAzEG;AAAyE,GAW5EsD,KAAoB1D,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACxB,EAAAkD,WAAAC,gBAAA5C,SAAA6C,gBAAAG,iBAA8DzD,GAC9DgD,IAAaM,EAAYF,EAAMO,OAAOC,KAKlBzD,IAAA6C,GAAIE,MAAM9C;CAAA,AAAAH,EAAA,OAAAgB,OAAAC,IAAA,2BAAA,KAEnBd,IAAA,EAAAyD,aAAe,OAAO,GAAC5D,EAAA,KAAAG,KAAAA,IAAAH,EAAA;CAO1B,IAAAI,IAAAoD,KAAaJ,EAAWS,QAAQC,QAASX,CAAM,MAAMC,EAAWS,QAAQnB,SAAU,IAAlFnD,KAAAA,IAAA,qBAEyB4D,EAAMQ,GAAG,gBAAetD;CAAA,AAAAL,EAAA,OAAAI,IACpDC,IAAAL,EAAA,MALMK,IAAA,EAAA0D,OAEH3D,EAGJ,GAACJ,EAAA,KAAAI,GAAAJ,EAAA,KAAAK;CAAA,IAAAC;CAAA,AAAAN,EAAA,OAAAmD,EAAAO,OAAAC,MAAA3D,EAAA,OAAAQ,KAAAR,EAAA,OAAA+C,KAEAzC,IAAAyC,IAAO,kBAAC0I,GAAD;EAAqBjL;EAAgB,UAAA2C,EAAMO,OAAOC;EAAWZ;CAAI,CAAA,IAAxE,MAAmF/C,EAAA,KAAAmD,EAAAO,OAAAC,IAAA3D,EAAA,KAAAQ,GAAAR,EAAA,KAAA+C,GAAA/C,EAAA,KAAAM,KAAAA,IAAAN,EAAA;CAAA,IAAAa;CACjE,OADiEb,EAAA,OAAAmD,EAAAO,OAAAC,MAAA3D,EAAA,OAAAE,KAAAF,EAAA,OAAAK,KAAAL,EAAA,QAAAM,KAhBtFO,IAAA,kBAAAmL,EAAA,cAAA;EACkB,kBAAA7I,EAAMO,OAAOC;EACb,kBAAAzD;EACJ,aAAA;EACL,OAAAC;EACK,aAAA;EACJ,SAAA;EACM,eAAA;EACL,UAAA;EACF,OAAAE;EAONC,UAAAA;CACH,CAAA,GAAqBN,EAAA,KAAAmD,EAAAO,OAAAC,IAAA3D,EAAA,KAAAE,GAAAF,EAAA,KAAAK,GAAAL,EAAA,MAAAM,GAAAN,EAAA,MAAAa,KAAAA,IAAAb,EAAA,KAjBrBa;AAiBqB,GAYZqD,KAAoBnE,MAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAC/B,EAAAmD,gBAAA5C,SAAA6C,gBAAAG,cAAAS,gBAAgElE;CAGhE,IAAI,CAFoBqD,EAAWS,QAAQO,MAAMjB,MAAYE,EAAYF,EAAMO,OAAOC,GAEjFQ,GAAe,OAAS;CAKZ,IAAAjE,IAAA+D,IAAA,SAAA,aAA+B9D;CAAA,AAAAH,EAAA,OAAAqD,KAAArD,EAAA,OAAAwD,KAAAxD,EAAA,OAAAoD,KAAApD,EAAA,OAAAQ,KAG3CL,IAAAiD,EAAWS,QAAQjB,KAAKyB,MACvB,kBAACsH,GAAD;EAEUxI,QAAAA;EACKC;EACP5C;EACO6C;EACFG;CAAS,GALfL,EAAMQ,EAKS,CAEvB,GAAC3D,EAAA,KAAAqD,GAAArD,EAAA,KAAAwD,GAAAxD,EAAA,KAAAoD,GAAApD,EAAA,KAAAQ,GAAAR,EAAA,KAAAG,KAAAA,IAAAH,EAAA;CAAA,IAAAI;CACQ,OADRJ,EAAA,OAAAE,KAAAF,EAAA,OAAAG,KAdJC,IAAA,kBAAA4L,EAAA,KAAA;EACY,WAAA;EACG,aAAA9L;EACD,aAAA;EAEXC,UAAAA;CAUH,CAAA,GAAYH,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAI,KAAAA,IAAAJ,EAAA,IAfZI;AAeY;AA9KM,SAAA2B,EAAAuC,GAAAC,GAAA;CAAA,OAYqCD,IAAQC,EAAG1E;AAAM;AAZtD,SAAAqC,EAAAsC,GAAA;CAAA,OAyBS,GAAGpF,EAAamF,EAAGE,KAAM,EAAC,KAAMrF,EAAamF,EAAGG,GAAI;AAAG;AAzBhE,SAAAvC,EAAAvC,GAAA;CAAA,OA0BW,GAAGR,EAAauF,OAAO/E,CAAK,CAAC,EAAC;AAAS;AAqBlD,SAAAgF,EAAAC,GAAA;CAAA,OAsBe,GAAGA,EAAKlC,MAAM,KAAMvD,EAAayF,EAAKhF,KAAM,EAAC;AAAS;AAtBrE,SAAAiF,EAAAlF,GAAA;CAAA,OAuBe,GAAGR,EAAauF,OAAO/E,CAAK,CAAC,EAAC;AAAG;AAvBhD,SAAAiD,EAAAkC,GAAA;CAAA,OAWd,kBAACyH,GAAD;EAAgC,UAAA;EAAkB,QAAA;EAAlD,UAAA,CACE,kBAACxG,GAAD;GACQ,MAAA,CAACjB,CAAK;GACJ,SAAA;GACI,aAAA;GACLrF,OAAAA;GACA,QAAA;GACI,WAAA,GAAGqF,EAAKpC,MAAM,IAAKoC,EAAKC,WAAW;GACvC,QAAA;GACC,QAAA,CAAC,GAAG,GAAG;GACN,SAAA;GACK,cAAAJ;GACA,cAAAE;GACK,oBAAA;EAAO,CAAA,GAE5B,kBAAC8F,GAAD;GACW,UAAA;GACH,OAAA;GACG,UAAA;GACM,gBAAA;GACX,KAAA;GACU,eAAA;GANhB,UAAA,CAQE,kBAACD,GAAD;IAAgB,WAAA;IAAkB,OAAA;IAAc,UAAA;IAC7C5F,UAAAA,EAAKpC;GADH,CAAA,GAGL,kBAACgI,GAAD;IAAgB,WAAA;IAAyB,OAAA;IAAzC,UAAA,CACG5F,EAAKC,YAAY,GADf;GAXF,CAAA,CAAA;EAfH,CAAA,CAAA;CAAMD,GAAAA,EAAKpC,KAAX;AA8BE"}
1
+ {"version":3,"file":"data-table-stats-row-C8CtvdDt.js","names":["Chart","UseChartProps","useChart","ReactNode","Bar","BarChart","Tooltip","RechartsTooltip","useActiveTooltipCoordinate","usePlotArea","XAxis","YAxis","ChartSeries","NonNullable","T","StringKeyOf","Extract","StatChartCrosshair","$","_c","coordinate","plotArea","t0","y","height","t1","x","t2","width","t3","t4","DataTableStatChartProps","data","dataKey","color","ariaLabel","tooltipLabel","datum","tooltipValue","value","tooltipSeriesLabel","layout","categoryKey","domain","barSize","barCategoryGap","DataTableStatChart","props","undefined","name","series","chart","getBarValue","t5","datum_0","getCategoryValue","t6","t7","Symbol","for","top","right","bottom","left","t8","t9","t10","t11","t12","label","payload","datum_1","t13","t14","t15","t16","zIndex","t17","t18","t19","_c","_Fragment","RechartsTooltip","isDisplayValue","RowData","HistogramBin","start","end","count","HistogramStat","min","max","bins","TopValueStat","label","percentage","getStatValue","value","sortValue","getColumnStatValues","rows","columnId","map","row","filter","undefined","countUniqueStatValues","Set","size","buildTopValuesStat","limit","values","counts","Map","set","get","groups","entries","String","Math","round","length","sort","left","right","localeCompare","topGroups","slice","otherCount","reduce","total","group","buildHistogramStat","binCount","binWidth","Array","from","_","index","binIndex","floor","Box","Flex","Table","Text","Header","HeaderGroup","DataTableStatChart","buildHistogramStat","buildTopValuesStat","countUniqueStatValues","DataTableColumnStat","RowData","formatNumber","Intl","NumberFormat","undefined","maximumFractionDigits","format","STAT_CHART_COLOR","SingleValueStatProps","value","count","SingleValueStat","props","$","_c","t0","t1","t2","t3","t4","UniqueStatProps","rows","columnId","UniqueStat","T0","T1","t5","t6","t7","Symbol","for","t8","HistogramStatProps","binCount","HistogramStat","T2","t10","t9","bb0","histogram","t11","valueCount","bins","reduce","_temp","min","max","_temp2","_temp3","t12","t13","TopValuesStatProps","limit","TopValuesStat","groups","length","label","map","_temp6","DataTableStatProps","stat","DataTableStat","type","DataTableStatCellProps","header","headerGroup","columnStats","Partial","Record","fullWidth","DataTableStatCell","column","id","borderRight","headers","indexOf","width","DataTableStatsRowProps","noBorder","DataTableStatsRow","hasVisibleStats","some","header_0","total","bin","bin_0","start","end","Number","_temp4","datum","_temp5","group","percentage","_c","isDisplayValue","Tooltip$1","StatChartCrosshair","$","c","coordinate","useActiveTooltipCoordinate","plotArea","usePlotArea","t0","t1","t2","t3","t4","DataTableStatChart","props","layout","barCategoryGap","color","dataKey","data","chart","useChart","datum","getBarValue","t5","categoryKey","datum_0","getCategoryValue","t6","t7","t8","domain","Fragment","XAxis","YAxis","t9","t10","barSize","Bar","t11","t12","tooltipLabel","datum_1","payload","label","t13","tooltipSeriesLabel","tooltipValue","value","t14","Chart","t15","t16","t17","t18","BarChart","t19","ariaLabel","height","getStatValue","getColumnStatValues","rows","row","columnId","countUniqueStatValues","buildTopValuesStat","values","counts","groups","count","right","left","topGroups","limit","otherCount","total","group","buildHistogramStat","min","max","binWidth","binCount","bins","index","binIndex","formatNumber","STAT_CHART_COLOR","SingleValueStat","Text","Flex","UniqueStat","T0","T1","HistogramStat","T2","histogram","valueCount","_temp","_temp2","_temp3","TopValuesStat","_temp6","DataTableStat","stat","DataTableStatCell","columnStats","header","fullWidth","headerGroup","Table","DataTableStatsRow","noBorder","header_0","bin","bin_0","_temp4","_temp5","Box"],"sources":["../src/components/data-table/data-table-stat-chart.tsx","../src/components/data-table/data-table-stats.ts","../src/components/data-table/data-table-stats-row.tsx"],"sourcesContent":["import { Chart, type UseChartProps, useChart } from \"@chakra-ui/charts\";\nimport type { ReactNode } from \"react\";\nimport {\n Bar,\n BarChart,\n Tooltip as RechartsTooltip,\n useActiveTooltipCoordinate,\n usePlotArea,\n XAxis,\n YAxis,\n} from \"recharts\";\n\ntype ChartSeries<T> = NonNullable<UseChartProps<T>[\"series\"]>[number];\ntype StringKeyOf<T> = Extract<keyof T, string>;\n\nconst StatChartCrosshair = () => {\n const coordinate = useActiveTooltipCoordinate();\n const plotArea = usePlotArea();\n\n if (!coordinate || !plotArea) return null;\n\n return (\n <g pointerEvents=\"none\" stroke=\"var(--chakra-colors-border-emphasized)\" strokeWidth=\"1\">\n <line x1={coordinate.x} x2={coordinate.x} y1={plotArea.y} y2={plotArea.y + plotArea.height} />\n <line x1={plotArea.x} x2={plotArea.x + plotArea.width} y1={coordinate.y} y2={coordinate.y} />\n </g>\n );\n};\n\ninterface DataTableStatChartProps<T extends object> {\n data: T[];\n dataKey: StringKeyOf<T>;\n color: ChartSeries<T>[\"color\"];\n height: string;\n ariaLabel: string;\n tooltipLabel: (datum: T) => ReactNode;\n tooltipValue: (value: string | number) => ReactNode;\n tooltipSeriesLabel: string;\n layout?: \"horizontal\" | \"vertical\";\n categoryKey?: StringKeyOf<T>;\n domain?: [number, number];\n barSize?: number;\n barCategoryGap?: number;\n}\n\nexport const DataTableStatChart = <T extends object>(props: DataTableStatChartProps<T>) => {\n const {\n data,\n dataKey,\n color,\n height,\n ariaLabel,\n tooltipLabel,\n tooltipValue,\n tooltipSeriesLabel,\n layout = \"horizontal\",\n categoryKey,\n domain,\n barSize,\n barCategoryGap = 1,\n } = props;\n const chart = useChart({ data, series: [{ name: dataKey, color }] });\n const getBarValue = (datum: T) => datum[dataKey] as string | number;\n const getCategoryValue = categoryKey ? (datum: T) => datum[categoryKey] as string | number : undefined;\n\n return (\n <Chart.Root chart={chart} height={height} aspectRatio=\"auto\" cursor=\"crosshair\" aria-label={ariaLabel}>\n <BarChart\n responsive\n data={chart.data}\n layout={layout}\n margin={{ top: 2, right: 0, bottom: 0, left: 0 }}\n barCategoryGap={barCategoryGap}\n >\n {layout === \"vertical\" ? (\n <>\n <XAxis type=\"number\" domain={domain} hide />\n <YAxis type=\"category\" dataKey={getCategoryValue} hide />\n </>\n ) : null}\n <Bar dataKey={getBarValue} fill={chart.color(color)} barSize={barSize} isAnimationActive={false} />\n <RechartsTooltip\n allowEscapeViewBox={{ x: true, y: true }}\n content={\n <Chart.Tooltip\n labelFormatter={(label, payload) => {\n const datum = payload[0]?.payload as T | undefined;\n return datum ? tooltipLabel(datum) : label;\n }}\n formatter={(value) => [tooltipValue(value), tooltipSeriesLabel]}\n />\n }\n cursor={<StatChartCrosshair />}\n isAnimationActive={false}\n wrapperStyle={{ zIndex: 1800 }}\n />\n </BarChart>\n </Chart.Root>\n );\n};\n","import { isDisplayValue } from \"./helpers\";\nimport type { RowData } from \"./types\";\n\nexport interface HistogramBin {\n start: number;\n end: number;\n count: number;\n}\n\nexport interface HistogramStat {\n min: number;\n max: number;\n bins: HistogramBin[];\n}\n\nexport interface TopValueStat {\n label: string;\n count: number;\n percentage: number;\n}\n\nconst getStatValue = (value: unknown) => (isDisplayValue(value) ? value.sortValue : value);\n\nconst getColumnStatValues = (rows: RowData[], columnId: string) =>\n rows\n .map((row) => getStatValue(row[columnId]))\n .filter((value) => value !== null && value !== undefined && value !== \"\");\n\nexport const countUniqueStatValues = (rows: RowData[], columnId: string) =>\n new Set(getColumnStatValues(rows, columnId)).size;\n\nexport const buildTopValuesStat = (rows: RowData[], columnId: string, limit: number) => {\n const values = getColumnStatValues(rows, columnId);\n const counts = new Map<unknown, number>();\n\n for (const value of values) {\n counts.set(value, (counts.get(value) ?? 0) + 1);\n }\n\n const groups: TopValueStat[] = [...counts.entries()]\n .map(([value, count]) => ({\n label: String(value),\n count,\n percentage: Math.round((count / values.length) * 100),\n }))\n .sort((left, right) => right.count - left.count || left.label.localeCompare(right.label));\n const topGroups = groups.slice(0, limit);\n const otherCount = groups.slice(limit).reduce((total, group) => total + group.count, 0);\n\n if (otherCount === 0) return topGroups;\n\n return [\n ...topGroups,\n {\n label: \"Other\",\n count: otherCount,\n percentage: Math.round((otherCount / values.length) * 100),\n },\n ];\n};\n\nexport const buildHistogramStat = (rows: RowData[], columnId: string, binCount: number): HistogramStat | null => {\n const values = getColumnStatValues(rows, columnId).filter((value): value is number => typeof value === \"number\");\n if (values.length === 0) return null;\n\n const min = Math.min(...values);\n const max = Math.max(...values);\n const binWidth = (max - min) / binCount;\n const bins = Array.from({ length: binCount }, (_, index) => ({\n start: min + binWidth * index,\n end: min + binWidth * (index + 1),\n count: 0,\n }));\n\n for (const value of values) {\n const binIndex = value === max || binWidth === 0 ? binCount - 1 : Math.floor((value - min) / binWidth);\n bins[binIndex]!.count += 1;\n }\n\n return { min, max, bins };\n};\n","import { Box, Flex, Table, Text } from \"@chakra-ui/react\";\nimport type { Header, HeaderGroup } from \"@tanstack/react-table\";\nimport { DataTableStatChart } from \"./data-table-stat-chart\";\nimport { buildHistogramStat, buildTopValuesStat, countUniqueStatValues } from \"./data-table-stats\";\nimport type { DataTableColumnStat, RowData } from \"./types\";\n\nconst formatNumber = new Intl.NumberFormat(undefined, { maximumFractionDigits: 2 }).format;\nconst STAT_CHART_COLOR = \"vis.categorical.1\";\n\ninterface SingleValueStatProps {\n value: string;\n count: number;\n}\n\nconst SingleValueStat = (props: SingleValueStatProps) => {\n const { value, count } = props;\n\n return (\n <Flex data-single-value-stat direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\" minWidth=\"0\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\" maxWidth=\"100%\" truncate>\n {value}\n </Text>\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n {formatNumber(count)} {count === 1 ? \"value\" : \"values\"}\n </Text>\n </Flex>\n );\n};\n\ninterface UniqueStatProps {\n rows: RowData[];\n columnId: string;\n}\n\nconst UniqueStat = (props: UniqueStatProps) => {\n const { rows, columnId } = props;\n const count = countUniqueStatValues(rows, columnId);\n\n return (\n <Flex direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\">\n {formatNumber(count)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n unique values\n </Text>\n </Flex>\n );\n};\n\ninterface HistogramStatProps {\n rows: RowData[];\n columnId: string;\n binCount: number;\n}\n\nconst HistogramStat = (props: HistogramStatProps) => {\n const { rows, columnId, binCount } = props;\n const histogram = buildHistogramStat(rows, columnId, binCount);\n\n if (!histogram) {\n return (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n No numeric values\n </Text>\n );\n }\n\n const valueCount = histogram.bins.reduce((total, bin) => total + bin.count, 0);\n if (histogram.min === histogram.max) {\n return <SingleValueStat value={formatNumber(histogram.min)} count={valueCount} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n <DataTableStatChart\n data={histogram.bins}\n dataKey=\"count\"\n color={STAT_CHART_COLOR}\n height=\"40px\"\n ariaLabel={`Distribution for ${columnId}`}\n tooltipLabel={(bin) => `${formatNumber(bin.start)} – ${formatNumber(bin.end)}`}\n tooltipValue={(value) => `${formatNumber(Number(value))} values`}\n tooltipSeriesLabel=\"Count\"\n />\n <Flex justifyContent=\"space-between\" gap=\"xs\">\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.min)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.max)}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\ninterface TopValuesStatProps {\n rows: RowData[];\n columnId: string;\n limit: number;\n}\n\nconst TopValuesStat = (props: TopValuesStatProps) => {\n const { rows, columnId, limit } = props;\n const groups = buildTopValuesStat(rows, columnId, limit);\n\n if (groups.length === 1 && groups[0]) {\n return <SingleValueStat value={groups[0].label} count={groups[0].count} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n {groups.map((group) => (\n <Box key={group.label} position=\"relative\" height=\"18px\">\n <DataTableStatChart\n data={[group]}\n dataKey=\"percentage\"\n categoryKey=\"label\"\n color={STAT_CHART_COLOR}\n height=\"18px\"\n ariaLabel={`${group.label}: ${group.percentage}%`}\n layout=\"vertical\"\n domain={[0, 100]}\n barSize={18}\n tooltipLabel={(datum) => `${datum.label} · ${formatNumber(datum.count)} values`}\n tooltipValue={(value) => `${formatNumber(Number(value))}%`}\n tooltipSeriesLabel=\"Share\"\n />\n <Flex\n position=\"absolute\"\n inset=\"0\"\n paddingX=\"2xs\"\n justifyContent=\"space-between\"\n gap=\"xs\"\n pointerEvents=\"none\"\n >\n <Text textStyle=\"label/2XS\" color=\"fg.inverted\" truncate>\n {group.label}\n </Text>\n <Text textStyle=\"label/2XS/medium\" color=\"fg.muted\">\n {group.percentage}%\n </Text>\n </Flex>\n </Box>\n ))}\n </Flex>\n );\n};\n\ninterface DataTableStatProps {\n rows: RowData[];\n columnId: string;\n stat: DataTableColumnStat;\n}\n\nconst DataTableStat = (props: DataTableStatProps) => {\n const { rows, columnId, stat } = props;\n\n if (stat.type === \"unique\") return <UniqueStat rows={rows} columnId={columnId} />;\n if (stat.type === \"histogram\") {\n return <HistogramStat rows={rows} columnId={columnId} binCount={stat.bins ?? 10} />;\n }\n return <TopValuesStat rows={rows} columnId={columnId} limit={stat.limit ?? 2} />;\n};\n\ninterface DataTableStatCellProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n}\n\nconst DataTableStatCell = (props: DataTableStatCellProps) => {\n const { header, headerGroup, rows, columnStats, fullWidth } = props;\n const stat = columnStats[header.column.id];\n\n return (\n <Table.ColumnHeader\n data-column-id={header.column.id}\n data-stat-type={stat?.type}\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n padding=\"xs\"\n verticalAlign=\"middle\"\n overflow=\"hidden\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n {stat ? <DataTableStat rows={rows} columnId={header.column.id} stat={stat} /> : null}\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableStatsRowProps {\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n noBorder?: boolean;\n}\n\nexport const DataTableStatsRow = (props: DataTableStatsRowProps) => {\n const { headerGroup, rows, columnStats, fullWidth, noBorder } = props;\n const hasVisibleStats = headerGroup.headers.some((header) => columnStats[header.column.id]);\n\n if (!hasVisibleStats) return null;\n\n return (\n <Table.Row\n className=\"data-table-stats-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableStatCell\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n rows={rows}\n columnStats={columnStats}\n fullWidth={fullWidth}\n />\n ))}\n </Table.Row>\n );\n};\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { A as CollectionSavedView, M as CollectionViewsSource, a as CollectionViewStoreState } from "./collection-view-fields-CajuwtKF.js";
2
- import "./index-DgwJmKVC.js";
3
- import "./index-DNurZJZ3.js";
2
+ import "./index-DjZsR4Ey.js";
4
3
  import { ReactElement, ReactNode } from "react";
5
4
  import { DataTableRendererSettings, ViewFilterGroup, ViewSort } from "@pstdio/sdk/extensions";
6
5
  //#region src/components/data-table/types.d.ts
@@ -1,11 +1,11 @@
1
1
  import { n as e, t } from "./scroll-area-crJfiiuF.js";
2
2
  import { a as n, o as r, t as i, u as a } from "./list-row-CmFG_jCC.js";
3
3
  import { n as o } from "./prism-CnkSh-ZG.js";
4
- import { f as s, m as c } from "./collection-view-search-CW7B2YP1.js";
5
- import { C as l, S as u, T as d, _ as f, a as p, b as m, c as h, d as g, f as _, h as v, i as y, l as b, m as x, n as S, o as C, p as w, r as T, s as E, t as D, u as O, v as k, w as A, x as j, y as M } from "./edit-mode-data-table-oEYutEBB.js";
6
- import { a as N } from "./collection-view-grouping-DmjlnPQj.js";
4
+ import { b as s, h as c } from "./collection-view-search-D_7Qvz7p.js";
5
+ import { C as l, S as u, T as d, _ as f, a as p, b as m, c as h, d as g, f as _, h as v, i as y, l as b, m as x, n as S, o as C, p as w, r as T, s as E, t as D, u as O, v as k, w as A, x as j, y as M } from "./edit-mode-data-table-BclZ-pWe.js";
6
+ import { a as N } from "./collection-view-grouping-DnuJ1U4R.js";
7
7
  import { t as P } from "./diff-bubble-DewUd_2w.js";
8
- import { i as F, n as I, t as L } from "./display-sort-control-CmFg-wcP.js";
8
+ import { i as F, n as I, t as L } from "./display-sort-control-n3L5WvkJ.js";
9
9
  import { Badge as R, Box as z, Button as B, Flex as ee, HStack as V, Icon as H, IconButton as te, Image as ne, Menu as U, Popover as W, Portal as re, Skeleton as G, Stack as ie, Table as K, Text as q, chakra as J } from "@chakra-ui/react";
10
10
  import { c as Y } from "react/compiler-runtime";
11
11
  import { jsx as X, jsxs as Z } from "react/jsx-runtime";
@@ -672,7 +672,7 @@ var Tt = (e) => {
672
672
  }, Dt = (e) => {
673
673
  let t = Y(33), { column: r, checked: i, onColumnVisibilityChange: a } = e, o;
674
674
  t[0] === r.id ? o = t[1] : (o = { id: r.id }, t[0] = r.id, t[1] = o);
675
- let { attributes: c, listeners: l, setNodeRef: u, transform: d, transition: f, isDragging: p } = Ae(o), m;
675
+ let { attributes: s, listeners: l, setNodeRef: u, transform: d, transition: f, isDragging: p } = Ae(o), m;
676
676
  t[2] === d ? m = t[3] : (m = Me.Transform.toString(d), t[2] = d, t[3] = m);
677
677
  let h = p ? .5 : 1, g;
678
678
  t[4] !== m || t[5] !== h || t[6] !== f ? (g = {
@@ -685,15 +685,15 @@ var Tt = (e) => {
685
685
  let v;
686
686
  t[9] === Symbol.for("react.memo_cache_sentinel") ? (v = /* @__PURE__ */ X(be, { size: 14 }), t[9] = v) : v = t[9];
687
687
  let y;
688
- t[10] !== c || t[11] !== l ? (y = /* @__PURE__ */ X(z, {
688
+ t[10] !== s || t[11] !== l ? (y = /* @__PURE__ */ X(z, {
689
689
  as: "span",
690
690
  display: "inline-flex",
691
691
  cursor: "grab",
692
692
  color: "fg.muted",
693
- ...c,
693
+ ...s,
694
694
  ...l,
695
695
  children: v
696
- }), t[10] = c, t[11] = l, t[12] = y) : y = t[12];
696
+ }), t[10] = s, t[11] = l, t[12] = y) : y = t[12];
697
697
  let b;
698
698
  t[13] === Symbol.for("react.memo_cache_sentinel") ? (b = /* @__PURE__ */ X(H, {
699
699
  as: me,
@@ -720,7 +720,7 @@ var Tt = (e) => {
720
720
  children: S
721
721
  }), t[19] = i, t[20] = x, t[21] = S, t[22] = C) : C = t[22];
722
722
  let w;
723
- t[23] === r ? w = t[24] : (w = s(r), t[23] = r, t[24] = w);
723
+ t[23] === r ? w = t[24] : (w = c(r), t[23] = r, t[24] = w);
724
724
  let T;
725
725
  t[25] === w ? T = t[26] : (T = /* @__PURE__ */ X(H, {
726
726
  as: w,
@@ -1187,7 +1187,7 @@ var Mt = (e) => {
1187
1187
  background: x,
1188
1188
  children: S
1189
1189
  }, u), t[10] = n.id, t[11] = d, t[12] = b, t[13] = x, t[14] = S, t[15] = f, t[16] = p, t[17] = m, t[18] = h, t[19] = g, t[20] = _, t[21] = v, t[22] = C) : C = t[22], C;
1190
- }, zt = se(() => import("./data-table-stats-row-B2MYAoHu.js").then((e) => ({ default: e.DataTableStatsRow }))), Bt = (e) => {
1190
+ }, zt = se(() => import("./data-table-stats-row-C8CtvdDt.js").then((e) => ({ default: e.DataTableStatsRow }))), Bt = (e) => {
1191
1191
  let t = {};
1192
1192
  for (let n of e.getFlatHeaders()) t[`--header-${n.id}-size`] = n.getSize(), t[`--col-${n.column.id}-size`] = n.column.getSize();
1193
1193
  return t;
@@ -1318,7 +1318,7 @@ var Ut = (e, t, n, r) => {
1318
1318
  page: i
1319
1319
  };
1320
1320
  }, Gt = (e) => {
1321
- let { noBorder: t, fullWidth: n, onRowClick: r, isRowInteractive: i, activeRowId: a, columnIcons: o, columnDescriptions: s, compactHeaders: l, columnStats: u, columnRenderers: f, initialPageSize: m, pageSizeOptions: g = [
1321
+ let { noBorder: t, fullWidth: n, onRowClick: r, isRowInteractive: i, activeRowId: a, columnIcons: o, columnDescriptions: c, compactHeaders: l, columnStats: u, columnRenderers: f, initialPageSize: m, pageSizeOptions: g = [
1322
1322
  10,
1323
1323
  20,
1324
1324
  30,
@@ -1337,7 +1337,7 @@ var Ut = (e, t, n, r) => {
1337
1337
  index: e
1338
1338
  }), [B, V] = ue(() => h({ initialPageSize: m })), [H, te] = ue(() => /* @__PURE__ */ new Set()), [ne, U] = ue({}), W = O(e), re = b(e), { groups: G } = w, ie = G ? G.flatMap((e) => e.rows) : w.shownRows, K = G ? Ut(G, H, R, B) : Wt(ie, R, B), q = ie.map((e) => e.sourceRow), J = new Map(ie.map((e) => [e.sourceRow, e.id])), Y = wt(q, w.visibleColumnKeys, {
1339
1339
  columnIcons: o,
1340
- columnDescriptions: s,
1340
+ columnDescriptions: c,
1341
1341
  compactHeaders: l,
1342
1342
  enableSelection: W,
1343
1343
  rowActions: v,
@@ -1374,7 +1374,7 @@ var Ut = (e, t, n, r) => {
1374
1374
  direction: t
1375
1375
  }]),
1376
1376
  onFilterBy: (e) => {
1377
- let t = c(w.attributes, e);
1377
+ let t = s(w.attributes, e);
1378
1378
  t && M(t);
1379
1379
  },
1380
1380
  onHide: (e) => D({ hiddenColumns: _(T.hiddenColumns, e, !1) })
@@ -1423,7 +1423,7 @@ var Ut = (e, t, n, r) => {
1423
1423
  onRowClick: r,
1424
1424
  isRowInteractive: i,
1425
1425
  activeRowId: a,
1426
- columnDescriptions: s,
1426
+ columnDescriptions: c,
1427
1427
  columnStats: u,
1428
1428
  enableRowActivation: x,
1429
1429
  getCellContextMenuActions: C