@embeddable.com/remarkable-ui 0.1.41 → 0.1.42

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 (61) 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-CsgyAnzC.js → ChartCard-DrhhDEHS.js} +2 -2
  8. package/dist/{ChartCard-CsgyAnzC.js.map → ChartCard-DrhhDEHS.js.map} +1 -1
  9. package/dist/{ComparisonPeriod.type.emb-ZjbGbiV1.js → ComparisonPeriod.type.emb-gOwI10DU.js} +2 -2
  10. package/dist/{ComparisonPeriod.type.emb-ZjbGbiV1.js.map → ComparisonPeriod.type.emb-gOwI10DU.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-DAwqwoAp.js → EditorCard-CamjthzJ.js} +2 -2
  16. package/dist/{EditorCard-DAwqwoAp.js.map → EditorCard-CamjthzJ.js.map} +1 -1
  17. package/dist/{KpiChart-DKyxH3oh.js → KpiChart-C8mPalrH.js} +2 -2
  18. package/dist/{KpiChart-DKyxH3oh.js.map → KpiChart-C8mPalrH.js.map} +1 -1
  19. package/dist/KpiChartNumberComparisonPro.js +6 -6
  20. package/dist/KpiChartNumberPro.js +4 -4
  21. package/dist/LineChartComparisonDefaultPro.js +5 -5
  22. package/dist/LineChartDefaultPro.js +3 -3
  23. package/dist/LineChartGroupedPro.js +3 -3
  24. package/dist/MultiSelectFieldPro.js +2 -2
  25. package/dist/PieChartPro.js +2 -2
  26. package/dist/{PivotTable-DCJT9sa0.js → PivotTable-BLa71kwu.js} +2 -2
  27. package/dist/{PivotTable-DCJT9sa0.js.map → PivotTable-BLa71kwu.js.map} +1 -1
  28. package/dist/PivotTablePro.js +4 -4
  29. package/dist/{SingleSelectField-CMzbI0wG.js → SingleSelectField-D0oUkXEJ.js} +3 -3
  30. package/dist/{SingleSelectField-CMzbI0wG.js.map → SingleSelectField-D0oUkXEJ.js.map} +1 -1
  31. package/dist/SingleSelectFieldPro.js +2 -2
  32. package/dist/TableChartPaginated.js +3 -3
  33. package/dist/{bars.utils-DIunU5Xf.js → bars.utils-CgOZcE3d.js} +4 -4
  34. package/dist/{bars.utils-DIunU5Xf.js.map → bars.utils-CgOZcE3d.js.map} +1 -1
  35. package/dist/{charts.utils-9h6uemzB.js → charts.utils-thzpOSh_.js} +3 -3
  36. package/dist/{charts.utils-9h6uemzB.js.map → charts.utils-thzpOSh_.js.map} +1 -1
  37. package/dist/{component.constants-6DERKpeq.js → component.constants-DEUc2joh.js} +2 -3
  38. package/dist/{component.constants-6DERKpeq.js.map → component.constants-DEUc2joh.js.map} +1 -1
  39. package/dist/embeddable-components.json +10 -10
  40. package/dist/{formatter.utils-R5zIrZIA.js → formatter.utils-CAAgns3t.js} +2 -2
  41. package/dist/{formatter.utils-R5zIrZIA.js.map → formatter.utils-CAAgns3t.js.map} +1 -1
  42. package/dist/{index-YRGaBl06.js → index-1MVz8QMV.js} +4 -4
  43. package/dist/{index-YRGaBl06.js.map → index-1MVz8QMV.js.map} +1 -1
  44. package/dist/{index-Dfbt_iT7.js → index-BfMKs-AD.js} +5 -5
  45. package/dist/{index-Dfbt_iT7.js.map → index-BfMKs-AD.js.map} +1 -1
  46. package/dist/{index-DfnO1U7b.js → index-C-rXQnzA.js} +4 -4
  47. package/dist/{index-DfnO1U7b.js.map → index-C-rXQnzA.js.map} +1 -1
  48. package/dist/{index-hua9dsBD.js → index-D-7qoxpC.js} +5 -5
  49. package/dist/{index-hua9dsBD.js.map → index-D-7qoxpC.js.map} +1 -1
  50. package/dist/{index-CLkczqL_.js → index-VGYV6U_O.js} +4 -4
  51. package/dist/{index-CLkczqL_.js.map → index-VGYV6U_O.js.map} +1 -1
  52. package/dist/{index-Cj5wpig9.js → index-rZ8jtw5r.js} +4 -4
  53. package/dist/{index-Cj5wpig9.js.map → index-rZ8jtw5r.js.map} +1 -1
  54. package/dist/index.js +18 -18
  55. package/dist/{pies.utils-BHep0bTK.js → pies.utils-DkDZL0WT.js} +4 -4
  56. package/dist/{pies.utils-BHep0bTK.js.map → pies.utils-DkDZL0WT.js.map} +1 -1
  57. package/dist/remarkable-pro/components/component.constants.d.ts +0 -1
  58. package/dist/remarkable-pro/components/component.constants.d.ts.map +1 -1
  59. package/dist/{timeRange.utils-C61mst0e.js → timeRange.utils-DZYynXbb.js} +2 -2
  60. package/dist/{timeRange.utils-C61mst0e.js.map → timeRange.utils-DZYynXbb.js.map} +1 -1
  61. package/package.json +1 -1
@@ -4,21 +4,21 @@
4
4
  "ComparisonPeriodSelectFieldPro",
5
5
  "MultiSelectFieldPro",
6
6
  "SingleSelectFieldPro",
7
- "BarChartDefaultPro",
8
- "KpiChartNumberPro",
9
7
  "BarChartGroupedHorizontalPro",
10
- "BarChartStackedHorizontalPro",
11
- "KpiChartNumberComparisonPro",
12
- "LineChartDefaultPro",
13
- "BarChartDefaultHorizontalPro",
14
- "LineChartGroupedPro",
15
8
  "BarChartGroupedPro",
16
- "DonutLabelChartPro",
17
9
  "BarChartStackedPro",
18
- "DonutChartPro",
19
- "LineChartComparisonDefaultPro",
10
+ "BarChartDefaultPro",
11
+ "BarChartDefaultHorizontalPro",
20
12
  "PieChartPro",
21
13
  "PivotTablePro",
14
+ "DonutChartPro",
15
+ "KpiChartNumberComparisonPro",
16
+ "BarChartStackedHorizontalPro",
17
+ "LineChartDefaultPro",
18
+ "KpiChartNumberPro",
19
+ "LineChartComparisonDefaultPro",
20
+ "LineChartGroupedPro",
21
+ "DonutLabelChartPro",
22
22
  "TableChartPaginated"
23
23
  ],
24
24
  "editors": [],
@@ -1,4 +1,4 @@
1
- import { a2 as T } from "./component.constants-6DERKpeq.js";
1
+ import { a2 as T } from "./component.constants-DEUc2joh.js";
2
2
  const i = (r) => {
3
3
  const s = {};
4
4
  return (m) => {
@@ -43,4 +43,4 @@ const i = (r) => {
43
43
  export {
44
44
  D as g
45
45
  };
46
- //# sourceMappingURL=formatter.utils-R5zIrZIA.js.map
46
+ //# sourceMappingURL=formatter.utils-CAAgns3t.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.utils-R5zIrZIA.js","sources":["../src/remarkable-pro/utils.ts/cache.utils.ts","../src/remarkable-pro/utils.ts/data.utils.ts","../src/remarkable-pro/theme/formatter/formatter.utils.ts"],"sourcesContent":["/**\n * Creates a formatter cache.\n * Cache used to prevent unnecessary (expensive) creation of formatter objects\n */\nexport const cache = <Params, Formatter>(factory: (params?: Params) => Formatter) => {\n const internalCache: { [key: string]: Formatter } = {};\n const get = (params?: Params) => {\n const key = JSON.stringify(params);\n let formatter = internalCache[key];\n if (formatter) {\n return formatter;\n }\n formatter = factory(params);\n internalCache[key] = formatter;\n return formatter;\n };\n return get;\n};\n","const ISO_DATE_TIME_REGEX = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}$/;\n\nexport const isValidISODate = (value: string): boolean => {\n return Boolean(value && ISO_DATE_TIME_REGEX.test(value));\n};\n","import { DimensionOrMeasure } from '@embeddable.com/core';\nimport { DateTimeFormatter, NumberFormatter, StringFormatter } from './formatter.types';\nimport { Theme } from '../theme.types';\nimport { cache } from '../../utils.ts/cache.utils';\nimport { isValidISODate } from '../../utils.ts/data.utils';\nimport { resolveI18nString } from '../../components/component.utils';\n\nexport type GetThemeFormatter = {\n string: (key: string) => string;\n number: (value: number | bigint, options?: Intl.NumberFormatOptions) => string;\n dateTime: (value: Date, options?: Intl.DateTimeFormatOptions) => string;\n dimensionOrMeasureTitle: (key: DimensionOrMeasure) => string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: (key: DimensionOrMeasure, value: any) => string;\n};\n\nexport const getThemeFormatter = (theme: Theme): GetThemeFormatter => {\n const cachedNumberFormatter = cache<Intl.NumberFormatOptions, NumberFormatter>((options) =>\n theme.formatter.numberFormatter(theme, options),\n );\n\n const cachedDataNumberFormatter = cache<DimensionOrMeasure, NumberFormatter>((key) =>\n theme.formatter.dataNumberFormatter(theme, key!),\n );\n\n const cachedDateTimeFormatter = cache<Intl.DateTimeFormatOptions, DateTimeFormatter>((options) =>\n theme.formatter.dateTimeFormatter(theme, options),\n );\n\n const cachedDataDateTimeFormatter = cache<DimensionOrMeasure, DateTimeFormatter>((key) =>\n theme.formatter.dataDateTimeFormatter(theme, key!),\n );\n\n const cachedDataOthersFormatter = cache<DimensionOrMeasure, StringFormatter>((key) =>\n theme.formatter.dataOthersFormatter(theme, key!),\n );\n\n return {\n string: (key: string) => theme.formatter.stringFormatter().format(key),\n number: (value: number | bigint, options?: Intl.NumberFormatOptions): string => {\n return cachedNumberFormatter(options).format(value);\n },\n dateTime: (value: Date, options?: Intl.DateTimeFormatOptions): string => {\n return cachedDateTimeFormatter(options).format(value);\n },\n dimensionOrMeasureTitle: (key: DimensionOrMeasure): string => {\n const displayName = key.inputs?.displayName;\n if (displayName) {\n if (displayName.includes('|')) {\n return resolveI18nString(displayName);\n }\n return displayName;\n }\n\n const resolved = cachedDataOthersFormatter(key).format(key.name);\n return resolved === key.name ? (key.title ?? key.name) : resolved;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: (key: DimensionOrMeasure, value: any): string => {\n let newValue = value;\n\n // Number\n if (key.nativeType === 'number') {\n newValue = cachedDataNumberFormatter(key).format(value);\n }\n\n // Time\n if (key.nativeType === 'time' && isValidISODate(value)) {\n newValue = cachedDataDateTimeFormatter(key).format(new Date(value));\n }\n\n // Others (boolean and string)\n if (key.nativeType === 'boolean' || key.nativeType === 'string') {\n newValue = cachedDataOthersFormatter(key).format(value);\n }\n\n // Prefix and suffix\n const appended = `${key.inputs?.prefix || ''}${newValue}${key.inputs?.suffix || ''}`;\n\n // Max characters\n if (key.inputs?.maxCharacters) {\n if (appended.length <= key.inputs.maxCharacters) {\n return appended;\n }\n return appended.substring(0, key.inputs.maxCharacters) + '...';\n }\n\n return appended;\n },\n };\n};\n"],"names":["cache","factory","internalCache","params","key","formatter","ISO_DATE_TIME_REGEX","isValidISODate","value","getThemeFormatter","theme","cachedNumberFormatter","options","cachedDataNumberFormatter","cachedDateTimeFormatter","cachedDataDateTimeFormatter","cachedDataOthersFormatter","displayName","_a","resolveI18nString","resolved","newValue","appended","_b","_c"],"mappings":";AAIO,MAAMA,IAAQ,CAAoBC,MAA4C;AACnF,QAAMC,IAA8C,CAAA;AAWpD,SAVY,CAACC,MAAoB;AAC/B,UAAMC,IAAM,KAAK,UAAUD,CAAM;AACjC,QAAIE,IAAYH,EAAcE,CAAG;AACjC,WAAIC,MAGJA,IAAYJ,EAAQE,CAAM,GAC1BD,EAAcE,CAAG,IAAIC,GACdA;AAAA,EACT;AAEF,GCjBMC,IAAsB,gDAEfC,IAAiB,CAACC,MACtB,GAAQA,KAASF,EAAoB,KAAKE,CAAK,ICa3CC,IAAoB,CAACC,MAAoC;AACpE,QAAMC,IAAwBX;AAAA,IAAiD,CAACY,MAC9EF,EAAM,UAAU,gBAAgBA,GAAOE,CAAO;AAAA,EAAA,GAG1CC,IAA4Bb;AAAA,IAA2C,CAACI,MAC5EM,EAAM,UAAU,oBAAoBA,GAAON,CAAI;AAAA,EAAA,GAG3CU,IAA0Bd;AAAA,IAAqD,CAACY,MACpFF,EAAM,UAAU,kBAAkBA,GAAOE,CAAO;AAAA,EAAA,GAG5CG,IAA8Bf;AAAA,IAA6C,CAACI,MAChFM,EAAM,UAAU,sBAAsBA,GAAON,CAAI;AAAA,EAAA,GAG7CY,IAA4BhB;AAAA,IAA2C,CAACI,MAC5EM,EAAM,UAAU,oBAAoBA,GAAON,CAAI;AAAA,EAAA;AAGjD,SAAO;AAAA,IACL,QAAQ,CAACA,MAAgBM,EAAM,UAAU,gBAAA,EAAkB,OAAON,CAAG;AAAA,IACrE,QAAQ,CAACI,GAAwBI,MACxBD,EAAsBC,CAAO,EAAE,OAAOJ,CAAK;AAAA,IAEpD,UAAU,CAACA,GAAaI,MACfE,EAAwBF,CAAO,EAAE,OAAOJ,CAAK;AAAA,IAEtD,yBAAyB,CAACJ,MAAoC;;AAC5D,YAAMa,KAAcC,IAAAd,EAAI,WAAJ,gBAAAc,EAAY;AAChC,UAAID;AACF,eAAIA,EAAY,SAAS,GAAG,IACnBE,EAAkBF,CAAW,IAE/BA;AAGT,YAAMG,IAAWJ,EAA0BZ,CAAG,EAAE,OAAOA,EAAI,IAAI;AAC/D,aAAOgB,MAAahB,EAAI,OAAQA,EAAI,SAASA,EAAI,OAAQgB;AAAA,IAC3D;AAAA;AAAA,IAEA,MAAM,CAAChB,GAAyBI,MAAuB;;AACrD,UAAIa,IAAWb;AAGf,MAAIJ,EAAI,eAAe,aACrBiB,IAAWR,EAA0BT,CAAG,EAAE,OAAOI,CAAK,IAIpDJ,EAAI,eAAe,UAAUG,EAAeC,CAAK,MACnDa,IAAWN,EAA4BX,CAAG,EAAE,OAAO,IAAI,KAAKI,CAAK,CAAC,KAIhEJ,EAAI,eAAe,aAAaA,EAAI,eAAe,cACrDiB,IAAWL,EAA0BZ,CAAG,EAAE,OAAOI,CAAK;AAIxD,YAAMc,IAAW,KAAGJ,IAAAd,EAAI,WAAJ,gBAAAc,EAAY,WAAU,EAAE,GAAGG,CAAQ,KAAGE,IAAAnB,EAAI,WAAJ,gBAAAmB,EAAY,WAAU,EAAE;AAGlF,cAAIC,IAAApB,EAAI,WAAJ,QAAAoB,EAAY,gBACVF,EAAS,UAAUlB,EAAI,OAAO,gBACzBkB,IAEFA,EAAS,UAAU,GAAGlB,EAAI,OAAO,aAAa,IAAI,QAGpDkB;AAAA,IACT;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"formatter.utils-CAAgns3t.js","sources":["../src/remarkable-pro/utils.ts/cache.utils.ts","../src/remarkable-pro/utils.ts/data.utils.ts","../src/remarkable-pro/theme/formatter/formatter.utils.ts"],"sourcesContent":["/**\n * Creates a formatter cache.\n * Cache used to prevent unnecessary (expensive) creation of formatter objects\n */\nexport const cache = <Params, Formatter>(factory: (params?: Params) => Formatter) => {\n const internalCache: { [key: string]: Formatter } = {};\n const get = (params?: Params) => {\n const key = JSON.stringify(params);\n let formatter = internalCache[key];\n if (formatter) {\n return formatter;\n }\n formatter = factory(params);\n internalCache[key] = formatter;\n return formatter;\n };\n return get;\n};\n","const ISO_DATE_TIME_REGEX = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}$/;\n\nexport const isValidISODate = (value: string): boolean => {\n return Boolean(value && ISO_DATE_TIME_REGEX.test(value));\n};\n","import { DimensionOrMeasure } from '@embeddable.com/core';\nimport { DateTimeFormatter, NumberFormatter, StringFormatter } from './formatter.types';\nimport { Theme } from '../theme.types';\nimport { cache } from '../../utils.ts/cache.utils';\nimport { isValidISODate } from '../../utils.ts/data.utils';\nimport { resolveI18nString } from '../../components/component.utils';\n\nexport type GetThemeFormatter = {\n string: (key: string) => string;\n number: (value: number | bigint, options?: Intl.NumberFormatOptions) => string;\n dateTime: (value: Date, options?: Intl.DateTimeFormatOptions) => string;\n dimensionOrMeasureTitle: (key: DimensionOrMeasure) => string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: (key: DimensionOrMeasure, value: any) => string;\n};\n\nexport const getThemeFormatter = (theme: Theme): GetThemeFormatter => {\n const cachedNumberFormatter = cache<Intl.NumberFormatOptions, NumberFormatter>((options) =>\n theme.formatter.numberFormatter(theme, options),\n );\n\n const cachedDataNumberFormatter = cache<DimensionOrMeasure, NumberFormatter>((key) =>\n theme.formatter.dataNumberFormatter(theme, key!),\n );\n\n const cachedDateTimeFormatter = cache<Intl.DateTimeFormatOptions, DateTimeFormatter>((options) =>\n theme.formatter.dateTimeFormatter(theme, options),\n );\n\n const cachedDataDateTimeFormatter = cache<DimensionOrMeasure, DateTimeFormatter>((key) =>\n theme.formatter.dataDateTimeFormatter(theme, key!),\n );\n\n const cachedDataOthersFormatter = cache<DimensionOrMeasure, StringFormatter>((key) =>\n theme.formatter.dataOthersFormatter(theme, key!),\n );\n\n return {\n string: (key: string) => theme.formatter.stringFormatter().format(key),\n number: (value: number | bigint, options?: Intl.NumberFormatOptions): string => {\n return cachedNumberFormatter(options).format(value);\n },\n dateTime: (value: Date, options?: Intl.DateTimeFormatOptions): string => {\n return cachedDateTimeFormatter(options).format(value);\n },\n dimensionOrMeasureTitle: (key: DimensionOrMeasure): string => {\n const displayName = key.inputs?.displayName;\n if (displayName) {\n if (displayName.includes('|')) {\n return resolveI18nString(displayName);\n }\n return displayName;\n }\n\n const resolved = cachedDataOthersFormatter(key).format(key.name);\n return resolved === key.name ? (key.title ?? key.name) : resolved;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: (key: DimensionOrMeasure, value: any): string => {\n let newValue = value;\n\n // Number\n if (key.nativeType === 'number') {\n newValue = cachedDataNumberFormatter(key).format(value);\n }\n\n // Time\n if (key.nativeType === 'time' && isValidISODate(value)) {\n newValue = cachedDataDateTimeFormatter(key).format(new Date(value));\n }\n\n // Others (boolean and string)\n if (key.nativeType === 'boolean' || key.nativeType === 'string') {\n newValue = cachedDataOthersFormatter(key).format(value);\n }\n\n // Prefix and suffix\n const appended = `${key.inputs?.prefix || ''}${newValue}${key.inputs?.suffix || ''}`;\n\n // Max characters\n if (key.inputs?.maxCharacters) {\n if (appended.length <= key.inputs.maxCharacters) {\n return appended;\n }\n return appended.substring(0, key.inputs.maxCharacters) + '...';\n }\n\n return appended;\n },\n };\n};\n"],"names":["cache","factory","internalCache","params","key","formatter","ISO_DATE_TIME_REGEX","isValidISODate","value","getThemeFormatter","theme","cachedNumberFormatter","options","cachedDataNumberFormatter","cachedDateTimeFormatter","cachedDataDateTimeFormatter","cachedDataOthersFormatter","displayName","_a","resolveI18nString","resolved","newValue","appended","_b","_c"],"mappings":";AAIO,MAAMA,IAAQ,CAAoBC,MAA4C;AACnF,QAAMC,IAA8C,CAAA;AAWpD,SAVY,CAACC,MAAoB;AAC/B,UAAMC,IAAM,KAAK,UAAUD,CAAM;AACjC,QAAIE,IAAYH,EAAcE,CAAG;AACjC,WAAIC,MAGJA,IAAYJ,EAAQE,CAAM,GAC1BD,EAAcE,CAAG,IAAIC,GACdA;AAAA,EACT;AAEF,GCjBMC,IAAsB,gDAEfC,IAAiB,CAACC,MACtB,GAAQA,KAASF,EAAoB,KAAKE,CAAK,ICa3CC,IAAoB,CAACC,MAAoC;AACpE,QAAMC,IAAwBX;AAAA,IAAiD,CAACY,MAC9EF,EAAM,UAAU,gBAAgBA,GAAOE,CAAO;AAAA,EAAA,GAG1CC,IAA4Bb;AAAA,IAA2C,CAACI,MAC5EM,EAAM,UAAU,oBAAoBA,GAAON,CAAI;AAAA,EAAA,GAG3CU,IAA0Bd;AAAA,IAAqD,CAACY,MACpFF,EAAM,UAAU,kBAAkBA,GAAOE,CAAO;AAAA,EAAA,GAG5CG,IAA8Bf;AAAA,IAA6C,CAACI,MAChFM,EAAM,UAAU,sBAAsBA,GAAON,CAAI;AAAA,EAAA,GAG7CY,IAA4BhB;AAAA,IAA2C,CAACI,MAC5EM,EAAM,UAAU,oBAAoBA,GAAON,CAAI;AAAA,EAAA;AAGjD,SAAO;AAAA,IACL,QAAQ,CAACA,MAAgBM,EAAM,UAAU,gBAAA,EAAkB,OAAON,CAAG;AAAA,IACrE,QAAQ,CAACI,GAAwBI,MACxBD,EAAsBC,CAAO,EAAE,OAAOJ,CAAK;AAAA,IAEpD,UAAU,CAACA,GAAaI,MACfE,EAAwBF,CAAO,EAAE,OAAOJ,CAAK;AAAA,IAEtD,yBAAyB,CAACJ,MAAoC;;AAC5D,YAAMa,KAAcC,IAAAd,EAAI,WAAJ,gBAAAc,EAAY;AAChC,UAAID;AACF,eAAIA,EAAY,SAAS,GAAG,IACnBE,EAAkBF,CAAW,IAE/BA;AAGT,YAAMG,IAAWJ,EAA0BZ,CAAG,EAAE,OAAOA,EAAI,IAAI;AAC/D,aAAOgB,MAAahB,EAAI,OAAQA,EAAI,SAASA,EAAI,OAAQgB;AAAA,IAC3D;AAAA;AAAA,IAEA,MAAM,CAAChB,GAAyBI,MAAuB;;AACrD,UAAIa,IAAWb;AAGf,MAAIJ,EAAI,eAAe,aACrBiB,IAAWR,EAA0BT,CAAG,EAAE,OAAOI,CAAK,IAIpDJ,EAAI,eAAe,UAAUG,EAAeC,CAAK,MACnDa,IAAWN,EAA4BX,CAAG,EAAE,OAAO,IAAI,KAAKI,CAAK,CAAC,KAIhEJ,EAAI,eAAe,aAAaA,EAAI,eAAe,cACrDiB,IAAWL,EAA0BZ,CAAG,EAAE,OAAOI,CAAK;AAIxD,YAAMc,IAAW,KAAGJ,IAAAd,EAAI,WAAJ,gBAAAc,EAAY,WAAU,EAAE,GAAGG,CAAQ,KAAGE,IAAAnB,EAAI,WAAJ,gBAAAmB,EAAY,WAAU,EAAE;AAGlF,cAAIC,IAAApB,EAAI,WAAJ,QAAAoB,EAAY,gBACVF,EAAS,UAAUlB,EAAI,OAAO,gBACzBkB,IAEFA,EAAS,UAAU,GAAGlB,EAAI,OAAO,aAAa,IAAI,QAGpDkB;AAAA,IACT;AAAA,EAAA;AAEJ;"}
@@ -1,9 +1,9 @@
1
- import { ad as S, a2 as R, r as b, j as d, U as O } from "./component.constants-6DERKpeq.js";
1
+ import { ad as S, a2 as R, r as b, j as d, U as O } from "./component.constants-DEUc2joh.js";
2
2
  import { useTheme as j } from "@embeddable.com/react";
3
3
  import { useState as C, useEffect as c } from "react";
4
- import { S as y } from "./SingleSelectField-CMzbI0wG.js";
4
+ import { S as y } from "./SingleSelectField-D0oUkXEJ.js";
5
5
  import { g as x, u as F } from "./editors.timeRange.utils-D9m6B3r1.js";
6
- import { E as T } from "./EditorCard-DAwqwoAp.js";
6
+ import { E as T } from "./EditorCard-CamjthzJ.js";
7
7
  /**
8
8
  * @license @tabler/icons-react v3.35.0 - MIT
9
9
  *
@@ -53,4 +53,4 @@ export {
53
53
  z as D,
54
54
  A as i
55
55
  };
56
- //# sourceMappingURL=index-YRGaBl06.js.map
56
+ //# sourceMappingURL=index-1MVz8QMV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-YRGaBl06.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarFilled.mjs","../src/remarkable-pro/components/editors/DateRangeSelectFieldPro/DateRangeSelectFieldPro.utils.ts","../src/remarkable-pro/components/editors/DateRangeSelectFieldPro/index.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.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\": \"M16 2a1 1 0 0 1 .993 .883l.007 .117v1h1a3 3 0 0 1 2.995 2.824l.005 .176v12a3 3 0 0 1 -2.824 2.995l-.176 .005h-12a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-12a3 3 0 0 1 2.824 -2.995l.176 -.005h1v-1a1 1 0 0 1 1.993 -.117l.007 .117v1h6v-1a1 1 0 0 1 1 -1zm3 7h-14v9.625c0 .705 .386 1.286 .883 1.366l.117 .009h12c.513 0 .936 -.53 .993 -1.215l.007 -.16v-9.625z\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M12 12a1 1 0 0 1 .993 .883l.007 .117v3a1 1 0 0 1 -1.993 .117l-.007 -.117v-2a1 1 0 0 1 -.117 -1.993l.117 -.007h1z\", \"key\": \"svg-1\" }]];\nconst IconCalendarFilled = createReactComponent(\"filled\", \"calendar-filled\", \"CalendarFilled\", __iconNode);\n\nexport { __iconNode, IconCalendarFilled as default };\n//# sourceMappingURL=IconCalendarFilled.mjs.map\n","import { DateRangeSelectFieldProOption } from './DateRangeSelectFieldPro.types';\nimport { SelectListOptionProps } from '../../../../remarkable-ui';\nimport { getTimeRangeLabel } from '../editors.timeRange.utils';\nimport { resolveI18nString } from '../../component.utils';\n\nexport const getDateRangeSelectFieldProOptions = (\n dateRangeSelectFieldProOptions: DateRangeSelectFieldProOption[],\n): SelectListOptionProps[] => {\n return dateRangeSelectFieldProOptions.map((option) => {\n return {\n rightLabel: getTimeRangeLabel(option.getRange(), option.dateFormat),\n value: option.value,\n label: resolveI18nString(option.label),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField } from '../../../../remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport { useLoadDayjsLocale } from '../../../utils.ts/date.utils';\nimport { getDateRangeSelectFieldProOptions } from './DateRangeSelectFieldPro.utils';\nimport { TimeRange } from '@embeddable.com/core';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { IconCalendarFilled } from '@tabler/icons-react';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { useEffect, useState } from 'react';\n\ntype DateRangeSelectFieldProProps = {\n description?: string;\n onChange: (newDateRange: TimeRange) => void;\n placeholder?: string;\n selectedValue: TimeRange;\n title?: string;\n};\n\nconst DateRangeSelectFieldPro = (props: DateRangeSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const { dayjsLocaleReady } = useLoadDayjsLocale();\n\n const { selectedValue, onChange } = props;\n const [internalValue, setInternalValue] = useState<string | undefined>(\n selectedValue?.relativeTimeString,\n );\n\n // When updation the selectedValue in the builder, the defined value value can:\n // 1. exist in the options: relativeTimeString converted into TimeRange and onChange is called with the TimeRange\n // 2. not exist in the options: onChange is called with undefined (resets)\n\n const dateRangeOptions = theme.defaults.dateRangesOptions;\n\n const selectedValueRelativeTimeString = selectedValue?.relativeTimeString;\n\n useEffect(() => {\n if (!selectedValueRelativeTimeString) return;\n\n const matchedOption = dateRangeOptions.find(\n (option) => option.value === selectedValueRelativeTimeString,\n );\n\n setInternalValue(matchedOption ? matchedOption.value : undefined);\n }, [selectedValueRelativeTimeString, dateRangeOptions]);\n\n useEffect(() => {\n if (!selectedValue && !internalValue) return;\n\n const matchedOption = dateRangeOptions.find((option) => option.value === internalValue);\n\n const newChangeValue = matchedOption ? matchedOption.getRange() : undefined;\n\n onChange(newChangeValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalValue, dateRangeOptions]);\n\n useEffect(() => {\n if (!selectedValue) {\n setInternalValue(undefined);\n }\n }, [selectedValue]);\n\n if (!dayjsLocaleReady) {\n return null;\n }\n\n const { description, placeholder, title } = resolveI18nProps(props);\n\n const options = getDateRangeSelectFieldProOptions(dateRangeOptions);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <SingleSelectField\n startIcon={IconCalendarFilled}\n isClearable\n placeholder={placeholder}\n value={internalValue}\n onChange={(value) => setInternalValue(value || undefined)}\n options={options}\n noOptionsMessage={i18n.t('common.noOptionsAvailable')}\n />\n </EditorCard>\n );\n};\n\nexport default DateRangeSelectFieldPro;\n"],"names":["__iconNode","IconCalendarFilled","createReactComponent","getDateRangeSelectFieldProOptions","dateRangeSelectFieldProOptions","option","getTimeRangeLabel","resolveI18nString","DateRangeSelectFieldPro","props","theme","useTheme","dayjsLocaleReady","useLoadDayjsLocale","selectedValue","onChange","internalValue","setInternalValue","useState","dateRangeOptions","selectedValueRelativeTimeString","useEffect","matchedOption","newChangeValue","description","placeholder","title","resolveI18nProps","options","jsx","EditorCard","SingleSelectField","value","i18n"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAK,iWAAiW,KAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,GAAK,oHAAoH,KAAO,QAAO,CAAE,CAAC,GACviBC,IAAqBC,EAAqB,UAAU,mBAAmB,kBAAkBF,CAAU,GCL5FG,IAAoC,CAC/CC,MAEOA,EAA+B,IAAI,CAACC,OAClC;AAAA,EACL,YAAYC,EAAkBD,EAAO,SAAA,GAAYA,EAAO,UAAU;AAAA,EAClE,OAAOA,EAAO;AAAA,EACd,OAAOE,EAAkBF,EAAO,KAAK;AAAA,EAExC,GCMGG,IAA0B,CAACC,MAAwC;AACvE,QAAMC,IAAeC,EAAA,GACf,EAAE,kBAAAC,EAAA,IAAqBC,EAAA,GAEvB,EAAE,eAAAC,GAAe,UAAAC,EAAA,IAAaN,GAC9B,CAACO,GAAeC,CAAgB,IAAIC;AAAA,IACxCJ,KAAA,gBAAAA,EAAe;AAAA,EAAA,GAOXK,IAAmBT,EAAM,SAAS,mBAElCU,IAAkCN,KAAA,gBAAAA,EAAe;AA6BvD,MA3BAO,EAAU,MAAM;AACd,QAAI,CAACD,EAAiC;AAEtC,UAAME,IAAgBH,EAAiB;AAAA,MACrC,CAACd,MAAWA,EAAO,UAAUe;AAAA,IAAA;AAG/B,IAAAH,EAAiBK,IAAgBA,EAAc,QAAQ,MAAS;AAAA,EAClE,GAAG,CAACF,GAAiCD,CAAgB,CAAC,GAEtDE,EAAU,MAAM;AACd,QAAI,CAACP,KAAiB,CAACE,EAAe;AAEtC,UAAMM,IAAgBH,EAAiB,KAAK,CAACd,MAAWA,EAAO,UAAUW,CAAa,GAEhFO,IAAiBD,IAAgBA,EAAc,SAAA,IAAa;AAElE,IAAAP,EAASQ,CAAc;AAAA,EAEzB,GAAG,CAACP,GAAeG,CAAgB,CAAC,GAEpCE,EAAU,MAAM;AACd,IAAKP,KACHG,EAAiB,MAAS;AAAA,EAE9B,GAAG,CAACH,CAAa,CAAC,GAEd,CAACF;AACH,WAAO;AAGT,QAAM,EAAE,aAAAY,GAAa,aAAAC,GAAa,OAAAC,EAAA,IAAUC,EAAiBlB,CAAK,GAE5DmB,IAAUzB,EAAkCgB,CAAgB;AAElE,SACEU,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAJ,GAAc,UAAUF,GAClC,UAAAK,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAW9B;AAAA,MACX,aAAW;AAAA,MACX,aAAAwB;AAAA,MACA,OAAOT;AAAA,MACP,UAAU,CAACgB,MAAUf,EAAiBe,KAAS,MAAS;AAAA,MACxD,SAAAJ;AAAA,MACA,kBAAkBK,EAAK,EAAE,2BAA2B;AAAA,IAAA;AAAA,EAAA,GAExD;AAEJ;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-1MVz8QMV.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarFilled.mjs","../src/remarkable-pro/components/editors/DateRangeSelectFieldPro/DateRangeSelectFieldPro.utils.ts","../src/remarkable-pro/components/editors/DateRangeSelectFieldPro/index.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.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\": \"M16 2a1 1 0 0 1 .993 .883l.007 .117v1h1a3 3 0 0 1 2.995 2.824l.005 .176v12a3 3 0 0 1 -2.824 2.995l-.176 .005h-12a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-12a3 3 0 0 1 2.824 -2.995l.176 -.005h1v-1a1 1 0 0 1 1.993 -.117l.007 .117v1h6v-1a1 1 0 0 1 1 -1zm3 7h-14v9.625c0 .705 .386 1.286 .883 1.366l.117 .009h12c.513 0 .936 -.53 .993 -1.215l.007 -.16v-9.625z\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M12 12a1 1 0 0 1 .993 .883l.007 .117v3a1 1 0 0 1 -1.993 .117l-.007 -.117v-2a1 1 0 0 1 -.117 -1.993l.117 -.007h1z\", \"key\": \"svg-1\" }]];\nconst IconCalendarFilled = createReactComponent(\"filled\", \"calendar-filled\", \"CalendarFilled\", __iconNode);\n\nexport { __iconNode, IconCalendarFilled as default };\n//# sourceMappingURL=IconCalendarFilled.mjs.map\n","import { DateRangeSelectFieldProOption } from './DateRangeSelectFieldPro.types';\nimport { SelectListOptionProps } from '../../../../remarkable-ui';\nimport { getTimeRangeLabel } from '../editors.timeRange.utils';\nimport { resolveI18nString } from '../../component.utils';\n\nexport const getDateRangeSelectFieldProOptions = (\n dateRangeSelectFieldProOptions: DateRangeSelectFieldProOption[],\n): SelectListOptionProps[] => {\n return dateRangeSelectFieldProOptions.map((option) => {\n return {\n rightLabel: getTimeRangeLabel(option.getRange(), option.dateFormat),\n value: option.value,\n label: resolveI18nString(option.label),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField } from '../../../../remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport { useLoadDayjsLocale } from '../../../utils.ts/date.utils';\nimport { getDateRangeSelectFieldProOptions } from './DateRangeSelectFieldPro.utils';\nimport { TimeRange } from '@embeddable.com/core';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { IconCalendarFilled } from '@tabler/icons-react';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { useEffect, useState } from 'react';\n\ntype DateRangeSelectFieldProProps = {\n description?: string;\n onChange: (newDateRange: TimeRange) => void;\n placeholder?: string;\n selectedValue: TimeRange;\n title?: string;\n};\n\nconst DateRangeSelectFieldPro = (props: DateRangeSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const { dayjsLocaleReady } = useLoadDayjsLocale();\n\n const { selectedValue, onChange } = props;\n const [internalValue, setInternalValue] = useState<string | undefined>(\n selectedValue?.relativeTimeString,\n );\n\n // When updation the selectedValue in the builder, the defined value value can:\n // 1. exist in the options: relativeTimeString converted into TimeRange and onChange is called with the TimeRange\n // 2. not exist in the options: onChange is called with undefined (resets)\n\n const dateRangeOptions = theme.defaults.dateRangesOptions;\n\n const selectedValueRelativeTimeString = selectedValue?.relativeTimeString;\n\n useEffect(() => {\n if (!selectedValueRelativeTimeString) return;\n\n const matchedOption = dateRangeOptions.find(\n (option) => option.value === selectedValueRelativeTimeString,\n );\n\n setInternalValue(matchedOption ? matchedOption.value : undefined);\n }, [selectedValueRelativeTimeString, dateRangeOptions]);\n\n useEffect(() => {\n if (!selectedValue && !internalValue) return;\n\n const matchedOption = dateRangeOptions.find((option) => option.value === internalValue);\n\n const newChangeValue = matchedOption ? matchedOption.getRange() : undefined;\n\n onChange(newChangeValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalValue, dateRangeOptions]);\n\n useEffect(() => {\n if (!selectedValue) {\n setInternalValue(undefined);\n }\n }, [selectedValue]);\n\n if (!dayjsLocaleReady) {\n return null;\n }\n\n const { description, placeholder, title } = resolveI18nProps(props);\n\n const options = getDateRangeSelectFieldProOptions(dateRangeOptions);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <SingleSelectField\n startIcon={IconCalendarFilled}\n isClearable\n placeholder={placeholder}\n value={internalValue}\n onChange={(value) => setInternalValue(value || undefined)}\n options={options}\n noOptionsMessage={i18n.t('common.noOptionsAvailable')}\n />\n </EditorCard>\n );\n};\n\nexport default DateRangeSelectFieldPro;\n"],"names":["__iconNode","IconCalendarFilled","createReactComponent","getDateRangeSelectFieldProOptions","dateRangeSelectFieldProOptions","option","getTimeRangeLabel","resolveI18nString","DateRangeSelectFieldPro","props","theme","useTheme","dayjsLocaleReady","useLoadDayjsLocale","selectedValue","onChange","internalValue","setInternalValue","useState","dateRangeOptions","selectedValueRelativeTimeString","useEffect","matchedOption","newChangeValue","description","placeholder","title","resolveI18nProps","options","jsx","EditorCard","SingleSelectField","value","i18n"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAK,iWAAiW,KAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,GAAK,oHAAoH,KAAO,QAAO,CAAE,CAAC,GACviBC,IAAqBC,EAAqB,UAAU,mBAAmB,kBAAkBF,CAAU,GCL5FG,IAAoC,CAC/CC,MAEOA,EAA+B,IAAI,CAACC,OAClC;AAAA,EACL,YAAYC,EAAkBD,EAAO,SAAA,GAAYA,EAAO,UAAU;AAAA,EAClE,OAAOA,EAAO;AAAA,EACd,OAAOE,EAAkBF,EAAO,KAAK;AAAA,EAExC,GCMGG,IAA0B,CAACC,MAAwC;AACvE,QAAMC,IAAeC,EAAA,GACf,EAAE,kBAAAC,EAAA,IAAqBC,EAAA,GAEvB,EAAE,eAAAC,GAAe,UAAAC,EAAA,IAAaN,GAC9B,CAACO,GAAeC,CAAgB,IAAIC;AAAA,IACxCJ,KAAA,gBAAAA,EAAe;AAAA,EAAA,GAOXK,IAAmBT,EAAM,SAAS,mBAElCU,IAAkCN,KAAA,gBAAAA,EAAe;AA6BvD,MA3BAO,EAAU,MAAM;AACd,QAAI,CAACD,EAAiC;AAEtC,UAAME,IAAgBH,EAAiB;AAAA,MACrC,CAACd,MAAWA,EAAO,UAAUe;AAAA,IAAA;AAG/B,IAAAH,EAAiBK,IAAgBA,EAAc,QAAQ,MAAS;AAAA,EAClE,GAAG,CAACF,GAAiCD,CAAgB,CAAC,GAEtDE,EAAU,MAAM;AACd,QAAI,CAACP,KAAiB,CAACE,EAAe;AAEtC,UAAMM,IAAgBH,EAAiB,KAAK,CAACd,MAAWA,EAAO,UAAUW,CAAa,GAEhFO,IAAiBD,IAAgBA,EAAc,SAAA,IAAa;AAElE,IAAAP,EAASQ,CAAc;AAAA,EAEzB,GAAG,CAACP,GAAeG,CAAgB,CAAC,GAEpCE,EAAU,MAAM;AACd,IAAKP,KACHG,EAAiB,MAAS;AAAA,EAE9B,GAAG,CAACH,CAAa,CAAC,GAEd,CAACF;AACH,WAAO;AAGT,QAAM,EAAE,aAAAY,GAAa,aAAAC,GAAa,OAAAC,EAAA,IAAUC,EAAiBlB,CAAK,GAE5DmB,IAAUzB,EAAkCgB,CAAgB;AAElE,SACEU,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAJ,GAAc,UAAUF,GAClC,UAAAK,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAW9B;AAAA,MACX,aAAW;AAAA,MACX,aAAAwB;AAAA,MACA,OAAOT;AAAA,MACP,UAAU,CAACgB,MAAUf,EAAiBe,KAAS,MAAS;AAAA,MACxD,SAAAJ;AAAA,MACA,kBAAkBK,EAAK,EAAE,2BAA2B;AAAA,IAAA;AAAA,EAAA,GAExD;AAEJ;;;;","x_google_ignoreList":[0]}
@@ -1,8 +1,8 @@
1
- import { i as M, r as _, m as k, j as c, av as w } from "./component.constants-6DERKpeq.js";
1
+ import { i as M, r as _, m as k, j as c, av as w } from "./component.constants-DEUc2joh.js";
2
2
  import { useTheme as O } from "@embeddable.com/react";
3
- import { g as y, a as F } from "./pies.utils-BHep0bTK.js";
4
- import { g as V } from "./formatter.utils-R5zIrZIA.js";
5
- import { C as z } from "./ChartCard-CsgyAnzC.js";
3
+ import { g as y, a as F } from "./pies.utils-DkDZL0WT.js";
4
+ import { g as V } from "./formatter.utils-CAAgns3t.js";
5
+ import { C as z } from "./ChartCard-DrhhDEHS.js";
6
6
  import "react";
7
7
  const A = (p) => {
8
8
  var n, i, m;
@@ -70,4 +70,4 @@ export {
70
70
  A as D,
71
71
  H as i
72
72
  };
73
- //# sourceMappingURL=index-Dfbt_iT7.js.map
73
+ //# sourceMappingURL=index-BfMKs-AD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-Dfbt_iT7.js","sources":["../src/remarkable-pro/components/charts/pies/DonutLabelChartPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DefaultPieChartOptions, getDefaultPieChartOptions, getPieChartData } from '../pies.utils';\nimport { DefaultPieChartProps } from '../pies.types';\nimport { DataResponse, Measure } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { DonutChart } from '../../../../../remarkable-ui';\nimport { mergician } from 'mergician';\nimport { resolveI18nProps } from '../../../component.utils';\n\ntype DonutLabelChartProProps = DefaultPieChartProps & {\n innerLabelMeasure: Measure;\n innerLabelText: string;\n resultsInnerLabel: DataResponse;\n};\n\nconst DonutChartPro = (props: DonutLabelChartProProps) => {\n const theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n maxLegendItems,\n measure,\n results,\n showLegend,\n showTooltips,\n showValueLabels,\n title,\n innerLabelMeasure,\n resultsInnerLabel,\n innerLabelText,\n onSegmentClick,\n } = resolveI18nProps(props);\n\n const data = getPieChartData({ data: results.data, dimension, measure, maxLegendItems }, theme);\n\n const handleSegmentClick = (index: number | undefined) => {\n onSegmentClick({\n dimensionValue: index === undefined ? undefined : results.data?.[index]?.[dimension.name],\n });\n };\n\n const label = themeFormatter.data(\n innerLabelMeasure,\n resultsInnerLabel?.data?.[0]?.[innerLabelMeasure.name],\n );\n\n const options = mergician(\n getDefaultPieChartOptions(\n {\n measure,\n showTooltips,\n showLegend,\n showValueLabels,\n } as DefaultPieChartOptions,\n theme,\n ),\n theme.charts.donutLabelChartPro?.options ?? {},\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, measure]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\n >\n <DonutChart\n label={label}\n subLabel={innerLabelText}\n data={data}\n options={options}\n onSegmentClick={handleSegmentClick}\n />\n </ChartCard>\n );\n};\n\nexport default DonutChartPro;\n"],"names":["DonutChartPro","props","theme","useTheme","themeFormatter","getThemeFormatter","i18nSetup","description","dimension","maxLegendItems","measure","results","showLegend","showTooltips","showValueLabels","title","innerLabelMeasure","resultsInnerLabel","innerLabelText","onSegmentClick","resolveI18nProps","data","getPieChartData","handleSegmentClick","index","_b","_a","label","options","mergician","getDefaultPieChartOptions","_c","jsx","ChartCard","DonutChart"],"mappings":";;;;;;AAkBA,MAAMA,IAAgB,CAACC,MAAmC;;AACxD,QAAMC,IAAQC,EAAA,GACRC,IAAiBC,EAAkBH,CAAK;AAC9C,EAAAI,EAAUJ,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAK;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACEC,EAAiBnB,CAAK,GAEpBoB,IAAOC,EAAgB,EAAE,MAAMX,EAAQ,MAAM,WAAAH,GAAW,SAAAE,GAAS,gBAAAD,EAAA,GAAkBP,CAAK,GAExFqB,IAAqB,CAACC,MAA8B;;AACxD,IAAAL,EAAe;AAAA,MACb,gBAAgBK,MAAU,WAAwBC,KAAAC,IAAAf,EAAQ,SAAR,gBAAAe,EAAeF,OAAf,OAAZ,SAAYC,EAAwBjB,EAAU;AAAA,IAAI,CACzF;AAAA,EACH,GAEMmB,IAAQvB,EAAe;AAAA,IAC3BY;AAAA,KACAS,KAAAC,IAAAT,KAAA,gBAAAA,EAAmB,SAAnB,gBAAAS,EAA0B,OAA1B,gBAAAD,EAA+BT,EAAkB;AAAA,EAAI,GAGjDY,IAAUC;AAAA,IACdC;AAAA,MACE;AAAA,QACE,SAAApB;AAAA,QACA,cAAAG;AAAA,QACA,YAAAD;AAAA,QACA,iBAAAE;AAAA,MAAA;AAAA,MAEFZ;AAAA,IAAA;AAAA,MAEF6B,IAAA7B,EAAM,OAAO,uBAAb,gBAAA6B,EAAiC,YAAW,CAAA;AAAA,EAAC;AAG/C,SACEC,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMtB;AAAA,MACN,uBAAuB,CAACH,GAAWE,CAAO;AAAA,MAC1C,cAAcC,EAAQ;AAAA,MACtB,UAAUJ;AAAA,MACV,OAAAQ;AAAA,MAEA,UAAAiB,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,OAAAP;AAAA,UACA,UAAUT;AAAA,UACV,MAAAG;AAAA,UACA,SAAAO;AAAA,UACA,gBAAgBL;AAAA,QAAA;AAAA,MAAA;AAAA,IAClB;AAAA,EAAA;AAGN;;;;"}
1
+ {"version":3,"file":"index-BfMKs-AD.js","sources":["../src/remarkable-pro/components/charts/pies/DonutLabelChartPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DefaultPieChartOptions, getDefaultPieChartOptions, getPieChartData } from '../pies.utils';\nimport { DefaultPieChartProps } from '../pies.types';\nimport { DataResponse, Measure } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { DonutChart } from '../../../../../remarkable-ui';\nimport { mergician } from 'mergician';\nimport { resolveI18nProps } from '../../../component.utils';\n\ntype DonutLabelChartProProps = DefaultPieChartProps & {\n innerLabelMeasure: Measure;\n innerLabelText: string;\n resultsInnerLabel: DataResponse;\n};\n\nconst DonutChartPro = (props: DonutLabelChartProProps) => {\n const theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n maxLegendItems,\n measure,\n results,\n showLegend,\n showTooltips,\n showValueLabels,\n title,\n innerLabelMeasure,\n resultsInnerLabel,\n innerLabelText,\n onSegmentClick,\n } = resolveI18nProps(props);\n\n const data = getPieChartData({ data: results.data, dimension, measure, maxLegendItems }, theme);\n\n const handleSegmentClick = (index: number | undefined) => {\n onSegmentClick({\n dimensionValue: index === undefined ? undefined : results.data?.[index]?.[dimension.name],\n });\n };\n\n const label = themeFormatter.data(\n innerLabelMeasure,\n resultsInnerLabel?.data?.[0]?.[innerLabelMeasure.name],\n );\n\n const options = mergician(\n getDefaultPieChartOptions(\n {\n measure,\n showTooltips,\n showLegend,\n showValueLabels,\n } as DefaultPieChartOptions,\n theme,\n ),\n theme.charts.donutLabelChartPro?.options ?? {},\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, measure]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\n >\n <DonutChart\n label={label}\n subLabel={innerLabelText}\n data={data}\n options={options}\n onSegmentClick={handleSegmentClick}\n />\n </ChartCard>\n );\n};\n\nexport default DonutChartPro;\n"],"names":["DonutChartPro","props","theme","useTheme","themeFormatter","getThemeFormatter","i18nSetup","description","dimension","maxLegendItems","measure","results","showLegend","showTooltips","showValueLabels","title","innerLabelMeasure","resultsInnerLabel","innerLabelText","onSegmentClick","resolveI18nProps","data","getPieChartData","handleSegmentClick","index","_b","_a","label","options","mergician","getDefaultPieChartOptions","_c","jsx","ChartCard","DonutChart"],"mappings":";;;;;;AAkBA,MAAMA,IAAgB,CAACC,MAAmC;;AACxD,QAAMC,IAAQC,EAAA,GACRC,IAAiBC,EAAkBH,CAAK;AAC9C,EAAAI,EAAUJ,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAK;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACEC,EAAiBnB,CAAK,GAEpBoB,IAAOC,EAAgB,EAAE,MAAMX,EAAQ,MAAM,WAAAH,GAAW,SAAAE,GAAS,gBAAAD,EAAA,GAAkBP,CAAK,GAExFqB,IAAqB,CAACC,MAA8B;;AACxD,IAAAL,EAAe;AAAA,MACb,gBAAgBK,MAAU,WAAwBC,KAAAC,IAAAf,EAAQ,SAAR,gBAAAe,EAAeF,OAAf,OAAZ,SAAYC,EAAwBjB,EAAU;AAAA,IAAI,CACzF;AAAA,EACH,GAEMmB,IAAQvB,EAAe;AAAA,IAC3BY;AAAA,KACAS,KAAAC,IAAAT,KAAA,gBAAAA,EAAmB,SAAnB,gBAAAS,EAA0B,OAA1B,gBAAAD,EAA+BT,EAAkB;AAAA,EAAI,GAGjDY,IAAUC;AAAA,IACdC;AAAA,MACE;AAAA,QACE,SAAApB;AAAA,QACA,cAAAG;AAAA,QACA,YAAAD;AAAA,QACA,iBAAAE;AAAA,MAAA;AAAA,MAEFZ;AAAA,IAAA;AAAA,MAEF6B,IAAA7B,EAAM,OAAO,uBAAb,gBAAA6B,EAAiC,YAAW,CAAA;AAAA,EAAC;AAG/C,SACEC,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMtB;AAAA,MACN,uBAAuB,CAACH,GAAWE,CAAO;AAAA,MAC1C,cAAcC,EAAQ;AAAA,MACtB,UAAUJ;AAAA,MACV,OAAAQ;AAAA,MAEA,UAAAiB,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,OAAAP;AAAA,UACA,UAAUT;AAAA,UACV,MAAAG;AAAA,UACA,SAAAO;AAAA,UACA,gBAAgBL;AAAA,QAAA;AAAA,MAAA;AAAA,IAClB;AAAA,EAAA;AAGN;;;;"}
@@ -1,7 +1,7 @@
1
- import { i as P, r as S, m as b, j as m, av as v } from "./component.constants-6DERKpeq.js";
1
+ import { i as P, r as S, m as b, j as m, av as v } from "./component.constants-DEUc2joh.js";
2
2
  import { useTheme as D } from "@embeddable.com/react";
3
- import { g as _, a as k } from "./pies.utils-BHep0bTK.js";
4
- import { C as w } from "./ChartCard-CsgyAnzC.js";
3
+ import { g as _, a as k } from "./pies.utils-DkDZL0WT.js";
4
+ import { C as w } from "./ChartCard-DrhhDEHS.js";
5
5
  import "react";
6
6
  const L = (d) => {
7
7
  var a;
@@ -54,4 +54,4 @@ export {
54
54
  L as D,
55
55
  V as i
56
56
  };
57
- //# sourceMappingURL=index-DfnO1U7b.js.map
57
+ //# sourceMappingURL=index-C-rXQnzA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-DfnO1U7b.js","sources":["../src/remarkable-pro/components/charts/pies/DonutChartPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DefaultPieChartOptions, getDefaultPieChartOptions, getPieChartData } from '../pies.utils';\nimport { DefaultPieChartProps } from '../pies.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { DonutChart } from '../../../../../remarkable-ui';\nimport { mergician } from 'mergician';\nimport { resolveI18nProps } from '../../../component.utils';\n\ntype DonutChartProProps = DefaultPieChartProps;\n\nconst DonutChartPro = (props: DonutChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n maxLegendItems,\n measure,\n results,\n showLegend,\n showTooltips,\n showValueLabels,\n title,\n onSegmentClick,\n } = resolveI18nProps(props);\n\n const data = getPieChartData({ data: results.data, dimension, measure, maxLegendItems }, theme);\n\n const options = mergician(\n getDefaultPieChartOptions(\n {\n measure,\n showTooltips,\n showLegend,\n showValueLabels,\n } as DefaultPieChartOptions,\n theme,\n ),\n theme.charts.donutChartPro?.options ?? {},\n );\n\n const handleSegmentClick = (index: number | undefined) => {\n onSegmentClick({\n dimensionValue: index === undefined ? undefined : results.data?.[index]?.[dimension.name],\n });\n };\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, measure]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\n >\n <DonutChart data={data} options={options} onSegmentClick={handleSegmentClick} />\n </ChartCard>\n );\n};\n\nexport default DonutChartPro;\n"],"names":["DonutChartPro","props","theme","useTheme","i18nSetup","description","dimension","maxLegendItems","measure","results","showLegend","showTooltips","showValueLabels","title","onSegmentClick","resolveI18nProps","data","getPieChartData","options","mergician","getDefaultPieChartOptions","_a","handleSegmentClick","index","_b","jsx","ChartCard","DonutChart"],"mappings":";;;;;AAYA,MAAMA,IAAgB,CAACC,MAA8B;;AACnD,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAG;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACEC,EAAiBd,CAAK,GAEpBe,IAAOC,EAAgB,EAAE,MAAMR,EAAQ,MAAM,WAAAH,GAAW,SAAAE,GAAS,gBAAAD,EAAA,GAAkBL,CAAK,GAExFgB,IAAUC;AAAA,IACdC;AAAA,MACE;AAAA,QACE,SAAAZ;AAAA,QACA,cAAAG;AAAA,QACA,YAAAD;AAAA,QACA,iBAAAE;AAAA,MAAA;AAAA,MAEFV;AAAA,IAAA;AAAA,MAEFmB,IAAAnB,EAAM,OAAO,kBAAb,gBAAAmB,EAA4B,YAAW,CAAA;AAAA,EAAC,GAGpCC,IAAqB,CAACC,MAA8B;;AACxD,IAAAT,EAAe;AAAA,MACb,gBAAgBS,MAAU,WAAwBC,KAAAH,IAAAZ,EAAQ,SAAR,gBAAAY,EAAeE,OAAf,OAAZ,SAAYC,EAAwBlB,EAAU;AAAA,IAAI,CACzF;AAAA,EACH;AAEA,SACEmB,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMjB;AAAA,MACN,uBAAuB,CAACH,GAAWE,CAAO;AAAA,MAC1C,cAAcC,EAAQ;AAAA,MACtB,UAAUJ;AAAA,MACV,OAAAQ;AAAA,MAEA,UAAAY,gBAAAA,EAAAA,IAACE,GAAA,EAAW,MAAAX,GAAY,SAAAE,GAAkB,gBAAgBI,EAAA,CAAoB;AAAA,IAAA;AAAA,EAAA;AAGpF;;;;"}
1
+ {"version":3,"file":"index-C-rXQnzA.js","sources":["../src/remarkable-pro/components/charts/pies/DonutChartPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DefaultPieChartOptions, getDefaultPieChartOptions, getPieChartData } from '../pies.utils';\nimport { DefaultPieChartProps } from '../pies.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { DonutChart } from '../../../../../remarkable-ui';\nimport { mergician } from 'mergician';\nimport { resolveI18nProps } from '../../../component.utils';\n\ntype DonutChartProProps = DefaultPieChartProps;\n\nconst DonutChartPro = (props: DonutChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n maxLegendItems,\n measure,\n results,\n showLegend,\n showTooltips,\n showValueLabels,\n title,\n onSegmentClick,\n } = resolveI18nProps(props);\n\n const data = getPieChartData({ data: results.data, dimension, measure, maxLegendItems }, theme);\n\n const options = mergician(\n getDefaultPieChartOptions(\n {\n measure,\n showTooltips,\n showLegend,\n showValueLabels,\n } as DefaultPieChartOptions,\n theme,\n ),\n theme.charts.donutChartPro?.options ?? {},\n );\n\n const handleSegmentClick = (index: number | undefined) => {\n onSegmentClick({\n dimensionValue: index === undefined ? undefined : results.data?.[index]?.[dimension.name],\n });\n };\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, measure]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\n >\n <DonutChart data={data} options={options} onSegmentClick={handleSegmentClick} />\n </ChartCard>\n );\n};\n\nexport default DonutChartPro;\n"],"names":["DonutChartPro","props","theme","useTheme","i18nSetup","description","dimension","maxLegendItems","measure","results","showLegend","showTooltips","showValueLabels","title","onSegmentClick","resolveI18nProps","data","getPieChartData","options","mergician","getDefaultPieChartOptions","_a","handleSegmentClick","index","_b","jsx","ChartCard","DonutChart"],"mappings":";;;;;AAYA,MAAMA,IAAgB,CAACC,MAA8B;;AACnD,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAG;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACEC,EAAiBd,CAAK,GAEpBe,IAAOC,EAAgB,EAAE,MAAMR,EAAQ,MAAM,WAAAH,GAAW,SAAAE,GAAS,gBAAAD,EAAA,GAAkBL,CAAK,GAExFgB,IAAUC;AAAA,IACdC;AAAA,MACE;AAAA,QACE,SAAAZ;AAAA,QACA,cAAAG;AAAA,QACA,YAAAD;AAAA,QACA,iBAAAE;AAAA,MAAA;AAAA,MAEFV;AAAA,IAAA;AAAA,MAEFmB,IAAAnB,EAAM,OAAO,kBAAb,gBAAAmB,EAA4B,YAAW,CAAA;AAAA,EAAC,GAGpCC,IAAqB,CAACC,MAA8B;;AACxD,IAAAT,EAAe;AAAA,MACb,gBAAgBS,MAAU,WAAwBC,KAAAH,IAAAZ,EAAQ,SAAR,gBAAAY,EAAeE,OAAf,OAAZ,SAAYC,EAAwBlB,EAAU;AAAA,IAAI,CACzF;AAAA,EACH;AAEA,SACEmB,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMjB;AAAA,MACN,uBAAuB,CAACH,GAAWE,CAAO;AAAA,MAC1C,cAAcC,EAAQ;AAAA,MACtB,UAAUJ;AAAA,MACV,OAAAQ;AAAA,MAEA,UAAAY,gBAAAA,EAAAA,IAACE,GAAA,EAAW,MAAAX,GAAY,SAAAE,GAAkB,gBAAgBI,EAAA,CAAoB;AAAA,IAAA;AAAA,EAAA;AAGpF;;;;"}
@@ -1,8 +1,8 @@
1
- import { r as b, j as i, U as O } from "./component.constants-6DERKpeq.js";
2
- import { S as j } from "./SingleSelectField-CMzbI0wG.js";
3
- import { g as x } from "./formatter.utils-R5zIrZIA.js";
1
+ import { r as b, j as i, U as O } from "./component.constants-DEUc2joh.js";
2
+ import { S as j } from "./SingleSelectField-D0oUkXEJ.js";
3
+ import { g as x } from "./formatter.utils-CAAgns3t.js";
4
4
  import { useTheme as v } from "@embeddable.com/react";
5
- import { E as F } from "./EditorCard-DAwqwoAp.js";
5
+ import { E as F } from "./EditorCard-CamjthzJ.js";
6
6
  const M = 200, _ = (l) => {
7
7
  var a, r;
8
8
  const m = v(), c = x(m), {
@@ -43,4 +43,4 @@ export {
43
43
  _ as S,
44
44
  C as i
45
45
  };
46
- //# sourceMappingURL=index-hua9dsBD.js.map
46
+ //# sourceMappingURL=index-D-7qoxpC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-hua9dsBD.js","sources":["../src/remarkable-pro/components/editors/SingleSelectFieldPro/index.tsx"],"sourcesContent":["import { DataResponse, Dimension } from '@embeddable.com/core';\nimport { SingleSelectField } from '../../../../remarkable-ui/editors/select/SingleSelectField/SingleSelectField';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../theme/theme.types';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { i18n } from '../../../theme/i18n/i18n';\n\nexport const MAX_OPTIONS = 200;\n\ntype SingleSelectFieldProProps = {\n title?: string;\n description?: string;\n dimension: Dimension;\n optionalSecondDimension?: Dimension;\n placeholder?: string;\n results: DataResponse;\n selectedValue: string;\n maxOptions?: number;\n setSearchValue: (search: string) => void;\n onChange?: (selectedValue: string) => void;\n};\n\nconst SingleSelectFieldPro = (props: SingleSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n\n const {\n title,\n description,\n dimension,\n optionalSecondDimension,\n placeholder,\n results,\n selectedValue,\n setSearchValue,\n onChange,\n } = resolveI18nProps(props);\n\n const options =\n results.data?.map((data) => {\n return {\n value: optionalSecondDimension ? data[optionalSecondDimension.name] : data[dimension.name],\n label: themeFormatter.data(dimension, data[dimension.name]),\n };\n }) ?? [];\n\n const showNoOptionsMessage = Boolean(!results.isLoading && (results.data?.length ?? 0) === 0);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <SingleSelectField\n isClearable\n isSearchable\n isLoading={results.isLoading}\n value={selectedValue}\n options={options}\n placeholder={placeholder}\n noOptionsMessage={showNoOptionsMessage ? i18n.t('common.noOptionsFound') : undefined}\n onChange={(newValue) => onChange?.(newValue)}\n onSearch={setSearchValue}\n />\n </EditorCard>\n );\n};\n\nexport default SingleSelectFieldPro;\n"],"names":["MAX_OPTIONS","SingleSelectFieldPro","props","theme","useTheme","themeFormatter","getThemeFormatter","title","description","dimension","optionalSecondDimension","placeholder","results","selectedValue","setSearchValue","onChange","resolveI18nProps","options","_a","data","showNoOptionsMessage","_b","jsx","EditorCard","SingleSelectField","i18n","newValue"],"mappings":";;;;;AASO,MAAMA,IAAc,KAerBC,IAAuB,CAACC,MAAqC;;AACjE,QAAMC,IAAeC,EAAA,GACfC,IAAiBC,EAAkBH,CAAK,GAExC;AAAA,IACJ,OAAAI;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACEC,EAAiBd,CAAK,GAEpBe,MACJC,IAAAN,EAAQ,SAAR,gBAAAM,EAAc,IAAI,CAACC,OACV;AAAA,IACL,OAAOT,IAA0BS,EAAKT,EAAwB,IAAI,IAAIS,EAAKV,EAAU,IAAI;AAAA,IACzF,OAAOJ,EAAe,KAAKI,GAAWU,EAAKV,EAAU,IAAI,CAAC;AAAA,EAAA,QAExD,CAAA,GAEFW,IAA+B,CAACR,EAAQ,gBAAcS,IAAAT,EAAQ,SAAR,gBAAAS,EAAc,WAAU,OAAO;AAE3F,SACEC,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAhB,GAAc,UAAUC,GAClC,UAAAc,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,aAAW;AAAA,MACX,cAAY;AAAA,MACZ,WAAWZ,EAAQ;AAAA,MACnB,OAAOC;AAAA,MACP,SAAAI;AAAA,MACA,aAAAN;AAAA,MACA,kBAAkBS,IAAuBK,EAAK,EAAE,uBAAuB,IAAI;AAAA,MAC3E,UAAU,CAACC,MAAaX,KAAA,gBAAAA,EAAWW;AAAA,MACnC,UAAUZ;AAAA,IAAA;AAAA,EAAA,GAEd;AAEJ;;;;;"}
1
+ {"version":3,"file":"index-D-7qoxpC.js","sources":["../src/remarkable-pro/components/editors/SingleSelectFieldPro/index.tsx"],"sourcesContent":["import { DataResponse, Dimension } from '@embeddable.com/core';\nimport { SingleSelectField } from '../../../../remarkable-ui/editors/select/SingleSelectField/SingleSelectField';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../theme/theme.types';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { i18n } from '../../../theme/i18n/i18n';\n\nexport const MAX_OPTIONS = 200;\n\ntype SingleSelectFieldProProps = {\n title?: string;\n description?: string;\n dimension: Dimension;\n optionalSecondDimension?: Dimension;\n placeholder?: string;\n results: DataResponse;\n selectedValue: string;\n maxOptions?: number;\n setSearchValue: (search: string) => void;\n onChange?: (selectedValue: string) => void;\n};\n\nconst SingleSelectFieldPro = (props: SingleSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n\n const {\n title,\n description,\n dimension,\n optionalSecondDimension,\n placeholder,\n results,\n selectedValue,\n setSearchValue,\n onChange,\n } = resolveI18nProps(props);\n\n const options =\n results.data?.map((data) => {\n return {\n value: optionalSecondDimension ? data[optionalSecondDimension.name] : data[dimension.name],\n label: themeFormatter.data(dimension, data[dimension.name]),\n };\n }) ?? [];\n\n const showNoOptionsMessage = Boolean(!results.isLoading && (results.data?.length ?? 0) === 0);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <SingleSelectField\n isClearable\n isSearchable\n isLoading={results.isLoading}\n value={selectedValue}\n options={options}\n placeholder={placeholder}\n noOptionsMessage={showNoOptionsMessage ? i18n.t('common.noOptionsFound') : undefined}\n onChange={(newValue) => onChange?.(newValue)}\n onSearch={setSearchValue}\n />\n </EditorCard>\n );\n};\n\nexport default SingleSelectFieldPro;\n"],"names":["MAX_OPTIONS","SingleSelectFieldPro","props","theme","useTheme","themeFormatter","getThemeFormatter","title","description","dimension","optionalSecondDimension","placeholder","results","selectedValue","setSearchValue","onChange","resolveI18nProps","options","_a","data","showNoOptionsMessage","_b","jsx","EditorCard","SingleSelectField","i18n","newValue"],"mappings":";;;;;AASO,MAAMA,IAAc,KAerBC,IAAuB,CAACC,MAAqC;;AACjE,QAAMC,IAAeC,EAAA,GACfC,IAAiBC,EAAkBH,CAAK,GAExC;AAAA,IACJ,OAAAI;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACEC,EAAiBd,CAAK,GAEpBe,MACJC,IAAAN,EAAQ,SAAR,gBAAAM,EAAc,IAAI,CAACC,OACV;AAAA,IACL,OAAOT,IAA0BS,EAAKT,EAAwB,IAAI,IAAIS,EAAKV,EAAU,IAAI;AAAA,IACzF,OAAOJ,EAAe,KAAKI,GAAWU,EAAKV,EAAU,IAAI,CAAC;AAAA,EAAA,QAExD,CAAA,GAEFW,IAA+B,CAACR,EAAQ,gBAAcS,IAAAT,EAAQ,SAAR,gBAAAS,EAAc,WAAU,OAAO;AAE3F,SACEC,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAhB,GAAc,UAAUC,GAClC,UAAAc,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,aAAW;AAAA,MACX,cAAY;AAAA,MACZ,WAAWZ,EAAQ;AAAA,MACnB,OAAOC;AAAA,MACP,SAAAI;AAAA,MACA,aAAAN;AAAA,MACA,kBAAkBS,IAAuBK,EAAK,EAAE,uBAAuB,IAAI;AAAA,MAC3E,UAAU,CAACC,MAAaX,KAAA,gBAAAA,EAAWW;AAAA,MACnC,UAAUZ;AAAA,IAAA;AAAA,EAAA,GAEd;AAEJ;;;;;"}
@@ -1,8 +1,8 @@
1
- import { i as x, r as S, m as b, j as m, aw as v } from "./component.constants-6DERKpeq.js";
1
+ import { i as x, r as S, m as b, j as m, aw as v } from "./component.constants-DEUc2joh.js";
2
2
  import { useTheme as w } from "@embeddable.com/react";
3
3
  import "react";
4
- import { g as _, a as k } from "./pies.utils-BHep0bTK.js";
5
- import { C as L } from "./ChartCard-CsgyAnzC.js";
4
+ import { g as _, a as k } from "./pies.utils-DkDZL0WT.js";
5
+ import { C as L } from "./ChartCard-DrhhDEHS.js";
6
6
  const M = (d) => {
7
7
  var a;
8
8
  const e = w();
@@ -54,4 +54,4 @@ export {
54
54
  M as P,
55
55
  V as i
56
56
  };
57
- //# sourceMappingURL=index-CLkczqL_.js.map
57
+ //# sourceMappingURL=index-VGYV6U_O.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CLkczqL_.js","sources":["../src/remarkable-pro/components/charts/pies/PieChartPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { PieChart } from '../../../../../remarkable-ui';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DefaultPieChartOptions, getDefaultPieChartOptions, getPieChartData } from '../pies.utils';\nimport { DefaultPieChartProps } from '../pies.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { mergician } from 'mergician';\nimport { resolveI18nProps } from '../../../component.utils';\n\ntype PieChartProProps = DefaultPieChartProps;\n\nconst PieChartPro = (props: PieChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n maxLegendItems,\n measure,\n results,\n showLegend,\n showTooltips,\n showValueLabels,\n title,\n onSegmentClick,\n } = resolveI18nProps(props);\n\n const data = getPieChartData({ data: results.data, dimension, measure, maxLegendItems }, theme);\n\n const options = mergician(\n getDefaultPieChartOptions(\n {\n measure,\n showTooltips,\n showLegend,\n showValueLabels,\n } as DefaultPieChartOptions,\n theme,\n ),\n theme.charts.pieChartPro?.options ?? {},\n );\n\n const handleSegmentClick = (index: number | undefined) => {\n onSegmentClick({\n dimensionValue: index === undefined ? undefined : results.data?.[index]?.[dimension.name],\n });\n };\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, measure]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\n >\n <PieChart data={data} options={options} onSegmentClick={handleSegmentClick} />\n </ChartCard>\n );\n};\n\nexport default PieChartPro;\n"],"names":["PieChartPro","props","theme","useTheme","i18nSetup","description","dimension","maxLegendItems","measure","results","showLegend","showTooltips","showValueLabels","title","onSegmentClick","resolveI18nProps","data","getPieChartData","options","mergician","getDefaultPieChartOptions","_a","handleSegmentClick","index","_b","jsx","ChartCard","PieChart"],"mappings":";;;;;AAYA,MAAMA,IAAc,CAACC,MAA4B;;AAC/C,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAG;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACEC,EAAiBd,CAAK,GAEpBe,IAAOC,EAAgB,EAAE,MAAMR,EAAQ,MAAM,WAAAH,GAAW,SAAAE,GAAS,gBAAAD,EAAA,GAAkBL,CAAK,GAExFgB,IAAUC;AAAA,IACdC;AAAA,MACE;AAAA,QACE,SAAAZ;AAAA,QACA,cAAAG;AAAA,QACA,YAAAD;AAAA,QACA,iBAAAE;AAAA,MAAA;AAAA,MAEFV;AAAA,IAAA;AAAA,MAEFmB,IAAAnB,EAAM,OAAO,gBAAb,gBAAAmB,EAA0B,YAAW,CAAA;AAAA,EAAC,GAGlCC,IAAqB,CAACC,MAA8B;;AACxD,IAAAT,EAAe;AAAA,MACb,gBAAgBS,MAAU,WAAwBC,KAAAH,IAAAZ,EAAQ,SAAR,gBAAAY,EAAeE,OAAf,OAAZ,SAAYC,EAAwBlB,EAAU;AAAA,IAAI,CACzF;AAAA,EACH;AAEA,SACEmB,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMjB;AAAA,MACN,uBAAuB,CAACH,GAAWE,CAAO;AAAA,MAC1C,cAAcC,EAAQ;AAAA,MACtB,UAAUJ;AAAA,MACV,OAAAQ;AAAA,MAEA,UAAAY,gBAAAA,EAAAA,IAACE,GAAA,EAAS,MAAAX,GAAY,SAAAE,GAAkB,gBAAgBI,EAAA,CAAoB;AAAA,IAAA;AAAA,EAAA;AAGlF;;;;"}
1
+ {"version":3,"file":"index-VGYV6U_O.js","sources":["../src/remarkable-pro/components/charts/pies/PieChartPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { PieChart } from '../../../../../remarkable-ui';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DefaultPieChartOptions, getDefaultPieChartOptions, getPieChartData } from '../pies.utils';\nimport { DefaultPieChartProps } from '../pies.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { mergician } from 'mergician';\nimport { resolveI18nProps } from '../../../component.utils';\n\ntype PieChartProProps = DefaultPieChartProps;\n\nconst PieChartPro = (props: PieChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n maxLegendItems,\n measure,\n results,\n showLegend,\n showTooltips,\n showValueLabels,\n title,\n onSegmentClick,\n } = resolveI18nProps(props);\n\n const data = getPieChartData({ data: results.data, dimension, measure, maxLegendItems }, theme);\n\n const options = mergician(\n getDefaultPieChartOptions(\n {\n measure,\n showTooltips,\n showLegend,\n showValueLabels,\n } as DefaultPieChartOptions,\n theme,\n ),\n theme.charts.pieChartPro?.options ?? {},\n );\n\n const handleSegmentClick = (index: number | undefined) => {\n onSegmentClick({\n dimensionValue: index === undefined ? undefined : results.data?.[index]?.[dimension.name],\n });\n };\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, measure]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\n >\n <PieChart data={data} options={options} onSegmentClick={handleSegmentClick} />\n </ChartCard>\n );\n};\n\nexport default PieChartPro;\n"],"names":["PieChartPro","props","theme","useTheme","i18nSetup","description","dimension","maxLegendItems","measure","results","showLegend","showTooltips","showValueLabels","title","onSegmentClick","resolveI18nProps","data","getPieChartData","options","mergician","getDefaultPieChartOptions","_a","handleSegmentClick","index","_b","jsx","ChartCard","PieChart"],"mappings":";;;;;AAYA,MAAMA,IAAc,CAACC,MAA4B;;AAC/C,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAG;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACEC,EAAiBd,CAAK,GAEpBe,IAAOC,EAAgB,EAAE,MAAMR,EAAQ,MAAM,WAAAH,GAAW,SAAAE,GAAS,gBAAAD,EAAA,GAAkBL,CAAK,GAExFgB,IAAUC;AAAA,IACdC;AAAA,MACE;AAAA,QACE,SAAAZ;AAAA,QACA,cAAAG;AAAA,QACA,YAAAD;AAAA,QACA,iBAAAE;AAAA,MAAA;AAAA,MAEFV;AAAA,IAAA;AAAA,MAEFmB,IAAAnB,EAAM,OAAO,gBAAb,gBAAAmB,EAA0B,YAAW,CAAA;AAAA,EAAC,GAGlCC,IAAqB,CAACC,MAA8B;;AACxD,IAAAT,EAAe;AAAA,MACb,gBAAgBS,MAAU,WAAwBC,KAAAH,IAAAZ,EAAQ,SAAR,gBAAAY,EAAeE,OAAf,OAAZ,SAAYC,EAAwBlB,EAAU;AAAA,IAAI,CACzF;AAAA,EACH;AAEA,SACEmB,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMjB;AAAA,MACN,uBAAuB,CAACH,GAAWE,CAAO;AAAA,MAC1C,cAAcC,EAAQ;AAAA,MACtB,UAAUJ;AAAA,MACV,OAAAQ;AAAA,MAEA,UAAAY,gBAAAA,EAAAA,IAACE,GAAA,EAAS,MAAAX,GAAY,SAAAE,GAAkB,gBAAgBI,EAAA,CAAoB;AAAA,IAAA;AAAA,EAAA;AAGlF;;;;"}
@@ -1,7 +1,7 @@
1
- import { ad as $, j as t, af as J, ah as K, ag as X, ap as G, as as H, at as Q, aq as M, ar as W, ao as Y, r as Z, U as ee } from "./component.constants-6DERKpeq.js";
2
- import { g as te } from "./formatter.utils-R5zIrZIA.js";
1
+ import { ad as $, j as t, af as J, ah as K, ag as X, ap as G, as as H, at as Q, aq as M, ar as W, ao as Y, r as Z, U as ee } from "./component.constants-DEUc2joh.js";
2
+ import { g as te } from "./formatter.utils-CAAgns3t.js";
3
3
  import { useTheme as se } from "@embeddable.com/react";
4
- import { u as le, d as ae, g as ne, I as oe, S as ce, a as ie, E as re } from "./EditorCard-DAwqwoAp.js";
4
+ import { u as le, d as ae, g as ne, I as oe, S as ce, a as ie, E as re } from "./EditorCard-CamjthzJ.js";
5
5
  import { useState as y, useRef as ue, useEffect as k, useMemo as q } from "react";
6
6
  /**
7
7
  * @license @tabler/icons-react v3.35.0 - MIT
@@ -217,4 +217,4 @@ export {
217
217
  ve as b,
218
218
  Ne as i
219
219
  };
220
- //# sourceMappingURL=index-Cj5wpig9.js.map
220
+ //# sourceMappingURL=index-rZ8jtw5r.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-Cj5wpig9.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconSquare.mjs","../node_modules/@tabler/icons-react/dist/esm/icons/IconSquareCheckFilled.mjs","../src/remarkable-ui/shared/Button/Button.tsx","../src/remarkable-ui/editors/select/MultiSelectField/MultiSelectField.tsx","../src/remarkable-pro/components/editors/MultiSelectFieldPro/index.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.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\": \"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z\", \"key\": \"svg-0\" }]];\nconst IconSquare = createReactComponent(\"outline\", \"square\", \"Square\", __iconNode);\n\nexport { __iconNode, IconSquare as default };\n//# sourceMappingURL=IconSquare.mjs.map\n","/**\n * @license @tabler/icons-react v3.35.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\": \"M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.626 7.293a1 1 0 0 0 -1.414 0l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.32 1.497l2 2l.094 .083a1 1 0 0 0 1.32 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z\", \"key\": \"svg-0\" }]];\nconst IconSquareCheckFilled = createReactComponent(\"filled\", \"square-check-filled\", \"SquareCheckFilled\", __iconNode);\n\nexport { __iconNode, IconSquareCheckFilled as default };\n//# sourceMappingURL=IconSquareCheckFilled.mjs.map\n","import { TablerIcon } from '@tabler/icons-react';\nimport styles from './Button.module.css';\nimport { BaseButton, type BaseButtonProps } from '../BaseButton';\nimport { Typography } from '../Typography/Typography';\nimport clsx from 'clsx';\n\ntype ButtonProps = BaseButtonProps & {\n startIcon?: TablerIcon;\n endIcon?: TablerIcon;\n children: string;\n size: 'small' | 'medium';\n};\n\nexport const Button: React.FC<ButtonProps> = ({\n variant,\n startIcon: StartIcon,\n endIcon: EndIcon,\n children,\n size,\n ...props\n}) => {\n return (\n <BaseButton\n variant={variant}\n {...props}\n className={size === 'medium' ? styles.buttonMedium : styles.buttonSmall}\n size={size}\n >\n {StartIcon && <StartIcon className={styles.icon} />}\n <Typography\n as=\"span\"\n className={clsx(\n styles.buttonText,\n styles[`buttonText${size.charAt(0).toUpperCase() + size.slice(1)}`],\n )}\n >\n {children}\n </Typography>\n {EndIcon && <EndIcon className={styles.icon} />}\n </BaseButton>\n );\n};\n","import { FC, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n SelectListOption,\n SelectListOptionProps,\n SelectListOptionPropsWithCategory,\n} from '../shared/SelectList/SelectListOptions/SelectListOption/SelectListOption';\nimport { SelectListCategory } from '../shared/SelectList/SelectListOptions/SelectListCategory/SelectListCategory';\nimport { debounce } from '../../../utils/debounce.utils';\nimport { Dropdown } from '../../../shared/Dropdown/Dropdown';\nimport { SelectButton } from '../shared/SelectButton/SelectButton';\nimport { SelectList } from '../shared/SelectList/SelectList';\nimport { groupOptionsByCategory } from '../shared/SelectList/selectList.utils';\nimport { TextField } from '../../TextField/TextField';\nimport { SelectListOptions } from '../shared/SelectList/SelectListOptions/SelectListOptions';\nimport { IconSearch, IconSquare, IconSquareCheckFilled } from '@tabler/icons-react';\nimport { Button } from '../../../shared/Button/Button';\nimport styles from './MultiSelectField.module.css';\nimport { useSelectSearchFocus } from '../shared/useSelectSearchFocus.hook';\nimport { FieldErrorMessage } from '../../../shared/FieldErrorMessage/FieldErrorMessage';\n\nexport type MultiSelectFieldProps = {\n disabled?: boolean;\n isClearable?: boolean;\n isLoading?: boolean;\n isSearchable?: boolean;\n noOptionsMessage?: string;\n options: (SelectListOptionProps | SelectListOptionPropsWithCategory)[];\n placeholder?: string;\n submitLabel?: string;\n values?: string[];\n onChange: (value: string[]) => void;\n onSearch?: (search: string) => void;\n error?: boolean;\n errorMessage?: string;\n};\n\nexport const MultiSelectField: FC<MultiSelectFieldProps> = ({\n disabled,\n isClearable,\n isLoading,\n isSearchable,\n noOptionsMessage,\n options,\n placeholder,\n submitLabel = 'Apply',\n values = [],\n onChange,\n onSearch,\n error = false,\n errorMessage,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [searchValue, setSearchValue] = useState<string>('');\n const [preValues, setPreValues] = useState<string[]>(values);\n const [selectedLabel, setSelectedLabel] = useState<string>('');\n\n const searchFieldRef = useRef<HTMLInputElement>(null);\n useSelectSearchFocus(isOpen, searchFieldRef);\n\n useEffect(() => {\n setPreValues(values);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(values)]);\n\n useEffect(() => {\n if (isLoading) {\n return;\n }\n\n if (!values || values.length === 0) {\n setSelectedLabel('');\n return;\n }\n const selectedOptions = values.map(\n (value) => options.find((o) => o.value === value)?.label ?? value,\n );\n\n if (selectedOptions.length > 0) {\n const newLabel = selectedOptions.join(', ');\n setSelectedLabel(`(${selectedOptions.length}) ${newLabel}`);\n }\n }, [values, options, isLoading]);\n\n const debouncedSearch = useMemo(() => (onSearch ? debounce(onSearch) : undefined), [onSearch]);\n\n const displayOptions =\n isSearchable && !onSearch\n ? options.filter((option) => option.label.toLowerCase().includes(searchValue.toLowerCase()))\n : options;\n\n const groupedOptions = useMemo(() => groupOptionsByCategory(displayOptions), [displayOptions]);\n\n const isSubmitDisabled =\n preValues.every((preValue) => values.includes(preValue)) &&\n values.every((value) => preValues.includes(value));\n\n const handleSelectOption = (\n e: React.MouseEvent<HTMLDivElement, MouseEvent>,\n newValue?: string,\n ) => {\n e.preventDefault();\n\n if (!newValue) return;\n\n if (preValues.includes(newValue)) {\n setPreValues(preValues.filter((v) => v !== newValue));\n } else {\n setPreValues([...preValues, newValue]);\n }\n };\n\n const handleSearch = (newSearch: string) => {\n setSearchValue(newSearch);\n debouncedSearch?.(newSearch);\n };\n\n const handleSave = (newValues: string[]) => {\n onChange(newValues);\n setIsOpen(false);\n setSearchValue('');\n onSearch?.('');\n };\n\n const handleClearAll = () => {\n setSearchValue('');\n onSearch?.('');\n onChange([]);\n };\n\n const hasError = error || !!errorMessage;\n\n return (\n <div className={styles.selectField}>\n <Dropdown\n open={isOpen}\n onOpenChange={setIsOpen}\n disabled={disabled}\n triggerComponent={\n <SelectButton\n aria-label=\"Select options\"\n placeholder={placeholder}\n disabled={disabled}\n valueLabel={selectedLabel}\n onClear={handleClearAll}\n isClearable={isClearable}\n isLoading={isLoading}\n error={hasError}\n />\n }\n >\n <SelectList>\n {isSearchable && (\n <TextField\n ref={searchFieldRef}\n startIcon={IconSearch}\n aria-label=\"Search options\"\n placeholder=\"Search…\"\n role=\"searchbox\"\n value={searchValue}\n onKeyDown={(e) => e.stopPropagation()}\n onChange={handleSearch}\n />\n )}\n <SelectListOptions disabled={isLoading}>\n {groupedOptions\n ? Object.entries(groupedOptions).map(([category, categoryOptions]) => (\n <div key={category}>\n <SelectListCategory label={category} />\n {categoryOptions.map((option) => (\n <SelectListOption\n key={option?.value ?? option.label}\n onClick={(e) => handleSelectOption(e, option.value)}\n startIcon={\n preValues.includes(option.value!) ? (\n <IconSquareCheckFilled />\n ) : (\n <IconSquare />\n )\n }\n {...option}\n />\n ))}\n </div>\n ))\n : displayOptions.map((option) => (\n <SelectListOption\n key={option?.value ?? option.label}\n onClick={(e) => handleSelectOption(e, option.value)}\n startIcon={\n preValues.includes(option.value!) ? <IconSquareCheckFilled /> : <IconSquare />\n }\n {...option}\n />\n ))}\n {noOptionsMessage && displayOptions.length === 0 && (\n <SelectListOption disabled value=\"empty\" label={noOptionsMessage} />\n )}\n </SelectListOptions>\n <Button\n className={styles.submitButton}\n disabled={isSubmitDisabled || isLoading}\n variant=\"primary\"\n size=\"medium\"\n onClick={() => handleSave(preValues)}\n role=\"button\"\n >\n {submitLabel}\n </Button>\n </SelectList>\n </Dropdown>\n {errorMessage && <FieldErrorMessage message={errorMessage} />}\n </div>\n );\n};\n","import { DataResponse, Dimension } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../theme/theme.types';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { MultiSelectField } from '../../../../remarkable-ui';\n\nexport const MAX_OPTIONS = 200;\n\ntype MultiSelectFieldProProps = {\n title?: string;\n description?: string;\n dimension: Dimension;\n optionalSecondDimension?: Dimension;\n placeholder?: string;\n results: DataResponse;\n selectedValues: string[];\n maxOptions?: number;\n setSearchValue: (search: string) => void;\n onChange?: (newValues: string[]) => void;\n};\n\nconst MultiSelectFieldPro = (props: MultiSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n const {\n title,\n description,\n dimension,\n optionalSecondDimension,\n placeholder,\n results,\n selectedValues,\n setSearchValue,\n onChange,\n } = resolveI18nProps(props);\n\n const options =\n results.data?.map((data) => {\n return {\n value: optionalSecondDimension ? data[optionalSecondDimension.name] : data[dimension.name],\n label: themeFormatter.data(dimension, data[dimension.name]),\n };\n }) ?? [];\n\n const showNoOptionsMessage = Boolean(!results.isLoading && (results.data?.length ?? 0) === 0);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <MultiSelectField\n isClearable\n isSearchable\n isLoading={results.isLoading}\n values={selectedValues ?? []}\n options={options}\n placeholder={placeholder}\n noOptionsMessage={showNoOptionsMessage ? i18n.t('common.noOptionsFound') : undefined}\n onChange={(newValues) => onChange?.(newValues)}\n onSearch={setSearchValue}\n />\n </EditorCard>\n );\n};\n\nexport default MultiSelectFieldPro;\n"],"names":["__iconNode","IconSquare","createReactComponent","IconSquareCheckFilled","Button","variant","StartIcon","EndIcon","children","size","props","jsxs","BaseButton","styles","jsx","Typography","clsx","MultiSelectField","disabled","isClearable","isLoading","isSearchable","noOptionsMessage","options","placeholder","submitLabel","values","onChange","onSearch","error","errorMessage","isOpen","setIsOpen","useState","searchValue","setSearchValue","preValues","setPreValues","selectedLabel","setSelectedLabel","searchFieldRef","useRef","useSelectSearchFocus","useEffect","selectedOptions","value","_a","o","newLabel","debouncedSearch","useMemo","debounce","displayOptions","option","groupedOptions","groupOptionsByCategory","isSubmitDisabled","preValue","handleSelectOption","newValue","v","handleSearch","newSearch","handleSave","newValues","handleClearAll","hasError","Dropdown","SelectButton","SelectList","TextField","IconSearch","SelectListOptions","category","categoryOptions","SelectListCategory","SelectListOption","e","FieldErrorMessage","MAX_OPTIONS","MultiSelectFieldPro","theme","useTheme","themeFormatter","getThemeFormatter","title","description","dimension","optionalSecondDimension","results","selectedValues","resolveI18nProps","data","showNoOptionsMessage","_b","EditorCard","i18n"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"index-rZ8jtw5r.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconSquare.mjs","../node_modules/@tabler/icons-react/dist/esm/icons/IconSquareCheckFilled.mjs","../src/remarkable-ui/shared/Button/Button.tsx","../src/remarkable-ui/editors/select/MultiSelectField/MultiSelectField.tsx","../src/remarkable-pro/components/editors/MultiSelectFieldPro/index.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.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\": \"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z\", \"key\": \"svg-0\" }]];\nconst IconSquare = createReactComponent(\"outline\", \"square\", \"Square\", __iconNode);\n\nexport { __iconNode, IconSquare as default };\n//# sourceMappingURL=IconSquare.mjs.map\n","/**\n * @license @tabler/icons-react v3.35.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\": \"M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.626 7.293a1 1 0 0 0 -1.414 0l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.32 1.497l2 2l.094 .083a1 1 0 0 0 1.32 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z\", \"key\": \"svg-0\" }]];\nconst IconSquareCheckFilled = createReactComponent(\"filled\", \"square-check-filled\", \"SquareCheckFilled\", __iconNode);\n\nexport { __iconNode, IconSquareCheckFilled as default };\n//# sourceMappingURL=IconSquareCheckFilled.mjs.map\n","import { TablerIcon } from '@tabler/icons-react';\nimport styles from './Button.module.css';\nimport { BaseButton, type BaseButtonProps } from '../BaseButton';\nimport { Typography } from '../Typography/Typography';\nimport clsx from 'clsx';\n\ntype ButtonProps = BaseButtonProps & {\n startIcon?: TablerIcon;\n endIcon?: TablerIcon;\n children: string;\n size: 'small' | 'medium';\n};\n\nexport const Button: React.FC<ButtonProps> = ({\n variant,\n startIcon: StartIcon,\n endIcon: EndIcon,\n children,\n size,\n ...props\n}) => {\n return (\n <BaseButton\n variant={variant}\n {...props}\n className={size === 'medium' ? styles.buttonMedium : styles.buttonSmall}\n size={size}\n >\n {StartIcon && <StartIcon className={styles.icon} />}\n <Typography\n as=\"span\"\n className={clsx(\n styles.buttonText,\n styles[`buttonText${size.charAt(0).toUpperCase() + size.slice(1)}`],\n )}\n >\n {children}\n </Typography>\n {EndIcon && <EndIcon className={styles.icon} />}\n </BaseButton>\n );\n};\n","import { FC, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n SelectListOption,\n SelectListOptionProps,\n SelectListOptionPropsWithCategory,\n} from '../shared/SelectList/SelectListOptions/SelectListOption/SelectListOption';\nimport { SelectListCategory } from '../shared/SelectList/SelectListOptions/SelectListCategory/SelectListCategory';\nimport { debounce } from '../../../utils/debounce.utils';\nimport { Dropdown } from '../../../shared/Dropdown/Dropdown';\nimport { SelectButton } from '../shared/SelectButton/SelectButton';\nimport { SelectList } from '../shared/SelectList/SelectList';\nimport { groupOptionsByCategory } from '../shared/SelectList/selectList.utils';\nimport { TextField } from '../../TextField/TextField';\nimport { SelectListOptions } from '../shared/SelectList/SelectListOptions/SelectListOptions';\nimport { IconSearch, IconSquare, IconSquareCheckFilled } from '@tabler/icons-react';\nimport { Button } from '../../../shared/Button/Button';\nimport styles from './MultiSelectField.module.css';\nimport { useSelectSearchFocus } from '../shared/useSelectSearchFocus.hook';\nimport { FieldErrorMessage } from '../../../shared/FieldErrorMessage/FieldErrorMessage';\n\nexport type MultiSelectFieldProps = {\n disabled?: boolean;\n isClearable?: boolean;\n isLoading?: boolean;\n isSearchable?: boolean;\n noOptionsMessage?: string;\n options: (SelectListOptionProps | SelectListOptionPropsWithCategory)[];\n placeholder?: string;\n submitLabel?: string;\n values?: string[];\n onChange: (value: string[]) => void;\n onSearch?: (search: string) => void;\n error?: boolean;\n errorMessage?: string;\n};\n\nexport const MultiSelectField: FC<MultiSelectFieldProps> = ({\n disabled,\n isClearable,\n isLoading,\n isSearchable,\n noOptionsMessage,\n options,\n placeholder,\n submitLabel = 'Apply',\n values = [],\n onChange,\n onSearch,\n error = false,\n errorMessage,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [searchValue, setSearchValue] = useState<string>('');\n const [preValues, setPreValues] = useState<string[]>(values);\n const [selectedLabel, setSelectedLabel] = useState<string>('');\n\n const searchFieldRef = useRef<HTMLInputElement>(null);\n useSelectSearchFocus(isOpen, searchFieldRef);\n\n useEffect(() => {\n setPreValues(values);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(values)]);\n\n useEffect(() => {\n if (isLoading) {\n return;\n }\n\n if (!values || values.length === 0) {\n setSelectedLabel('');\n return;\n }\n const selectedOptions = values.map(\n (value) => options.find((o) => o.value === value)?.label ?? value,\n );\n\n if (selectedOptions.length > 0) {\n const newLabel = selectedOptions.join(', ');\n setSelectedLabel(`(${selectedOptions.length}) ${newLabel}`);\n }\n }, [values, options, isLoading]);\n\n const debouncedSearch = useMemo(() => (onSearch ? debounce(onSearch) : undefined), [onSearch]);\n\n const displayOptions =\n isSearchable && !onSearch\n ? options.filter((option) => option.label.toLowerCase().includes(searchValue.toLowerCase()))\n : options;\n\n const groupedOptions = useMemo(() => groupOptionsByCategory(displayOptions), [displayOptions]);\n\n const isSubmitDisabled =\n preValues.every((preValue) => values.includes(preValue)) &&\n values.every((value) => preValues.includes(value));\n\n const handleSelectOption = (\n e: React.MouseEvent<HTMLDivElement, MouseEvent>,\n newValue?: string,\n ) => {\n e.preventDefault();\n\n if (!newValue) return;\n\n if (preValues.includes(newValue)) {\n setPreValues(preValues.filter((v) => v !== newValue));\n } else {\n setPreValues([...preValues, newValue]);\n }\n };\n\n const handleSearch = (newSearch: string) => {\n setSearchValue(newSearch);\n debouncedSearch?.(newSearch);\n };\n\n const handleSave = (newValues: string[]) => {\n onChange(newValues);\n setIsOpen(false);\n setSearchValue('');\n onSearch?.('');\n };\n\n const handleClearAll = () => {\n setSearchValue('');\n onSearch?.('');\n onChange([]);\n };\n\n const hasError = error || !!errorMessage;\n\n return (\n <div className={styles.selectField}>\n <Dropdown\n open={isOpen}\n onOpenChange={setIsOpen}\n disabled={disabled}\n triggerComponent={\n <SelectButton\n aria-label=\"Select options\"\n placeholder={placeholder}\n disabled={disabled}\n valueLabel={selectedLabel}\n onClear={handleClearAll}\n isClearable={isClearable}\n isLoading={isLoading}\n error={hasError}\n />\n }\n >\n <SelectList>\n {isSearchable && (\n <TextField\n ref={searchFieldRef}\n startIcon={IconSearch}\n aria-label=\"Search options\"\n placeholder=\"Search…\"\n role=\"searchbox\"\n value={searchValue}\n onKeyDown={(e) => e.stopPropagation()}\n onChange={handleSearch}\n />\n )}\n <SelectListOptions disabled={isLoading}>\n {groupedOptions\n ? Object.entries(groupedOptions).map(([category, categoryOptions]) => (\n <div key={category}>\n <SelectListCategory label={category} />\n {categoryOptions.map((option) => (\n <SelectListOption\n key={option?.value ?? option.label}\n onClick={(e) => handleSelectOption(e, option.value)}\n startIcon={\n preValues.includes(option.value!) ? (\n <IconSquareCheckFilled />\n ) : (\n <IconSquare />\n )\n }\n {...option}\n />\n ))}\n </div>\n ))\n : displayOptions.map((option) => (\n <SelectListOption\n key={option?.value ?? option.label}\n onClick={(e) => handleSelectOption(e, option.value)}\n startIcon={\n preValues.includes(option.value!) ? <IconSquareCheckFilled /> : <IconSquare />\n }\n {...option}\n />\n ))}\n {noOptionsMessage && displayOptions.length === 0 && (\n <SelectListOption disabled value=\"empty\" label={noOptionsMessage} />\n )}\n </SelectListOptions>\n <Button\n className={styles.submitButton}\n disabled={isSubmitDisabled || isLoading}\n variant=\"primary\"\n size=\"medium\"\n onClick={() => handleSave(preValues)}\n role=\"button\"\n >\n {submitLabel}\n </Button>\n </SelectList>\n </Dropdown>\n {errorMessage && <FieldErrorMessage message={errorMessage} />}\n </div>\n );\n};\n","import { DataResponse, Dimension } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../theme/theme.types';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { MultiSelectField } from '../../../../remarkable-ui';\n\nexport const MAX_OPTIONS = 200;\n\ntype MultiSelectFieldProProps = {\n title?: string;\n description?: string;\n dimension: Dimension;\n optionalSecondDimension?: Dimension;\n placeholder?: string;\n results: DataResponse;\n selectedValues: string[];\n maxOptions?: number;\n setSearchValue: (search: string) => void;\n onChange?: (newValues: string[]) => void;\n};\n\nconst MultiSelectFieldPro = (props: MultiSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n const {\n title,\n description,\n dimension,\n optionalSecondDimension,\n placeholder,\n results,\n selectedValues,\n setSearchValue,\n onChange,\n } = resolveI18nProps(props);\n\n const options =\n results.data?.map((data) => {\n return {\n value: optionalSecondDimension ? data[optionalSecondDimension.name] : data[dimension.name],\n label: themeFormatter.data(dimension, data[dimension.name]),\n };\n }) ?? [];\n\n const showNoOptionsMessage = Boolean(!results.isLoading && (results.data?.length ?? 0) === 0);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <MultiSelectField\n isClearable\n isSearchable\n isLoading={results.isLoading}\n values={selectedValues ?? []}\n options={options}\n placeholder={placeholder}\n noOptionsMessage={showNoOptionsMessage ? i18n.t('common.noOptionsFound') : undefined}\n onChange={(newValues) => onChange?.(newValues)}\n onSearch={setSearchValue}\n />\n </EditorCard>\n );\n};\n\nexport default MultiSelectFieldPro;\n"],"names":["__iconNode","IconSquare","createReactComponent","IconSquareCheckFilled","Button","variant","StartIcon","EndIcon","children","size","props","jsxs","BaseButton","styles","jsx","Typography","clsx","MultiSelectField","disabled","isClearable","isLoading","isSearchable","noOptionsMessage","options","placeholder","submitLabel","values","onChange","onSearch","error","errorMessage","isOpen","setIsOpen","useState","searchValue","setSearchValue","preValues","setPreValues","selectedLabel","setSelectedLabel","searchFieldRef","useRef","useSelectSearchFocus","useEffect","selectedOptions","value","_a","o","newLabel","debouncedSearch","useMemo","debounce","displayOptions","option","groupedOptions","groupOptionsByCategory","isSubmitDisabled","preValue","handleSelectOption","newValue","v","handleSearch","newSearch","handleSave","newValues","handleClearAll","hasError","Dropdown","SelectButton","SelectList","TextField","IconSearch","SelectListOptions","category","categoryOptions","SelectListCategory","SelectListOption","e","FieldErrorMessage","MAX_OPTIONS","MultiSelectFieldPro","theme","useTheme","themeFormatter","getThemeFormatter","title","description","dimension","optionalSecondDimension","results","selectedValues","resolveI18nProps","data","showNoOptionsMessage","_b","EditorCard","i18n"],"mappings":"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","x_google_ignoreList":[0,1]}
package/dist/index.js CHANGED
@@ -1,23 +1,23 @@
1
- import { C as xs, S as bs } from "./ChartCard-CsgyAnzC.js";
2
- import { j as s, af as w, ag as u, ah as _, ai as I, aj as S, ak as N, al as T, am as P } from "./component.constants-6DERKpeq.js";
3
- import { an as _s, av as fs, ap as Cs, ao as gs, a0 as ys, au as js, aw as vs, ar as ws, as as Is, aq as Ss, a6 as Ns, a7 as Ts, ay as Ps, at as $s, T as ks, d as As, ax as Bs, c as Ls, z as Ms, aL as Ds, ac as Fs, W as Rs, b as zs, aK as Os, a9 as Ws, aM as Es, Y as Gs, Z as Ks, a5 as qs, X as Hs, F as Vs, C as Xs, a8 as Us, U as Ys, i as Js, a3 as Zs, A as Qs, w as sa, a as aa, ae as ea, r as ta, p as na, h as oa, s as ra, g as ia, e as ca, aN as la, B as ua, f as ma, aG as ha, ab as da, a1 as xa, aF as ba, aH as pa, aE as _a, aB as fa, a4 as Ca, aC as ga, aI as ya, aD as ja, az as va, aA as wa, aa as Ia, aJ as Sa, t as Na, x as Ta, v as Pa, l as $a, k as ka, y as Aa, n as Ba, u as La, q as Ma } from "./component.constants-6DERKpeq.js";
1
+ import { C as xs, S as bs } from "./ChartCard-DrhhDEHS.js";
2
+ import { j as s, af as w, ag as u, ah as _, ai as I, aj as S, ak as N, al as T, am as P } from "./component.constants-DEUc2joh.js";
3
+ import { an as _s, av as fs, ap as Cs, ao as gs, a0 as ys, au as js, aw as vs, ar as ws, as as Is, aq as Ss, a6 as Ns, a7 as Ts, ay as Ps, at as $s, T as ks, d as As, ax as Bs, c as Ls, z as Ms, aL as Ds, ac as Fs, W as Rs, b as zs, aK as Os, a9 as Ws, aM as Es, Y as Gs, Z as Ks, a5 as qs, X as Hs, F as Vs, C as Xs, a8 as Us, U as Ys, i as Js, a3 as Zs, A as Qs, w as sa, a as aa, ae as ea, r as ta, p as na, h as oa, s as ra, g as ia, e as ca, aN as la, B as ua, f as ma, aG as ha, ab as da, a1 as xa, aF as ba, aH as pa, aE as _a, aB as fa, a4 as Ca, aC as ga, aI as ya, aD as ja, az as va, aA as wa, aa as Ia, aJ as Sa, t as Na, x as Ta, v as Pa, l as $a, k as ka, y as Aa, n as Ba, u as La, q as Ma } from "./component.constants-DEUc2joh.js";
4
4
  import { useRef as $, useState as k, useEffect as A } from "react";
5
- import { E as Fa, S as Ra } from "./EditorCard-DAwqwoAp.js";
6
- import { B as g } from "./index-Cj5wpig9.js";
7
- import { b as Oa, i as Wa } from "./index-Cj5wpig9.js";
8
- import { S as Ga } from "./SingleSelectField-CMzbI0wG.js";
9
- import { K as qa } from "./KpiChart-DKyxH3oh.js";
10
- import { P as Va } from "./PivotTable-DCJT9sa0.js";
11
- import { r as Ua, s as Ya } from "./charts.utils-9h6uemzB.js";
5
+ import { E as Fa, S as Ra } from "./EditorCard-CamjthzJ.js";
6
+ import { B as g } from "./index-rZ8jtw5r.js";
7
+ import { b as Oa, i as Wa } from "./index-rZ8jtw5r.js";
8
+ import { S as Ga } from "./SingleSelectField-D0oUkXEJ.js";
9
+ import { K as qa } from "./KpiChart-C8mPalrH.js";
10
+ import { P as Va } from "./PivotTable-BLa71kwu.js";
11
+ import { r as Ua, s as Ya } from "./charts.utils-thzpOSh_.js";
12
12
  import { g as Za } from "./object.utils-D_Zzon-H.js";
13
- import { g as se } from "./formatter.utils-R5zIrZIA.js";
14
- import { a as ee, g as te } from "./pies.utils-BHep0bTK.js";
15
- import { i as oe } from "./index-CLkczqL_.js";
16
- import { i as ie } from "./index-DfnO1U7b.js";
17
- import { i as le } from "./index-Dfbt_iT7.js";
18
- import { i as me } from "./index-hua9dsBD.js";
19
- import { i as de } from "./index-YRGaBl06.js";
20
- import { C as be } from "./ComparisonPeriod.type.emb-ZjbGbiV1.js";
13
+ import { g as se } from "./formatter.utils-CAAgns3t.js";
14
+ import { a as ee, g as te } from "./pies.utils-DkDZL0WT.js";
15
+ import { i as oe } from "./index-VGYV6U_O.js";
16
+ import { i as ie } from "./index-C-rXQnzA.js";
17
+ import { i as le } from "./index-BfMKs-AD.js";
18
+ import { i as me } from "./index-D-7qoxpC.js";
19
+ import { i as de } from "./index-1MVz8QMV.js";
20
+ import { C as be } from "./ComparisonPeriod.type.emb-gOwI10DU.js";
21
21
  import { i as _e, s as fe } from "./color.utils-CVyp-fGP.js";
22
22
  const B = "_container_436fl_1", L = "_column_436fl_10", M = "_box_436fl_20", D = "_short_436fl_26", F = "_tall_436fl_34", e = {
23
23
  container: B,
@@ -1,7 +1,7 @@
1
- import { r as u, g as b } from "./charts.utils-9h6uemzB.js";
2
- import { g } from "./formatter.utils-R5zIrZIA.js";
1
+ import { r as u, g as b } from "./charts.utils-thzpOSh_.js";
2
+ import { g } from "./formatter.utils-CAAgns3t.js";
3
3
  import { g as h, a as i } from "./object.utils-D_Zzon-H.js";
4
- import { T as c, U as f } from "./component.constants-6DERKpeq.js";
4
+ import { T as c, U as f } from "./component.constants-DEUc2joh.js";
5
5
  import "react";
6
6
  const y = (a, o = u) => {
7
7
  const n = g(o);
@@ -72,4 +72,4 @@ export {
72
72
  F as a,
73
73
  y as g
74
74
  };
75
- //# sourceMappingURL=pies.utils-BHep0bTK.js.map
75
+ //# sourceMappingURL=pies.utils-DkDZL0WT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pies.utils-BHep0bTK.js","sources":["../src/remarkable-pro/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 { chartColors } from '../../../../remarkable-ui';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { getObjectStableKey } from '../../../utils.ts/object.utils';\n\nexport const getPieChartData = (\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\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 type DefaultPieChartOptions = {\n measure: Measure;\n showTooltips: boolean;\n showLegend: boolean;\n showValueLabels: boolean;\n};\n\nexport const getDefaultPieChartOptions = (\n options: DefaultPieChartOptions,\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: { display: options.showLegend, position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n display: options.showValueLabels ? 'auto' : false,\n formatter: (value: string | number) => themeFormatter.data(options.measure, value),\n },\n tooltip: {\n enabled: options.showTooltips,\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(options.measure, raw)} (${pct}%)`;\n },\n },\n },\n },\n };\n};\n"],"names":["getPieChartData","props","theme","remarkableTheme","themeFormatter","getThemeFormatter","groupedData","groupTailAsOther","themeKey","getObjectStableKey","backgroundColor","item","i","getColor","chartColors","borderColor","value","formattedValue","i18n","getDefaultPieChartOptions","options","context","raw","total","sum","v","pct"],"mappings":";;;;;AAWO,MAAMA,IAAkB,CAC7BC,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,GAEnCQ,IAAkBJ,EAAY;AAAA,IAAI,CAACK,GAAMC,MAC7CC;AAAA,MACE,GAAGL,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,oBAAoBY;AAAA,MACjCF;AAAA,IAAA;AAAA,EACF,GAGIG,IAAcT,EAAY;AAAA,IAAI,CAACK,GAAMC,MACzCC;AAAA,MACE,GAAGL,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,gBAAgBY;AAAA,MAC7BF;AAAA,IAAA;AAAA,EACF;AAGF,SAAO;AAAA,IACL,QAAQN,EAAY,IAAI,CAACK,MAAS;AAChC,YAAMK,IAAQL,EAAKV,EAAM,UAAU,IAAI,GACjCgB,IAAiBb,EAAe,KAAKH,EAAM,WAAWe,CAAK;AAGjE,aAAIA,MAAUC,IACLC,EAAK,EAAEF,CAAK,IAEdC;AAAA,IACT,CAAC;AAAA,IACD,UAAU;AAAA,MACR;AAAA,QACE,MAAMX,EAAY,IAAI,CAACK,MAASA,EAAKV,EAAM,QAAQ,IAAI,CAAC;AAAA,QACxD,iBAAAS;AAAA,QACA,aAAAK;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,GASaI,IAA4B,CACvCC,GACAlB,IAAeC,MACkB;AACjC,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,SAASkB,EAAQ,YAAY,UAAUlB,EAAM,OAAO,kBAAkB,SAAA;AAAA,MAChF,YAAY;AAAA,QACV,SAASkB,EAAQ,kBAAkB,SAAS;AAAA,QAC5C,WAAW,CAACJ,MAA2BZ,EAAe,KAAKgB,EAAQ,SAASJ,CAAK;AAAA,MAAA;AAAA,MAEnF,SAAS;AAAA,QACP,SAASI,EAAQ;AAAA,QACjB,WAAW;AAAA,UACT,MAAMC,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,GAAGnB,EAAe,KAAKgB,EAAQ,SAASE,CAAG,CAAC,KAAKI,CAAG;AAAA,UAC7D;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"pies.utils-DkDZL0WT.js","sources":["../src/remarkable-pro/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 { chartColors } from '../../../../remarkable-ui';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { getObjectStableKey } from '../../../utils.ts/object.utils';\n\nexport const getPieChartData = (\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\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 type DefaultPieChartOptions = {\n measure: Measure;\n showTooltips: boolean;\n showLegend: boolean;\n showValueLabels: boolean;\n};\n\nexport const getDefaultPieChartOptions = (\n options: DefaultPieChartOptions,\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: { display: options.showLegend, position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n display: options.showValueLabels ? 'auto' : false,\n formatter: (value: string | number) => themeFormatter.data(options.measure, value),\n },\n tooltip: {\n enabled: options.showTooltips,\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(options.measure, raw)} (${pct}%)`;\n },\n },\n },\n },\n };\n};\n"],"names":["getPieChartData","props","theme","remarkableTheme","themeFormatter","getThemeFormatter","groupedData","groupTailAsOther","themeKey","getObjectStableKey","backgroundColor","item","i","getColor","chartColors","borderColor","value","formattedValue","i18n","getDefaultPieChartOptions","options","context","raw","total","sum","v","pct"],"mappings":";;;;;AAWO,MAAMA,IAAkB,CAC7BC,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,GAEnCQ,IAAkBJ,EAAY;AAAA,IAAI,CAACK,GAAMC,MAC7CC;AAAA,MACE,GAAGL,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,oBAAoBY;AAAA,MACjCF;AAAA,IAAA;AAAA,EACF,GAGIG,IAAcT,EAAY;AAAA,IAAI,CAACK,GAAMC,MACzCC;AAAA,MACE,GAAGL,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,gBAAgBY;AAAA,MAC7BF;AAAA,IAAA;AAAA,EACF;AAGF,SAAO;AAAA,IACL,QAAQN,EAAY,IAAI,CAACK,MAAS;AAChC,YAAMK,IAAQL,EAAKV,EAAM,UAAU,IAAI,GACjCgB,IAAiBb,EAAe,KAAKH,EAAM,WAAWe,CAAK;AAGjE,aAAIA,MAAUC,IACLC,EAAK,EAAEF,CAAK,IAEdC;AAAA,IACT,CAAC;AAAA,IACD,UAAU;AAAA,MACR;AAAA,QACE,MAAMX,EAAY,IAAI,CAACK,MAASA,EAAKV,EAAM,QAAQ,IAAI,CAAC;AAAA,QACxD,iBAAAS;AAAA,QACA,aAAAK;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,GASaI,IAA4B,CACvCC,GACAlB,IAAeC,MACkB;AACjC,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,SAASkB,EAAQ,YAAY,UAAUlB,EAAM,OAAO,kBAAkB,SAAA;AAAA,MAChF,YAAY;AAAA,QACV,SAASkB,EAAQ,kBAAkB,SAAS;AAAA,QAC5C,WAAW,CAACJ,MAA2BZ,EAAe,KAAKgB,EAAQ,SAASJ,CAAK;AAAA,MAAA;AAAA,MAEnF,SAAS;AAAA,QACP,SAASI,EAAQ;AAAA,QACjB,WAAW;AAAA,UACT,MAAMC,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,GAAGnB,EAAe,KAAKgB,EAAQ,SAASE,CAAG,CAAC,KAAKI,CAAG;AAAA,UAC7D;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -203,7 +203,6 @@ export declare const maxResults: {
203
203
  readonly label: "Max results";
204
204
  readonly category: "Component Settings";
205
205
  readonly defaultValue: 1000;
206
- readonly required: true;
207
206
  };
208
207
  export declare const showLegend: {
209
208
  readonly name: "showLegend";
@@ -1 +1 @@
1
- {"version":3,"file":"component.constants.d.ts","sourceRoot":"","sources":["../../../src/remarkable-pro/components/component.constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;CAKzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;CAMzB,CAAC;AACF,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;CAKzB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;CAIxB,CAAC;AAIX,eAAO,MAAM,qBAAqB,EAAE,GAK1B,CAAC;AAIX,eAAO,MAAM,qBAAqB,EAAE,GAK1B,CAAC;AAIX,eAAO,MAAM,gBAAgB,EAAE,GAMrB,CAAC;AAIX,eAAO,MAAM,6BAA6B,EAAE,GAKlC,CAAC;AAIX,eAAO,MAAM,kBAAkB,EAAE,GAMvB,CAAC;AAIX,eAAO,MAAM,mBAAmB,EAAE,GAKxB,CAAC;AAYX,eAAO,MAAM,sBAAsB,OAUlC,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;;CAMV,CAAC;AAEX,eAAO,MAAM,SAAS;;;;;;;;;;CAUZ,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;CAUlB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;CAWhB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;CAU1B,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;CAUb,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;;;CASrB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;;;;CAWxB,CAAC;AAEX,eAAO,MAAM,OAAO;;;;;;;;;;CAUV,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;;;;CAWX,CAAC;AAEX,eAAO,MAAM,KAAK;;;;;CAKR,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;CAMb,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;;;CAMvB,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;CAMrB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAGX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;CAKd,CAAC"}
1
+ {"version":3,"file":"component.constants.d.ts","sourceRoot":"","sources":["../../../src/remarkable-pro/components/component.constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;CAKzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;CAMzB,CAAC;AACF,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;CAKzB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;CAIxB,CAAC;AAIX,eAAO,MAAM,qBAAqB,EAAE,GAK1B,CAAC;AAIX,eAAO,MAAM,qBAAqB,EAAE,GAK1B,CAAC;AAIX,eAAO,MAAM,gBAAgB,EAAE,GAMrB,CAAC;AAIX,eAAO,MAAM,6BAA6B,EAAE,GAKlC,CAAC;AAIX,eAAO,MAAM,kBAAkB,EAAE,GAMvB,CAAC;AAIX,eAAO,MAAM,mBAAmB,EAAE,GAKxB,CAAC;AAYX,eAAO,MAAM,sBAAsB,OAUlC,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;;CAMV,CAAC;AAEX,eAAO,MAAM,SAAS;;;;;;;;;;CAUZ,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;CAUlB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;CAWhB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;CAU1B,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;CAUb,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;;;CASrB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;;;;CAWxB,CAAC;AAEX,eAAO,MAAM,OAAO;;;;;;;;;;CAUV,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;;;;CAWX,CAAC;AAEX,eAAO,MAAM,KAAK;;;;;CAKR,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;CAMb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;CAMb,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;;;CAMvB,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;CAMrB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAGX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;CAKd,CAAC"}
@@ -1,4 +1,4 @@
1
- import { a2 as i } from "./component.constants-6DERKpeq.js";
1
+ import { a2 as i } from "./component.constants-DEUc2joh.js";
2
2
  const f = (o, t, s) => {
3
3
  var d;
4
4
  if (!o || !t)
@@ -17,4 +17,4 @@ export {
17
17
  v as a,
18
18
  f as g
19
19
  };
20
- //# sourceMappingURL=timeRange.utils-C61mst0e.js.map
20
+ //# sourceMappingURL=timeRange.utils-DZYynXbb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeRange.utils-C61mst0e.js","sources":["../src/remarkable-pro/components/utils/timeRange.utils.ts"],"sourcesContent":["import { TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../theme/theme.types';\nimport { resolveI18nString } from '../component.utils';\n\nexport const getComparisonPeriodDateRange = (\n primaryDateRange: TimeRange,\n comparisonPeriod: string | undefined,\n theme: Theme,\n): TimeRange => {\n if (!primaryDateRange || !comparisonPeriod) {\n return undefined;\n }\n\n const primaryDateRangeRange = primaryDateRange?.relativeTimeString\n ? theme.defaults.dateRangesOptions\n .find((option) => option.value === primaryDateRange?.relativeTimeString)\n ?.getRange()\n : primaryDateRange;\n\n const comparisonPeriodOption = theme.defaults.comparisonPeriodsOptions.find(\n (option) => option.value === comparisonPeriod,\n );\n\n return comparisonPeriodOption?.getRange(primaryDateRangeRange);\n};\n\nexport const getComparisonPeriodLabel = (\n comparisonPeriod: string | undefined,\n theme: Theme,\n): string => {\n const option = theme.defaults.comparisonPeriodsOptions.find(\n (option) => option.value === comparisonPeriod,\n );\n return option ? resolveI18nString(option.label) : '';\n};\n"],"names":["getComparisonPeriodDateRange","primaryDateRange","comparisonPeriod","theme","primaryDateRangeRange","_a","option","comparisonPeriodOption","getComparisonPeriodLabel","resolveI18nString"],"mappings":";AAIO,MAAMA,IAA+B,CAC1CC,GACAC,GACAC,MACc;;AACd,MAAI,CAACF,KAAoB,CAACC;AACxB;AAGF,QAAME,IAAwBH,KAAA,QAAAA,EAAkB,sBAC5CI,IAAAF,EAAM,SAAS,kBACZ,KAAK,CAACG,MAAWA,EAAO,WAAUL,KAAA,gBAAAA,EAAkB,mBAAkB,MADzE,gBAAAI,EAEI,aACJJ,GAEEM,IAAyBJ,EAAM,SAAS,yBAAyB;AAAA,IACrE,CAACG,MAAWA,EAAO,UAAUJ;AAAA,EAAA;AAG/B,SAAOK,KAAA,gBAAAA,EAAwB,SAASH;AAC1C,GAEaI,IAA2B,CACtCN,GACAC,MACW;AACX,QAAMG,IAASH,EAAM,SAAS,yBAAyB;AAAA,IACrD,CAACG,MAAWA,EAAO,UAAUJ;AAAA,EAAA;AAE/B,SAAOI,IAASG,EAAkBH,EAAO,KAAK,IAAI;AACpD;"}
1
+ {"version":3,"file":"timeRange.utils-DZYynXbb.js","sources":["../src/remarkable-pro/components/utils/timeRange.utils.ts"],"sourcesContent":["import { TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../theme/theme.types';\nimport { resolveI18nString } from '../component.utils';\n\nexport const getComparisonPeriodDateRange = (\n primaryDateRange: TimeRange,\n comparisonPeriod: string | undefined,\n theme: Theme,\n): TimeRange => {\n if (!primaryDateRange || !comparisonPeriod) {\n return undefined;\n }\n\n const primaryDateRangeRange = primaryDateRange?.relativeTimeString\n ? theme.defaults.dateRangesOptions\n .find((option) => option.value === primaryDateRange?.relativeTimeString)\n ?.getRange()\n : primaryDateRange;\n\n const comparisonPeriodOption = theme.defaults.comparisonPeriodsOptions.find(\n (option) => option.value === comparisonPeriod,\n );\n\n return comparisonPeriodOption?.getRange(primaryDateRangeRange);\n};\n\nexport const getComparisonPeriodLabel = (\n comparisonPeriod: string | undefined,\n theme: Theme,\n): string => {\n const option = theme.defaults.comparisonPeriodsOptions.find(\n (option) => option.value === comparisonPeriod,\n );\n return option ? resolveI18nString(option.label) : '';\n};\n"],"names":["getComparisonPeriodDateRange","primaryDateRange","comparisonPeriod","theme","primaryDateRangeRange","_a","option","comparisonPeriodOption","getComparisonPeriodLabel","resolveI18nString"],"mappings":";AAIO,MAAMA,IAA+B,CAC1CC,GACAC,GACAC,MACc;;AACd,MAAI,CAACF,KAAoB,CAACC;AACxB;AAGF,QAAME,IAAwBH,KAAA,QAAAA,EAAkB,sBAC5CI,IAAAF,EAAM,SAAS,kBACZ,KAAK,CAACG,MAAWA,EAAO,WAAUL,KAAA,gBAAAA,EAAkB,mBAAkB,MADzE,gBAAAI,EAEI,aACJJ,GAEEM,IAAyBJ,EAAM,SAAS,yBAAyB;AAAA,IACrE,CAACG,MAAWA,EAAO,UAAUJ;AAAA,EAAA;AAG/B,SAAOK,KAAA,gBAAAA,EAAwB,SAASH;AAC1C,GAEaI,IAA2B,CACtCN,GACAC,MACW;AACX,QAAMG,IAASH,EAAM,SAAS,yBAAyB;AAAA,IACrD,CAACG,MAAWA,EAAO,UAAUJ;AAAA,EAAA;AAE/B,SAAOI,IAASG,EAAkBH,EAAO,KAAK,IAAI;AACpD;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@embeddable.com/remarkable-ui",
3
3
  "author": "embeddable (https://embeddable.com)",
4
- "version": "0.1.41",
4
+ "version": "0.1.42",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",