@embeddable.com/remarkable-pro 0.0.7 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +3 -3
  2. package/dist/BarChartDefaultPro.js +3 -3
  3. package/dist/BarChartGroupedHorizontalPro.js +3 -3
  4. package/dist/BarChartGroupedPro.js +3 -3
  5. package/dist/BarChartStackedHorizontalPro.js +3 -3
  6. package/dist/BarChartStackedPro.js +3 -3
  7. package/dist/ChartCard-CVL4wTx4.js +124 -0
  8. package/dist/ChartCard-CVL4wTx4.js.map +1 -0
  9. package/dist/{Color.type.emb-CWTlQmpX.js → Color.type.emb-2eHKigos.js} +2 -2
  10. package/dist/{Color.type.emb-CWTlQmpX.js.map → Color.type.emb-2eHKigos.js.map} +1 -1
  11. package/dist/ColorEditor.js +2 -2
  12. package/dist/{ComparisonPeriod.type.emb-A4w1cgoZ.js → ComparisonPeriod.type.emb-0_NLUHUG.js} +2 -2
  13. package/dist/{ComparisonPeriod.type.emb-A4w1cgoZ.js.map → ComparisonPeriod.type.emb-0_NLUHUG.js.map} +1 -1
  14. package/dist/ComparisonPeriodSelectFieldPro.js +4 -4
  15. package/dist/DateRangeSelectFieldPro.js +3 -3
  16. package/dist/DonutChartPro.js +3 -3
  17. package/dist/DonutLabelChartPro.js +3 -3
  18. package/dist/{EditorCard-BZ9OPW3m.js → EditorCard-CBM5lBf4.js} +3 -3
  19. package/dist/{EditorCard-BZ9OPW3m.js.map → EditorCard-CBM5lBf4.js.map} +1 -1
  20. package/dist/HeatMapPro.js +4 -4
  21. package/dist/KpiChartNumberComparisonPro.js +14 -14
  22. package/dist/KpiChartNumberComparisonPro.js.map +1 -1
  23. package/dist/KpiChartNumberPro.js +3 -3
  24. package/dist/LineChartComparisonDefaultPro.js +5 -5
  25. package/dist/LineChartDefaultPro.js +4 -4
  26. package/dist/LineChartGroupedPro.js +3 -3
  27. package/dist/MultiSelectFieldPro.js +3 -3
  28. package/dist/PieChartPro.js +3 -3
  29. package/dist/PivotTablePro.js +3 -3
  30. package/dist/SingleSelectFieldPro.js +3 -3
  31. package/dist/TableChartPaginated.js +50 -43
  32. package/dist/TableChartPaginated.js.map +1 -1
  33. package/dist/{bars.utils-wDaeYsgx.js → bars.utils-B1Hz3hDV.js} +4 -4
  34. package/dist/{bars.utils-wDaeYsgx.js.map → bars.utils-B1Hz3hDV.js.map} +1 -1
  35. package/dist/{charts.utils-DvG9esg1.js → charts.utils-Iko6Kzy0.js} +23 -15
  36. package/dist/charts.utils-Iko6Kzy0.js.map +1 -0
  37. package/dist/{component.constants-Dhb2rtRh.js → component.constants-DgkJze23.js} +77 -77
  38. package/dist/component.constants-DgkJze23.js.map +1 -0
  39. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts.map +1 -1
  40. package/dist/components/charts/shared/ChartCard/ChartCard.d.ts +0 -1
  41. package/dist/components/charts/shared/ChartCard/ChartCard.d.ts.map +1 -1
  42. package/dist/components/charts/tables/TableChartPaginated/index.d.ts +8 -6
  43. package/dist/components/charts/tables/TableChartPaginated/index.d.ts.map +1 -1
  44. package/dist/embeddable-components.json +12 -12
  45. package/dist/embeddable-theme-0137e.js +20 -12
  46. package/dist/embeddable-types.js.map +1 -1
  47. package/dist/{formatter.utils-Bdp9Y-Lv.js → formatter.utils-XQ213825.js} +2 -2
  48. package/dist/{formatter.utils-Bdp9Y-Lv.js.map → formatter.utils-XQ213825.js.map} +1 -1
  49. package/dist/index-B6pLTirY.js +161 -0
  50. package/dist/index-B6pLTirY.js.map +1 -0
  51. package/dist/{index-lk-Z0NGN.js → index-B_h9tbkR.js} +5 -5
  52. package/dist/{index-lk-Z0NGN.js.map → index-B_h9tbkR.js.map} +1 -1
  53. package/dist/{index-CIrFPmqW.js → index-Btb4t3Wv.js} +5 -5
  54. package/dist/{index-CIrFPmqW.js.map → index-Btb4t3Wv.js.map} +1 -1
  55. package/dist/{index-D4L5OYNQ.js → index-BvcyKJye.js} +5 -5
  56. package/dist/{index-D4L5OYNQ.js.map → index-BvcyKJye.js.map} +1 -1
  57. package/dist/{index-B7H0xf_l.js → index-CEnzeG60.js} +4 -4
  58. package/dist/{index-B7H0xf_l.js.map → index-CEnzeG60.js.map} +1 -1
  59. package/dist/{index-xD9YxZRB.js → index-CQjWaAI1.js} +5 -5
  60. package/dist/{index-xD9YxZRB.js.map → index-CQjWaAI1.js.map} +1 -1
  61. package/dist/{index-DsuuGokg.js → index-CUL62EI3.js} +5 -5
  62. package/dist/{index-DsuuGokg.js.map → index-CUL62EI3.js.map} +1 -1
  63. package/dist/{index-DyLLyX5j.js → index-D-uIQw1c.js} +4 -4
  64. package/dist/{index-DyLLyX5j.js.map → index-D-uIQw1c.js.map} +1 -1
  65. package/dist/{index-BANAOc5o.js → index-D1f77vvz.js} +5 -5
  66. package/dist/{index-BANAOc5o.js.map → index-D1f77vvz.js.map} +1 -1
  67. package/dist/{index-CK9V-wz1.js → index-D9A89MpZ.js} +3803 -3570
  68. package/dist/index-D9A89MpZ.js.map +1 -0
  69. package/dist/index-D9xys6rW.js +84 -0
  70. package/dist/{index-Dj2GCs_C.js.map → index-D9xys6rW.js.map} +1 -1
  71. package/dist/{index-Ci7quilT.js → index-DQy1VR_1.js} +6 -6
  72. package/dist/{index-Ci7quilT.js.map → index-DQy1VR_1.js.map} +1 -1
  73. package/dist/{index-BzzDZ7Wg.js → index-DYXWHe8m.js} +5 -5
  74. package/dist/{index-BzzDZ7Wg.js.map → index-DYXWHe8m.js.map} +1 -1
  75. package/dist/{index-CC_OkY5h.js → index-Djb7UU1L.js} +5 -5
  76. package/dist/{index-CC_OkY5h.js.map → index-Djb7UU1L.js.map} +1 -1
  77. package/dist/{index-cy3SJfGM.js → index-DxyqvM1n.js} +5 -5
  78. package/dist/{index-cy3SJfGM.js.map → index-DxyqvM1n.js.map} +1 -1
  79. package/dist/{index-BSWbd7z_.js → index-Dz2RZAKI.js} +5 -5
  80. package/dist/{index-BSWbd7z_.js.map → index-Dz2RZAKI.js.map} +1 -1
  81. package/dist/{index-YDGm7Lqn.js → index-ExZUonHQ.js} +5 -5
  82. package/dist/{index-YDGm7Lqn.js.map → index-ExZUonHQ.js.map} +1 -1
  83. package/dist/{index-CVTxkwt-.js → index-IIIoCbBX.js} +5 -5
  84. package/dist/{index-CVTxkwt-.js.map → index-IIIoCbBX.js.map} +1 -1
  85. package/dist/{index-DfMuZY6D.js → index-KmzIpbK7.js} +5 -5
  86. package/dist/{index-DfMuZY6D.js.map → index-KmzIpbK7.js.map} +1 -1
  87. package/dist/{index-CGOYyhMg.js → index-SXB_nz9V.js} +6 -6
  88. package/dist/{index-CGOYyhMg.js.map → index-SXB_nz9V.js.map} +1 -1
  89. package/dist/{index-BFslD2mO.js → index-gNSOwkrE.js} +5 -5
  90. package/dist/{index-BFslD2mO.js.map → index-gNSOwkrE.js.map} +1 -1
  91. package/dist/{index-BNMJTgo_.js → index-lWf11Upm.js} +5 -5
  92. package/dist/{index-BNMJTgo_.js.map → index-lWf11Upm.js.map} +1 -1
  93. package/dist/index.js +29 -29
  94. package/dist/{pies.utils-eND-eqpj.js → pies.utils-4gWRjv-L.js} +5 -5
  95. package/dist/{pies.utils-eND-eqpj.js.map → pies.utils-4gWRjv-L.js.map} +1 -1
  96. package/dist/remarkable-pro.css +1 -1
  97. package/dist/theme/i18n/translations/de.d.ts.map +1 -1
  98. package/dist/theme/i18n/translations/en.d.ts.map +1 -1
  99. package/dist/{timeRange.utils-DLTzyLvc.js → timeRange.utils-CgoON1yQ.js} +2 -2
  100. package/dist/{timeRange.utils-DLTzyLvc.js.map → timeRange.utils-CgoON1yQ.js.map} +1 -1
  101. package/package.json +10 -6
  102. package/dist/ChartCard-DbWy6Y6D.js +0 -127
  103. package/dist/ChartCard-DbWy6Y6D.js.map +0 -1
  104. package/dist/charts.utils-DvG9esg1.js.map +0 -1
  105. package/dist/component.constants-Dhb2rtRh.js.map +0 -1
  106. package/dist/index-CK9V-wz1.js.map +0 -1
  107. package/dist/index-Dj2GCs_C.js +0 -82
  108. package/dist/index-zt-UY8xi.js +0 -152
  109. package/dist/index-zt-UY8xi.js.map +0 -1
@@ -1,25 +1,25 @@
1
- import { V as t, l, m as u } from "./index-CK9V-wz1.js";
1
+ import { V as u, l as i, m as t } from "./index-D9A89MpZ.js";
2
2
  import { defineComponent as g } from "@embeddable.com/react";
3
- import { T as p } from "./index-zt-UY8xi.js";
4
- import { v as D, C as r, s as b, e as f, F as C, G as w, g as A, d as M, H as k, x as h } from "./component.constants-Dhb2rtRh.js";
5
- const v = {
3
+ import { T as f } from "./index-B6pLTirY.js";
4
+ import { v as p, C as d, s as D, e as b, F as C, G as w, g as A, d as R, H as h, x as M } from "./component.constants-DgkJze23.js";
5
+ const k = {
6
6
  name: "TableChartPaginated",
7
7
  label: "Table Chart - Paginated",
8
8
  category: "Table Charts",
9
9
  inputs: [
10
- D,
10
+ p,
11
11
  {
12
- ...r,
12
+ ...d,
13
13
  label: "Columns",
14
- inputs: [...r.inputs, b, f]
14
+ inputs: [...d.inputs, D, b]
15
15
  },
16
16
  C,
17
17
  w,
18
18
  { ...A, name: "showIndex", label: "Show Index Column", defaultValue: !0 },
19
- { ...M, name: "displayNullAs", label: "Display null as" },
20
- { ...k, label: "Max Results to Download" },
19
+ { ...R, name: "displayNullAs", label: "Display null as" },
20
+ { ...h, label: "Max Results to Download" },
21
21
  {
22
- ...h,
22
+ ...M,
23
23
  label: "Dimension to set on click",
24
24
  name: "clickDimension",
25
25
  category: "Data Mapping for Interactions",
@@ -39,62 +39,69 @@ const v = {
39
39
  ]
40
40
  }
41
41
  ]
42
- }, R = {
42
+ }, v = {
43
43
  page: 0,
44
44
  pageSize: void 0,
45
45
  sort: void 0,
46
- isLoadingDownloadData: !1
47
- }, I = g(p, v, {
46
+ isLoadingDownloadData: !1,
47
+ hasTotalResults: !1
48
+ }, I = g(f, k, {
48
49
  /* @ts-expect-error - to be fixed in @embeddable.com/react */
49
- props: (n, [e, d]) => {
50
- const a = n.dimensionsAndMeasures.find(
51
- (i) => {
52
- var o;
53
- return i.name === ((o = e == null ? void 0 : e.sort) == null ? void 0 : o.id);
50
+ props: (o, [e, m]) => {
51
+ const s = o.dimensionsAndMeasures.find(
52
+ (a) => {
53
+ var n;
54
+ return a.name === ((n = e == null ? void 0 : e.sort) == null ? void 0 : n.id);
54
55
  }
55
- ), s = a && (e != null && e.sort) ? [
56
+ ), l = s && (e != null && e.sort) ? [
56
57
  {
57
- property: a,
58
+ property: s,
58
59
  direction: e.sort.direction
59
60
  }
60
- ] : [], m = n.dimensionsAndMeasures.some(
61
- (i) => {
62
- var o;
63
- return i.name === ((o = n.clickDimension) == null ? void 0 : o.name);
61
+ ] : [], c = o.dimensionsAndMeasures.some(
62
+ (a) => {
63
+ var n;
64
+ return a.name === ((n = o.clickDimension) == null ? void 0 : n.name);
64
65
  }
65
- ), c = [
66
- ...n.dimensionsAndMeasures,
67
- m ? [] : n.clickDimension
66
+ ), r = [
67
+ ...o.dimensionsAndMeasures,
68
+ c ? [] : o.clickDimension
68
69
  ];
69
70
  return {
70
- ...n,
71
- state: u(R, e ?? {}),
71
+ ...o,
72
+ state: t(v, e ?? {}),
72
73
  // Merge with default state
73
- setState: d,
74
- results: e != null && e.pageSize ? l({
75
- from: n.dataset,
76
- select: c,
74
+ setState: m,
75
+ results: e != null && e.pageSize ? i({
76
+ from: o.dataset,
77
+ select: r,
77
78
  offset: e.page * e.pageSize,
78
79
  limit: e.pageSize,
79
- countRows: !0,
80
- orderBy: s
80
+ orderBy: l
81
81
  }) : void 0,
82
- allResults: e != null && e.isLoadingDownloadData ? l({
83
- from: n.dataset,
84
- select: n.dimensionsAndMeasures,
85
- orderBy: s,
86
- limit: n.maxResults
82
+ totalResults: e != null && e.hasTotalResults ? void 0 : i({
83
+ from: o.dataset,
84
+ select: r,
85
+ offset: 0,
86
+ limit: 0,
87
+ countRows: !0
88
+ }),
89
+ allResults: e != null && e.isLoadingDownloadData ? i({
90
+ from: o.dataset,
91
+ select: o.dimensionsAndMeasures,
92
+ orderBy: l,
93
+ limit: o.maxResults
87
94
  }) : void 0
88
95
  };
89
96
  },
90
97
  events: {
91
- onRowClicked: (n) => ({
92
- rowDimensionValue: n !== void 0 ? n : t.noFilter()
98
+ onRowClicked: (o) => ({
99
+ rowDimensionValue: o !== void 0 ? o : u.noFilter()
93
100
  })
94
101
  }
95
102
  });
96
103
  export {
97
104
  I as default,
98
- v as meta
105
+ k as meta
99
106
  };
100
107
  //# sourceMappingURL=TableChartPaginated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableChartPaginated.js","sources":["../src/components/charts/tables/TableChartPaginated/TableChartPaginated.emb.ts"],"sourcesContent":["import { loadData, OrderBy, Value } from '@embeddable.com/core';\nimport { defineComponent, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport TablePaginatedChart, {\n TableChartPaginatedProOnRowClickArg,\n TableChartPaginatedProState,\n} from './index';\nimport {\n dataset,\n description,\n title,\n dimensionsAndMeasures,\n subInputWidth,\n subInputAlign,\n genericBoolean,\n genericString,\n maxResults,\n dimensionSimple,\n} from '../../../component.constants';\nimport { mergician } from 'mergician';\n\nexport const meta = {\n name: 'TableChartPaginated',\n label: 'Table Chart - Paginated',\n category: 'Table Charts',\n inputs: [\n dataset,\n {\n ...dimensionsAndMeasures,\n label: 'Columns',\n inputs: [...dimensionsAndMeasures.inputs, subInputWidth, subInputAlign],\n },\n title,\n description,\n\n { ...genericBoolean, name: 'showIndex', label: 'Show Index Column', defaultValue: true },\n { ...genericString, name: 'displayNullAs', label: 'Display null as' },\n { ...maxResults, label: 'Max Results to Download' },\n {\n ...dimensionSimple,\n label: 'Dimension to set on click',\n name: 'clickDimension',\n category: 'Data Mapping for Interactions',\n required: false,\n },\n ],\n events: [\n {\n name: 'onRowClicked',\n label: 'A row is clicked',\n properties: [\n {\n name: 'rowDimensionValue',\n label: 'Clicked Row Dimension Value',\n type: 'string',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst defaultState: TableChartPaginatedProState = {\n page: 0,\n pageSize: undefined,\n sort: undefined,\n isLoadingDownloadData: false,\n};\n\nexport default defineComponent(TablePaginatedChart, meta, {\n /* @ts-expect-error - to be fixed in @embeddable.com/react */\n props: (\n inputs: Inputs<typeof meta>,\n [state, setState]: [TableChartPaginatedProState, (state: TableChartPaginatedProState) => void],\n ) => {\n const orderDimensionAndMeasure = inputs.dimensionsAndMeasures.find(\n (x) => x.name === state?.sort?.id,\n );\n\n const orderBy: OrderBy[] =\n orderDimensionAndMeasure && state?.sort\n ? [\n {\n property: orderDimensionAndMeasure,\n direction: state.sort.direction,\n },\n ]\n : [];\n\n const clickDimensionInDimensionsAndMeasures = inputs.dimensionsAndMeasures.some(\n (dimOrMeas) => dimOrMeas.name === inputs.clickDimension?.name,\n );\n\n const dimensionsAndMeasuresToLoad = [\n ...inputs.dimensionsAndMeasures,\n clickDimensionInDimensionsAndMeasures ? [] : inputs.clickDimension,\n ];\n\n return {\n ...inputs,\n\n state: mergician(defaultState, state ?? {}), // Merge with default state\n setState,\n\n results: state?.pageSize\n ? loadData({\n from: inputs.dataset,\n select: dimensionsAndMeasuresToLoad,\n offset: state.page * state.pageSize,\n limit: state.pageSize,\n countRows: true,\n orderBy,\n })\n : undefined,\n allResults: state?.isLoadingDownloadData\n ? loadData({\n from: inputs.dataset,\n select: inputs.dimensionsAndMeasures,\n orderBy,\n limit: inputs.maxResults,\n })\n : undefined,\n };\n },\n events: {\n onRowClicked: (rowDimensionValue: TableChartPaginatedProOnRowClickArg) => {\n return {\n rowDimensionValue: rowDimensionValue !== undefined ? rowDimensionValue : Value.noFilter(),\n };\n },\n },\n});\n"],"names":["meta","dataset","dimensionsAndMeasures","subInputWidth","subInputAlign","title","description","genericBoolean","genericString","maxResults","dimensionSimple","defaultState","TableChartPaginated_emb","defineComponent","TablePaginatedChart","inputs","state","setState","orderDimensionAndMeasure","x","_a","orderBy","clickDimensionInDimensionsAndMeasures","dimOrMeas","dimensionsAndMeasuresToLoad","mergician","loadData","rowDimensionValue","Value"],"mappings":";;;;AAoBO,MAAMA,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC;AAAA,IACA;AAAA,MACE,GAAGC;AAAA,MACH,OAAO;AAAA,MACP,QAAQ,CAAC,GAAGA,EAAsB,QAAQC,GAAeC,CAAa;AAAA,IAAA;AAAA,IAExEC;AAAA,IACAC;AAAA,IAEA,EAAE,GAAGC,GAAgB,MAAM,aAAa,OAAO,qBAAqB,cAAc,GAAA;AAAA,IAClF,EAAE,GAAGC,GAAe,MAAM,iBAAiB,OAAO,kBAAA;AAAA,IAClD,EAAE,GAAGC,GAAY,OAAO,0BAAA;AAAA,IACxB;AAAA,MACE,GAAGC;AAAA,MACH,OAAO;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEJ,GAEMC,IAA4C;AAAA,EAChD,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,uBAAuB;AACzB,GAEAC,IAAeC,EAAgBC,GAAqBd,GAAM;AAAA;AAAA,EAExD,OAAO,CACLe,GACA,CAACC,GAAOC,CAAQ,MACb;AACH,UAAMC,IAA2BH,EAAO,sBAAsB;AAAA,MAC5D,CAACI,MAAA;;AAAM,eAAAA,EAAE,WAASC,IAAAJ,KAAA,gBAAAA,EAAO,SAAP,gBAAAI,EAAa;AAAA;AAAA,IAAA,GAG3BC,IACJH,MAA4BF,KAAA,QAAAA,EAAO,QAC/B;AAAA,MACE;AAAA,QACE,UAAUE;AAAA,QACV,WAAWF,EAAM,KAAK;AAAA,MAAA;AAAA,IACxB,IAEF,CAAA,GAEAM,IAAwCP,EAAO,sBAAsB;AAAA,MACzE,CAACQ,MAAA;;AAAc,eAAAA,EAAU,WAASH,IAAAL,EAAO,mBAAP,gBAAAK,EAAuB;AAAA;AAAA,IAAA,GAGrDI,IAA8B;AAAA,MAClC,GAAGT,EAAO;AAAA,MACVO,IAAwC,CAAA,IAAKP,EAAO;AAAA,IAAA;AAGtD,WAAO;AAAA,MACL,GAAGA;AAAA,MAEH,OAAOU,EAAUd,GAAcK,KAAS,CAAA,CAAE;AAAA;AAAA,MAC1C,UAAAC;AAAA,MAEA,SAASD,KAAA,QAAAA,EAAO,WACZU,EAAS;AAAA,QACP,MAAMX,EAAO;AAAA,QACb,QAAQS;AAAA,QACR,QAAQR,EAAM,OAAOA,EAAM;AAAA,QAC3B,OAAOA,EAAM;AAAA,QACb,WAAW;AAAA,QACX,SAAAK;AAAA,MAAA,CACD,IACD;AAAA,MACJ,YAAYL,KAAA,QAAAA,EAAO,wBACfU,EAAS;AAAA,QACP,MAAMX,EAAO;AAAA,QACb,QAAQA,EAAO;AAAA,QACf,SAAAM;AAAA,QACA,OAAON,EAAO;AAAA,MAAA,CACf,IACD;AAAA,IAAA;AAAA,EAER;AAAA,EACA,QAAQ;AAAA,IACN,cAAc,CAACY,OACN;AAAA,MACL,mBAAmBA,MAAsB,SAAYA,IAAoBC,EAAM,SAAA;AAAA,IAAS;AAAA,EAE5F;AAEJ,CAAC;"}
1
+ {"version":3,"file":"TableChartPaginated.js","sources":["../src/components/charts/tables/TableChartPaginated/TableChartPaginated.emb.ts"],"sourcesContent":["import { loadData, OrderBy, Value } from '@embeddable.com/core';\nimport { defineComponent, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport TablePaginatedChart, {\n TableChartPaginatedProOnRowClickArg,\n TableChartPaginatedProState,\n} from './index';\nimport {\n dataset,\n description,\n title,\n dimensionsAndMeasures,\n subInputWidth,\n subInputAlign,\n genericBoolean,\n genericString,\n maxResults,\n dimensionSimple,\n} from '../../../component.constants';\nimport { mergician } from 'mergician';\n\nexport const meta = {\n name: 'TableChartPaginated',\n label: 'Table Chart - Paginated',\n category: 'Table Charts',\n inputs: [\n dataset,\n {\n ...dimensionsAndMeasures,\n label: 'Columns',\n inputs: [...dimensionsAndMeasures.inputs, subInputWidth, subInputAlign],\n },\n title,\n description,\n\n { ...genericBoolean, name: 'showIndex', label: 'Show Index Column', defaultValue: true },\n { ...genericString, name: 'displayNullAs', label: 'Display null as' },\n { ...maxResults, label: 'Max Results to Download' },\n {\n ...dimensionSimple,\n label: 'Dimension to set on click',\n name: 'clickDimension',\n category: 'Data Mapping for Interactions',\n required: false,\n },\n ],\n events: [\n {\n name: 'onRowClicked',\n label: 'A row is clicked',\n properties: [\n {\n name: 'rowDimensionValue',\n label: 'Clicked Row Dimension Value',\n type: 'string',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst defaultState: TableChartPaginatedProState = {\n page: 0,\n pageSize: undefined,\n sort: undefined,\n isLoadingDownloadData: false,\n hasTotalResults: false,\n};\n\nexport default defineComponent(TablePaginatedChart, meta, {\n /* @ts-expect-error - to be fixed in @embeddable.com/react */\n props: (\n inputs: Inputs<typeof meta>,\n [state, setState]: [TableChartPaginatedProState, (state: TableChartPaginatedProState) => void],\n ) => {\n const orderDimensionAndMeasure = inputs.dimensionsAndMeasures.find(\n (x) => x.name === state?.sort?.id,\n );\n\n const orderBy: OrderBy[] =\n orderDimensionAndMeasure && state?.sort\n ? [\n {\n property: orderDimensionAndMeasure,\n direction: state.sort.direction,\n },\n ]\n : [];\n\n const clickDimensionInDimensionsAndMeasures = inputs.dimensionsAndMeasures.some(\n (dimOrMeas) => dimOrMeas.name === inputs.clickDimension?.name,\n );\n\n const dimensionsAndMeasuresToLoad = [\n ...inputs.dimensionsAndMeasures,\n clickDimensionInDimensionsAndMeasures ? [] : inputs.clickDimension,\n ];\n\n return {\n ...inputs,\n\n state: mergician(defaultState, state ?? {}), // Merge with default state\n setState,\n\n results: state?.pageSize\n ? loadData({\n from: inputs.dataset,\n select: dimensionsAndMeasuresToLoad,\n offset: state.page * state.pageSize,\n limit: state.pageSize,\n orderBy,\n })\n : undefined,\n totalResults: !state?.hasTotalResults\n ? loadData({\n from: inputs.dataset,\n select: dimensionsAndMeasuresToLoad,\n offset: 0,\n limit: 0,\n countRows: true,\n })\n : undefined,\n allResults: state?.isLoadingDownloadData\n ? loadData({\n from: inputs.dataset,\n select: inputs.dimensionsAndMeasures,\n orderBy,\n limit: inputs.maxResults,\n })\n : undefined,\n };\n },\n events: {\n onRowClicked: (rowDimensionValue: TableChartPaginatedProOnRowClickArg) => {\n return {\n rowDimensionValue: rowDimensionValue !== undefined ? rowDimensionValue : Value.noFilter(),\n };\n },\n },\n});\n"],"names":["meta","dataset","dimensionsAndMeasures","subInputWidth","subInputAlign","title","description","genericBoolean","genericString","maxResults","dimensionSimple","defaultState","TableChartPaginated_emb","defineComponent","TablePaginatedChart","inputs","state","setState","orderDimensionAndMeasure","x","_a","orderBy","clickDimensionInDimensionsAndMeasures","dimOrMeas","dimensionsAndMeasuresToLoad","mergician","loadData","rowDimensionValue","Value"],"mappings":";;;;AAoBO,MAAMA,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC;AAAA,IACA;AAAA,MACE,GAAGC;AAAA,MACH,OAAO;AAAA,MACP,QAAQ,CAAC,GAAGA,EAAsB,QAAQC,GAAeC,CAAa;AAAA,IAAA;AAAA,IAExEC;AAAA,IACAC;AAAA,IAEA,EAAE,GAAGC,GAAgB,MAAM,aAAa,OAAO,qBAAqB,cAAc,GAAA;AAAA,IAClF,EAAE,GAAGC,GAAe,MAAM,iBAAiB,OAAO,kBAAA;AAAA,IAClD,EAAE,GAAGC,GAAY,OAAO,0BAAA;AAAA,IACxB;AAAA,MACE,GAAGC;AAAA,MACH,OAAO;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEJ,GAEMC,IAA4C;AAAA,EAChD,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,uBAAuB;AAAA,EACvB,iBAAiB;AACnB,GAEAC,IAAeC,EAAgBC,GAAqBd,GAAM;AAAA;AAAA,EAExD,OAAO,CACLe,GACA,CAACC,GAAOC,CAAQ,MACb;AACH,UAAMC,IAA2BH,EAAO,sBAAsB;AAAA,MAC5D,CAACI,MAAA;;AAAM,eAAAA,EAAE,WAASC,IAAAJ,KAAA,gBAAAA,EAAO,SAAP,gBAAAI,EAAa;AAAA;AAAA,IAAA,GAG3BC,IACJH,MAA4BF,KAAA,QAAAA,EAAO,QAC/B;AAAA,MACE;AAAA,QACE,UAAUE;AAAA,QACV,WAAWF,EAAM,KAAK;AAAA,MAAA;AAAA,IACxB,IAEF,CAAA,GAEAM,IAAwCP,EAAO,sBAAsB;AAAA,MACzE,CAACQ,MAAA;;AAAc,eAAAA,EAAU,WAASH,IAAAL,EAAO,mBAAP,gBAAAK,EAAuB;AAAA;AAAA,IAAA,GAGrDI,IAA8B;AAAA,MAClC,GAAGT,EAAO;AAAA,MACVO,IAAwC,CAAA,IAAKP,EAAO;AAAA,IAAA;AAGtD,WAAO;AAAA,MACL,GAAGA;AAAA,MAEH,OAAOU,EAAUd,GAAcK,KAAS,CAAA,CAAE;AAAA;AAAA,MAC1C,UAAAC;AAAA,MAEA,SAASD,KAAA,QAAAA,EAAO,WACZU,EAAS;AAAA,QACP,MAAMX,EAAO;AAAA,QACb,QAAQS;AAAA,QACR,QAAQR,EAAM,OAAOA,EAAM;AAAA,QAC3B,OAAOA,EAAM;AAAA,QACb,SAAAK;AAAA,MAAA,CACD,IACD;AAAA,MACJ,cAAeL,KAAA,QAAAA,EAAO,kBAQlB,SAPAU,EAAS;AAAA,QACP,MAAMX,EAAO;AAAA,QACb,QAAQS;AAAA,QACR,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,WAAW;AAAA,MAAA,CACZ;AAAA,MAEL,YAAYR,KAAA,QAAAA,EAAO,wBACfU,EAAS;AAAA,QACP,MAAMX,EAAO;AAAA,QACb,QAAQA,EAAO;AAAA,QACf,SAAAM;AAAA,QACA,OAAON,EAAO;AAAA,MAAA,CACf,IACD;AAAA,IAAA;AAAA,EAER;AAAA,EACA,QAAQ;AAAA,IACN,cAAc,CAACY,OACN;AAAA,MACL,mBAAmBA,MAAsB,SAAYA,IAAoBC,EAAM,SAAA;AAAA,IAAS;AAAA,EAE5F;AAEJ,CAAC;"}
@@ -1,7 +1,7 @@
1
- import { r as F, g as P } from "./charts.utils-DvG9esg1.js";
2
- import { g as h } from "./formatter.utils-Bdp9Y-Lv.js";
1
+ import { r as F, g as P } from "./charts.utils-Iko6Kzy0.js";
2
+ import { g as h } from "./formatter.utils-XQ213825.js";
3
3
  import { g as p, a as g } from "./object.utils-D_Zzon-H.js";
4
- import { g as T, a as v } from "./index-CK9V-wz1.js";
4
+ import { g as T, a as v } from "./index-D9A89MpZ.js";
5
5
  const B = (l, c) => {
6
6
  var b;
7
7
  const m = h(c), { data: o = [], dimension: i, groupDimension: d, measure: t } = l, r = [...new Set(o.map((n) => n[i.name]).filter((n) => n != null))].sort(), a = `${d.name}${(b = d.inputs) != null && b.granularity ? `.${d.inputs.granularity}` : ""}`, e = [...new Set(o.map((n) => n[a]))].filter((n) => n != null), s = p(c), u = v(), C = e.map((n, k) => {
@@ -142,4 +142,4 @@ export {
142
142
  V as b,
143
143
  B as g
144
144
  };
145
- //# sourceMappingURL=bars.utils-wDaeYsgx.js.map
145
+ //# sourceMappingURL=bars.utils-B1Hz3hDV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bars.utils-wDaeYsgx.js","sources":["../src/components/charts/bars/bars.utils.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { groupTailAsOther } from '../charts.utils';\nimport { getColor } from '../../../theme/styles/styles.utils';\nimport { getChartColors, getChartContrastColors } from '@embeddable.com/remarkable-ui';\nimport { getObjectStableKey } from '../../../utils.ts/object.utils';\nimport { Context } from 'chartjs-plugin-datalabels';\n\nexport const getBarStackedChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n groupDimension: Dimension;\n measure: Measure;\n },\n theme: Theme,\n): ChartData<'bar'> => {\n const themeFormatter = getThemeFormatter(theme);\n const { data = [], dimension, groupDimension, measure } = props;\n\n const axis = [...new Set(data.map((d) => d[dimension.name]).filter((d) => d != null))].sort();\n const groupDimensionName = `${groupDimension.name}${groupDimension.inputs?.granularity ? `.${groupDimension.inputs.granularity}` : ''}`;\n const groupBy = [...new Set(data.map((d) => d[groupDimensionName]))].filter((d) => d != null);\n\n const themeKey = getObjectStableKey(theme);\n const chartContrastColors = getChartContrastColors();\n const datasets = groupBy.map((groupByItem, index) => {\n const backgroundColor = getColor(\n `${themeKey}.charts.backgroundColors`,\n `${groupDimension.name}.${groupByItem}`,\n theme.charts.backgroundColors ?? chartContrastColors,\n index,\n );\n\n const borderColor = getColor(\n `${themeKey}.charts.borderColors`,\n `${groupDimension.name}.${groupByItem}`,\n theme.charts.borderColors ?? chartContrastColors,\n index,\n );\n\n return {\n label: themeFormatter.data(groupDimension, groupByItem),\n rawLabel: groupByItem,\n backgroundColor,\n borderColor,\n data: axis.map((axisItem) => {\n const record = data.find(\n (d) => d[groupDimensionName] === groupByItem && d[dimension.name] === axisItem,\n );\n return record ? Number(record[measure.name]) : 0;\n }),\n };\n });\n\n return {\n labels: axis,\n datasets,\n };\n};\n\nexport const getBarChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measures: Measure[];\n maxItems?: number;\n },\n theme: Theme = remarkableTheme,\n): ChartData<'bar'> => {\n if (!props.data) {\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n }\n\n const themeFormatter = getThemeFormatter(theme);\n const themeKey = getObjectStableKey(theme);\n const groupedData = groupTailAsOther(props.data, props.dimension, props.measures, props.maxItems);\n const chartColors = getChartColors();\n\n return {\n labels: groupedData.map((item) => {\n return item[props.dimension.name];\n }),\n datasets: props.measures.map((measure, index) => {\n const backgroundColor = getColor(\n `${themeKey}.charts.backgroundColors`,\n measure.name,\n theme.charts.backgroundColors ?? chartColors,\n index,\n );\n\n const borderColor = getColor(\n `${themeKey}.charts.borderColors`,\n measure.name,\n theme.charts.borderColors ?? chartColors,\n index,\n );\n\n return {\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n data: groupedData.map((item) => item[measure.name] ?? 0),\n backgroundColor,\n borderColor,\n };\n }),\n };\n};\n\nconst getBarChartProDatalabelTotalFormatter = (\n context: Context,\n formatter: (value: number) => string,\n) => {\n const { datasets } = context.chart.data;\n const i = context.dataIndex;\n\n const total = datasets.reduce((sum, ds) => {\n const val = ds.data[i] as number;\n return sum + (val || 0);\n }, 0);\n\n return formatter(total);\n};\n\nexport const getBarChartProOptions = (\n options: {\n onBarClicked: (args: {\n axisDimensionValue: string | null;\n groupingDimensionValue: string | null;\n }) => void;\n measures: Measure[];\n dimension: Dimension;\n horizontal: boolean;\n data: ChartData<'bar'>;\n },\n theme: Theme,\n): Partial<ChartOptions<'bar'>> => {\n const { onBarClicked, measures, dimension, horizontal, data } = options;\n\n const themeFormatter = getThemeFormatter(theme);\n return {\n plugins: {\n legend: { position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n labels: {\n total: {\n formatter: (_value: string | number, context: Context) =>\n getBarChartProDatalabelTotalFormatter(context, (value: number) =>\n themeFormatter.data(measures[0]!, value),\n ),\n },\n value: {\n formatter: (value: string | number, context) => {\n const measure = measures[context.datasetIndex % measures.length]!;\n return themeFormatter.data(measure, value);\n },\n },\n },\n },\n tooltip: {\n callbacks: {\n title: (context) => {\n const label = context[0]?.label;\n return themeFormatter.data(dimension, label);\n },\n label: (context) => {\n const measure = measures[context.datasetIndex % measures.length]!;\n const raw = context.raw as number;\n return `${themeFormatter.data(dimension, context.dataset.label) || ''}: ${themeFormatter.data(measure, raw)}`;\n },\n },\n },\n },\n scales: {\n x: {\n ticks: {\n callback: (value) => {\n if (horizontal) {\n return themeFormatter.data(measures[0]!, value);\n }\n\n if (!data || !data.labels) return undefined;\n\n const label = data.labels[Number(value)] as string;\n\n return themeFormatter.data(dimension, label);\n },\n },\n },\n y: {\n ticks: {\n callback: (value) => {\n if (!horizontal) {\n return themeFormatter.data(measures[0]!, value);\n }\n if (!data || !data.labels) return undefined;\n const label = data.labels[Number(value)] as string;\n return themeFormatter.data(dimension, label);\n },\n },\n },\n },\n onClick: (_event, elements, chart) => {\n const element = elements[0];\n const axisDimensionValue = (element ? chart.data.labels![element.index] : null) as\n | string\n | null;\n const groupingDimensionValue = (\n element\n ? (chart.data.datasets[element.datasetIndex] as { rawLabel?: string | null })?.rawLabel\n : null\n ) as string | null;\n\n onBarClicked({\n axisDimensionValue,\n groupingDimensionValue,\n });\n },\n };\n};\n"],"names":["getBarStackedChartProData","props","theme","themeFormatter","getThemeFormatter","data","dimension","groupDimension","measure","axis","d","groupDimensionName","_a","groupBy","themeKey","getObjectStableKey","chartContrastColors","getChartContrastColors","datasets","groupByItem","index","backgroundColor","getColor","borderColor","axisItem","record","getBarChartProData","remarkableTheme","groupedData","groupTailAsOther","chartColors","getChartColors","item","getBarChartProDatalabelTotalFormatter","context","formatter","i","total","sum","ds","val","getBarChartProOptions","options","onBarClicked","measures","horizontal","_value","value","label","raw","_event","elements","chart","element","axisDimensionValue","groupingDimensionValue"],"mappings":"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"}
1
+ {"version":3,"file":"bars.utils-B1Hz3hDV.js","sources":["../src/components/charts/bars/bars.utils.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { groupTailAsOther } from '../charts.utils';\nimport { getColor } from '../../../theme/styles/styles.utils';\nimport { getChartColors, getChartContrastColors } from '@embeddable.com/remarkable-ui';\nimport { getObjectStableKey } from '../../../utils.ts/object.utils';\nimport { Context } from 'chartjs-plugin-datalabels';\n\nexport const getBarStackedChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n groupDimension: Dimension;\n measure: Measure;\n },\n theme: Theme,\n): ChartData<'bar'> => {\n const themeFormatter = getThemeFormatter(theme);\n const { data = [], dimension, groupDimension, measure } = props;\n\n const axis = [...new Set(data.map((d) => d[dimension.name]).filter((d) => d != null))].sort();\n const groupDimensionName = `${groupDimension.name}${groupDimension.inputs?.granularity ? `.${groupDimension.inputs.granularity}` : ''}`;\n const groupBy = [...new Set(data.map((d) => d[groupDimensionName]))].filter((d) => d != null);\n\n const themeKey = getObjectStableKey(theme);\n const chartContrastColors = getChartContrastColors();\n const datasets = groupBy.map((groupByItem, index) => {\n const backgroundColor = getColor(\n `${themeKey}.charts.backgroundColors`,\n `${groupDimension.name}.${groupByItem}`,\n theme.charts.backgroundColors ?? chartContrastColors,\n index,\n );\n\n const borderColor = getColor(\n `${themeKey}.charts.borderColors`,\n `${groupDimension.name}.${groupByItem}`,\n theme.charts.borderColors ?? chartContrastColors,\n index,\n );\n\n return {\n label: themeFormatter.data(groupDimension, groupByItem),\n rawLabel: groupByItem,\n backgroundColor,\n borderColor,\n data: axis.map((axisItem) => {\n const record = data.find(\n (d) => d[groupDimensionName] === groupByItem && d[dimension.name] === axisItem,\n );\n return record ? Number(record[measure.name]) : 0;\n }),\n };\n });\n\n return {\n labels: axis,\n datasets,\n };\n};\n\nexport const getBarChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measures: Measure[];\n maxItems?: number;\n },\n theme: Theme = remarkableTheme,\n): ChartData<'bar'> => {\n if (!props.data) {\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n }\n\n const themeFormatter = getThemeFormatter(theme);\n const themeKey = getObjectStableKey(theme);\n const groupedData = groupTailAsOther(props.data, props.dimension, props.measures, props.maxItems);\n const chartColors = getChartColors();\n\n return {\n labels: groupedData.map((item) => {\n return item[props.dimension.name];\n }),\n datasets: props.measures.map((measure, index) => {\n const backgroundColor = getColor(\n `${themeKey}.charts.backgroundColors`,\n measure.name,\n theme.charts.backgroundColors ?? chartColors,\n index,\n );\n\n const borderColor = getColor(\n `${themeKey}.charts.borderColors`,\n measure.name,\n theme.charts.borderColors ?? chartColors,\n index,\n );\n\n return {\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n data: groupedData.map((item) => item[measure.name] ?? 0),\n backgroundColor,\n borderColor,\n };\n }),\n };\n};\n\nconst getBarChartProDatalabelTotalFormatter = (\n context: Context,\n formatter: (value: number) => string,\n) => {\n const { datasets } = context.chart.data;\n const i = context.dataIndex;\n\n const total = datasets.reduce((sum, ds) => {\n const val = ds.data[i] as number;\n return sum + (val || 0);\n }, 0);\n\n return formatter(total);\n};\n\nexport const getBarChartProOptions = (\n options: {\n onBarClicked: (args: {\n axisDimensionValue: string | null;\n groupingDimensionValue: string | null;\n }) => void;\n measures: Measure[];\n dimension: Dimension;\n horizontal: boolean;\n data: ChartData<'bar'>;\n },\n theme: Theme,\n): Partial<ChartOptions<'bar'>> => {\n const { onBarClicked, measures, dimension, horizontal, data } = options;\n\n const themeFormatter = getThemeFormatter(theme);\n return {\n plugins: {\n legend: { position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n labels: {\n total: {\n formatter: (_value: string | number, context: Context) =>\n getBarChartProDatalabelTotalFormatter(context, (value: number) =>\n themeFormatter.data(measures[0]!, value),\n ),\n },\n value: {\n formatter: (value: string | number, context) => {\n const measure = measures[context.datasetIndex % measures.length]!;\n return themeFormatter.data(measure, value);\n },\n },\n },\n },\n tooltip: {\n callbacks: {\n title: (context) => {\n const label = context[0]?.label;\n return themeFormatter.data(dimension, label);\n },\n label: (context) => {\n const measure = measures[context.datasetIndex % measures.length]!;\n const raw = context.raw as number;\n return `${themeFormatter.data(dimension, context.dataset.label) || ''}: ${themeFormatter.data(measure, raw)}`;\n },\n },\n },\n },\n scales: {\n x: {\n ticks: {\n callback: (value) => {\n if (horizontal) {\n return themeFormatter.data(measures[0]!, value);\n }\n\n if (!data || !data.labels) return undefined;\n\n const label = data.labels[Number(value)] as string;\n\n return themeFormatter.data(dimension, label);\n },\n },\n },\n y: {\n ticks: {\n callback: (value) => {\n if (!horizontal) {\n return themeFormatter.data(measures[0]!, value);\n }\n if (!data || !data.labels) return undefined;\n const label = data.labels[Number(value)] as string;\n return themeFormatter.data(dimension, label);\n },\n },\n },\n },\n onClick: (_event, elements, chart) => {\n const element = elements[0];\n const axisDimensionValue = (element ? chart.data.labels![element.index] : null) as\n | string\n | null;\n const groupingDimensionValue = (\n element\n ? (chart.data.datasets[element.datasetIndex] as { rawLabel?: string | null })?.rawLabel\n : null\n ) as string | null;\n\n onBarClicked({\n axisDimensionValue,\n groupingDimensionValue,\n });\n },\n };\n};\n"],"names":["getBarStackedChartProData","props","theme","themeFormatter","getThemeFormatter","data","dimension","groupDimension","measure","axis","d","groupDimensionName","_a","groupBy","themeKey","getObjectStableKey","chartContrastColors","getChartContrastColors","datasets","groupByItem","index","backgroundColor","getColor","borderColor","axisItem","record","getBarChartProData","remarkableTheme","groupedData","groupTailAsOther","chartColors","getChartColors","item","getBarChartProDatalabelTotalFormatter","context","formatter","i","total","sum","ds","val","getBarChartProOptions","options","onBarClicked","measures","horizontal","_value","value","label","raw","_event","elements","chart","element","axisDimensionValue","groupingDimensionValue"],"mappings":";;;;AAWO,MAAMA,IAA4B,CACvCC,GAMAC,MACqB;;AACrB,QAAMC,IAAiBC,EAAkBF,CAAK,GACxC,EAAE,MAAAG,IAAO,CAAA,GAAI,WAAAC,GAAW,gBAAAC,GAAgB,SAAAC,MAAYP,GAEpDQ,IAAO,CAAC,GAAG,IAAI,IAAIJ,EAAK,IAAI,CAACK,MAAMA,EAAEJ,EAAU,IAAI,CAAC,EAAE,OAAO,CAACI,MAAMA,KAAK,IAAI,CAAC,CAAC,EAAE,KAAA,GACjFC,IAAqB,GAAGJ,EAAe,IAAI,IAAGK,IAAAL,EAAe,WAAf,QAAAK,EAAuB,cAAc,IAAIL,EAAe,OAAO,WAAW,KAAK,EAAE,IAC/HM,IAAU,CAAC,GAAG,IAAI,IAAIR,EAAK,IAAI,CAACK,MAAMA,EAAEC,CAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,CAACD,MAAMA,KAAK,IAAI,GAEtFI,IAAWC,EAAmBb,CAAK,GACnCc,IAAsBC,EAAA,GACtBC,IAAWL,EAAQ,IAAI,CAACM,GAAaC,MAAU;AACnD,UAAMC,IAAkBC;AAAA,MACtB,GAAGR,CAAQ;AAAA,MACX,GAAGP,EAAe,IAAI,IAAIY,CAAW;AAAA,MACrCjB,EAAM,OAAO,oBAAoBc;AAAA,MACjCI;AAAA,IAAA,GAGIG,IAAcD;AAAA,MAClB,GAAGR,CAAQ;AAAA,MACX,GAAGP,EAAe,IAAI,IAAIY,CAAW;AAAA,MACrCjB,EAAM,OAAO,gBAAgBc;AAAA,MAC7BI;AAAA,IAAA;AAGF,WAAO;AAAA,MACL,OAAOjB,EAAe,KAAKI,GAAgBY,CAAW;AAAA,MACtD,UAAUA;AAAA,MACV,iBAAAE;AAAA,MACA,aAAAE;AAAA,MACA,MAAMd,EAAK,IAAI,CAACe,MAAa;AAC3B,cAAMC,IAASpB,EAAK;AAAA,UAClB,CAACK,MAAMA,EAAEC,CAAkB,MAAMQ,KAAeT,EAAEJ,EAAU,IAAI,MAAMkB;AAAA,QAAA;AAExE,eAAOC,IAAS,OAAOA,EAAOjB,EAAQ,IAAI,CAAC,IAAI;AAAA,MACjD,CAAC;AAAA,IAAA;AAAA,EAEL,CAAC;AAED,SAAO;AAAA,IACL,QAAQC;AAAA,IACR,UAAAS;AAAA,EAAA;AAEJ,GAEaQ,IAAqB,CAChCzB,GAMAC,IAAeyB,MACM;AACrB,MAAI,CAAC1B,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAI3B,QAAME,IAAiBC,EAAkBF,CAAK,GACxCY,IAAWC,EAAmBb,CAAK,GACnC0B,IAAcC,EAAiB5B,EAAM,MAAMA,EAAM,WAAWA,EAAM,UAAUA,EAAM,QAAQ,GAC1F6B,IAAcC,EAAA;AAEpB,SAAO;AAAA,IACL,QAAQH,EAAY,IAAI,CAACI,MAChBA,EAAK/B,EAAM,UAAU,IAAI,CACjC;AAAA,IACD,UAAUA,EAAM,SAAS,IAAI,CAACO,GAASY,MAAU;AAC/C,YAAMC,IAAkBC;AAAA,QACtB,GAAGR,CAAQ;AAAA,QACXN,EAAQ;AAAA,QACRN,EAAM,OAAO,oBAAoB4B;AAAA,QACjCV;AAAA,MAAA,GAGIG,IAAcD;AAAA,QAClB,GAAGR,CAAQ;AAAA,QACXN,EAAQ;AAAA,QACRN,EAAM,OAAO,gBAAgB4B;AAAA,QAC7BV;AAAA,MAAA;AAGF,aAAO;AAAA,QACL,OAAOjB,EAAe,wBAAwBK,CAAO;AAAA,QACrD,MAAMoB,EAAY,IAAI,CAACI,MAASA,EAAKxB,EAAQ,IAAI,KAAK,CAAC;AAAA,QACvD,iBAAAa;AAAA,QACA,aAAAE;AAAA,MAAA;AAAA,IAEJ,CAAC;AAAA,EAAA;AAEL,GAEMU,IAAwC,CAC5CC,GACAC,MACG;AACH,QAAM,EAAE,UAAAjB,EAAA,IAAagB,EAAQ,MAAM,MAC7BE,IAAIF,EAAQ,WAEZG,IAAQnB,EAAS,OAAO,CAACoB,GAAKC,MAAO;AACzC,UAAMC,IAAMD,EAAG,KAAKH,CAAC;AACrB,WAAOE,KAAOE,KAAO;AAAA,EACvB,GAAG,CAAC;AAEJ,SAAOL,EAAUE,CAAK;AACxB,GAEaI,IAAwB,CACnCC,GAUAxC,MACiC;AACjC,QAAM,EAAE,cAAAyC,GAAc,UAAAC,GAAU,WAAAtC,GAAW,YAAAuC,GAAY,MAAAxC,MAASqC,GAE1DvC,IAAiBC,EAAkBF,CAAK;AAC9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,UAAUA,EAAM,OAAO,kBAAkB,SAAA;AAAA,MACnD,YAAY;AAAA,QACV,QAAQ;AAAA,UACN,OAAO;AAAA,YACL,WAAW,CAAC4C,GAAyBZ,MACnCD;AAAA,cAAsCC;AAAA,cAAS,CAACa,MAC9C5C,EAAe,KAAKyC,EAAS,CAAC,GAAIG,CAAK;AAAA,YAAA;AAAA,UACzC;AAAA,UAEJ,OAAO;AAAA,YACL,WAAW,CAACA,GAAwBb,MAAY;AAC9C,oBAAM1B,IAAUoC,EAASV,EAAQ,eAAeU,EAAS,MAAM;AAC/D,qBAAOzC,EAAe,KAAKK,GAASuC,CAAK;AAAA,YAC3C;AAAA,UAAA;AAAA,QACF;AAAA,MACF;AAAA,MAEF,SAAS;AAAA,QACP,WAAW;AAAA,UACT,OAAO,CAACb,MAAY;;AAClB,kBAAMc,KAAQpC,IAAAsB,EAAQ,CAAC,MAAT,gBAAAtB,EAAY;AAC1B,mBAAOT,EAAe,KAAKG,GAAW0C,CAAK;AAAA,UAC7C;AAAA,UACA,OAAO,CAACd,MAAY;AAClB,kBAAM1B,IAAUoC,EAASV,EAAQ,eAAeU,EAAS,MAAM,GACzDK,IAAMf,EAAQ;AACpB,mBAAO,GAAG/B,EAAe,KAAKG,GAAW4B,EAAQ,QAAQ,KAAK,KAAK,EAAE,KAAK/B,EAAe,KAAKK,GAASyC,CAAG,CAAC;AAAA,UAC7G;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,IAEF,QAAQ;AAAA,MACN,GAAG;AAAA,QACD,OAAO;AAAA,UACL,UAAU,CAACF,MAAU;AACnB,gBAAIF;AACF,qBAAO1C,EAAe,KAAKyC,EAAS,CAAC,GAAIG,CAAK;AAGhD,gBAAI,CAAC1C,KAAQ,CAACA,EAAK,OAAQ;AAE3B,kBAAM2C,IAAQ3C,EAAK,OAAO,OAAO0C,CAAK,CAAC;AAEvC,mBAAO5C,EAAe,KAAKG,GAAW0C,CAAK;AAAA,UAC7C;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,GAAG;AAAA,QACD,OAAO;AAAA,UACL,UAAU,CAACD,MAAU;AACnB,gBAAI,CAACF;AACH,qBAAO1C,EAAe,KAAKyC,EAAS,CAAC,GAAIG,CAAK;AAEhD,gBAAI,CAAC1C,KAAQ,CAACA,EAAK,OAAQ;AAC3B,kBAAM2C,IAAQ3C,EAAK,OAAO,OAAO0C,CAAK,CAAC;AACvC,mBAAO5C,EAAe,KAAKG,GAAW0C,CAAK;AAAA,UAC7C;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,IAEF,SAAS,CAACE,GAAQC,GAAUC,MAAU;;AACpC,YAAMC,IAAUF,EAAS,CAAC,GACpBG,IAAsBD,IAAUD,EAAM,KAAK,OAAQC,EAAQ,KAAK,IAAI,MAGpEE,IACJF,KACKzC,IAAAwC,EAAM,KAAK,SAASC,EAAQ,YAAY,MAAxC,gBAAAzC,EAA4E,WAC7E;AAGN,MAAA+B,EAAa;AAAA,QACX,oBAAAW;AAAA,QACA,wBAAAC;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA;AAEJ;"}
@@ -1,8 +1,8 @@
1
- import { E as is } from "./index-CK9V-wz1.js";
2
- import { a as ni, i as cn } from "./component.constants-Dhb2rtRh.js";
1
+ import { E as is } from "./index-D9A89MpZ.js";
2
+ import { a as ni, i as cn } from "./component.constants-DgkJze23.js";
3
3
  import { d as Ee, u as ai, g as ss } from "./utc-B2gCnkBk.js";
4
4
  import { i as ii, q as si } from "./quarterOfYear-wgcl4CRi.js";
5
- import { g as os } from "./formatter.utils-Bdp9Y-Lv.js";
5
+ import { g as os } from "./formatter.utils-XQ213825.js";
6
6
  var fs = {
7
7
  "--em-core-border-radius--000": "0px",
8
8
  "--em-core-border-radius--050": "2px",
@@ -86,15 +86,15 @@ var fs = {
86
86
  "--em-sem-background--neutral": "var(--em-core-color-gray--0000)",
87
87
  "--em-sem-background--subtle": "var(--em-core-color-gray--0200)",
88
88
  "--em-sem-chart-color--1": "rgb(255 84 0)",
89
- "--em-sem-chart-color--10": "rgb(255 238 230)",
90
- "--em-sem-chart-color--2": "rgb(255 102 26)",
91
- "--em-sem-chart-color--3": "rgb(255 119 51)",
92
- "--em-sem-chart-color--4": "rgb(255 136 77)",
93
- "--em-sem-chart-color--5": "rgb(255 153 102)",
94
- "--em-sem-chart-color--6": "rgb(255 170 128)",
95
- "--em-sem-chart-color--7": "rgb(255 187 153)",
96
- "--em-sem-chart-color--8": "rgb(255 204 179)",
97
- "--em-sem-chart-color--9": "rgb(255 221 204)",
89
+ "--em-sem-chart-color--10": "rgb(255 84 0 / 10%)",
90
+ "--em-sem-chart-color--2": "rgb(255 84 0 / 90%)",
91
+ "--em-sem-chart-color--3": "rgb(255 84 0 / 80%)",
92
+ "--em-sem-chart-color--4": "rgb(255 84 0 / 70%)",
93
+ "--em-sem-chart-color--5": "rgb(255 84 0 / 60%)",
94
+ "--em-sem-chart-color--6": "rgb(255 84 0 / 50%)",
95
+ "--em-sem-chart-color--7": "rgb(255 84 0 / 40%)",
96
+ "--em-sem-chart-color--8": "rgb(255 84 0 / 30%)",
97
+ "--em-sem-chart-color--9": "rgb(255 84 0 / 20%)",
98
98
  "--em-sem-status-error-background": "rgb(246 226 226)",
99
99
  "--em-sem-status-error-text": "rgb(188 16 16)",
100
100
  "--em-sem-status-success-background": "rgb(225 240 233)",
@@ -272,7 +272,7 @@ var fs = {
272
272
  "--em-ghostbutton-padding": "var(--em-core-spacing--0050)",
273
273
  "--em-kpichart-color": "var(--em-sem-text)",
274
274
  "--em-kpichart-font-family": "var(--em-core-font-family--base)",
275
- "--em-kpichart-gap": "var(--em-core-spacing--0600)",
275
+ "--em-kpichart-gap": "var(--em-core-spacing--0400)",
276
276
  "--em-kpichart-label-font-size": "var(--em-core-font-size--sm)",
277
277
  "--em-kpichart-label-font-weight": "var(--em-core-font-weight--regular)",
278
278
  "--em-kpichart-label-gap": "var(--em-core-spacing--0200)",
@@ -321,7 +321,7 @@ var fs = {
321
321
  "--em-selectfield-content-opacity--loading": "0.5",
322
322
  "--em-selectfield-content-padding": "var(--em-core-spacing--0200)",
323
323
  "--em-selectfield-content-shadow-blur": "var(--em-core-shadow-blur)",
324
- "--em-selectfield-content-shadow-color": "var(--em-core-shadow-color)",
324
+ "--em-selectfield-content-shadow-color": "rgb(33 33 41 / 25%)",
325
325
  "--em-selectfield-content-shadow-position-x": "var(--em-core-shadow-position-x)",
326
326
  "--em-selectfield-content-shadow-position-y": "var(--em-core-shadow-position-y)",
327
327
  "--em-selectfield-content-shadow-spread": "var(--em-core-shadow-spread)",
@@ -478,6 +478,10 @@ const us = {
478
478
  },
479
479
  pivotTable: {
480
480
  total: "Total"
481
+ },
482
+ kpiChart: {
483
+ noPreviousData: "No previous data",
484
+ equalComparison: "No change"
481
485
  }
482
486
  },
483
487
  editors: {
@@ -531,6 +535,10 @@ const us = {
531
535
  },
532
536
  pivotTable: {
533
537
  total: "Gesamt"
538
+ },
539
+ kpiChart: {
540
+ noPreviousData: "Keine vorherigen Daten",
541
+ equalComparison: "Keine Veränderung"
534
542
  }
535
543
  },
536
544
  editors: {
@@ -17211,4 +17219,4 @@ export {
17211
17219
  zm as g,
17212
17220
  Hm as r
17213
17221
  };
17214
- //# sourceMappingURL=charts.utils-DvG9esg1.js.map
17222
+ //# sourceMappingURL=charts.utils-Iko6Kzy0.js.map