@embeddable.com/remarkable-pro 0.0.14 → 0.0.15

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 (128) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +24 -24
  2. package/dist/BarChartDefaultHorizontalPro.js.map +1 -1
  3. package/dist/BarChartDefaultPro.js +24 -24
  4. package/dist/BarChartDefaultPro.js.map +1 -1
  5. package/dist/BarChartGroupedHorizontalPro.js +27 -27
  6. package/dist/BarChartGroupedHorizontalPro.js.map +1 -1
  7. package/dist/BarChartGroupedPro.js +33 -33
  8. package/dist/BarChartGroupedPro.js.map +1 -1
  9. package/dist/BarChartStackedHorizontalPro.js +28 -28
  10. package/dist/BarChartStackedHorizontalPro.js.map +1 -1
  11. package/dist/BarChartStackedPro.js +27 -27
  12. package/dist/BarChartStackedPro.js.map +1 -1
  13. package/dist/{ChartCard-DaUtlchs.js → ChartCard-BEIVgW77.js} +3 -3
  14. package/dist/{ChartCard-DaUtlchs.js.map → ChartCard-BEIVgW77.js.map} +1 -1
  15. package/dist/{index-BIiign0L.js → Color.type.emb-ByiNbaI7.js} +7355 -7348
  16. package/dist/Color.type.emb-ByiNbaI7.js.map +1 -0
  17. package/dist/ColorEditor.js +10 -11
  18. package/dist/ColorEditor.js.map +1 -1
  19. package/dist/ComparisonPeriodSelectFieldPro.js +19 -22
  20. package/dist/ComparisonPeriodSelectFieldPro.js.map +1 -1
  21. package/dist/DateRangePickerCustomPro.js +29 -28
  22. package/dist/DateRangePickerCustomPro.js.map +1 -1
  23. package/dist/DateRangeSelectFieldPro.js +23 -21
  24. package/dist/DateRangeSelectFieldPro.js.map +1 -1
  25. package/dist/DonutChartPro.js +24 -24
  26. package/dist/DonutChartPro.js.map +1 -1
  27. package/dist/DonutLabelChartPro.js +29 -30
  28. package/dist/DonutLabelChartPro.js.map +1 -1
  29. package/dist/{EditorCard-DXQeyo3r.js → EditorCard-NEIuygkP.js} +10 -10
  30. package/dist/{EditorCard-DXQeyo3r.js.map → EditorCard-NEIuygkP.js.map} +1 -1
  31. package/dist/HeatMapPro.js +46 -45
  32. package/dist/HeatMapPro.js.map +1 -1
  33. package/dist/KpiChartNumberComparisonPro.js +32 -31
  34. package/dist/KpiChartNumberComparisonPro.js.map +1 -1
  35. package/dist/KpiChartNumberPro.js +14 -20
  36. package/dist/KpiChartNumberPro.js.map +1 -1
  37. package/dist/LineChartComparisonDefaultPro.js +61 -60
  38. package/dist/LineChartComparisonDefaultPro.js.map +1 -1
  39. package/dist/LineChartDefaultPro.js +46 -38
  40. package/dist/LineChartDefaultPro.js.map +1 -1
  41. package/dist/LineChartGroupedPro.js +47 -36
  42. package/dist/LineChartGroupedPro.js.map +1 -1
  43. package/dist/MultiSelectFieldPro.js +24 -27
  44. package/dist/MultiSelectFieldPro.js.map +1 -1
  45. package/dist/PieChartPro.js +24 -24
  46. package/dist/PieChartPro.js.map +1 -1
  47. package/dist/PivotTablePro.js +31 -29
  48. package/dist/PivotTablePro.js.map +1 -1
  49. package/dist/SingleSelectFieldPro.js +24 -24
  50. package/dist/SingleSelectFieldPro.js.map +1 -1
  51. package/dist/TableChartPaginated.js +43 -37
  52. package/dist/TableChartPaginated.js.map +1 -1
  53. package/dist/{bars.utils-BOaMUmRC.js → bars.utils-D12lq8bm.js} +4 -4
  54. package/dist/{bars.utils-BOaMUmRC.js.map → bars.utils-D12lq8bm.js.map} +1 -1
  55. package/dist/{charts.utils-QEdmPKTi.js → charts.utils-Bq6c6ccK.js} +4 -4
  56. package/dist/{charts.utils-QEdmPKTi.js.map → charts.utils-Bq6c6ccK.js.map} +1 -1
  57. package/dist/{component.constants-DJqBv0qe.js → component.inputs.constants-FaX3B1CO.js} +416 -403
  58. package/dist/component.inputs.constants-FaX3B1CO.js.map +1 -0
  59. package/dist/components/charts/tables/HeatMapPro/index.d.ts +2 -2
  60. package/dist/components/charts/tables/HeatMapPro/index.d.ts.map +1 -1
  61. package/dist/components/component.inputs.constants.d.ts +309 -0
  62. package/dist/components/component.inputs.constants.d.ts.map +1 -0
  63. package/dist/components/component.subinputs.constants.d.ts +95 -0
  64. package/dist/components/component.subinputs.constants.d.ts.map +1 -0
  65. package/dist/embeddable-components.json +16 -16
  66. package/dist/{formatter.utils-BRMB8qAc.js → formatter.utils-IGbSBsIu.js} +2 -2
  67. package/dist/{formatter.utils-BRMB8qAc.js.map → formatter.utils-IGbSBsIu.js.map} +1 -1
  68. package/dist/{index-DD28i12d.js → index-B15C4kTf.js} +5 -5
  69. package/dist/{index-DD28i12d.js.map → index-B15C4kTf.js.map} +1 -1
  70. package/dist/{index-DlkwNVQ_.js → index-BDPQ_c46.js} +5 -5
  71. package/dist/{index-DlkwNVQ_.js.map → index-BDPQ_c46.js.map} +1 -1
  72. package/dist/{index-CnbSiVWn.js → index-BKcWHLSf.js} +5 -5
  73. package/dist/{index-CnbSiVWn.js.map → index-BKcWHLSf.js.map} +1 -1
  74. package/dist/{index-CrFZJTR2.js → index-BNFqHQr3.js} +6 -6
  75. package/dist/{index-CrFZJTR2.js.map → index-BNFqHQr3.js.map} +1 -1
  76. package/dist/{index-BqgkyNm8.js → index-BiTSd5Wd.js} +5 -5
  77. package/dist/index-BiTSd5Wd.js.map +1 -0
  78. package/dist/{index-QLS7PLnH.js → index-BjaJdNzu.js} +5 -5
  79. package/dist/{index-QLS7PLnH.js.map → index-BjaJdNzu.js.map} +1 -1
  80. package/dist/{index-BbypzboN.js → index-BzF8GFHy.js} +5 -5
  81. package/dist/{index-BbypzboN.js.map → index-BzF8GFHy.js.map} +1 -1
  82. package/dist/{index-CfpIN_sB.js → index-CQZhGtUT.js} +6 -6
  83. package/dist/{index-CfpIN_sB.js.map → index-CQZhGtUT.js.map} +1 -1
  84. package/dist/{index-BvAMg9p7.js → index-CR69kGQc.js} +5 -5
  85. package/dist/{index-BvAMg9p7.js.map → index-CR69kGQc.js.map} +1 -1
  86. package/dist/{index-BcipgJ0R.js → index-CdjbmThq.js} +5 -5
  87. package/dist/{index-BcipgJ0R.js.map → index-CdjbmThq.js.map} +1 -1
  88. package/dist/{index-Drxp0RBw.js → index-CwiND2Ct.js} +16 -16
  89. package/dist/{index-Drxp0RBw.js.map → index-CwiND2Ct.js.map} +1 -1
  90. package/dist/{index-DD5t0omh.js → index-DLCspqkx.js} +5 -5
  91. package/dist/{index-DD5t0omh.js.map → index-DLCspqkx.js.map} +1 -1
  92. package/dist/{index-fHVbX-W0.js → index-DNXqnRoE.js} +5 -5
  93. package/dist/{index-fHVbX-W0.js.map → index-DNXqnRoE.js.map} +1 -1
  94. package/dist/{index-9xeta4is.js → index-DRIH3L5J.js} +5 -5
  95. package/dist/{index-9xeta4is.js.map → index-DRIH3L5J.js.map} +1 -1
  96. package/dist/{index-BpTn16mw.js → index-DdeFtB5C.js} +22 -22
  97. package/dist/{index-BpTn16mw.js.map → index-DdeFtB5C.js.map} +1 -1
  98. package/dist/{index-DkbXF0dN.js → index-Dhj9KjfQ.js} +5 -5
  99. package/dist/{index-DkbXF0dN.js.map → index-Dhj9KjfQ.js.map} +1 -1
  100. package/dist/{index-CYfKRRhL.js → index-EAQjfjEJ.js} +16 -16
  101. package/dist/{index-CYfKRRhL.js.map → index-EAQjfjEJ.js.map} +1 -1
  102. package/dist/{index-CVv-xIyp.js → index-RHaWI3AH.js} +5 -5
  103. package/dist/{index-CVv-xIyp.js.map → index-RHaWI3AH.js.map} +1 -1
  104. package/dist/{index-Ba6ziHiQ.js → index-_fEx7Sbh.js} +4 -4
  105. package/dist/{index-Ba6ziHiQ.js.map → index-_fEx7Sbh.js.map} +1 -1
  106. package/dist/{index-DBFwmzJQ.js → index-hHVOyy6e.js} +11 -11
  107. package/dist/{index-DBFwmzJQ.js.map → index-hHVOyy6e.js.map} +1 -1
  108. package/dist/{index-Bege60LS.js → index-oK1pn0Vk.js} +5 -5
  109. package/dist/{index-Bege60LS.js.map → index-oK1pn0Vk.js.map} +1 -1
  110. package/dist/index.d.ts +1 -1
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +81 -131
  113. package/dist/index.js.map +1 -1
  114. package/dist/{pies.utils-P0szT8UT.js → pies.utils-C5DxeS68.js} +5 -5
  115. package/dist/{pies.utils-P0szT8UT.js.map → pies.utils-C5DxeS68.js.map} +1 -1
  116. package/dist/remarkable-pro.css +1 -1
  117. package/dist/{timeRange.utils-CgLgHA94.js → timeRange.utils-CTEHTF97.js} +2 -2
  118. package/dist/{timeRange.utils-CgLgHA94.js.map → timeRange.utils-CTEHTF97.js.map} +1 -1
  119. package/package.json +2 -2
  120. package/dist/Color.type.emb-DFhAaPXz.js +0 -9
  121. package/dist/Color.type.emb-DFhAaPXz.js.map +0 -1
  122. package/dist/ComparisonPeriod.type.emb-C-YdNTEB.js +0 -14
  123. package/dist/ComparisonPeriod.type.emb-C-YdNTEB.js.map +0 -1
  124. package/dist/component.constants-DJqBv0qe.js.map +0 -1
  125. package/dist/components/component.constants.d.ts +0 -324
  126. package/dist/components/component.constants.d.ts.map +0 -1
  127. package/dist/index-BIiign0L.js.map +0 -1
  128. package/dist/index-BqgkyNm8.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index-Ba6ziHiQ.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarTime.mjs","../src/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils.ts","../src/components/editors/ComparisonPeriodSelectFieldPro/index.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.36.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M18 18m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M15 3v4\", \"key\": \"svg-2\" }], [\"path\", { \"d\": \"M7 3v4\", \"key\": \"svg-3\" }], [\"path\", { \"d\": \"M3 11h16\", \"key\": \"svg-4\" }], [\"path\", { \"d\": \"M18 16.496v1.504l1 1\", \"key\": \"svg-5\" }]];\nconst IconCalendarTime = createReactComponent(\"outline\", \"calendar-time\", \"CalendarTime\", __iconNode);\n\nexport { __iconNode, IconCalendarTime as default };\n//# sourceMappingURL=IconCalendarTime.mjs.map\n","import { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { TimeRange } from '@embeddable.com/core';\nimport { ComparisonPeriodSelectFieldProOption } from './ComparisonPeriodSelectFieldPro.types';\nimport { resolveI18nString } from '../../component.utils';\nimport { getTimeRangeLabel } from '../dates/dates.utils';\n\n// Checks if the comparison period type is available in the embeddable types\nexport const isComparisonPeriodAvailable = (\n option: string | undefined,\n comparisonPeriodSelectFieldProOptions: ComparisonPeriodSelectFieldProOption[],\n): boolean => {\n return !option || comparisonPeriodSelectFieldProOptions.some((opt) => opt.value === option);\n};\n\nexport const getComparisonPeriodSelectFieldProOptions = (\n comparisonPeriodSelectFieldProOptions: ComparisonPeriodSelectFieldProOption[],\n toCompareTimeRange: TimeRange,\n): SelectListOptionProps[] => {\n return comparisonPeriodSelectFieldProOptions.map((option) => {\n return {\n rightLabel: toCompareTimeRange\n ? getTimeRangeLabel(option.getRange(toCompareTimeRange), option.dateFormat)\n : '',\n value: option.value,\n label: resolveI18nString(option.label),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport { useLoadDayjsLocale } from '../../../utils.ts/date.utils';\nimport { TimeRange } from '@embeddable.com/core';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { IconCalendarTime } from '@tabler/icons-react';\nimport { i18n, i18nSetup } from '../../../theme/i18n/i18n';\nimport {\n getComparisonPeriodSelectFieldProOptions,\n isComparisonPeriodAvailable,\n} from './ComparisonPeriodSelectFieldPro.utils';\nimport { useEffect, useMemo } from 'react';\nimport { getTimeRangeFromPresets } from '../dates/dates.utils';\n\ntype DateComparisonSelectFieldPro = {\n title?: string;\n description?: string;\n placeholder?: string;\n primaryDateRange?: TimeRange;\n comparisonPeriod?: string;\n onChange: (newComparisonPeriod?: string) => void;\n};\n\nconst DateComparisonSelectFieldPro = (props: DateComparisonSelectFieldPro) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { description, placeholder, title, comparisonPeriod, onChange } = resolveI18nProps(props);\n\n const comparisonPeriodOptions = theme.defaults.comparisonPeriodsOptions;\n\n const comparisonPeriodAvailable = useMemo(\n () => isComparisonPeriodAvailable(comparisonPeriod, comparisonPeriodOptions),\n [comparisonPeriod, comparisonPeriodOptions],\n );\n\n // If the current comparison period is not available, reset the field\n useEffect(() => {\n if (!comparisonPeriodAvailable) {\n onChange(undefined);\n }\n }, [comparisonPeriodAvailable, onChange]);\n\n const { dayjsLocaleReady } = useLoadDayjsLocale();\n\n // Obtain the actual range for the selected primaryDateRange\n const primaryDateRange = getTimeRangeFromPresets(\n props.primaryDateRange,\n theme.defaults.dateRangesOptions,\n );\n\n if (!dayjsLocaleReady) {\n return null;\n }\n\n const options = getComparisonPeriodSelectFieldProOptions(\n comparisonPeriodOptions,\n primaryDateRange,\n );\n\n return (\n <EditorCard title={title} subtitle={description}>\n <SingleSelectField\n startIcon={IconCalendarTime}\n clearable\n placeholder={placeholder}\n value={comparisonPeriodAvailable ? comparisonPeriod : undefined}\n onChange={onChange}\n options={options}\n noOptionsMessage={i18n.t('common.noOptionsAvailable')}\n />\n </EditorCard>\n );\n};\n\nexport default DateComparisonSelectFieldPro;\n"],"names":["__iconNode","IconCalendarTime","createReactComponent","isComparisonPeriodAvailable","option","comparisonPeriodSelectFieldProOptions","opt","getComparisonPeriodSelectFieldProOptions","toCompareTimeRange","getTimeRangeLabel","resolveI18nString","DateComparisonSelectFieldPro","props","theme","useTheme","i18nSetup","description","placeholder","title","comparisonPeriod","onChange","resolveI18nProps","comparisonPeriodOptions","comparisonPeriodAvailable","useMemo","useEffect","dayjsLocaleReady","useLoadDayjsLocale","primaryDateRange","getTimeRangeFromPresets","options","jsx","EditorCard","SingleSelectField","i18n"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAK,2EAA2E,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,4CAA4C,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,WAAW,KAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,GAAK,UAAU,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,YAAY,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,wBAAwB,KAAO,QAAO,CAAE,CAAC,GAC9YC,IAAmBC,EAAqB,WAAW,iBAAiB,gBAAgBF,CAAU,GCHvFG,IAA8B,CACzCC,GACAC,MAEO,CAACD,KAAUC,EAAsC,KAAK,CAACC,MAAQA,EAAI,UAAUF,CAAM,GAG/EG,IAA2C,CACtDF,GACAG,MAEOH,EAAsC,IAAI,CAACD,OACzC;AAAA,EACL,YAAYI,IACRC,EAAkBL,EAAO,SAASI,CAAkB,GAAGJ,EAAO,UAAU,IACxE;AAAA,EACJ,OAAOA,EAAO;AAAA,EACd,OAAOM,EAAkBN,EAAO,KAAK;AAAA,EAExC,GCDGO,IAA+B,CAACC,MAAwC;AAC5E,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,aAAAG,GAAa,aAAAC,GAAa,OAAAC,GAAO,kBAAAC,GAAkB,UAAAC,EAAA,IAAaC,EAAiBT,CAAK,GAExFU,IAA0BT,EAAM,SAAS,0BAEzCU,IAA4BC;AAAA,IAChC,MAAMrB,EAA4BgB,GAAkBG,CAAuB;AAAA,IAC3E,CAACH,GAAkBG,CAAuB;AAAA,EAAA;AAI5C,EAAAG,EAAU,MAAM;AACd,IAAKF,KACHH,EAAS,MAAS;AAAA,EAEtB,GAAG,CAACG,GAA2BH,CAAQ,CAAC;AAExC,QAAM,EAAE,kBAAAM,EAAA,IAAqBC,EAAA,GAGvBC,IAAmBC;AAAA,IACvBjB,EAAM;AAAA,IACNC,EAAM,SAAS;AAAA,EAAA;AAGjB,MAAI,CAACa;AACH,WAAO;AAGT,QAAMI,IAAUvB;AAAA,IACde;AAAA,IACAM;AAAA,EAAA;AAGF,SACEG,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAd,GAAc,UAAUF,GAClC,UAAAe,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAWhC;AAAA,MACX,WAAS;AAAA,MACT,aAAAgB;AAAA,MACA,OAAOM,IAA4BJ,IAAmB;AAAA,MACtD,UAAAC;AAAA,MACA,SAAAU;AAAA,MACA,kBAAkBI,EAAK,EAAE,2BAA2B;AAAA,IAAA;AAAA,EAAA,GAExD;AAEJ;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-_fEx7Sbh.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarTime.mjs","../src/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils.ts","../src/components/editors/ComparisonPeriodSelectFieldPro/index.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.36.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M18 18m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M15 3v4\", \"key\": \"svg-2\" }], [\"path\", { \"d\": \"M7 3v4\", \"key\": \"svg-3\" }], [\"path\", { \"d\": \"M3 11h16\", \"key\": \"svg-4\" }], [\"path\", { \"d\": \"M18 16.496v1.504l1 1\", \"key\": \"svg-5\" }]];\nconst IconCalendarTime = createReactComponent(\"outline\", \"calendar-time\", \"CalendarTime\", __iconNode);\n\nexport { __iconNode, IconCalendarTime as default };\n//# sourceMappingURL=IconCalendarTime.mjs.map\n","import { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { TimeRange } from '@embeddable.com/core';\nimport { ComparisonPeriodSelectFieldProOption } from './ComparisonPeriodSelectFieldPro.types';\nimport { resolveI18nString } from '../../component.utils';\nimport { getTimeRangeLabel } from '../dates/dates.utils';\n\n// Checks if the comparison period type is available in the embeddable types\nexport const isComparisonPeriodAvailable = (\n option: string | undefined,\n comparisonPeriodSelectFieldProOptions: ComparisonPeriodSelectFieldProOption[],\n): boolean => {\n return !option || comparisonPeriodSelectFieldProOptions.some((opt) => opt.value === option);\n};\n\nexport const getComparisonPeriodSelectFieldProOptions = (\n comparisonPeriodSelectFieldProOptions: ComparisonPeriodSelectFieldProOption[],\n toCompareTimeRange: TimeRange,\n): SelectListOptionProps[] => {\n return comparisonPeriodSelectFieldProOptions.map((option) => {\n return {\n rightLabel: toCompareTimeRange\n ? getTimeRangeLabel(option.getRange(toCompareTimeRange), option.dateFormat)\n : '',\n value: option.value,\n label: resolveI18nString(option.label),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport { useLoadDayjsLocale } from '../../../utils.ts/date.utils';\nimport { TimeRange } from '@embeddable.com/core';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { IconCalendarTime } from '@tabler/icons-react';\nimport { i18n, i18nSetup } from '../../../theme/i18n/i18n';\nimport {\n getComparisonPeriodSelectFieldProOptions,\n isComparisonPeriodAvailable,\n} from './ComparisonPeriodSelectFieldPro.utils';\nimport { useEffect, useMemo } from 'react';\nimport { getTimeRangeFromPresets } from '../dates/dates.utils';\n\ntype DateComparisonSelectFieldPro = {\n title?: string;\n description?: string;\n placeholder?: string;\n primaryDateRange?: TimeRange;\n comparisonPeriod?: string;\n onChange: (newComparisonPeriod?: string) => void;\n};\n\nconst DateComparisonSelectFieldPro = (props: DateComparisonSelectFieldPro) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { description, placeholder, title, comparisonPeriod, onChange } = resolveI18nProps(props);\n\n const comparisonPeriodOptions = theme.defaults.comparisonPeriodsOptions;\n\n const comparisonPeriodAvailable = useMemo(\n () => isComparisonPeriodAvailable(comparisonPeriod, comparisonPeriodOptions),\n [comparisonPeriod, comparisonPeriodOptions],\n );\n\n // If the current comparison period is not available, reset the field\n useEffect(() => {\n if (!comparisonPeriodAvailable) {\n onChange(undefined);\n }\n }, [comparisonPeriodAvailable, onChange]);\n\n const { dayjsLocaleReady } = useLoadDayjsLocale();\n\n // Obtain the actual range for the selected primaryDateRange\n const primaryDateRange = getTimeRangeFromPresets(\n props.primaryDateRange,\n theme.defaults.dateRangesOptions,\n );\n\n if (!dayjsLocaleReady) {\n return null;\n }\n\n const options = getComparisonPeriodSelectFieldProOptions(\n comparisonPeriodOptions,\n primaryDateRange,\n );\n\n return (\n <EditorCard title={title} subtitle={description}>\n <SingleSelectField\n startIcon={IconCalendarTime}\n clearable\n placeholder={placeholder}\n value={comparisonPeriodAvailable ? comparisonPeriod : undefined}\n onChange={onChange}\n options={options}\n noOptionsMessage={i18n.t('common.noOptionsAvailable')}\n />\n </EditorCard>\n );\n};\n\nexport default DateComparisonSelectFieldPro;\n"],"names":["__iconNode","IconCalendarTime","createReactComponent","isComparisonPeriodAvailable","option","comparisonPeriodSelectFieldProOptions","opt","getComparisonPeriodSelectFieldProOptions","toCompareTimeRange","getTimeRangeLabel","resolveI18nString","DateComparisonSelectFieldPro","props","theme","useTheme","i18nSetup","description","placeholder","title","comparisonPeriod","onChange","resolveI18nProps","comparisonPeriodOptions","comparisonPeriodAvailable","useMemo","useEffect","dayjsLocaleReady","useLoadDayjsLocale","primaryDateRange","getTimeRangeFromPresets","options","jsx","EditorCard","SingleSelectField","i18n"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAK,2EAA2E,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,4CAA4C,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,WAAW,KAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,GAAK,UAAU,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,YAAY,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,wBAAwB,KAAO,QAAO,CAAE,CAAC,GAC9YC,IAAmBC,EAAqB,WAAW,iBAAiB,gBAAgBF,CAAU,GCHvFG,IAA8B,CACzCC,GACAC,MAEO,CAACD,KAAUC,EAAsC,KAAK,CAACC,MAAQA,EAAI,UAAUF,CAAM,GAG/EG,IAA2C,CACtDF,GACAG,MAEOH,EAAsC,IAAI,CAACD,OACzC;AAAA,EACL,YAAYI,IACRC,EAAkBL,EAAO,SAASI,CAAkB,GAAGJ,EAAO,UAAU,IACxE;AAAA,EACJ,OAAOA,EAAO;AAAA,EACd,OAAOM,EAAkBN,EAAO,KAAK;AAAA,EAExC,GCDGO,IAA+B,CAACC,MAAwC;AAC5E,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,aAAAG,GAAa,aAAAC,GAAa,OAAAC,GAAO,kBAAAC,GAAkB,UAAAC,EAAA,IAAaC,EAAiBT,CAAK,GAExFU,IAA0BT,EAAM,SAAS,0BAEzCU,IAA4BC;AAAA,IAChC,MAAMrB,EAA4BgB,GAAkBG,CAAuB;AAAA,IAC3E,CAACH,GAAkBG,CAAuB;AAAA,EAAA;AAI5C,EAAAG,EAAU,MAAM;AACd,IAAKF,KACHH,EAAS,MAAS;AAAA,EAEtB,GAAG,CAACG,GAA2BH,CAAQ,CAAC;AAExC,QAAM,EAAE,kBAAAM,EAAA,IAAqBC,EAAA,GAGvBC,IAAmBC;AAAA,IACvBjB,EAAM;AAAA,IACNC,EAAM,SAAS;AAAA,EAAA;AAGjB,MAAI,CAACa;AACH,WAAO;AAGT,QAAMI,IAAUvB;AAAA,IACde;AAAA,IACAM;AAAA,EAAA;AAGF,SACEG,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAd,GAAc,UAAUF,GAClC,UAAAe,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAWhC;AAAA,MACX,WAAS;AAAA,MACT,aAAAgB;AAAA,MACA,OAAOM,IAA4BJ,IAAmB;AAAA,MACtD,UAAAC;AAAA,MACA,SAAAU;AAAA,MACA,kBAAkBI,EAAK,EAAE,2BAA2B;AAAA,IAAA;AAAA,EAAA,GAExD;AAEJ;;;;","x_google_ignoreList":[0]}
@@ -1,9 +1,9 @@
1
- import { T as x, e as r, u as C, k as F, n as W, j as H, o as G, p as U } from "./index-BIiign0L.js";
1
+ import { T as x, d as r, u as C, i as F, k as W, j as H, n as G, o as U } from "./Color.type.emb-ByiNbaI7.js";
2
2
  import { useTheme as V } from "@embeddable.com/react";
3
- import { a as q, r as B, i as J } from "./component.constants-DJqBv0qe.js";
4
- import { C as K } from "./ChartCard-DaUtlchs.js";
3
+ import { a as q, r as B, i as J } from "./component.inputs.constants-FaX3B1CO.js";
4
+ import { C as K } from "./ChartCard-BEIVgW77.js";
5
5
  import { useState as y, useRef as Q, useCallback as X, useEffect as g } from "react";
6
- import { g as Y } from "./formatter.utils-BRMB8qAc.js";
6
+ import { g as Y } from "./formatter.utils-IGbSBsIu.js";
7
7
  const Z = (e) => {
8
8
  var a;
9
9
  const t = (a = e.inputs) == null ? void 0 : a.align;
@@ -64,7 +64,7 @@ const ie = (e) => {
64
64
  state: d,
65
65
  setState: f,
66
66
  onRowClicked: v
67
- } = e, [w, T] = y(d.sort), L = M({ dimensionsAndMeasures: b, displayNullAs: j }, t), p = (l == null ? void 0 : l.data) || [], _ = O({ rows: p, clickDimension: D }), S = Q(null), { height: E } = C(S), u = F({
67
+ } = e, [w, T] = y(d.sort), L = M({ dimensionsAndMeasures: b, displayNullAs: j }, t), R = (l == null ? void 0 : l.data) || [], _ = O({ rows: R, clickDimension: D }), S = Q(null), { height: E } = C(S), u = F({
68
68
  availableHeight: E,
69
69
  headerHeight: te,
70
70
  rowHeight: ae,
@@ -86,16 +86,16 @@ const ie = (e) => {
86
86
  theme: t
87
87
  });
88
88
  }, z = (n) => {
89
- var k;
89
+ var p;
90
90
  if (!D) return;
91
- const h = (k = p[n]) == null ? void 0 : k[D.name];
91
+ const h = (p = R[n]) == null ? void 0 : p[D.name];
92
92
  v(h);
93
- }, R = W(o);
93
+ }, k = W(o);
94
94
  return g(() => {
95
95
  ee(d.sort, w) && T(d.sort);
96
96
  }, [d.sort]), g(() => {
97
- R({ sort: w });
98
- }, [w, R]), g(() => {
97
+ k({ sort: w });
98
+ }, [w, k]), g(() => {
99
99
  u && o({ pageSize: u });
100
100
  }, [u, o]), g(() => {
101
101
  f((n) => ({
@@ -158,4 +158,4 @@ export {
158
158
  Z as g,
159
159
  ue as i
160
160
  };
161
- //# sourceMappingURL=index-DBFwmzJQ.js.map
161
+ //# sourceMappingURL=index-hHVOyy6e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-DBFwmzJQ.js","sources":["../src/components/charts/tables/tables.utils.ts","../src/components/charts/tables/TableChartPaginated/index.tsx"],"sourcesContent":["import { DataResponse, Dimension, DimensionOrMeasure } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { CssSize } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport {\n getStyleNumber,\n TableHeaderAlign,\n TableHeaderItem,\n TableHeaderItemAlign,\n} from '@embeddable.com/remarkable-ui';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const getTableHeaderAlign = (dimOrMeas: DimensionOrMeasure): TableHeaderItemAlign => {\n const subInputAlign = dimOrMeas.inputs?.align;\n\n if (subInputAlign) return subInputAlign;\n\n // Get width by native type\n switch (dimOrMeas.nativeType) {\n case 'number':\n case 'boolean':\n case 'time':\n return TableHeaderAlign.RIGHT;\n default:\n return TableHeaderAlign.LEFT;\n }\n};\n\nexport const getTableHeaderMinWidth = (dimOrMeas: DimensionOrMeasure): CssSize => {\n const subInputWidth = dimOrMeas.inputs?.width;\n\n if (subInputWidth) return subInputWidth;\n\n // Get width by native type\n switch (dimOrMeas.nativeType) {\n case 'string':\n return getStyleNumber('--em-tablechart-min-width--string' as any, '8.75rem') as number;\n case 'number':\n return getStyleNumber('--em-tablechart-min-width--number' as any, '5.625rem') as number;\n case 'time':\n return getStyleNumber('--em-tablechart-min-width--time' as any, '8.75rem') as number;\n case 'boolean':\n default:\n return getStyleNumber('--em-tablechart-min-width--boolean' as any, '5.625rem') as number;\n }\n};\n\nexport const getTableHeaders = (\n props: {\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n },\n theme: Theme,\n): TableHeaderItem<any>[] => {\n const themeFormatter = getThemeFormatter(theme);\n return props.dimensionsAndMeasures.map((dimOrMeas) => ({\n id: dimOrMeas.name,\n title: themeFormatter.dimensionOrMeasureTitle(dimOrMeas),\n accessor: (row: any) => {\n if (row[dimOrMeas.name] == null) {\n return props.displayNullAs ?? '';\n }\n return themeFormatter.data(dimOrMeas, row[dimOrMeas.name]);\n },\n minWidth: getTableHeaderMinWidth(dimOrMeas),\n align: getTableHeaderAlign(dimOrMeas),\n }));\n};\n\nexport const getTableRows = (props: { clickDimension?: Dimension; rows: DataResponse['data'] }) => {\n if (!props.rows || props.rows.length === 0) {\n return [];\n }\n\n const clickDimensionName = props.clickDimension?.name;\n\n if (!clickDimensionName || Object.keys(props.rows[0]!).includes(clickDimensionName)) {\n return props.rows;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return props.rows.map(({ [clickDimensionName]: _, ...row }) => ({\n ...row,\n }));\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { DataResponse, Dimension, DimensionOrMeasure, OrderDirection } from '@embeddable.com/core';\nimport {\n getStyleNumber,\n getTableTotalPages,\n TablePaginated,\n useTableGetRowsPerPage,\n useDebounce,\n useResizeObserver,\n} from '@embeddable.com/remarkable-ui';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { getTableHeaders, getTableRows } from '../tables.utils';\nimport { ChartCardMenuOptionOnClickProps } from '../../../../theme/defaults/defaults.ChartCardMenu.constants';\n\nconst hasSortChanges = (\n sort: TableChartPaginatedProState['sort'],\n sortToCompare: TableChartPaginatedProState['sort'],\n): boolean => {\n const changed =\n sort?.id !== sortToCompare?.id ||\n sort?.direction !== sortToCompare?.direction ||\n (!sort && !!sortToCompare) ||\n (!!sort && !sortToCompare);\n\n return changed;\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nconst headerHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst rowHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst footerHeight = getStyleNumber('--em-tablechart-pagination-height', '3rem') as number;\n\nlet downloadData: (data: DataResponse['data']) => void;\n\nexport type TableChartPaginatedProOnRowClickArg = string | null;\nexport type TableChartPaginatedProState = {\n page: number;\n pageSize?: number;\n sort?: { id: string; direction: OrderDirection } | undefined;\n isLoadingDownloadData: boolean;\n hasTotalResults: boolean;\n};\n\ntype TableChartPaginatedProProps = {\n allResults?: DataResponse;\n clickDimension?: Dimension;\n description: string;\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n embeddableState: TableChartPaginatedProState;\n results: DataResponse;\n showIndex: boolean;\n state: TableChartPaginatedProState;\n title: string;\n totalResults?: DataResponse;\n onRowClicked: (rowDimensionValue: TableChartPaginatedProOnRowClickArg) => void;\n setState: React.Dispatch<React.SetStateAction<TableChartPaginatedProState>>;\n};\n\nconst TableChartPaginatedPro = (props: TableChartPaginatedProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const [isDownloadingData, setIsDownloadingData] = useState(false);\n\n const { description, title } = resolveI18nProps(props);\n const {\n totalResults,\n results,\n allResults,\n dimensionsAndMeasures,\n displayNullAs,\n showIndex,\n clickDimension,\n state,\n setState,\n onRowClicked,\n } = props;\n\n const [localSort, setLocalSort] = useState(state.sort);\n\n const headers = getTableHeaders({ dimensionsAndMeasures, displayNullAs }, theme);\n const rows = results?.data || [];\n const tableRows = getTableRows({ rows, clickDimension });\n const cardContentRef = useRef<HTMLDivElement>(null);\n const { height } = useResizeObserver(cardContentRef);\n const pageSize = useTableGetRowsPerPage({\n availableHeight: height,\n headerHeight,\n rowHeight,\n footerHeight,\n });\n\n // Stable updater for embeddable state\n const handleUpdateEmbeddableState = useCallback(\n (newState: Partial<TableChartPaginatedProState>) => {\n setState((prevState) => ({\n ...prevState,\n ...newState,\n }));\n },\n [setState],\n );\n\n const handleCustomDownload = (onDownload: (props: ChartCardMenuOptionOnClickProps) => void) => {\n setIsDownloadingData(true);\n handleUpdateEmbeddableState({ isLoadingDownloadData: true });\n\n downloadData = (data: DataResponse['data']) =>\n onDownload({\n title,\n data,\n dimensionsAndMeasures,\n containerRef: cardContentRef,\n theme,\n });\n };\n\n const handleRowIndexClick = (rowIndex: number) => {\n if (!clickDimension) return;\n\n const rowDimensionValue = rows[rowIndex]?.[clickDimension.name];\n onRowClicked(rowDimensionValue);\n };\n\n const debouncedUpdateState = useDebounce(handleUpdateEmbeddableState);\n\n // Sync local sort with embeddable state\n useEffect(() => {\n if (hasSortChanges(state.sort, localSort)) setLocalSort(state.sort);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.sort]);\n\n // Debounce sort updates to embeddable state\n useEffect(() => {\n debouncedUpdateState({ sort: localSort });\n }, [localSort, debouncedUpdateState]);\n\n // Sync page size changes to embeddable state\n useEffect(() => {\n if (pageSize) {\n handleUpdateEmbeddableState({ pageSize });\n }\n }, [pageSize, handleUpdateEmbeddableState]);\n\n // Sync total from results\n useEffect(() => {\n setState((prevState) => ({\n ...prevState,\n hasTotalResults: false,\n }));\n }, [dimensionsAndMeasures, pageSize]);\n\n useEffect(() => {\n if (totalResults?.total) {\n setState((prevState) => ({\n ...prevState,\n hasTotalResults: true,\n }));\n }\n }, [totalResults]);\n\n // Handle data download when allResults is ready\n useEffect(() => {\n if (isDownloadingData) {\n if (!allResults || allResults.isLoading) {\n // Loading data to download\n return;\n }\n\n downloadData(allResults.data);\n setIsDownloadingData(false);\n handleUpdateEmbeddableState({ isLoadingDownloadData: false });\n }\n }, [isDownloadingData, allResults, handleUpdateEmbeddableState]);\n\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n subtitle={description}\n data={results}\n dimensionsAndMeasures={dimensionsAndMeasures}\n errorMessage={results?.error}\n onCustomDownload={handleCustomDownload}\n >\n <TablePaginated\n onRowIndexClick={handleRowIndexClick}\n headers={headers}\n rows={tableRows}\n showIndex={showIndex}\n page={state.page}\n pageSize={pageSize}\n paginationLabel={i18n.t('charts.tablePaginated.pagination', {\n page: state.page + 1,\n totalPages: getTableTotalPages(totalResults?.total, pageSize) ?? '?',\n })}\n total={totalResults?.total}\n sort={localSort}\n onSortChange={(newSort) => {\n setLocalSort(newSort as TableChartPaginatedProState['sort']);\n }}\n onPageChange={(newPage) => handleUpdateEmbeddableState({ page: newPage })}\n />\n </ChartCard>\n );\n};\n\nexport default TableChartPaginatedPro;\n"],"names":["getTableHeaderAlign","dimOrMeas","subInputAlign","_a","TableHeaderAlign","getTableHeaderMinWidth","subInputWidth","getStyleNumber","getTableHeaders","props","theme","themeFormatter","getThemeFormatter","row","getTableRows","clickDimensionName","_","hasSortChanges","sort","sortToCompare","headerHeight","rowHeight","footerHeight","downloadData","TableChartPaginatedPro","useTheme","i18nSetup","isDownloadingData","setIsDownloadingData","useState","description","title","resolveI18nProps","totalResults","results","allResults","dimensionsAndMeasures","displayNullAs","showIndex","clickDimension","state","setState","onRowClicked","localSort","setLocalSort","headers","rows","tableRows","cardContentRef","useRef","height","useResizeObserver","pageSize","useTableGetRowsPerPage","handleUpdateEmbeddableState","useCallback","newState","prevState","handleCustomDownload","onDownload","data","handleRowIndexClick","rowIndex","rowDimensionValue","debouncedUpdateState","useDebounce","useEffect","jsx","ChartCard","TablePaginated","i18n","getTableTotalPages","newSort","newPage"],"mappings":"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"}
1
+ {"version":3,"file":"index-hHVOyy6e.js","sources":["../src/components/charts/tables/tables.utils.ts","../src/components/charts/tables/TableChartPaginated/index.tsx"],"sourcesContent":["import { DataResponse, Dimension, DimensionOrMeasure } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { CssSize } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport {\n getStyleNumber,\n TableHeaderAlign,\n TableHeaderItem,\n TableHeaderItemAlign,\n} from '@embeddable.com/remarkable-ui';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const getTableHeaderAlign = (dimOrMeas: DimensionOrMeasure): TableHeaderItemAlign => {\n const subInputAlign = dimOrMeas.inputs?.align;\n\n if (subInputAlign) return subInputAlign;\n\n // Get width by native type\n switch (dimOrMeas.nativeType) {\n case 'number':\n case 'boolean':\n case 'time':\n return TableHeaderAlign.RIGHT;\n default:\n return TableHeaderAlign.LEFT;\n }\n};\n\nexport const getTableHeaderMinWidth = (dimOrMeas: DimensionOrMeasure): CssSize => {\n const subInputWidth = dimOrMeas.inputs?.width;\n\n if (subInputWidth) return subInputWidth;\n\n // Get width by native type\n switch (dimOrMeas.nativeType) {\n case 'string':\n return getStyleNumber('--em-tablechart-min-width--string' as any, '8.75rem') as number;\n case 'number':\n return getStyleNumber('--em-tablechart-min-width--number' as any, '5.625rem') as number;\n case 'time':\n return getStyleNumber('--em-tablechart-min-width--time' as any, '8.75rem') as number;\n case 'boolean':\n default:\n return getStyleNumber('--em-tablechart-min-width--boolean' as any, '5.625rem') as number;\n }\n};\n\nexport const getTableHeaders = (\n props: {\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n },\n theme: Theme,\n): TableHeaderItem<any>[] => {\n const themeFormatter = getThemeFormatter(theme);\n return props.dimensionsAndMeasures.map((dimOrMeas) => ({\n id: dimOrMeas.name,\n title: themeFormatter.dimensionOrMeasureTitle(dimOrMeas),\n accessor: (row: any) => {\n if (row[dimOrMeas.name] == null) {\n return props.displayNullAs ?? '';\n }\n return themeFormatter.data(dimOrMeas, row[dimOrMeas.name]);\n },\n minWidth: getTableHeaderMinWidth(dimOrMeas),\n align: getTableHeaderAlign(dimOrMeas),\n }));\n};\n\nexport const getTableRows = (props: { clickDimension?: Dimension; rows: DataResponse['data'] }) => {\n if (!props.rows || props.rows.length === 0) {\n return [];\n }\n\n const clickDimensionName = props.clickDimension?.name;\n\n if (!clickDimensionName || Object.keys(props.rows[0]!).includes(clickDimensionName)) {\n return props.rows;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return props.rows.map(({ [clickDimensionName]: _, ...row }) => ({\n ...row,\n }));\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { DataResponse, Dimension, DimensionOrMeasure, OrderDirection } from '@embeddable.com/core';\nimport {\n getStyleNumber,\n getTableTotalPages,\n TablePaginated,\n useTableGetRowsPerPage,\n useDebounce,\n useResizeObserver,\n} from '@embeddable.com/remarkable-ui';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { getTableHeaders, getTableRows } from '../tables.utils';\nimport { ChartCardMenuOptionOnClickProps } from '../../../../theme/defaults/defaults.ChartCardMenu.constants';\n\nconst hasSortChanges = (\n sort: TableChartPaginatedProState['sort'],\n sortToCompare: TableChartPaginatedProState['sort'],\n): boolean => {\n const changed =\n sort?.id !== sortToCompare?.id ||\n sort?.direction !== sortToCompare?.direction ||\n (!sort && !!sortToCompare) ||\n (!!sort && !sortToCompare);\n\n return changed;\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nconst headerHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst rowHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst footerHeight = getStyleNumber('--em-tablechart-pagination-height', '3rem') as number;\n\nlet downloadData: (data: DataResponse['data']) => void;\n\nexport type TableChartPaginatedProOnRowClickArg = string | null;\nexport type TableChartPaginatedProState = {\n page: number;\n pageSize?: number;\n sort?: { id: string; direction: OrderDirection } | undefined;\n isLoadingDownloadData: boolean;\n hasTotalResults: boolean;\n};\n\ntype TableChartPaginatedProProps = {\n allResults?: DataResponse;\n clickDimension?: Dimension;\n description: string;\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n embeddableState: TableChartPaginatedProState;\n results: DataResponse;\n showIndex: boolean;\n state: TableChartPaginatedProState;\n title: string;\n totalResults?: DataResponse;\n onRowClicked: (rowDimensionValue: TableChartPaginatedProOnRowClickArg) => void;\n setState: React.Dispatch<React.SetStateAction<TableChartPaginatedProState>>;\n};\n\nconst TableChartPaginatedPro = (props: TableChartPaginatedProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const [isDownloadingData, setIsDownloadingData] = useState(false);\n\n const { description, title } = resolveI18nProps(props);\n const {\n totalResults,\n results,\n allResults,\n dimensionsAndMeasures,\n displayNullAs,\n showIndex,\n clickDimension,\n state,\n setState,\n onRowClicked,\n } = props;\n\n const [localSort, setLocalSort] = useState(state.sort);\n\n const headers = getTableHeaders({ dimensionsAndMeasures, displayNullAs }, theme);\n const rows = results?.data || [];\n const tableRows = getTableRows({ rows, clickDimension });\n const cardContentRef = useRef<HTMLDivElement>(null);\n const { height } = useResizeObserver(cardContentRef);\n const pageSize = useTableGetRowsPerPage({\n availableHeight: height,\n headerHeight,\n rowHeight,\n footerHeight,\n });\n\n // Stable updater for embeddable state\n const handleUpdateEmbeddableState = useCallback(\n (newState: Partial<TableChartPaginatedProState>) => {\n setState((prevState) => ({\n ...prevState,\n ...newState,\n }));\n },\n [setState],\n );\n\n const handleCustomDownload = (onDownload: (props: ChartCardMenuOptionOnClickProps) => void) => {\n setIsDownloadingData(true);\n handleUpdateEmbeddableState({ isLoadingDownloadData: true });\n\n downloadData = (data: DataResponse['data']) =>\n onDownload({\n title,\n data,\n dimensionsAndMeasures,\n containerRef: cardContentRef,\n theme,\n });\n };\n\n const handleRowIndexClick = (rowIndex: number) => {\n if (!clickDimension) return;\n\n const rowDimensionValue = rows[rowIndex]?.[clickDimension.name];\n onRowClicked(rowDimensionValue);\n };\n\n const debouncedUpdateState = useDebounce(handleUpdateEmbeddableState);\n\n // Sync local sort with embeddable state\n useEffect(() => {\n if (hasSortChanges(state.sort, localSort)) setLocalSort(state.sort);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.sort]);\n\n // Debounce sort updates to embeddable state\n useEffect(() => {\n debouncedUpdateState({ sort: localSort });\n }, [localSort, debouncedUpdateState]);\n\n // Sync page size changes to embeddable state\n useEffect(() => {\n if (pageSize) {\n handleUpdateEmbeddableState({ pageSize });\n }\n }, [pageSize, handleUpdateEmbeddableState]);\n\n // Sync total from results\n useEffect(() => {\n setState((prevState) => ({\n ...prevState,\n hasTotalResults: false,\n }));\n }, [dimensionsAndMeasures, pageSize]);\n\n useEffect(() => {\n if (totalResults?.total) {\n setState((prevState) => ({\n ...prevState,\n hasTotalResults: true,\n }));\n }\n }, [totalResults]);\n\n // Handle data download when allResults is ready\n useEffect(() => {\n if (isDownloadingData) {\n if (!allResults || allResults.isLoading) {\n // Loading data to download\n return;\n }\n\n downloadData(allResults.data);\n setIsDownloadingData(false);\n handleUpdateEmbeddableState({ isLoadingDownloadData: false });\n }\n }, [isDownloadingData, allResults, handleUpdateEmbeddableState]);\n\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n subtitle={description}\n data={results}\n dimensionsAndMeasures={dimensionsAndMeasures}\n errorMessage={results?.error}\n onCustomDownload={handleCustomDownload}\n >\n <TablePaginated\n onRowIndexClick={handleRowIndexClick}\n headers={headers}\n rows={tableRows}\n showIndex={showIndex}\n page={state.page}\n pageSize={pageSize}\n paginationLabel={i18n.t('charts.tablePaginated.pagination', {\n page: state.page + 1,\n totalPages: getTableTotalPages(totalResults?.total, pageSize) ?? '?',\n })}\n total={totalResults?.total}\n sort={localSort}\n onSortChange={(newSort) => {\n setLocalSort(newSort as TableChartPaginatedProState['sort']);\n }}\n onPageChange={(newPage) => handleUpdateEmbeddableState({ page: newPage })}\n />\n </ChartCard>\n );\n};\n\nexport default TableChartPaginatedPro;\n"],"names":["getTableHeaderAlign","dimOrMeas","subInputAlign","_a","TableHeaderAlign","getTableHeaderMinWidth","subInputWidth","getStyleNumber","getTableHeaders","props","theme","themeFormatter","getThemeFormatter","row","getTableRows","clickDimensionName","_","hasSortChanges","sort","sortToCompare","headerHeight","rowHeight","footerHeight","downloadData","TableChartPaginatedPro","useTheme","i18nSetup","isDownloadingData","setIsDownloadingData","useState","description","title","resolveI18nProps","totalResults","results","allResults","dimensionsAndMeasures","displayNullAs","showIndex","clickDimension","state","setState","onRowClicked","localSort","setLocalSort","headers","rows","tableRows","cardContentRef","useRef","height","useResizeObserver","pageSize","useTableGetRowsPerPage","handleUpdateEmbeddableState","useCallback","newState","prevState","handleCustomDownload","onDownload","data","handleRowIndexClick","rowIndex","rowDimensionValue","debouncedUpdateState","useDebounce","useEffect","jsx","ChartCard","TablePaginated","i18n","getTableTotalPages","newSort","newPage"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { m as M, j as l, B as P } from "./index-BIiign0L.js";
1
+ import { m as M, j as l, B as P } from "./Color.type.emb-ByiNbaI7.js";
2
2
  import { useTheme as z } from "@embeddable.com/react";
3
- import { a as L, r as w } from "./component.constants-DJqBv0qe.js";
4
- import { C as y } from "./ChartCard-DaUtlchs.js";
5
- import { a as S, b as _ } from "./bars.utils-BOaMUmRC.js";
3
+ import { a as L, r as w } from "./component.inputs.constants-FaX3B1CO.js";
4
+ import { C as y } from "./ChartCard-BEIVgW77.js";
5
+ import { a as S, b as _ } from "./bars.utils-D12lq8bm.js";
6
6
  import { u as v } from "./charts.fillGaps.hooks-zCMYcjxz.js";
7
7
  const D = (s) => {
8
8
  var i, n;
@@ -70,4 +70,4 @@ export {
70
70
  D as B,
71
71
  E as i
72
72
  };
73
- //# sourceMappingURL=index-Bege60LS.js.map
73
+ //# sourceMappingURL=index-oK1pn0Vk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-Bege60LS.js","sources":["../src/components/charts/bars/BarChartDefaultHorizontalPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { BarChart } from '@embeddable.com/remarkable-ui';\nimport { getBarChartProData, getBarChartProOptions } from '../bars.utils';\nimport { mergician } from 'mergician';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\n\ntype BarChartDefaultHorizontalProProps = {\n description: string;\n dimension: Dimension;\n measures: Measure[];\n results: DataResponse;\n reverseYAxis: boolean;\n showLegend: boolean;\n showLogarithmicScale: boolean;\n showTooltips: boolean;\n showValueLabels: boolean;\n title: string;\n xAxisLabel: string;\n xAxisRangeMax?: number;\n xAxisRangeMin?: number;\n yAxisLabel: string;\n yAxisMaxItems: number;\n onBarClicked: (args: { axisDimensionValue: string | null }) => void;\n};\n\nconst BarChartDefaultHorizontalPro = (props: BarChartDefaultHorizontalProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n measures,\n reverseYAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n title,\n xAxisLabel,\n xAxisRangeMax,\n xAxisRangeMin,\n yAxisLabel,\n yAxisMaxItems,\n onBarClicked,\n } = resolveI18nProps(props);\n\n const results = useFillGaps({\n results: props.results,\n dimension,\n });\n\n const data = getBarChartProData(\n { data: results.data, dimension, measures, maxItems: yAxisMaxItems },\n theme,\n );\n\n const options = mergician(\n getBarChartProOptions({ measures, horizontal: true, onBarClicked, data, dimension }, theme), // Format X axis based on first measure\n theme.charts?.barChartDefaultHorizontalPro?.options || {},\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, ...measures]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\n >\n <BarChart\n horizontal\n data={data}\n options={options}\n reverseYAxis={reverseYAxis}\n showLegend={showLegend}\n showLogarithmicScale={showLogarithmicScale}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n xAxisLabel={xAxisLabel}\n xAxisRangeMax={xAxisRangeMax}\n xAxisRangeMin={xAxisRangeMin}\n yAxisLabel={yAxisLabel}\n />\n </ChartCard>\n );\n};\n\nexport default BarChartDefaultHorizontalPro;\n"],"names":["BarChartDefaultHorizontalPro","props","theme","useTheme","i18nSetup","description","dimension","measures","reverseYAxis","showLegend","showLogarithmicScale","showTooltips","showValueLabels","title","xAxisLabel","xAxisRangeMax","xAxisRangeMin","yAxisLabel","yAxisMaxItems","onBarClicked","resolveI18nProps","results","useFillGaps","data","getBarChartProData","options","mergician","getBarChartProOptions","_b","_a","jsx","ChartCard","BarChart"],"mappings":";;;;;;AA8BA,MAAMA,IAA+B,CAACC,MAA6C;;AACjF,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAG;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACEC,EAAiBnB,CAAK,GAEpBoB,IAAUC,EAAY;AAAA,IAC1B,SAASrB,EAAM;AAAA,IACf,WAAAK;AAAA,EAAA,CACD,GAEKiB,IAAOC;AAAA,IACX,EAAE,MAAMH,EAAQ,MAAM,WAAAf,GAAW,UAAAC,GAAU,UAAUW,EAAA;AAAA,IACrDhB;AAAA,EAAA,GAGIuB,IAAUC;AAAA,IACdC,EAAsB,EAAE,UAAApB,GAAU,YAAY,IAAM,cAAAY,GAAc,MAAAI,GAAM,WAAAjB,EAAA,GAAaJ,CAAK;AAAA;AAAA,MAC1F0B,KAAAC,IAAA3B,EAAM,WAAN,gBAAA2B,EAAc,iCAAd,gBAAAD,EAA4C,YAAW,CAAA;AAAA,EAAC;AAG1D,SACEE,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMV;AAAA,MACN,uBAAuB,CAACf,GAAW,GAAGC,CAAQ;AAAA,MAC9C,cAAcc,EAAQ;AAAA,MACtB,UAAUhB;AAAA,MACV,OAAAQ;AAAA,MAEA,UAAAiB,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,YAAU;AAAA,UACV,MAAAT;AAAA,UACA,SAAAE;AAAA,UACA,cAAAjB;AAAA,UACA,YAAAC;AAAA,UACA,sBAAAC;AAAA,UACA,cAAAC;AAAA,UACA,iBAAAC;AAAA,UACA,YAAAE;AAAA,UACA,eAAAC;AAAA,UACA,eAAAC;AAAA,UACA,YAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;;;;"}
1
+ {"version":3,"file":"index-oK1pn0Vk.js","sources":["../src/components/charts/bars/BarChartDefaultHorizontalPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { BarChart } from '@embeddable.com/remarkable-ui';\nimport { getBarChartProData, getBarChartProOptions } from '../bars.utils';\nimport { mergician } from 'mergician';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\n\ntype BarChartDefaultHorizontalProProps = {\n description: string;\n dimension: Dimension;\n measures: Measure[];\n results: DataResponse;\n reverseYAxis: boolean;\n showLegend: boolean;\n showLogarithmicScale: boolean;\n showTooltips: boolean;\n showValueLabels: boolean;\n title: string;\n xAxisLabel: string;\n xAxisRangeMax?: number;\n xAxisRangeMin?: number;\n yAxisLabel: string;\n yAxisMaxItems: number;\n onBarClicked: (args: { axisDimensionValue: string | null }) => void;\n};\n\nconst BarChartDefaultHorizontalPro = (props: BarChartDefaultHorizontalProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n measures,\n reverseYAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n title,\n xAxisLabel,\n xAxisRangeMax,\n xAxisRangeMin,\n yAxisLabel,\n yAxisMaxItems,\n onBarClicked,\n } = resolveI18nProps(props);\n\n const results = useFillGaps({\n results: props.results,\n dimension,\n });\n\n const data = getBarChartProData(\n { data: results.data, dimension, measures, maxItems: yAxisMaxItems },\n theme,\n );\n\n const options = mergician(\n getBarChartProOptions({ measures, horizontal: true, onBarClicked, data, dimension }, theme), // Format X axis based on first measure\n theme.charts?.barChartDefaultHorizontalPro?.options || {},\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, ...measures]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\n >\n <BarChart\n horizontal\n data={data}\n options={options}\n reverseYAxis={reverseYAxis}\n showLegend={showLegend}\n showLogarithmicScale={showLogarithmicScale}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n xAxisLabel={xAxisLabel}\n xAxisRangeMax={xAxisRangeMax}\n xAxisRangeMin={xAxisRangeMin}\n yAxisLabel={yAxisLabel}\n />\n </ChartCard>\n );\n};\n\nexport default BarChartDefaultHorizontalPro;\n"],"names":["BarChartDefaultHorizontalPro","props","theme","useTheme","i18nSetup","description","dimension","measures","reverseYAxis","showLegend","showLogarithmicScale","showTooltips","showValueLabels","title","xAxisLabel","xAxisRangeMax","xAxisRangeMin","yAxisLabel","yAxisMaxItems","onBarClicked","resolveI18nProps","results","useFillGaps","data","getBarChartProData","options","mergician","getBarChartProOptions","_b","_a","jsx","ChartCard","BarChart"],"mappings":";;;;;;AA8BA,MAAMA,IAA+B,CAACC,MAA6C;;AACjF,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAG;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACEC,EAAiBnB,CAAK,GAEpBoB,IAAUC,EAAY;AAAA,IAC1B,SAASrB,EAAM;AAAA,IACf,WAAAK;AAAA,EAAA,CACD,GAEKiB,IAAOC;AAAA,IACX,EAAE,MAAMH,EAAQ,MAAM,WAAAf,GAAW,UAAAC,GAAU,UAAUW,EAAA;AAAA,IACrDhB;AAAA,EAAA,GAGIuB,IAAUC;AAAA,IACdC,EAAsB,EAAE,UAAApB,GAAU,YAAY,IAAM,cAAAY,GAAc,MAAAI,GAAM,WAAAjB,EAAA,GAAaJ,CAAK;AAAA;AAAA,MAC1F0B,KAAAC,IAAA3B,EAAM,WAAN,gBAAA2B,EAAc,iCAAd,gBAAAD,EAA4C,YAAW,CAAA;AAAA,EAAC;AAG1D,SACEE,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMV;AAAA,MACN,uBAAuB,CAACf,GAAW,GAAGC,CAAQ;AAAA,MAC9C,cAAcc,EAAQ;AAAA,MACtB,UAAUhB;AAAA,MACV,OAAAQ;AAAA,MAEA,UAAAiB,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,YAAU;AAAA,UACV,MAAAT;AAAA,UACA,SAAAE;AAAA,UACA,cAAAjB;AAAA,UACA,YAAAC;AAAA,UACA,sBAAAC;AAAA,UACA,cAAAC;AAAA,UACA,iBAAAC;AAAA,UACA,YAAAE;AAAA,UACA,eAAAC;AAAA,UACA,eAAAC;AAAA,UACA,YAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;;;;"}
package/dist/index.d.ts CHANGED
@@ -31,7 +31,7 @@ export * as PivotTablePro from './components/charts/tables/PivotTablePro';
31
31
  export * as TableChartPaginatedPro from './components/charts/tables/TableChartPaginated';
32
32
  export * from './components/charts/tables/tables.utils';
33
33
  export { ChartCard } from './components/charts/shared/ChartCard/ChartCard';
34
- export * from './components/component.constants';
34
+ export * from './components/component.inputs.constants';
35
35
  export * as ComparisonPeriodSelectFieldPro from './components/editors/ComparisonPeriodSelectFieldPro';
36
36
  export * from './components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils';
37
37
  export * as DateRangeSelectFieldPro from './components/editors/dates/DateRangePickerPresetsPro';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGpD,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AAGxC,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,GACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,KAAK,kBAAkB,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,kBAAkB,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,kBAAkB,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,4BAA4B,MAAM,uDAAuD,CAAC;AACtG,OAAO,KAAK,4BAA4B,MAAM,uDAAuD,CAAC;AACtG,OAAO,KAAK,4BAA4B,MAAM,uDAAuD,CAAC;AACtG,cAAc,qCAAqC,CAAC;AAEpD,OAAO,KAAK,iBAAiB,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,2BAA2B,MAAM,sDAAsD,CAAC;AAEpG,OAAO,KAAK,mBAAmB,MAAM,+CAA+C,CAAC;AACrF,OAAO,KAAK,mBAAmB,MAAM,+CAA+C,CAAC;AACrF,OAAO,KAAK,6BAA6B,MAAM,yDAAyD,CAAC;AACzG,cAAc,6FAA6F,CAAC;AAC5G,cAAc,yEAAyE,CAAC;AACxF,cAAc,yEAAyE,CAAC;AAExF,OAAO,KAAK,aAAa,MAAM,wCAAwC,CAAC;AACxE,OAAO,KAAK,WAAW,MAAM,sCAAsC,CAAC;AACpE,OAAO,KAAK,kBAAkB,MAAM,6CAA6C,CAAC;AAClF,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AAEpD,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAC;AACpE,OAAO,KAAK,aAAa,MAAM,0CAA0C,CAAC;AAC1E,OAAO,KAAK,sBAAsB,MAAM,gDAAgD,CAAC;AACzF,cAAc,yCAAyC,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAC3E,cAAc,kCAAkC,CAAC;AAGjD,OAAO,KAAK,8BAA8B,MAAM,qDAAqD,CAAC;AACtG,cAAc,0FAA0F,CAAC;AACzG,OAAO,KAAK,uBAAuB,MAAM,sDAAsD,CAAC;AAChG,cAAc,sFAAsF,CAAC;AACrG,OAAO,KAAK,mBAAmB,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,mDAAmD,CAAC;AAG/E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAG/F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGpD,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AAGxC,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,GACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,KAAK,kBAAkB,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,kBAAkB,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,kBAAkB,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,4BAA4B,MAAM,uDAAuD,CAAC;AACtG,OAAO,KAAK,4BAA4B,MAAM,uDAAuD,CAAC;AACtG,OAAO,KAAK,4BAA4B,MAAM,uDAAuD,CAAC;AACtG,cAAc,qCAAqC,CAAC;AAEpD,OAAO,KAAK,iBAAiB,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,2BAA2B,MAAM,sDAAsD,CAAC;AAEpG,OAAO,KAAK,mBAAmB,MAAM,+CAA+C,CAAC;AACrF,OAAO,KAAK,mBAAmB,MAAM,+CAA+C,CAAC;AACrF,OAAO,KAAK,6BAA6B,MAAM,yDAAyD,CAAC;AACzG,cAAc,6FAA6F,CAAC;AAC5G,cAAc,yEAAyE,CAAC;AACxF,cAAc,yEAAyE,CAAC;AAExF,OAAO,KAAK,aAAa,MAAM,wCAAwC,CAAC;AACxE,OAAO,KAAK,WAAW,MAAM,sCAAsC,CAAC;AACpE,OAAO,KAAK,kBAAkB,MAAM,6CAA6C,CAAC;AAClF,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AAEpD,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAC;AACpE,OAAO,KAAK,aAAa,MAAM,0CAA0C,CAAC;AAC1E,OAAO,KAAK,sBAAsB,MAAM,gDAAgD,CAAC;AACzF,cAAc,yCAAyC,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAC3E,cAAc,yCAAyC,CAAC;AAGxD,OAAO,KAAK,8BAA8B,MAAM,qDAAqD,CAAC;AACtG,cAAc,0FAA0F,CAAC;AACzG,OAAO,KAAK,uBAAuB,MAAM,sDAAsD,CAAC;AAChG,cAAc,sFAAsF,CAAC;AACrG,OAAO,KAAK,mBAAmB,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,mDAAmD,CAAC;AAG/E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAG/F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -1,134 +1,84 @@
1
- import { g as r } from "./object.utils-D_Zzon-H.js";
2
- import { v as o, G as t, w as i, B as n, x as p, y as m, z as l, A as u, C as x, Q as g, g as P, c as d, d as C, b as h, i as b, a as f, Z as c, H as D, D as I, E as L, _ as S, r as A, P as T, R as B, I as M, M as y, J as O, Y as R, L as G, K as w, p as F, e as H, o as v, q as N, n as k, j as z, k as K, l as W, t as E, m as V, f as j, h as X, s as Y, u as q, F as J, N as Q, W as U, V as Z, U as _, O as $, X as aa, T as ea, S as ra } from "./component.constants-DJqBv0qe.js";
3
- import { r as oa } from "./charts.utils-QEdmPKTi.js";
4
- import { g as ia } from "./formatter.utils-BRMB8qAc.js";
5
- import { i as pa } from "./index-CnbSiVWn.js";
6
- import { i as la } from "./index-DD28i12d.js";
7
- import { i as xa } from "./index-fHVbX-W0.js";
8
- import { i as Pa } from "./index-Bege60LS.js";
9
- import { i as Ca } from "./index-BvAMg9p7.js";
10
- import { i as ba } from "./index-DlkwNVQ_.js";
11
- import { a as ca, b as Da, g as Ia } from "./bars.utils-BOaMUmRC.js";
12
- import { i as Sa } from "./index-DD5t0omh.js";
13
- import { i as Ta } from "./index-CfpIN_sB.js";
14
- import { i as Ma, g as ya, a as Oa } from "./index-QLS7PLnH.js";
15
- import { i as Ga, g as wa, a as Fa } from "./index-Drxp0RBw.js";
16
- import { i as va, g as Na, a as ka } from "./index-BpTn16mw.js";
17
- import { i as Ka } from "./index-9xeta4is.js";
18
- import { i as Ea } from "./index-BcipgJ0R.js";
19
- import { i as ja } from "./index-CrFZJTR2.js";
20
- import { g as Ya, a as qa } from "./pies.utils-P0szT8UT.js";
21
- import { i as Qa } from "./index-BqgkyNm8.js";
22
- import { i as Za } from "./index-DkbXF0dN.js";
23
- import { i as $a, g as ae, a as ee, b as re, c as se } from "./index-DBFwmzJQ.js";
24
- import { C as te } from "./ChartCard-DaUtlchs.js";
25
- import { i as ne, g as pe, a as me } from "./index-Ba6ziHiQ.js";
26
- import { i as ue, g as xe } from "./index-CYfKRRhL.js";
27
- import { i as Pe } from "./index-BbypzboN.js";
28
- import { i as Ce } from "./index-CVv-xIyp.js";
29
- import { E as be } from "./EditorCard-DXQeyo3r.js";
30
- import { C as ce } from "./ComparisonPeriod.type.emb-C-YdNTEB.js";
31
- import { i as Ie, s as Le } from "./color.utils-BSg_DFOh.js";
1
+ import { g as o } from "./object.utils-D_Zzon-H.js";
2
+ import { C as t, i, a as s, b as p, r as m } from "./component.inputs.constants-FaX3B1CO.js";
3
+ import { r as C } from "./charts.utils-Bq6c6ccK.js";
4
+ import { g as l } from "./formatter.utils-IGbSBsIu.js";
5
+ import { i as g } from "./index-BKcWHLSf.js";
6
+ import { i as x } from "./index-B15C4kTf.js";
7
+ import { i as b } from "./index-DNXqnRoE.js";
8
+ import { i as D } from "./index-oK1pn0Vk.js";
9
+ import { i as c } from "./index-CR69kGQc.js";
10
+ import { i as B } from "./index-BDPQ_c46.js";
11
+ import { a as O, b as F, g as H } from "./bars.utils-D12lq8bm.js";
12
+ import { i as k } from "./index-DLCspqkx.js";
13
+ import { i as z } from "./index-CQZhGtUT.js";
14
+ import { i as K, g as M, a as R } from "./index-BjaJdNzu.js";
15
+ import { i as E, g as N, a as j } from "./index-CwiND2Ct.js";
16
+ import { i as I, g as V, a as W } from "./index-DdeFtB5C.js";
17
+ import { i as J } from "./index-DRIH3L5J.js";
18
+ import { i as U } from "./index-CdjbmThq.js";
19
+ import { i as Y } from "./index-BNFqHQr3.js";
20
+ import { g as _, a as $ } from "./pies.utils-C5DxeS68.js";
21
+ import { i as ar } from "./index-BiTSd5Wd.js";
22
+ import { i as er } from "./index-Dhj9KjfQ.js";
23
+ import { i as ir, g as sr, a as pr, b as mr, c as Pr } from "./index-hHVOyy6e.js";
24
+ import { C as nr } from "./ChartCard-BEIVgW77.js";
25
+ import { i as fr, g as gr, a as hr } from "./index-_fEx7Sbh.js";
26
+ import { i as dr, g as br } from "./index-EAQjfjEJ.js";
27
+ import { i as Dr } from "./index-BzF8GFHy.js";
28
+ import { i as cr } from "./index-RHaWI3AH.js";
29
+ import { E as Br } from "./EditorCard-NEIuygkP.js";
30
+ import { i as Or, s as Fr } from "./color.utils-BSg_DFOh.js";
32
31
  export {
33
- Pa as BarChartDefaultHorizontalPro,
34
- pa as BarChartDefaultPro,
35
- ba as BarChartGroupedHorizontalPro,
36
- xa as BarChartGroupedPro,
37
- Ca as BarChartStackedHorizontalPro,
38
- la as BarChartStackedPro,
39
- te as ChartCard,
40
- ne as ComparisonPeriodSelectFieldPro,
41
- ce as ComparisonPeriodType,
42
- ue as DateRangeSelectFieldPro,
43
- Ka as DonutChartPro,
44
- ja as DonutLabelChartPro,
45
- be as EditorCard,
46
- Qa as HeatMapPro,
47
- Ta as KpiChartNumberComparisonPro,
48
- Sa as KpiChartNumberPro,
49
- va as LineChartComparisonDefaultPro,
50
- Ma as LineChartDefaultPro,
51
- Ga as LineChartGroupedPro,
52
- Pe as MultiSelectFieldPro,
53
- Ea as PieChartPro,
54
- Za as PivotTablePro,
55
- Ce as SingleSelectFieldPro,
56
- $a as TableChartPaginatedPro,
57
- o as dataset,
58
- t as description,
59
- i as dimension,
60
- n as dimensionOrMeasure,
61
- p as dimensionSimple,
62
- m as dimensionTime,
63
- l as dimensionWithDateBounds,
64
- u as dimensions,
65
- x as dimensionsAndMeasures,
66
- g as displayPercentages,
67
- P as genericBoolean,
68
- d as genericNumber,
69
- C as genericString,
70
- h as genericTimeRange,
71
- ca as getBarChartProData,
72
- Da as getBarChartProOptions,
73
- Ia as getBarStackedChartProData,
74
- pe as getComparisonPeriodSelectFieldProOptions,
75
- xe as getDateRangeSelectFieldProOptions,
76
- Na as getLineChartComparisonProData,
77
- ka as getLineChartComparisonProOptions,
78
- wa as getLineChartGroupedProData,
79
- Fa as getLineChartGroupedProOptions,
80
- ya as getLineChartProData,
81
- Oa as getLineChartProOptions,
82
- r as getObjectStableKey,
83
- Ya as getPieChartProData,
84
- qa as getPieChartProOptions,
85
- ae as getTableHeaderAlign,
86
- ee as getTableHeaderMinWidth,
87
- re as getTableHeaders,
88
- se as getTableRows,
89
- ia as getThemeFormatter,
90
- b as i18n,
91
- f as i18nSetup,
92
- Ie as isColorValid,
93
- me as isComparisonPeriodAvailable,
94
- c as maxLegendItems,
95
- D as maxResults,
96
- I as measure,
97
- L as measures,
98
- S as placeholder,
99
- oa as remarkableTheme,
100
- A as resolveI18nProps,
101
- T as reverseXAxis,
102
- B as reverseYAxis,
103
- Le as setColorAlpha,
104
- M as showLegend,
105
- y as showLogarithmicScale,
106
- O as showTooltips,
107
- R as showTopItems,
108
- G as showTotalLabels,
109
- w as showValueLabels,
110
- F as subInputAbbreviateLargeNumber,
111
- H as subInputAlign,
112
- v as subInputCurrency,
113
- N as subInputDateBounds,
114
- k as subInputDecimalPlaces,
115
- z as subInputDisplayName,
116
- K as subInputGenericBoolean,
117
- W as subInputGenericNumber,
118
- E as subInputGranularity,
119
- V as subInputMaxCharacters,
120
- j as subInputPrefix,
121
- X as subInputSuffix,
122
- Y as subInputWidth,
123
- q as timeDimensionSubInputs,
124
- J as title,
125
- Q as xAxisLabel,
126
- U as xAxisMaxItems,
127
- Z as xAxisRangeMax,
128
- _ as xAxisRangeMin,
129
- $ as yAxisLabel,
130
- aa as yAxisMaxItems,
131
- ea as yAxisRangeMax,
132
- ra as yAxisRangeMin
32
+ D as BarChartDefaultHorizontalPro,
33
+ g as BarChartDefaultPro,
34
+ B as BarChartGroupedHorizontalPro,
35
+ b as BarChartGroupedPro,
36
+ c as BarChartStackedHorizontalPro,
37
+ x as BarChartStackedPro,
38
+ nr as ChartCard,
39
+ fr as ComparisonPeriodSelectFieldPro,
40
+ t as ComparisonPeriodType,
41
+ dr as DateRangeSelectFieldPro,
42
+ J as DonutChartPro,
43
+ Y as DonutLabelChartPro,
44
+ Br as EditorCard,
45
+ ar as HeatMapPro,
46
+ z as KpiChartNumberComparisonPro,
47
+ k as KpiChartNumberPro,
48
+ I as LineChartComparisonDefaultPro,
49
+ K as LineChartDefaultPro,
50
+ E as LineChartGroupedPro,
51
+ Dr as MultiSelectFieldPro,
52
+ U as PieChartPro,
53
+ er as PivotTablePro,
54
+ cr as SingleSelectFieldPro,
55
+ ir as TableChartPaginatedPro,
56
+ O as getBarChartProData,
57
+ F as getBarChartProOptions,
58
+ H as getBarStackedChartProData,
59
+ gr as getComparisonPeriodSelectFieldProOptions,
60
+ br as getDateRangeSelectFieldProOptions,
61
+ V as getLineChartComparisonProData,
62
+ W as getLineChartComparisonProOptions,
63
+ N as getLineChartGroupedProData,
64
+ j as getLineChartGroupedProOptions,
65
+ M as getLineChartProData,
66
+ R as getLineChartProOptions,
67
+ o as getObjectStableKey,
68
+ _ as getPieChartProData,
69
+ $ as getPieChartProOptions,
70
+ sr as getTableHeaderAlign,
71
+ pr as getTableHeaderMinWidth,
72
+ mr as getTableHeaders,
73
+ Pr as getTableRows,
74
+ l as getThemeFormatter,
75
+ i as i18n,
76
+ s as i18nSetup,
77
+ p as inputs,
78
+ Or as isColorValid,
79
+ hr as isComparisonPeriodAvailable,
80
+ C as remarkableTheme,
81
+ m as resolveI18nProps,
82
+ Fr as setColorAlpha
133
83
  };
134
84
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
- import { r as g, g as b } from "./charts.utils-QEdmPKTi.js";
2
- import { g as u } from "./formatter.utils-BRMB8qAc.js";
1
+ import { r as g, g as b } from "./charts.utils-Bq6c6ccK.js";
2
+ import { g as u } from "./formatter.utils-IGbSBsIu.js";
3
3
  import { g as h, a as c } from "./object.utils-D_Zzon-H.js";
4
- import { g as C } from "./index-BIiign0L.js";
5
- import { i as f } from "./component.constants-DJqBv0qe.js";
4
+ import { a as C } from "./Color.type.emb-ByiNbaI7.js";
5
+ import { i as f } from "./component.inputs.constants-FaX3B1CO.js";
6
6
  const T = (a, o = g) => {
7
7
  const s = u(o);
8
8
  if (!a.data)
@@ -70,4 +70,4 @@ export {
70
70
  w as a,
71
71
  T as g
72
72
  };
73
- //# sourceMappingURL=pies.utils-P0szT8UT.js.map
73
+ //# sourceMappingURL=pies.utils-C5DxeS68.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pies.utils-P0szT8UT.js","sources":["../src/components/charts/pies/pies.utils.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { groupTailAsOther } from '../charts.utils';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { getColor } from '../../../theme/styles/styles.utils';\nimport { getChartColors } from '@embeddable.com/remarkable-ui';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { getObjectStableKey } from '../../../utils.ts/object.utils';\n\nexport const getPieChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measure: Measure;\n maxLegendItems?: number;\n },\n theme: Theme = remarkableTheme,\n): ChartData<'pie'> => {\n const themeFormatter = getThemeFormatter(theme);\n\n if (!props.data)\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n\n const groupedData = groupTailAsOther(\n props.data,\n props.dimension,\n [props.measure],\n props.maxLegendItems,\n );\n\n const themeKey = getObjectStableKey(theme);\n const chartColors = getChartColors();\n const backgroundColor = groupedData.map((item, i) =>\n getColor(\n `${themeKey}.charts.backgroundColors`,\n `${props.dimension.name}.${item[props.dimension.name]}`,\n theme.charts.backgroundColors ?? chartColors,\n i,\n ),\n );\n\n const borderColor = groupedData.map((item, i) =>\n getColor(\n `${themeKey}.charts.borderColors`,\n `${props.dimension.name}.${item[props.dimension.name]}`,\n theme.charts.borderColors ?? chartColors,\n i,\n ),\n );\n\n return {\n labels: groupedData.map((item) => {\n const value = item[props.dimension.name];\n const formattedValue = themeFormatter.data(props.dimension, value);\n\n // If formatter did not work, try i18n translation\n if (value === formattedValue) {\n return i18n.t(value);\n }\n return formattedValue;\n }),\n datasets: [\n {\n data: groupedData.map((item) => item[props.measure.name]),\n backgroundColor,\n borderColor,\n },\n ],\n };\n};\n\nexport const getPieChartProOptions = (\n measure: Measure,\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: { position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n formatter: (value: string | number) => themeFormatter.data(measure, value),\n },\n tooltip: {\n callbacks: {\n label(context) {\n const raw = context.raw as number;\n const total = context.dataset.data.reduce(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (sum: number, v: any) => sum + parseFloat(v),\n 0,\n );\n const pct = Math.round((raw / total) * 100);\n return `${themeFormatter.data(measure, raw)} (${pct}%)`;\n },\n },\n },\n },\n };\n};\n"],"names":["getPieChartProData","props","theme","remarkableTheme","themeFormatter","getThemeFormatter","groupedData","groupTailAsOther","themeKey","getObjectStableKey","chartColors","getChartColors","backgroundColor","item","i","getColor","borderColor","value","formattedValue","i18n","getPieChartProOptions","measure","context","raw","total","sum","v","pct"],"mappings":";;;;;AAWO,MAAMA,IAAqB,CAChCC,GAMAC,IAAeC,MACM;AACrB,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,MAAI,CAACD,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAG3B,QAAMK,IAAcC;AAAA,IAClBN,EAAM;AAAA,IACNA,EAAM;AAAA,IACN,CAACA,EAAM,OAAO;AAAA,IACdA,EAAM;AAAA,EAAA,GAGFO,IAAWC,EAAmBP,CAAK,GACnCQ,IAAcC,EAAA,GACdC,IAAkBN,EAAY;AAAA,IAAI,CAACO,GAAMC,MAC7CC;AAAA,MACE,GAAGP,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIY,EAAKZ,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,oBAAoBQ;AAAA,MACjCI;AAAA,IAAA;AAAA,EACF,GAGIE,IAAcV,EAAY;AAAA,IAAI,CAACO,GAAMC,MACzCC;AAAA,MACE,GAAGP,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIY,EAAKZ,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,gBAAgBQ;AAAA,MAC7BI;AAAA,IAAA;AAAA,EACF;AAGF,SAAO;AAAA,IACL,QAAQR,EAAY,IAAI,CAACO,MAAS;AAChC,YAAMI,IAAQJ,EAAKZ,EAAM,UAAU,IAAI,GACjCiB,IAAiBd,EAAe,KAAKH,EAAM,WAAWgB,CAAK;AAGjE,aAAIA,MAAUC,IACLC,EAAK,EAAEF,CAAK,IAEdC;AAAA,IACT,CAAC;AAAA,IACD,UAAU;AAAA,MACR;AAAA,QACE,MAAMZ,EAAY,IAAI,CAACO,MAASA,EAAKZ,EAAM,QAAQ,IAAI,CAAC;AAAA,QACxD,iBAAAW;AAAA,QACA,aAAAI;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,GAEaI,IAAwB,CACnCC,GACAnB,IAAeC,MACkB;AACjC,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,UAAUA,EAAM,OAAO,kBAAkB,SAAA;AAAA,MACnD,YAAY;AAAA,QACV,WAAW,CAACe,MAA2Bb,EAAe,KAAKiB,GAASJ,CAAK;AAAA,MAAA;AAAA,MAE3E,SAAS;AAAA,QACP,WAAW;AAAA,UACT,MAAMK,GAAS;AACb,kBAAMC,IAAMD,EAAQ,KACdE,IAAQF,EAAQ,QAAQ,KAAK;AAAA;AAAA,cAEjC,CAACG,GAAaC,MAAWD,IAAM,WAAWC,CAAC;AAAA,cAC3C;AAAA,YAAA,GAEIC,IAAM,KAAK,MAAOJ,IAAMC,IAAS,GAAG;AAC1C,mBAAO,GAAGpB,EAAe,KAAKiB,GAASE,CAAG,CAAC,KAAKI,CAAG;AAAA,UACrD;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"pies.utils-C5DxeS68.js","sources":["../src/components/charts/pies/pies.utils.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { groupTailAsOther } from '../charts.utils';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { getColor } from '../../../theme/styles/styles.utils';\nimport { getChartColors } from '@embeddable.com/remarkable-ui';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { getObjectStableKey } from '../../../utils.ts/object.utils';\n\nexport const getPieChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measure: Measure;\n maxLegendItems?: number;\n },\n theme: Theme = remarkableTheme,\n): ChartData<'pie'> => {\n const themeFormatter = getThemeFormatter(theme);\n\n if (!props.data)\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n\n const groupedData = groupTailAsOther(\n props.data,\n props.dimension,\n [props.measure],\n props.maxLegendItems,\n );\n\n const themeKey = getObjectStableKey(theme);\n const chartColors = getChartColors();\n const backgroundColor = groupedData.map((item, i) =>\n getColor(\n `${themeKey}.charts.backgroundColors`,\n `${props.dimension.name}.${item[props.dimension.name]}`,\n theme.charts.backgroundColors ?? chartColors,\n i,\n ),\n );\n\n const borderColor = groupedData.map((item, i) =>\n getColor(\n `${themeKey}.charts.borderColors`,\n `${props.dimension.name}.${item[props.dimension.name]}`,\n theme.charts.borderColors ?? chartColors,\n i,\n ),\n );\n\n return {\n labels: groupedData.map((item) => {\n const value = item[props.dimension.name];\n const formattedValue = themeFormatter.data(props.dimension, value);\n\n // If formatter did not work, try i18n translation\n if (value === formattedValue) {\n return i18n.t(value);\n }\n return formattedValue;\n }),\n datasets: [\n {\n data: groupedData.map((item) => item[props.measure.name]),\n backgroundColor,\n borderColor,\n },\n ],\n };\n};\n\nexport const getPieChartProOptions = (\n measure: Measure,\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: { position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n formatter: (value: string | number) => themeFormatter.data(measure, value),\n },\n tooltip: {\n callbacks: {\n label(context) {\n const raw = context.raw as number;\n const total = context.dataset.data.reduce(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (sum: number, v: any) => sum + parseFloat(v),\n 0,\n );\n const pct = Math.round((raw / total) * 100);\n return `${themeFormatter.data(measure, raw)} (${pct}%)`;\n },\n },\n },\n },\n };\n};\n"],"names":["getPieChartProData","props","theme","remarkableTheme","themeFormatter","getThemeFormatter","groupedData","groupTailAsOther","themeKey","getObjectStableKey","chartColors","getChartColors","backgroundColor","item","i","getColor","borderColor","value","formattedValue","i18n","getPieChartProOptions","measure","context","raw","total","sum","v","pct"],"mappings":";;;;;AAWO,MAAMA,IAAqB,CAChCC,GAMAC,IAAeC,MACM;AACrB,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,MAAI,CAACD,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAG3B,QAAMK,IAAcC;AAAA,IAClBN,EAAM;AAAA,IACNA,EAAM;AAAA,IACN,CAACA,EAAM,OAAO;AAAA,IACdA,EAAM;AAAA,EAAA,GAGFO,IAAWC,EAAmBP,CAAK,GACnCQ,IAAcC,EAAA,GACdC,IAAkBN,EAAY;AAAA,IAAI,CAACO,GAAMC,MAC7CC;AAAA,MACE,GAAGP,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIY,EAAKZ,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,oBAAoBQ;AAAA,MACjCI;AAAA,IAAA;AAAA,EACF,GAGIE,IAAcV,EAAY;AAAA,IAAI,CAACO,GAAMC,MACzCC;AAAA,MACE,GAAGP,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIY,EAAKZ,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,gBAAgBQ;AAAA,MAC7BI;AAAA,IAAA;AAAA,EACF;AAGF,SAAO;AAAA,IACL,QAAQR,EAAY,IAAI,CAACO,MAAS;AAChC,YAAMI,IAAQJ,EAAKZ,EAAM,UAAU,IAAI,GACjCiB,IAAiBd,EAAe,KAAKH,EAAM,WAAWgB,CAAK;AAGjE,aAAIA,MAAUC,IACLC,EAAK,EAAEF,CAAK,IAEdC;AAAA,IACT,CAAC;AAAA,IACD,UAAU;AAAA,MACR;AAAA,QACE,MAAMZ,EAAY,IAAI,CAACO,MAASA,EAAKZ,EAAM,QAAQ,IAAI,CAAC;AAAA,QACxD,iBAAAW;AAAA,QACA,aAAAI;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,GAEaI,IAAwB,CACnCC,GACAnB,IAAeC,MACkB;AACjC,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,UAAUA,EAAM,OAAO,kBAAkB,SAAA;AAAA,MACnD,YAAY;AAAA,QACV,WAAW,CAACe,MAA2Bb,EAAe,KAAKiB,GAASJ,CAAK;AAAA,MAAA;AAAA,MAE3E,SAAS;AAAA,QACP,WAAW;AAAA,UACT,MAAMK,GAAS;AACb,kBAAMC,IAAMD,EAAQ,KACdE,IAAQF,EAAQ,QAAQ,KAAK;AAAA;AAAA,cAEjC,CAACG,GAAaC,MAAWD,IAAM,WAAWC,CAAC;AAAA,cAC3C;AAAA,YAAA,GAEIC,IAAM,KAAK,MAAOJ,IAAMC,IAAS,GAAG;AAC1C,mBAAO,GAAGpB,EAAe,KAAKiB,GAASE,CAAG,CAAC,KAAKI,CAAG;AAAA,UACrD;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ;"}