@embeddable.com/remarkable-ui 1.0.4 → 1.0.5

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 (69) 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-DE8akLvk.js → ChartCard-BzLW_64B.js} +15 -15
  8. package/dist/{ChartCard-DE8akLvk.js.map → ChartCard-BzLW_64B.js.map} +1 -1
  9. package/dist/{ComparisonPeriod.type.emb-Dlysd_iF.js → ComparisonPeriod.type.emb-D0_AP_PM.js} +2 -2
  10. package/dist/{ComparisonPeriod.type.emb-Dlysd_iF.js.map → ComparisonPeriod.type.emb-D0_AP_PM.js.map} +1 -1
  11. package/dist/ComparisonPeriodSelectFieldPro.js +4 -4
  12. package/dist/DateRangeSelectFieldPro.js +2 -2
  13. package/dist/DonutChartPro.js +2 -2
  14. package/dist/DonutLabelChartPro.js +2 -2
  15. package/dist/{EditorCard-ncOGVWah.js → EditorCard-BLudeyiZ.js} +8 -8
  16. package/dist/{EditorCard-ncOGVWah.js.map → EditorCard-BLudeyiZ.js.map} +1 -1
  17. package/dist/{HeatMap-DvjtDRTL.js → HeatMap-HTlj76CN.js} +7 -7
  18. package/dist/{HeatMap-DvjtDRTL.js.map → HeatMap-HTlj76CN.js.map} +1 -1
  19. package/dist/HeatMapPro.js +4 -4
  20. package/dist/{KpiChart-B9tgnF4B.js → KpiChart-DWnEF3iA.js} +2 -2
  21. package/dist/{KpiChart-B9tgnF4B.js.map → KpiChart-DWnEF3iA.js.map} +1 -1
  22. package/dist/KpiChartNumberComparisonPro.js +6 -6
  23. package/dist/KpiChartNumberPro.js +4 -4
  24. package/dist/LineChartComparisonDefaultPro.js +11 -11
  25. package/dist/LineChartComparisonDefaultPro.js.map +1 -1
  26. package/dist/LineChartDefaultPro.js +3 -3
  27. package/dist/LineChartGroupedPro.js +3 -3
  28. package/dist/MultiSelectFieldPro.js +2 -2
  29. package/dist/PieChartPro.js +2 -2
  30. package/dist/{PivotTable-UDo7378U.js → PivotTable-Diy2xzoH.js} +2 -2
  31. package/dist/{PivotTable-UDo7378U.js.map → PivotTable-Diy2xzoH.js.map} +1 -1
  32. package/dist/PivotTablePro.js +4 -4
  33. package/dist/{SingleSelectField-BTpa_tLg.js → SingleSelectField-CX2hEN0u.js} +3 -3
  34. package/dist/{SingleSelectField-BTpa_tLg.js.map → SingleSelectField-CX2hEN0u.js.map} +1 -1
  35. package/dist/SingleSelectFieldPro.js +2 -2
  36. package/dist/TableChartPaginated.js +3 -3
  37. package/dist/{bars.utils-DLuq19zt.js → bars.utils-CAMiF7iA.js} +4 -4
  38. package/dist/{bars.utils-DLuq19zt.js.map → bars.utils-CAMiF7iA.js.map} +1 -1
  39. package/dist/{charts.utils-VLkuIHmS.js → charts.utils-Cw4SeX2m.js} +3 -3
  40. package/dist/{charts.utils-VLkuIHmS.js.map → charts.utils-Cw4SeX2m.js.map} +1 -1
  41. package/dist/{component.constants-BfTb5vNm.js → component.constants-B5vygi6l.js} +596 -589
  42. package/dist/{component.constants-BfTb5vNm.js.map → component.constants-B5vygi6l.js.map} +1 -1
  43. package/dist/embeddable-components.json +10 -10
  44. package/dist/{formatter.utils-Dza9buQ8.js → formatter.utils-N2gk49ys.js} +2 -2
  45. package/dist/{formatter.utils-Dza9buQ8.js.map → formatter.utils-N2gk49ys.js.map} +1 -1
  46. package/dist/{index-CHbc8CTj.js → index-BKkfcfXT.js} +4 -4
  47. package/dist/{index-CHbc8CTj.js.map → index-BKkfcfXT.js.map} +1 -1
  48. package/dist/{index-DiSLIUsa.js → index-BOcQ7e6Q.js} +5 -5
  49. package/dist/{index-DiSLIUsa.js.map → index-BOcQ7e6Q.js.map} +1 -1
  50. package/dist/{index-Cvk5RTZT.js → index-DhfbSAKi.js} +4 -4
  51. package/dist/{index-Cvk5RTZT.js.map → index-DhfbSAKi.js.map} +1 -1
  52. package/dist/{index-DTedizV6.js → index-Dwe8JLUr.js} +5 -5
  53. package/dist/{index-DTedizV6.js.map → index-Dwe8JLUr.js.map} +1 -1
  54. package/dist/{index-Bv_AzW89.js → index-Jm7acUco.js} +4 -4
  55. package/dist/{index-Bv_AzW89.js.map → index-Jm7acUco.js.map} +1 -1
  56. package/dist/{index-9-Jj7smT.js → index-_mthkdMa.js} +4 -4
  57. package/dist/{index-9-Jj7smT.js.map → index-_mthkdMa.js.map} +1 -1
  58. package/dist/index.js +155 -148
  59. package/dist/{pies.utils-BZEnXtqg.js → pies.utils-E8f3Hj1h.js} +4 -4
  60. package/dist/{pies.utils-BZEnXtqg.js.map → pies.utils-E8f3Hj1h.js.map} +1 -1
  61. package/dist/remarkable-ui/components/charts/chartjs.cartesian.constants.d.ts +5 -5
  62. package/dist/remarkable-ui/components/charts/chartjs.cartesian.constants.d.ts.map +1 -1
  63. package/dist/remarkable-ui/components/charts/chartjs.constants.d.ts +1 -1
  64. package/dist/remarkable-ui/components/charts/chartjs.constants.d.ts.map +1 -1
  65. package/dist/remarkable-ui/index.d.ts +1 -1
  66. package/dist/remarkable-ui/index.d.ts.map +1 -1
  67. package/dist/{timeRange.utils-Yy_Z93Kv.js → timeRange.utils-DuutFoIE.js} +2 -2
  68. package/dist/{timeRange.utils-Yy_Z93Kv.js.map → timeRange.utils-DuutFoIE.js.map} +1 -1
  69. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as i } from "@embeddable.com/react";
2
- import { d as s, z as r, t as d, c as m, a1 as c, V as n, o as u } from "./component.constants-BfTb5vNm.js";
3
- import { M as p, S as g } from "./index-DTedizV6.js";
2
+ import { d as s, z as r, t as d, c as m, a1 as c, V as n, o as u } from "./component.constants-B5vygi6l.js";
3
+ import { M as p, S as g } from "./index-Dwe8JLUr.js";
4
4
  const f = {
5
5
  name: "SingleSelectFieldPro",
6
6
  label: "Single Select Field",
@@ -1,9 +1,9 @@
1
- import { U as T, K as d, i as B, r as U, j as x, W as _, F as G, X as q, d as K, Y as C, Z as X, _ as Y, t as Z, c as $, I as J, R as Q, A as O, $ as ee, V as ne, o as H, m as ae } from "./component.constants-BfTb5vNm.js";
1
+ import { U as T, K as d, i as B, r as U, j as x, W as _, F as G, X as q, d as K, Y as C, Z as X, _ as Y, t as Z, c as $, I as J, R as Q, A as O, $ as ee, V as ne, o as H, m as ae } from "./component.constants-B5vygi6l.js";
2
2
  import { useTheme as te, defineComponent as ie } from "@embeddable.com/react";
3
- import { C as oe } from "./ChartCard-DE8akLvk.js";
3
+ import { C as oe } from "./ChartCard-BzLW_64B.js";
4
4
  import { useState as D, useRef as L, useLayoutEffect as se, useCallback as re, useEffect as b } from "react";
5
5
  import { u as le, a as ce } from "./useDebounce.hook-DxiPFcz9.js";
6
- import { g as de } from "./formatter.utils-Dza9buQ8.js";
6
+ import { g as de } from "./formatter.utils-N2gk49ys.js";
7
7
  const ue = (e) => {
8
8
  const [n, t] = D(0), i = L(void 0);
9
9
  return se(() => {
@@ -1,7 +1,7 @@
1
- import { r as P, g as T } from "./charts.utils-VLkuIHmS.js";
2
- import { g as h } from "./formatter.utils-Dza9buQ8.js";
1
+ import { r as P, g as T } from "./charts.utils-Cw4SeX2m.js";
2
+ import { g as h } from "./formatter.utils-N2gk49ys.js";
3
3
  import { g as D, a as C } from "./object.utils-D_Zzon-H.js";
4
- import { D as $, E as p } from "./component.constants-BfTb5vNm.js";
4
+ import { D as $, E as p } from "./component.constants-B5vygi6l.js";
5
5
  import "react";
6
6
  const B = (n, l) => {
7
7
  var g;
@@ -143,4 +143,4 @@ export {
143
143
  B as b,
144
144
  L as g
145
145
  };
146
- //# sourceMappingURL=bars.utils-DLuq19zt.js.map
146
+ //# sourceMappingURL=bars.utils-CAMiF7iA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bars.utils-DLuq19zt.js","sources":["../src/remarkable-pro/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 { chartColors, chartContrastColors } from '../../../../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\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\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","datasets","groupByItem","index","backgroundColor","getColor","chartContrastColors","borderColor","axisItem","record","getBarChartProData","remarkableTheme","groupedData","groupTailAsOther","item","chartColors","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,GAEnCc,IAAWH,EAAQ,IAAI,CAACI,GAAaC,MAAU;AACnD,UAAMC,IAAkBC;AAAA,MACtB,GAAGN,CAAQ;AAAA,MACX,GAAGP,EAAe,IAAI,IAAIU,CAAW;AAAA,MACrCf,EAAM,OAAO,oBAAoBmB;AAAA,MACjCH;AAAA,IAAA,GAGII,IAAcF;AAAA,MAClB,GAAGN,CAAQ;AAAA,MACX,GAAGP,EAAe,IAAI,IAAIU,CAAW;AAAA,MACrCf,EAAM,OAAO,gBAAgBmB;AAAA,MAC7BH;AAAA,IAAA;AAGF,WAAO;AAAA,MACL,OAAOf,EAAe,KAAKI,GAAgBU,CAAW;AAAA,MACtD,UAAUA;AAAA,MACV,iBAAAE;AAAA,MACA,aAAAG;AAAA,MACA,MAAMb,EAAK,IAAI,CAACc,MAAa;AAC3B,cAAMC,IAASnB,EAAK;AAAA,UAClB,CAACK,MAAMA,EAAEC,CAAkB,MAAMM,KAAeP,EAAEJ,EAAU,IAAI,MAAMiB;AAAA,QAAA;AAExE,eAAOC,IAAS,OAAOA,EAAOhB,EAAQ,IAAI,CAAC,IAAI;AAAA,MACjD,CAAC;AAAA,IAAA;AAAA,EAEL,CAAC;AAED,SAAO;AAAA,IACL,QAAQC;AAAA,IACR,UAAAO;AAAA,EAAA;AAEJ,GAEaS,IAAqB,CAChCxB,GAMAC,IAAewB,MACM;AACrB,MAAI,CAACzB,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,GACnCyB,IAAcC,EAAiB3B,EAAM,MAAMA,EAAM,WAAWA,EAAM,UAAUA,EAAM,QAAQ;AAEhG,SAAO;AAAA,IACL,QAAQ0B,EAAY,IAAI,CAACE,MAChBA,EAAK5B,EAAM,UAAU,IAAI,CACjC;AAAA,IACD,UAAUA,EAAM,SAAS,IAAI,CAACO,GAASU,MAAU;AAC/C,YAAMC,IAAkBC;AAAA,QACtB,GAAGN,CAAQ;AAAA,QACXN,EAAQ;AAAA,QACRN,EAAM,OAAO,oBAAoB4B;AAAA,QACjCZ;AAAA,MAAA,GAGII,IAAcF;AAAA,QAClB,GAAGN,CAAQ;AAAA,QACXN,EAAQ;AAAA,QACRN,EAAM,OAAO,gBAAgB4B;AAAA,QAC7BZ;AAAA,MAAA;AAGF,aAAO;AAAA,QACL,OAAOf,EAAe,wBAAwBK,CAAO;AAAA,QACrD,MAAMmB,EAAY,IAAI,CAACE,MAASA,EAAKrB,EAAQ,IAAI,KAAK,CAAC;AAAA,QACvD,iBAAAW;AAAA,QACA,aAAAG;AAAA,MAAA;AAAA,IAEJ,CAAC;AAAA,EAAA;AAEL,GAEMS,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,GAUAtC,MACiC;AACjC,QAAM,EAAE,cAAAuC,GAAc,UAAAC,GAAU,WAAApC,GAAW,YAAAqC,GAAY,MAAAtC,MAASmC,GAE1DrC,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,CAAC0C,GAAyBZ,MACnCD;AAAA,cAAsCC;AAAA,cAAS,CAACa,MAC9C1C,EAAe,KAAKuC,EAAS,CAAC,GAAIG,CAAK;AAAA,YAAA;AAAA,UACzC;AAAA,UAEJ,OAAO;AAAA,YACL,WAAW,CAACA,GAAwBb,MAAY;AAC9C,oBAAMxB,IAAUkC,EAASV,EAAQ,eAAeU,EAAS,MAAM;AAC/D,qBAAOvC,EAAe,KAAKK,GAASqC,CAAK;AAAA,YAC3C;AAAA,UAAA;AAAA,QACF;AAAA,MACF;AAAA,MAEF,SAAS;AAAA,QACP,WAAW;AAAA,UACT,OAAO,CAACb,MAAY;;AAClB,kBAAMc,KAAQlC,IAAAoB,EAAQ,CAAC,MAAT,gBAAApB,EAAY;AAC1B,mBAAOT,EAAe,KAAKG,GAAWwC,CAAK;AAAA,UAC7C;AAAA,UACA,OAAO,CAACd,MAAY;AAClB,kBAAMxB,IAAUkC,EAASV,EAAQ,eAAeU,EAAS,MAAM,GACzDK,IAAMf,EAAQ;AACpB,mBAAO,GAAG7B,EAAe,KAAKG,GAAW0B,EAAQ,QAAQ,KAAK,KAAK,EAAE,KAAK7B,EAAe,KAAKK,GAASuC,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,qBAAOxC,EAAe,KAAKuC,EAAS,CAAC,GAAIG,CAAK;AAGhD,gBAAI,CAACxC,KAAQ,CAACA,EAAK,OAAQ;AAE3B,kBAAMyC,IAAQzC,EAAK,OAAO,OAAOwC,CAAK,CAAC;AAEvC,mBAAO1C,EAAe,KAAKG,GAAWwC,CAAK;AAAA,UAC7C;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,GAAG;AAAA,QACD,OAAO;AAAA,UACL,UAAU,CAACD,MAAU;AACnB,gBAAI,CAACF;AACH,qBAAOxC,EAAe,KAAKuC,EAAS,CAAC,GAAIG,CAAK;AAEhD,gBAAI,CAACxC,KAAQ,CAACA,EAAK,OAAQ;AAC3B,kBAAMyC,IAAQzC,EAAK,OAAO,OAAOwC,CAAK,CAAC;AACvC,mBAAO1C,EAAe,KAAKG,GAAWwC,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,KACKvC,IAAAsC,EAAM,KAAK,SAASC,EAAQ,YAAY,MAAxC,gBAAAvC,EAA4E,WAC7E;AAGN,MAAA6B,EAAa;AAAA,QACX,oBAAAW;AAAA,QACA,wBAAAC;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"bars.utils-CAMiF7iA.js","sources":["../src/remarkable-pro/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 { chartColors, chartContrastColors } from '../../../../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\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\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","datasets","groupByItem","index","backgroundColor","getColor","chartContrastColors","borderColor","axisItem","record","getBarChartProData","remarkableTheme","groupedData","groupTailAsOther","item","chartColors","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,6 +1,6 @@
1
- import { i as ni, aH as is, F as cn } from "./component.constants-BfTb5vNm.js";
1
+ import { i as ni, aO as is, F as cn } from "./component.constants-B5vygi6l.js";
2
2
  import { g as ss, d as Ee, u as ai } from "./utc-B2gCnkBk.js";
3
- import { g as os } from "./formatter.utils-Dza9buQ8.js";
3
+ import { g as os } from "./formatter.utils-N2gk49ys.js";
4
4
  import { i as ii, q as si } from "./quarterOfYear-C0maIilJ.js";
5
5
  const fs = {
6
6
  "--em-actionicon-background": "var(--em-sem-background--light)",
@@ -17225,4 +17225,4 @@ export {
17225
17225
  Hm as r,
17226
17226
  us as s
17227
17227
  };
17228
- //# sourceMappingURL=charts.utils-VLkuIHmS.js.map
17228
+ //# sourceMappingURL=charts.utils-Cw4SeX2m.js.map