@embeddable.com/remarkable-pro 0.1.7 → 0.1.8

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 (120) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +5 -5
  2. package/dist/BarChartDefaultPro.js +5 -5
  3. package/dist/BarChartGroupedHorizontalPro.js +5 -5
  4. package/dist/BarChartGroupedPro.js +5 -5
  5. package/dist/BarChartStackedHorizontalPro.js +5 -5
  6. package/dist/BarChartStackedPro.js +5 -5
  7. package/dist/ChartCard-BmBTN11g.js +117 -0
  8. package/dist/{ChartCard-lY9ll4LQ.js.map → ChartCard-BmBTN11g.js.map} +1 -1
  9. package/dist/{Color.type.emb-DyMeb06O.js → Color.type.emb-tRPNtuPs.js} +12868 -12752
  10. package/dist/Color.type.emb-tRPNtuPs.js.map +1 -0
  11. package/dist/ColorEditor.js +1 -1
  12. package/dist/ComparisonPeriodSelectFieldPro.js +3 -3
  13. package/dist/DateRangePickerCustomPro.js +4 -4
  14. package/dist/DateRangeSelectFieldPro.js +3 -3
  15. package/dist/{DimensionAndMeasureSingleSelectField-CauMjY7c.js → DimensionAndMeasureSingleSelectField-Bap43crU.js} +3 -3
  16. package/dist/{DimensionAndMeasureSingleSelectField-CauMjY7c.js.map → DimensionAndMeasureSingleSelectField-Bap43crU.js.map} +1 -1
  17. package/dist/DimensionSingleSelectFieldPro.js +5 -5
  18. package/dist/DonutChartPro.js +4 -4
  19. package/dist/DonutLabelChartPro.js +4 -4
  20. package/dist/{EditorCard-BT_swxOl.js → EditorCard-BEOWlY3S.js} +3 -3
  21. package/dist/{EditorCard-BT_swxOl.js.map → EditorCard-BEOWlY3S.js.map} +1 -1
  22. package/dist/{GranularitySelectField-BxO_3Xt9.js → GranularitySelectField-D0AUovNu.js} +3 -3
  23. package/dist/{GranularitySelectField-BxO_3Xt9.js.map → GranularitySelectField-D0AUovNu.js.map} +1 -1
  24. package/dist/GranularitySelectFieldPro.js +4 -4
  25. package/dist/HeatMapPro.js +4 -4
  26. package/dist/{IconCalendarFilled-CnWTSJdY.js → IconCalendarFilled-Dlxre0eW.js} +2 -2
  27. package/dist/{IconCalendarFilled-CnWTSJdY.js.map → IconCalendarFilled-Dlxre0eW.js.map} +1 -1
  28. package/dist/KpiChartNumberComparisonPro.js +4 -4
  29. package/dist/KpiChartNumberPro.js +4 -4
  30. package/dist/LineChartComparisonDefaultPro.js +5 -5
  31. package/dist/LineChartDefaultPro.js +5 -5
  32. package/dist/LineChartGroupedPro.js +5 -5
  33. package/dist/MeasureSingleSelectFieldPro.js +5 -5
  34. package/dist/MultiSelectFieldPro.js +4 -4
  35. package/dist/PieChartPro.js +4 -4
  36. package/dist/PivotTablePro.js +77 -43
  37. package/dist/PivotTablePro.js.map +1 -1
  38. package/dist/SingleSelectFieldPro.js +4 -4
  39. package/dist/TableChartPaginated.js +4 -4
  40. package/dist/TableScrollable.js +5 -5
  41. package/dist/{bars.utils-D67ef4lU.js → bars.utils-C6w2ekZW.js} +4 -4
  42. package/dist/{bars.utils-D67ef4lU.js.map → bars.utils-C6w2ekZW.js.map} +1 -1
  43. package/dist/{charts.utils-B3C8A2Nv.js → charts.utils-5taHDsqH.js} +1155 -1103
  44. package/dist/charts.utils-5taHDsqH.js.map +1 -0
  45. package/dist/{component.inputs.constants-DIuvtpIr.js → component.inputs.constants-DIZMtQw0.js} +2 -2
  46. package/dist/{component.inputs.constants-DIuvtpIr.js.map → component.inputs.constants-DIZMtQw0.js.map} +1 -1
  47. package/dist/components/charts/tables/PivotTablePro/index.d.ts +4 -0
  48. package/dist/components/charts/tables/PivotTablePro/index.d.ts.map +1 -1
  49. package/dist/components/charts/tables/tables.hooks.d.ts +2 -2
  50. package/dist/components/charts/tables/tables.hooks.d.ts.map +1 -1
  51. package/dist/embeddable-components.json +30 -30
  52. package/dist/embeddable-theme-0137e.js +485 -433
  53. package/dist/{formatter.utils-7mfdOwJE.js → formatter.utils-BuiHCNHH.js} +2 -2
  54. package/dist/{formatter.utils-7mfdOwJE.js.map → formatter.utils-BuiHCNHH.js.map} +1 -1
  55. package/dist/{granularity.utils-DOE6WosF.js → granularity.utils-DAAi-602.js} +5 -5
  56. package/dist/{granularity.utils-DOE6WosF.js.map → granularity.utils-DAAi-602.js.map} +1 -1
  57. package/dist/{index-BurrZuJv.js → index-B3L4DXwu.js} +6 -6
  58. package/dist/{index-BurrZuJv.js.map → index-B3L4DXwu.js.map} +1 -1
  59. package/dist/{index-DY_fdpVZ.js → index-B5__yodm.js} +5 -5
  60. package/dist/{index-DY_fdpVZ.js.map → index-B5__yodm.js.map} +1 -1
  61. package/dist/{index-Ddl-xnlO.js → index-B8IHON3t.js} +5 -5
  62. package/dist/{index-Ddl-xnlO.js.map → index-B8IHON3t.js.map} +1 -1
  63. package/dist/{index-xEBUfTFG.js → index-BDpQF_cG.js} +5 -5
  64. package/dist/{index-xEBUfTFG.js.map → index-BDpQF_cG.js.map} +1 -1
  65. package/dist/{index-CWbF9C-q.js → index-BKikv8mC.js} +6 -6
  66. package/dist/{index-CWbF9C-q.js.map → index-BKikv8mC.js.map} +1 -1
  67. package/dist/index-BL76s-yZ.js +127 -0
  68. package/dist/index-BL76s-yZ.js.map +1 -0
  69. package/dist/{index-DE1v51rj.js → index-BRywHn8j.js} +4 -4
  70. package/dist/{index-DE1v51rj.js.map → index-BRywHn8j.js.map} +1 -1
  71. package/dist/{index-CjHAwVRf.js → index-BSXcd7SN.js} +5 -5
  72. package/dist/{index-CjHAwVRf.js.map → index-BSXcd7SN.js.map} +1 -1
  73. package/dist/{index-DUbT-KRk.js → index-C3QKhnf_.js} +6 -6
  74. package/dist/{index-DUbT-KRk.js.map → index-C3QKhnf_.js.map} +1 -1
  75. package/dist/{index-Dqg161tJ.js → index-C4C09WJe.js} +6 -6
  76. package/dist/{index-Dqg161tJ.js.map → index-C4C09WJe.js.map} +1 -1
  77. package/dist/{index-CUSduRHI.js → index-CGmgAyAB.js} +5 -5
  78. package/dist/{index-CUSduRHI.js.map → index-CGmgAyAB.js.map} +1 -1
  79. package/dist/{index-Cqijl93L.js → index-CfscOxbu.js} +6 -6
  80. package/dist/{index-Cqijl93L.js.map → index-CfscOxbu.js.map} +1 -1
  81. package/dist/{index-GErBkwin.js → index-CvQFVQLU.js} +5 -5
  82. package/dist/{index-GErBkwin.js.map → index-CvQFVQLU.js.map} +1 -1
  83. package/dist/{index-LXoveu2D.js → index-D4nH7Tfx.js} +5 -5
  84. package/dist/{index-LXoveu2D.js.map → index-D4nH7Tfx.js.map} +1 -1
  85. package/dist/{index-CF3L0Llr.js → index-DJeAhPf-.js} +6 -6
  86. package/dist/{index-CF3L0Llr.js.map → index-DJeAhPf-.js.map} +1 -1
  87. package/dist/{index-lRdvXdHc.js → index-DQDBupb0.js} +7 -7
  88. package/dist/{index-lRdvXdHc.js.map → index-DQDBupb0.js.map} +1 -1
  89. package/dist/{index-RClH7rnf.js → index-De7NmChy.js} +6 -6
  90. package/dist/{index-RClH7rnf.js.map → index-De7NmChy.js.map} +1 -1
  91. package/dist/{index-CFrNEzVs.js → index-DhA_rNUY.js} +6 -6
  92. package/dist/{index-CFrNEzVs.js.map → index-DhA_rNUY.js.map} +1 -1
  93. package/dist/{index-D6MGD_eg.js → index-GK0v6bfO.js} +6 -6
  94. package/dist/{index-D6MGD_eg.js.map → index-GK0v6bfO.js.map} +1 -1
  95. package/dist/{index-CMQ1TgyS.js → index-SfB11gF_.js} +6 -6
  96. package/dist/{index-CMQ1TgyS.js.map → index-SfB11gF_.js.map} +1 -1
  97. package/dist/{index-C-nvYCGs.js → index-miobE3AH.js} +6 -6
  98. package/dist/{index-C-nvYCGs.js.map → index-miobE3AH.js.map} +1 -1
  99. package/dist/index.js +30 -30
  100. package/dist/{pies.utils-JJQ8gWX5.js → pies.utils-FfqwwwDi.js} +5 -5
  101. package/dist/{pies.utils-JJQ8gWX5.js.map → pies.utils-FfqwwwDi.js.map} +1 -1
  102. package/dist/{preview.data.constants-BsS2fJxn.js → preview.data.constants-DDnGcvzL.js} +2 -2
  103. package/dist/{preview.data.constants-BsS2fJxn.js.map → preview.data.constants-DDnGcvzL.js.map} +1 -1
  104. package/dist/remarkable-pro.css +1 -1
  105. package/dist/tables.hooks-DFEu8kZn.js +46 -0
  106. package/dist/tables.hooks-DFEu8kZn.js.map +1 -0
  107. package/dist/{tables.utils-Tmh4h7ni.js → tables.utils-CBn15nfE.js} +4 -4
  108. package/dist/{tables.utils-Tmh4h7ni.js.map → tables.utils-CBn15nfE.js.map} +1 -1
  109. package/dist/{timeRange.utils-BkBVvgvj.js → timeRange.utils-B4CCk0Na.js} +2 -2
  110. package/dist/{timeRange.utils-BkBVvgvj.js.map → timeRange.utils-B4CCk0Na.js.map} +1 -1
  111. package/dist/utils/array.utils.d.ts +2 -0
  112. package/dist/utils/array.utils.d.ts.map +1 -0
  113. package/package.json +2 -2
  114. package/dist/ChartCard-lY9ll4LQ.js +0 -117
  115. package/dist/Color.type.emb-DyMeb06O.js.map +0 -1
  116. package/dist/charts.utils-B3C8A2Nv.js.map +0 -1
  117. package/dist/index-QipF64Oq.js +0 -99
  118. package/dist/index-QipF64Oq.js.map +0 -1
  119. package/dist/tables.hooks-BQdyUxau.js +0 -45
  120. package/dist/tables.hooks-BQdyUxau.js.map +0 -1
@@ -1,99 +0,0 @@
1
- import { j as u, p as j } from "./Color.type.emb-DyMeb06O.js";
2
- import { useTheme as x } from "@embeddable.com/react";
3
- import { a as O, r as S, i as G } from "./component.inputs.constants-DIuvtpIr.js";
4
- import { C as _ } from "./ChartCard-lY9ll4LQ.js";
5
- import { useRef as B } from "react";
6
- import { u as c } from "./charts.fillGaps.hooks-C7KsWcZb.js";
7
- import { g as f } from "./formatter.utils-7mfdOwJE.js";
8
- import { u as k } from "./tables.hooks-BQdyUxau.js";
9
- const N = (e, t) => {
10
- const o = f(t);
11
- return e.measures.map((s) => {
12
- var a, n;
13
- return {
14
- key: s.name,
15
- label: o.dimensionOrMeasureTitle(s),
16
- showAsPercentage: !!((a = s.inputs) != null && a.showAsPercentage),
17
- percentageDecimalPlaces: ((n = s.inputs) == null ? void 0 : n.decimalPlaces) ?? 1,
18
- accessor: (r) => r[s.name] == null ? e.displayNullAs : o.data(s, r[s.name])
19
- };
20
- });
21
- }, d = (e, t) => {
22
- const o = f(t);
23
- return {
24
- key: e.dimension.name,
25
- label: o.dimensionOrMeasureTitle(e.dimension),
26
- formatValue: (s) => o.data(e.dimension, s)
27
- };
28
- }, W = (e) => e.filter((t) => {
29
- var o;
30
- return (o = t.inputs) == null ? void 0 : o.showColumnTotal;
31
- }).map((t) => t.name), z = (e) => e.filter((t) => {
32
- var o;
33
- return (o = t.inputs) == null ? void 0 : o.showRowTotal;
34
- }).map((t) => t.name), E = (e) => {
35
- var m;
36
- const t = x();
37
- O(t);
38
- const { title: o, description: s, tooltip: a } = S(e), {
39
- measures: n,
40
- rowDimension: r,
41
- columnDimension: i,
42
- displayNullAs: p,
43
- columnWidth: T,
44
- firstColumnWidth: v,
45
- hideMenu: h
46
- } = e, w = Array.from(
47
- new Set((e.results.data ?? []).filter(Boolean).map((l) => l[i.name]))
48
- ), P = Array.from(
49
- new Set((e.results.data ?? []).filter(Boolean).map((l) => l[r.name]))
50
- ), g = c({
51
- results: e.results,
52
- dimension: i
53
- }), F = c({
54
- results: g,
55
- dimension: r
56
- }), C = k({
57
- results: F,
58
- columnOrder: w,
59
- rowOrder: P,
60
- columnDimension: i,
61
- rowDimension: r,
62
- measures: n
63
- }), b = B(null), D = N({ measures: n, displayNullAs: p }, t), R = d({ dimension: r }, t), y = d({ dimension: i }, t), M = W(n), A = z(n);
64
- return /* @__PURE__ */ u.jsx(
65
- _,
66
- {
67
- ref: b,
68
- title: o,
69
- description: s,
70
- tooltip: a,
71
- data: e.results,
72
- dimensionsAndMeasures: [r, i, ...n],
73
- errorMessage: (m = e.results) == null ? void 0 : m.error,
74
- hideMenu: h,
75
- children: /* @__PURE__ */ u.jsx(
76
- j,
77
- {
78
- firstColumnWidth: v,
79
- columnWidth: T,
80
- totalLabel: G.t("charts.pivotTable.total"),
81
- data: C,
82
- measures: D,
83
- rowDimension: R,
84
- columnDimension: y,
85
- columnTotalsFor: M,
86
- rowTotalsFor: A
87
- }
88
- )
89
- }
90
- );
91
- }, U = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
92
- __proto__: null,
93
- default: E
94
- }, Symbol.toStringTag, { value: "Module" }));
95
- export {
96
- E as P,
97
- U as i
98
- };
99
- //# sourceMappingURL=index-QipF64Oq.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-QipF64Oq.js","sources":["../src/components/charts/tables/PivotTablePro/PivotPro.utils.ts","../src/components/charts/tables/PivotTablePro/index.tsx"],"sourcesContent":["import { Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { PivotTableProps } from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const getPivotMeasures = (\n props: { measures: Measure[]; displayNullAs?: string },\n theme: Theme,\n): PivotTableProps<any>['measures'] => {\n const themeFormatter = getThemeFormatter(theme);\n\n return props.measures.map((measure) => {\n return {\n key: measure.name,\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n showAsPercentage: Boolean(measure.inputs?.showAsPercentage),\n percentageDecimalPlaces: measure.inputs?.decimalPlaces ?? 1,\n accessor: (row) => {\n const value = row[measure.name];\n\n return value == null\n ? props.displayNullAs\n : themeFormatter.data(measure, row[measure.name]);\n },\n };\n });\n};\n\nexport const getPivotDimension = (\n props: { dimension: Dimension },\n theme: Theme,\n): PivotTableProps<any>['rowDimension' | 'columnDimension'] => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n key: props.dimension.name,\n label: themeFormatter.dimensionOrMeasureTitle(props.dimension),\n formatValue: (value: string) => themeFormatter.data(props.dimension, value),\n };\n};\n\nexport const getPivotColumnTotalsFor = (\n measures: Measure[],\n): PivotTableProps<any>['columnTotalsFor'] | undefined => {\n return measures.filter((m) => m.inputs?.showColumnTotal).map((m) => m.name);\n};\n\nexport const getPivotRowTotalsFor = (\n measures: Measure[],\n): PivotTableProps<any>['rowTotalsFor'] | undefined => {\n return measures.filter((m) => m.inputs?.showRowTotal).map((m) => m.name);\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { PivotTable } from '@embeddable.com/remarkable-ui';\nimport { useRef } from 'react';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport {\n getPivotColumnTotalsFor,\n getPivotDimension,\n getPivotMeasures,\n getPivotRowTotalsFor,\n} from './PivotPro.utils';\nimport { useGetTableSortedResults } from '../tables.hooks';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\ntype PivotTableProProps = {\n results: DataResponse;\n measures: Measure[];\n rowDimension: Dimension;\n columnDimension: Dimension;\n displayNullAs?: string;\n columnWidth?: number;\n firstColumnWidth?: number;\n} & ChartCardHeaderProps;\n\nconst PivotTablePro = (props: PivotTableProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip } = resolveI18nProps(props);\n const {\n measures,\n rowDimension,\n columnDimension,\n displayNullAs,\n columnWidth,\n firstColumnWidth,\n hideMenu,\n } = props;\n\n const columnOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[columnDimension.name])),\n );\n\n const rowOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[rowDimension.name])),\n );\n\n // Fill gaps for the column dimension\n const resultsColumnDimensionFillGaps = useFillGaps({\n results: props.results,\n dimension: columnDimension,\n });\n\n // Fill gaps for the row dimension\n const resultsRowColumnDimensionFillGaps = useFillGaps({\n results: resultsColumnDimensionFillGaps,\n dimension: rowDimension,\n });\n\n const results = useGetTableSortedResults({\n results: resultsRowColumnDimensionFillGaps,\n columnOrder,\n rowOrder,\n columnDimension,\n rowDimension,\n measures,\n });\n\n const cardContentRef = useRef<HTMLDivElement>(null);\n\n const pivotMeasures = getPivotMeasures({ measures, displayNullAs }, theme);\n const pivotRowDimension = getPivotDimension({ dimension: rowDimension }, theme);\n const pivotColumnDimension = getPivotDimension({ dimension: columnDimension }, theme);\n const pivotColumnTotalsFor = getPivotColumnTotalsFor(measures);\n const pivotRowTotalsFor = getPivotRowTotalsFor(measures);\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n description={description}\n tooltip={tooltip}\n data={props.results}\n dimensionsAndMeasures={[rowDimension, columnDimension, ...measures]}\n errorMessage={props.results?.error}\n hideMenu={hideMenu}\n >\n <PivotTable\n firstColumnWidth={firstColumnWidth}\n columnWidth={columnWidth}\n totalLabel={i18n.t('charts.pivotTable.total')}\n data={results}\n measures={pivotMeasures}\n rowDimension={pivotRowDimension}\n columnDimension={pivotColumnDimension}\n columnTotalsFor={pivotColumnTotalsFor}\n rowTotalsFor={pivotRowTotalsFor}\n />\n </ChartCard>\n );\n};\n\nexport default PivotTablePro;\n"],"names":["getPivotMeasures","props","theme","themeFormatter","getThemeFormatter","measure","_a","_b","row","getPivotDimension","value","getPivotColumnTotalsFor","measures","m","getPivotRowTotalsFor","PivotTablePro","useTheme","i18nSetup","title","description","tooltip","resolveI18nProps","rowDimension","columnDimension","displayNullAs","columnWidth","firstColumnWidth","hideMenu","columnOrder","d","rowOrder","resultsColumnDimensionFillGaps","useFillGaps","resultsRowColumnDimensionFillGaps","results","useGetTableSortedResults","cardContentRef","useRef","pivotMeasures","pivotRowDimension","pivotColumnDimension","pivotColumnTotalsFor","pivotRowTotalsFor","jsx","ChartCard","PivotTable","i18n"],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- import { useMemo as O } from "react";
2
- function b(e) {
3
- let t = 0, n = 0;
4
- for (let u = 0; u < e.length - 1; u++) {
5
- const s = e[u], r = e[u + 1];
6
- s == null || r == null || (s < r ? t++ : s > r && n++);
7
- }
8
- return t > n ? "asc" : n > t ? "desc" : "equal";
9
- }
10
- function d(e) {
11
- let t = 0, n = 0;
12
- for (let u = 0; u < e.length - 1; u++) {
13
- const s = e[u], r = e[u + 1];
14
- s == null || r == null || (s < r ? t++ : s > r && n++);
15
- }
16
- return t > 0 && n > 0;
17
- }
18
- const T = (e) => (t, n) => e === "asc" ? t < n ? -1 : t > n ? 1 : 0 : e === "desc" ? t > n ? -1 : t < n ? 1 : 0 : 0, w = (e) => {
19
- const t = e.results.data ?? [], n = t[0];
20
- if (!n) return [];
21
- const u = () => e.measures.reduce((r, o) => (r[o.name] = void 0, r), {}), s = (r, o, i) => {
22
- if (!d(r))
23
- return t;
24
- const a = b(r), f = [...r].sort(T(a)).map((l) => {
25
- const c = t.find(
26
- (m) => m[o.name] === l && m[i.name] === n[i.name]
27
- );
28
- return c || {
29
- ...n,
30
- [o.name]: l,
31
- ...u()
32
- };
33
- }), g = t.filter(
34
- (l) => !f.some(
35
- (c) => c[o.name] === l[o.name] && c[i.name] === l[i.name]
36
- )
37
- );
38
- return [...f, ...g];
39
- };
40
- return d(e.columnOrder) ? s(e.columnOrder, e.columnDimension, e.rowDimension) : d(e.rowOrder) ? s(e.rowOrder, e.rowDimension, e.columnDimension) : t;
41
- }, R = (e) => O(() => w(e), [e]);
42
- export {
43
- R as u
44
- };
45
- //# sourceMappingURL=tables.hooks-BQdyUxau.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tables.hooks-BQdyUxau.js","sources":["../src/components/charts/tables/tables.hooks.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { useMemo } from 'react';\n\ntype Order = 'asc' | 'desc' | 'equal';\n\nfunction getTablePredominantOrder(arr: (string | number | boolean)[]): Order {\n let asc = 0;\n let desc = 0;\n\n for (let i = 0; i < arr.length - 1; i++) {\n const a = arr[i];\n const b = arr[i + 1];\n\n if (a == null || b == null) continue;\n\n if (a < b) asc++;\n else if (a > b) desc++;\n }\n\n if (asc > desc) return 'asc';\n if (desc > asc) return 'desc';\n return 'equal';\n}\n\nfunction isTableOrderMixed(arr: (string | number | boolean)[]): boolean {\n let asc = 0;\n let desc = 0;\n\n for (let i = 0; i < arr.length - 1; i++) {\n const a = arr[i];\n const b = arr[i + 1];\n\n if (a == null || b == null) continue;\n\n if (a < b) asc++;\n else if (a > b) desc++;\n }\n\n return asc > 0 && desc > 0;\n}\n\nconst getTableSortComparator = (order: Order) => {\n return <T>(a: T, b: T) => {\n if (order === 'asc') {\n return a < b ? -1 : a > b ? 1 : 0;\n }\n if (order === 'desc') {\n return a > b ? -1 : a < b ? 1 : 0;\n }\n return 0;\n };\n};\n\ntype useGetTableSortedResultsProps = {\n results: DataResponse;\n columnOrder: (string | number | boolean)[];\n rowOrder: (string | number | boolean)[];\n columnDimension: Dimension;\n rowDimension: Dimension;\n measures: Measure[];\n};\n\nexport const getTableSortedResults = (props: useGetTableSortedResultsProps) => {\n const data = props.results.data ?? [];\n const firstRow = data[0];\n\n if (!firstRow) return [];\n\n const buildEmptyMeasures = () =>\n props.measures.reduce<Record<string, unknown>>((acc, measure) => {\n acc[measure.name] = undefined;\n return acc;\n }, {});\n\n const reorderByAxis = (\n axisOrder: (string | number | boolean)[],\n axisDimension: Dimension,\n fixedDimension: Dimension,\n ) => {\n if (!isTableOrderMixed(axisOrder)) {\n return data;\n }\n\n const order = getTablePredominantOrder(axisOrder);\n const sortedAxisOrder = [...axisOrder].sort(getTableSortComparator(order));\n\n // “Leader” rows: one per value in the axis order, at the fixed dimension’s first value\n const leaderRows = sortedAxisOrder.map((value) => {\n const existing = data.find(\n (x) =>\n x[axisDimension.name] === value &&\n x[fixedDimension.name] === firstRow[fixedDimension.name],\n );\n\n if (existing) return existing;\n\n return {\n ...firstRow,\n [axisDimension.name]: value,\n ...buildEmptyMeasures(),\n };\n });\n\n // Remove rows that are already covered by leaderRows (same [axis, fixed] tuple)\n const restResults = data.filter(\n (resultRow) =>\n !leaderRows.some(\n (leaderRow) =>\n leaderRow[axisDimension.name] === resultRow[axisDimension.name] &&\n leaderRow[fixedDimension.name] === resultRow[fixedDimension.name],\n ),\n );\n\n return [...leaderRows, ...restResults];\n };\n\n // Preserve original behavior: fix columns if mixed, otherwise rows if mixed\n if (isTableOrderMixed(props.columnOrder)) {\n return reorderByAxis(props.columnOrder, props.columnDimension, props.rowDimension);\n }\n\n if (isTableOrderMixed(props.rowOrder)) {\n return reorderByAxis(props.rowOrder, props.rowDimension, props.columnDimension);\n }\n\n return data;\n};\n\nexport const useGetTableSortedResults = (props: useGetTableSortedResultsProps) => {\n const results = useMemo(() => {\n return getTableSortedResults(props);\n }, [props]);\n return results;\n};\n"],"names":["getTablePredominantOrder","arr","asc","desc","i","a","b","isTableOrderMixed","getTableSortComparator","order","getTableSortedResults","props","data","firstRow","buildEmptyMeasures","acc","measure","reorderByAxis","axisOrder","axisDimension","fixedDimension","leaderRows","value","existing","x","restResults","resultRow","leaderRow","useGetTableSortedResults","useMemo"],"mappings":";AAKA,SAASA,EAAyBC,GAA2C;AAC3E,MAAIC,IAAM,GACNC,IAAO;AAEX,WAASC,IAAI,GAAGA,IAAIH,EAAI,SAAS,GAAGG,KAAK;AACvC,UAAMC,IAAIJ,EAAIG,CAAC,GACTE,IAAIL,EAAIG,IAAI,CAAC;AAEnB,IAAIC,KAAK,QAAQC,KAAK,SAElBD,IAAIC,IAAGJ,MACFG,IAAIC,KAAGH;AAAA,EAClB;AAEA,SAAID,IAAMC,IAAa,QACnBA,IAAOD,IAAY,SAChB;AACT;AAEA,SAASK,EAAkBN,GAA6C;AACtE,MAAIC,IAAM,GACNC,IAAO;AAEX,WAASC,IAAI,GAAGA,IAAIH,EAAI,SAAS,GAAGG,KAAK;AACvC,UAAMC,IAAIJ,EAAIG,CAAC,GACTE,IAAIL,EAAIG,IAAI,CAAC;AAEnB,IAAIC,KAAK,QAAQC,KAAK,SAElBD,IAAIC,IAAGJ,MACFG,IAAIC,KAAGH;AAAA,EAClB;AAEA,SAAOD,IAAM,KAAKC,IAAO;AAC3B;AAEA,MAAMK,IAAyB,CAACC,MACvB,CAAIJ,GAAMC,MACXG,MAAU,QACLJ,IAAIC,IAAI,KAAKD,IAAIC,IAAI,IAAI,IAE9BG,MAAU,SACLJ,IAAIC,IAAI,KAAKD,IAAIC,IAAI,IAAI,IAE3B,GAaEI,IAAwB,CAACC,MAAyC;AAC7E,QAAMC,IAAOD,EAAM,QAAQ,QAAQ,CAAA,GAC7BE,IAAWD,EAAK,CAAC;AAEvB,MAAI,CAACC,EAAU,QAAO,CAAA;AAEtB,QAAMC,IAAqB,MACzBH,EAAM,SAAS,OAAgC,CAACI,GAAKC,OACnDD,EAAIC,EAAQ,IAAI,IAAI,QACbD,IACN,CAAA,CAAE,GAEDE,IAAgB,CACpBC,GACAC,GACAC,MACG;AACH,QAAI,CAACb,EAAkBW,CAAS;AAC9B,aAAON;AAGT,UAAMH,IAAQT,EAAyBkB,CAAS,GAI1CG,IAHkB,CAAC,GAAGH,CAAS,EAAE,KAAKV,EAAuBC,CAAK,CAAC,EAGtC,IAAI,CAACa,MAAU;AAChD,YAAMC,IAAWX,EAAK;AAAA,QACpB,CAACY,MACCA,EAAEL,EAAc,IAAI,MAAMG,KAC1BE,EAAEJ,EAAe,IAAI,MAAMP,EAASO,EAAe,IAAI;AAAA,MAAA;AAG3D,aAAIG,KAEG;AAAA,QACL,GAAGV;AAAA,QACH,CAACM,EAAc,IAAI,GAAGG;AAAA,QACtB,GAAGR,EAAA;AAAA,MAAmB;AAAA,IAE1B,CAAC,GAGKW,IAAcb,EAAK;AAAA,MACvB,CAACc,MACC,CAACL,EAAW;AAAA,QACV,CAACM,MACCA,EAAUR,EAAc,IAAI,MAAMO,EAAUP,EAAc,IAAI,KAC9DQ,EAAUP,EAAe,IAAI,MAAMM,EAAUN,EAAe,IAAI;AAAA,MAAA;AAAA,IACpE;AAGJ,WAAO,CAAC,GAAGC,GAAY,GAAGI,CAAW;AAAA,EACvC;AAGA,SAAIlB,EAAkBI,EAAM,WAAW,IAC9BM,EAAcN,EAAM,aAAaA,EAAM,iBAAiBA,EAAM,YAAY,IAG/EJ,EAAkBI,EAAM,QAAQ,IAC3BM,EAAcN,EAAM,UAAUA,EAAM,cAAcA,EAAM,eAAe,IAGzEC;AACT,GAEagB,IAA2B,CAACjB,MACvBkB,EAAQ,MACfnB,EAAsBC,CAAK,GACjC,CAACA,CAAK,CAAC;"}