@embeddable.com/remarkable-pro 0.2.5 → 0.2.7

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 (188) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +1 -1
  2. package/dist/BarChartDefaultPro.js +1 -1
  3. package/dist/BarChartGroupedHorizontalPro.js +1 -1
  4. package/dist/BarChartGroupedPro.js +1 -1
  5. package/dist/BarChartStackedHorizontalPro.js +1 -1
  6. package/dist/BarChartStackedPro.js +1 -1
  7. package/dist/ComparisonPeriodSelectFieldPro.js +1 -1
  8. package/dist/DateRangePickerCustomPro.js +1 -1
  9. package/dist/DateRangeSelectFieldPro.js +1 -1
  10. package/dist/{DimensionAndMeasureSingleSelectField-HJcwoxiQ.js → DimensionAndMeasureSingleSelectField-B-HiSZ1m.js} +2 -2
  11. package/dist/{DimensionAndMeasureSingleSelectField-HJcwoxiQ.js.map → DimensionAndMeasureSingleSelectField-B-HiSZ1m.js.map} +1 -1
  12. package/dist/DimensionMeasureMultiSelectFieldPro.js +1 -1
  13. package/dist/DimensionSingleSelectFieldPro.js +1 -1
  14. package/dist/DonutChartPro.js +1 -1
  15. package/dist/DonutLabelChartPro.js +1 -1
  16. package/dist/FilterBuilderPro.js +3 -3
  17. package/dist/{GranularitySelectField-l18OwBvC.js → GranularitySelectField-DpQLHVFc.js} +2 -2
  18. package/dist/{GranularitySelectField-l18OwBvC.js.map → GranularitySelectField-DpQLHVFc.js.map} +1 -1
  19. package/dist/GranularitySelectFieldPro.js +1 -1
  20. package/dist/HeatMapPro.js +1 -1
  21. package/dist/HorizontalDividerPro.js +1 -1
  22. package/dist/KpiChartNumberComparisonPro.js +1 -1
  23. package/dist/KpiChartNumberPro.js +1 -1
  24. package/dist/LineChartComparisonDefaultPro.js +1 -1
  25. package/dist/LineChartDefaultPro.js +1 -1
  26. package/dist/LineChartGroupedPro.js +1 -1
  27. package/dist/LineChartWithKpiTabsPro.js +1 -1
  28. package/dist/MarkdownPro.js +1 -1
  29. package/dist/MeasureMultiSelectFieldPro.js +1 -1
  30. package/dist/MeasureSingleSelectFieldPro.js +1 -1
  31. package/dist/MultiSelectFieldPro.js +1 -1
  32. package/dist/PieChartPro.js +1 -1
  33. package/dist/PivotTablePro.js +1 -1
  34. package/dist/ScatterChartPro.js +1 -1
  35. package/dist/SingleSelectFieldPro.js +1 -1
  36. package/dist/TableChartPaginated.js +1 -1
  37. package/dist/TableScrollable.js +1 -1
  38. package/dist/TextFieldPro.js +1 -1
  39. package/dist/{bars.loadData.utils-DpaXxzT5.js → bars.loadData.utils-C3w-0agD.js} +3 -3
  40. package/dist/{bars.loadData.utils-DpaXxzT5.js.map → bars.loadData.utils-C3w-0agD.js.map} +1 -1
  41. package/dist/bars.utils-DR-ga7ps.js +176 -0
  42. package/dist/bars.utils-DR-ga7ps.js.map +1 -0
  43. package/dist/{charts.fillGaps.hooks-CPpTEo01.js → charts.fillGaps.hooks-DgH30vXI.js} +2 -2
  44. package/dist/{charts.fillGaps.hooks-CPpTEo01.js.map → charts.fillGaps.hooks-DgH30vXI.js.map} +1 -1
  45. package/dist/charts.utils-BEwWG4s2.js +25 -0
  46. package/dist/charts.utils-BEwWG4s2.js.map +1 -0
  47. package/dist/{component.inputs.constants-Bf2Ty2En.js → component.inputs.constants-DnFrZzR7.js} +206 -191
  48. package/dist/component.inputs.constants-DnFrZzR7.js.map +1 -0
  49. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/BarChartGroupedHorizontalPro.emb.d.ts +1 -1
  50. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts +2 -2
  51. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts.map +1 -1
  52. package/dist/components/charts/bars/BarChartGroupedPro/BarChartGroupedPro.emb.d.ts +1 -1
  53. package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts +2 -2
  54. package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts.map +1 -1
  55. package/dist/components/charts/bars/BarChartStackedHorizontalPro/BarChartStackedHorizontalPro.emb.d.ts +1 -1
  56. package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts +2 -2
  57. package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts.map +1 -1
  58. package/dist/components/charts/bars/BarChartStackedPro/BarChartStackedPro.emb.d.ts +1 -1
  59. package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts +2 -2
  60. package/dist/components/charts/bars/BarChartStackedPro/index.d.ts.map +1 -1
  61. package/dist/components/charts/bars/bars.utils.d.ts +11 -0
  62. package/dist/components/charts/bars/bars.utils.d.ts.map +1 -1
  63. package/dist/components/charts/charts.utils.d.ts +1 -0
  64. package/dist/components/charts/charts.utils.d.ts.map +1 -1
  65. package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.utils.d.ts.map +1 -1
  66. package/dist/components/charts/lines/LineChartDefaultPro/LineChartDefaultPro.utils.d.ts.map +1 -1
  67. package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.d.ts +1 -0
  68. package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.d.ts.map +1 -1
  69. package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.test.d.ts +2 -0
  70. package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.test.d.ts.map +1 -0
  71. package/dist/components/charts/lines/lines.utils.d.ts +4 -1
  72. package/dist/components/charts/lines/lines.utils.d.ts.map +1 -1
  73. package/dist/components/charts/pies/pies.utils.d.ts +4 -1
  74. package/dist/components/charts/pies/pies.utils.d.ts.map +1 -1
  75. package/dist/components/charts/tables/TableChartPaginated/TableChartPaginated.emb.d.ts +17 -0
  76. package/dist/components/charts/tables/TableChartPaginated/TableChartPaginated.emb.d.ts.map +1 -1
  77. package/dist/components/charts/tables/TableChartPaginated/definition.d.ts +39 -3
  78. package/dist/components/charts/tables/TableChartPaginated/definition.d.ts.map +1 -1
  79. package/dist/components/charts/tables/TableScrollable/TableScrollable.emb.d.ts +17 -0
  80. package/dist/components/charts/tables/TableScrollable/TableScrollable.emb.d.ts.map +1 -1
  81. package/dist/components/charts/tables/TableScrollable/definition.d.ts +39 -4
  82. package/dist/components/charts/tables/TableScrollable/definition.d.ts.map +1 -1
  83. package/dist/components/component.inputs.constants.d.ts +18 -2
  84. package/dist/components/component.inputs.constants.d.ts.map +1 -1
  85. package/dist/{definition-DOQkt6mp.js → definition-5MQbWUXL.js} +12 -12
  86. package/dist/definition-5MQbWUXL.js.map +1 -0
  87. package/dist/{definition-CS4RuL8e.js → definition-B66i_lHu.js} +3 -3
  88. package/dist/{definition-CS4RuL8e.js.map → definition-B66i_lHu.js.map} +1 -1
  89. package/dist/{definition-eDsz1LSa.js → definition-BNOhKWNT.js} +3 -3
  90. package/dist/{definition-eDsz1LSa.js.map → definition-BNOhKWNT.js.map} +1 -1
  91. package/dist/{definition-CGptoEwG.js → definition-BNffWCqm.js} +46 -39
  92. package/dist/definition-BNffWCqm.js.map +1 -0
  93. package/dist/{definition-B0EoSD5U.js → definition-BZVoO8bb.js} +3 -3
  94. package/dist/{definition-B0EoSD5U.js.map → definition-BZVoO8bb.js.map} +1 -1
  95. package/dist/{definition-B_WnKkA9.js → definition-Ba7J1LGI.js} +2 -2
  96. package/dist/{definition-B_WnKkA9.js.map → definition-Ba7J1LGI.js.map} +1 -1
  97. package/dist/{definition-B5pATGjj.js → definition-Bm1ec3cN.js} +3 -3
  98. package/dist/{definition-B5pATGjj.js.map → definition-Bm1ec3cN.js.map} +1 -1
  99. package/dist/{definition-D9ZlqgLF.js → definition-BpHv0bRb.js} +2 -2
  100. package/dist/{definition-D9ZlqgLF.js.map → definition-BpHv0bRb.js.map} +1 -1
  101. package/dist/{definition-CdcpkNRA.js → definition-CJR0UaGt.js} +3 -3
  102. package/dist/{definition-CdcpkNRA.js.map → definition-CJR0UaGt.js.map} +1 -1
  103. package/dist/{definition-CnRhPW66.js → definition-CMvwdXRu.js} +55 -48
  104. package/dist/definition-CMvwdXRu.js.map +1 -0
  105. package/dist/{definition-DWIyItYm.js → definition-Ce2VcCyv.js} +5 -5
  106. package/dist/{definition-DWIyItYm.js.map → definition-Ce2VcCyv.js.map} +1 -1
  107. package/dist/{definition-D6fsmeL7.js → definition-CfCvupyD.js} +3 -3
  108. package/dist/{definition-D6fsmeL7.js.map → definition-CfCvupyD.js.map} +1 -1
  109. package/dist/{definition-b_Q1K06P.js → definition-D1YtBczb.js} +44 -37
  110. package/dist/definition-D1YtBczb.js.map +1 -0
  111. package/dist/{definition-YVbooAf6.js → definition-D2bJQDNh.js} +33 -26
  112. package/dist/definition-D2bJQDNh.js.map +1 -0
  113. package/dist/{definition-hgg6kcIq.js → definition-D30Z62sw.js} +4 -4
  114. package/dist/{definition-hgg6kcIq.js.map → definition-D30Z62sw.js.map} +1 -1
  115. package/dist/{definition-DEqyuC5t.js → definition-D59NL3vt.js} +3 -3
  116. package/dist/{definition-DEqyuC5t.js.map → definition-D59NL3vt.js.map} +1 -1
  117. package/dist/{definition-D6c43j2_.js → definition-DIH0gF4I.js} +5 -5
  118. package/dist/{definition-D6c43j2_.js.map → definition-DIH0gF4I.js.map} +1 -1
  119. package/dist/{definition-CUA9oFdm.js → definition-DISg7Yca.js} +3 -3
  120. package/dist/{definition-CUA9oFdm.js.map → definition-DISg7Yca.js.map} +1 -1
  121. package/dist/definition-DIkjRBmH.js +260 -0
  122. package/dist/definition-DIkjRBmH.js.map +1 -0
  123. package/dist/{definition-mP5KhZwN.js → definition-DMI3MDQJ.js} +2 -2
  124. package/dist/{definition-mP5KhZwN.js.map → definition-DMI3MDQJ.js.map} +1 -1
  125. package/dist/definition-DOaQylZq.js +281 -0
  126. package/dist/definition-DOaQylZq.js.map +1 -0
  127. package/dist/{definition-uwrGYsP0.js → definition-DQP0JMyo.js} +115 -101
  128. package/dist/definition-DQP0JMyo.js.map +1 -0
  129. package/dist/{definition-DxTb-MOm.js → definition-Dd4MdyW4.js} +2 -2
  130. package/dist/{definition-DxTb-MOm.js.map → definition-Dd4MdyW4.js.map} +1 -1
  131. package/dist/{definition-CJHymHtY.js → definition-DvM-bBHc.js} +4 -4
  132. package/dist/{definition-CJHymHtY.js.map → definition-DvM-bBHc.js.map} +1 -1
  133. package/dist/{definition-Dpo-1FJs.js → definition-DwouHcfu.js} +11 -11
  134. package/dist/definition-DwouHcfu.js.map +1 -0
  135. package/dist/{definition-DfHOG4Fd.js → definition-HByuRICY.js} +80 -79
  136. package/dist/definition-HByuRICY.js.map +1 -0
  137. package/dist/{definition-Bf2gheY1.js → definition-HLAKpAEj.js} +2 -2
  138. package/dist/{definition-Bf2gheY1.js.map → definition-HLAKpAEj.js.map} +1 -1
  139. package/dist/{definition-DbspoO9C.js → definition-NZLRzHFa.js} +2 -2
  140. package/dist/{definition-DbspoO9C.js.map → definition-NZLRzHFa.js.map} +1 -1
  141. package/dist/{definition-B2TigGb3.js → definition-_hl_uvEW.js} +11 -11
  142. package/dist/definition-_hl_uvEW.js.map +1 -0
  143. package/dist/{definition-CQaZAYag.js → definition-luwVk1GE.js} +3 -3
  144. package/dist/{definition-CQaZAYag.js.map → definition-luwVk1GE.js.map} +1 -1
  145. package/dist/{definition-DCNv1r9i.js → definition-mz09xu8Q.js} +5 -5
  146. package/dist/{definition-DCNv1r9i.js.map → definition-mz09xu8Q.js.map} +1 -1
  147. package/dist/definition-nEosVAA3.js +564 -0
  148. package/dist/{definition-DLsqkPjT.js.map → definition-nEosVAA3.js.map} +1 -1
  149. package/dist/{definition-JPgTRMBs.js → definition-vdBo_sz-.js} +3 -3
  150. package/dist/{definition-JPgTRMBs.js.map → definition-vdBo_sz-.js.map} +1 -1
  151. package/dist/{dimensionsAndMeasures.utils-z1Fh_wO2.js → dimensionsAndMeasures.utils-DsVzuJ1x.js} +2 -2
  152. package/dist/{dimensionsAndMeasures.utils-z1Fh_wO2.js.map → dimensionsAndMeasures.utils-DsVzuJ1x.js.map} +1 -1
  153. package/dist/embeddable-components.json +46 -46
  154. package/dist/embeddable-theme-0137e.js +1 -1
  155. package/dist/{formatter.utils-ClBgeuH1.js → formatter.utils-BZMmas2O.js} +2 -2
  156. package/dist/{formatter.utils-ClBgeuH1.js.map → formatter.utils-BZMmas2O.js.map} +1 -1
  157. package/dist/{granularity.utils-DqPJsdYT.js → granularity.utils-B2u5dfRk.js} +2 -2
  158. package/dist/{granularity.utils-DqPJsdYT.js.map → granularity.utils-B2u5dfRk.js.map} +1 -1
  159. package/dist/index.js +203 -200
  160. package/dist/index.js.map +1 -1
  161. package/dist/lines.utils-CEGfmIHB.js.map +1 -1
  162. package/dist/pies.utils-Bb2EFei6.js +99 -0
  163. package/dist/pies.utils-Bb2EFei6.js.map +1 -0
  164. package/dist/{tables.utils-D0oPxjdp.js → tables.utils-CigVmDOc.js} +3 -3
  165. package/dist/{tables.utils-D0oPxjdp.js.map → tables.utils-CigVmDOc.js.map} +1 -1
  166. package/dist/{charts.utils-CJLmr9Q8.js → theme.constants-Cl6fOHv-.js} +639 -655
  167. package/dist/theme.constants-Cl6fOHv-.js.map +1 -0
  168. package/package.json +1 -2
  169. package/dist/bars.utils-DG6iNy-i.js +0 -158
  170. package/dist/bars.utils-DG6iNy-i.js.map +0 -1
  171. package/dist/charts.utils-CJLmr9Q8.js.map +0 -1
  172. package/dist/component.inputs.constants-Bf2Ty2En.js.map +0 -1
  173. package/dist/definition-B2TigGb3.js.map +0 -1
  174. package/dist/definition-C7um17eU.js +0 -242
  175. package/dist/definition-C7um17eU.js.map +0 -1
  176. package/dist/definition-CGptoEwG.js.map +0 -1
  177. package/dist/definition-CnRhPW66.js.map +0 -1
  178. package/dist/definition-DLsqkPjT.js +0 -560
  179. package/dist/definition-DOQkt6mp.js.map +0 -1
  180. package/dist/definition-DfHOG4Fd.js.map +0 -1
  181. package/dist/definition-Dpo-1FJs.js.map +0 -1
  182. package/dist/definition-RYVGlC6K.js +0 -277
  183. package/dist/definition-RYVGlC6K.js.map +0 -1
  184. package/dist/definition-YVbooAf6.js.map +0 -1
  185. package/dist/definition-b_Q1K06P.js.map +0 -1
  186. package/dist/definition-uwrGYsP0.js.map +0 -1
  187. package/dist/pies.utils-DyBQ0LjG.js +0 -76
  188. package/dist/pies.utils-DyBQ0LjG.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.utils-ClBgeuH1.js","sources":["../src/utils/cache.utils.ts","../src/utils/data.utils.ts","../src/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","import { CUBE_DIMENSION_TYPE_TIME, Dimension } from '@embeddable.com/core';\n\nconst 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\nexport const getDimensionFieldName = (d: Dimension): string =>\n `${d.name}${d.nativeType === CUBE_DIMENSION_TYPE_TIME && d.inputs?.granularity ? `.${d.inputs.granularity}` : ''}`;\n","import { DimensionOrMeasure } from '@embeddable.com/core';\nimport { DateTimeFormatter, NumberFormatter, StringFormatter } from './formatter.types';\nimport { Theme } from '../theme.types';\nimport { cache } from '../../utils/cache.utils';\nimport { isValidISODate } from '../../utils/data.utils';\nimport { resolveI18nString } from '../../components/component.utils';\nimport { DisplayFormatTypeOptions } from '../../components/types/DisplayFormat.type.emb';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const getSubInputValue = (key: DimensionOrMeasure, inputKey: string, metaKey?: string) =>\n key.inputs?.[inputKey] ?? (key.meta as any)?.[metaKey ?? inputKey];\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 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 = getSubInputValue(key, '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 data: (key: DimensionOrMeasure, value: any): string => {\n let newValue = value;\n\n // Nulls (inputs override meta)\n if (value == null) {\n return getSubInputValue(key, 'displayNullAs') ?? '';\n }\n\n // JSON and Markdown (inputs override meta)\n const displayFormat = getSubInputValue(key, 'displayFormat');\n if (displayFormat === DisplayFormatTypeOptions.JSON) {\n return JSON.stringify(value, null, 2);\n }\n if (displayFormat === DisplayFormatTypeOptions.MARKDOWN) {\n return value;\n }\n // Objects\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\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 (inputs override meta; meta uses pretext/posttext)\n const prefix = getSubInputValue(key, 'prefix', 'pretext') || '';\n const suffix = getSubInputValue(key, 'suffix', 'posttext') || '';\n const appended = `${prefix}${newValue}${suffix}`;\n\n // Max characters (inputs override meta)\n const maxCharacters = getSubInputValue(key, 'maxCharacters');\n if (maxCharacters != null) {\n if (appended.length <= maxCharacters) {\n return appended;\n }\n return appended.substring(0, maxCharacters) + '...';\n }\n\n return appended;\n },\n };\n};\n"],"names":["cache","factory","internalCache","params","key","formatter","ISO_DATE_TIME_REGEX","isValidISODate","value","getDimensionFieldName","d","CUBE_DIMENSION_TYPE_TIME","_a","getSubInputValue","inputKey","metaKey","_b","getThemeFormatter","theme","cachedNumberFormatter","options","cachedDataNumberFormatter","cachedDateTimeFormatter","cachedDataDateTimeFormatter","cachedDataOthersFormatter","displayName","resolveI18nString","resolved","newValue","displayFormat","DisplayFormatTypeOptions","prefix","suffix","appended","maxCharacters"],"mappings":"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"}
1
+ {"version":3,"file":"formatter.utils-BZMmas2O.js","sources":["../src/utils/cache.utils.ts","../src/utils/data.utils.ts","../src/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","import { CUBE_DIMENSION_TYPE_TIME, Dimension } from '@embeddable.com/core';\n\nconst 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\nexport const getDimensionFieldName = (d: Dimension): string =>\n `${d.name}${d.nativeType === CUBE_DIMENSION_TYPE_TIME && d.inputs?.granularity ? `.${d.inputs.granularity}` : ''}`;\n","import { DimensionOrMeasure } from '@embeddable.com/core';\nimport { DateTimeFormatter, NumberFormatter, StringFormatter } from './formatter.types';\nimport { Theme } from '../theme.types';\nimport { cache } from '../../utils/cache.utils';\nimport { isValidISODate } from '../../utils/data.utils';\nimport { resolveI18nString } from '../../components/component.utils';\nimport { DisplayFormatTypeOptions } from '../../components/types/DisplayFormat.type.emb';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const getSubInputValue = (key: DimensionOrMeasure, inputKey: string, metaKey?: string) =>\n key.inputs?.[inputKey] ?? (key.meta as any)?.[metaKey ?? inputKey];\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 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 = getSubInputValue(key, '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 data: (key: DimensionOrMeasure, value: any): string => {\n let newValue = value;\n\n // Nulls (inputs override meta)\n if (value == null) {\n return getSubInputValue(key, 'displayNullAs') ?? '';\n }\n\n // JSON and Markdown (inputs override meta)\n const displayFormat = getSubInputValue(key, 'displayFormat');\n if (displayFormat === DisplayFormatTypeOptions.JSON) {\n return JSON.stringify(value, null, 2);\n }\n if (displayFormat === DisplayFormatTypeOptions.MARKDOWN) {\n return value;\n }\n // Objects\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\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 (inputs override meta; meta uses pretext/posttext)\n const prefix = getSubInputValue(key, 'prefix', 'pretext') || '';\n const suffix = getSubInputValue(key, 'suffix', 'posttext') || '';\n const appended = `${prefix}${newValue}${suffix}`;\n\n // Max characters (inputs override meta)\n const maxCharacters = getSubInputValue(key, 'maxCharacters');\n if (maxCharacters != null) {\n if (appended.length <= maxCharacters) {\n return appended;\n }\n return appended.substring(0, maxCharacters) + '...';\n }\n\n return appended;\n },\n };\n};\n"],"names":["cache","factory","internalCache","params","key","formatter","ISO_DATE_TIME_REGEX","isValidISODate","value","getDimensionFieldName","d","CUBE_DIMENSION_TYPE_TIME","_a","getSubInputValue","inputKey","metaKey","_b","getThemeFormatter","theme","cachedNumberFormatter","options","cachedDataNumberFormatter","cachedDateTimeFormatter","cachedDataDateTimeFormatter","cachedDataOthersFormatter","displayName","resolveI18nString","resolved","newValue","displayFormat","DisplayFormatTypeOptions","prefix","suffix","appended","maxCharacters"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { j as s, b as y } from "./index-B9eYAQkT.js";
2
- import { G as p } from "./GranularitySelectField-l18OwBvC.js";
2
+ import { G as p } from "./GranularitySelectField-DpQLHVFc.js";
3
3
  const g = "_chartGranularitySelectFieldContainer_m26zn_1", G = "_marginTop_m26zn_7", o = {
4
4
  chartGranularitySelectFieldContainer: g,
5
5
  marginTop: G
@@ -48,4 +48,4 @@ export {
48
48
  S as C,
49
49
  x as g
50
50
  };
51
- //# sourceMappingURL=granularity.utils-DqPJsdYT.js.map
51
+ //# sourceMappingURL=granularity.utils-B2u5dfRk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"granularity.utils-DqPJsdYT.js","sources":["../src/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.tsx","../src/components/charts/utils/granularity.utils.ts"],"sourcesContent":["import { Dimension, Granularity } from '@embeddable.com/core';\nimport {\n GranularitySelectField,\n GranularitySelectFieldProps,\n} from '../../../editors/shared/GranularitySelectField/GranularitySelectField';\nimport styles from './ChartGranularitySelectField.module.css';\nimport clsx from 'clsx';\n\nexport type ChartGranularitySelectFieldProps = Pick<GranularitySelectFieldProps, 'onChange'> & {\n dimension: Dimension;\n hasMarginTop?: boolean;\n};\n\nconst dimensionGranularities: Granularity[] = ['day', 'week', 'month', 'quarter', 'year'];\n\nexport const ChartGranularitySelectField = ({\n dimension,\n hasMarginTop,\n ...props\n}: ChartGranularitySelectFieldProps) => {\n const showGranularitySelector = dimension?.inputs?.showGranularityDropdown;\n\n if (!showGranularitySelector) {\n return null;\n }\n\n const dimensionTimeRange = dimension.inputs?.dateBounds;\n const dimensionGranularity = dimension.inputs?.granularity;\n\n return (\n <div\n className={clsx(\n styles.chartGranularitySelectFieldContainer,\n hasMarginTop && styles.marginTop,\n )}\n >\n <GranularitySelectField\n {...props}\n primaryTimeRange={dimensionTimeRange}\n granularity={dimensionGranularity}\n granularities={dimensionGranularities}\n variant=\"ghost\"\n side=\"bottom\"\n align=\"end\"\n />\n </div>\n );\n};\n","import { Dimension, Granularity } from '@embeddable.com/core';\n\nexport const getDimensionWithGranularity = (\n dimension: Dimension,\n granularity?: Granularity,\n): Dimension => {\n const currentGranularity = granularity ?? dimension.inputs?.granularity;\n\n return {\n ...dimension,\n inputs: {\n ...dimension.inputs,\n granularity: currentGranularity,\n },\n };\n};\n"],"names":["dimensionGranularities","ChartGranularitySelectField","dimension","hasMarginTop","props","_a","dimensionTimeRange","_b","dimensionGranularity","_c","jsx","clsx","styles","GranularitySelectField","getDimensionWithGranularity","granularity","currentGranularity"],"mappings":";;;;;GAaMA,IAAwC,CAAC,OAAO,QAAQ,SAAS,WAAW,MAAM,GAE3EC,IAA8B,CAAC;AAAA,EAC1C,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,GAAGC;AACL,MAAwC;;AAGtC,MAAI,GAF4BC,IAAAH,KAAA,gBAAAA,EAAW,WAAX,gBAAAG,EAAmB;AAGjD,WAAO;AAGT,QAAMC,KAAqBC,IAAAL,EAAU,WAAV,gBAAAK,EAAkB,YACvCC,KAAuBC,IAAAP,EAAU,WAAV,gBAAAO,EAAkB;AAE/C,SACEC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTC,EAAO;AAAA,QACPT,KAAgBS,EAAO;AAAA,MAAA;AAAA,MAGzB,UAAAF,gBAAAA,EAAAA;AAAAA,QAACG;AAAA,QAAA;AAAA,UACE,GAAGT;AAAA,UACJ,kBAAkBE;AAAA,UAClB,aAAaE;AAAA,UACb,eAAeR;AAAA,UACf,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,OAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IACR;AAAA,EAAA;AAGN,GC7Cac,IAA8B,CACzCZ,GACAa,MACc;;AACd,QAAMC,IAAqBD,OAAeV,IAAAH,EAAU,WAAV,gBAAAG,EAAkB;AAE5D,SAAO;AAAA,IACL,GAAGH;AAAA,IACH,QAAQ;AAAA,MACN,GAAGA,EAAU;AAAA,MACb,aAAac;AAAA,IAAA;AAAA,EACf;AAEJ;"}
1
+ {"version":3,"file":"granularity.utils-B2u5dfRk.js","sources":["../src/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.tsx","../src/components/charts/utils/granularity.utils.ts"],"sourcesContent":["import { Dimension, Granularity } from '@embeddable.com/core';\nimport {\n GranularitySelectField,\n GranularitySelectFieldProps,\n} from '../../../editors/shared/GranularitySelectField/GranularitySelectField';\nimport styles from './ChartGranularitySelectField.module.css';\nimport clsx from 'clsx';\n\nexport type ChartGranularitySelectFieldProps = Pick<GranularitySelectFieldProps, 'onChange'> & {\n dimension: Dimension;\n hasMarginTop?: boolean;\n};\n\nconst dimensionGranularities: Granularity[] = ['day', 'week', 'month', 'quarter', 'year'];\n\nexport const ChartGranularitySelectField = ({\n dimension,\n hasMarginTop,\n ...props\n}: ChartGranularitySelectFieldProps) => {\n const showGranularitySelector = dimension?.inputs?.showGranularityDropdown;\n\n if (!showGranularitySelector) {\n return null;\n }\n\n const dimensionTimeRange = dimension.inputs?.dateBounds;\n const dimensionGranularity = dimension.inputs?.granularity;\n\n return (\n <div\n className={clsx(\n styles.chartGranularitySelectFieldContainer,\n hasMarginTop && styles.marginTop,\n )}\n >\n <GranularitySelectField\n {...props}\n primaryTimeRange={dimensionTimeRange}\n granularity={dimensionGranularity}\n granularities={dimensionGranularities}\n variant=\"ghost\"\n side=\"bottom\"\n align=\"end\"\n />\n </div>\n );\n};\n","import { Dimension, Granularity } from '@embeddable.com/core';\n\nexport const getDimensionWithGranularity = (\n dimension: Dimension,\n granularity?: Granularity,\n): Dimension => {\n const currentGranularity = granularity ?? dimension.inputs?.granularity;\n\n return {\n ...dimension,\n inputs: {\n ...dimension.inputs,\n granularity: currentGranularity,\n },\n };\n};\n"],"names":["dimensionGranularities","ChartGranularitySelectField","dimension","hasMarginTop","props","_a","dimensionTimeRange","_b","dimensionGranularity","_c","jsx","clsx","styles","GranularitySelectField","getDimensionWithGranularity","granularity","currentGranularity"],"mappings":";;;;;GAaMA,IAAwC,CAAC,OAAO,QAAQ,SAAS,WAAW,MAAM,GAE3EC,IAA8B,CAAC;AAAA,EAC1C,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,GAAGC;AACL,MAAwC;;AAGtC,MAAI,GAF4BC,IAAAH,KAAA,gBAAAA,EAAW,WAAX,gBAAAG,EAAmB;AAGjD,WAAO;AAGT,QAAMC,KAAqBC,IAAAL,EAAU,WAAV,gBAAAK,EAAkB,YACvCC,KAAuBC,IAAAP,EAAU,WAAV,gBAAAO,EAAkB;AAE/C,SACEC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTC,EAAO;AAAA,QACPT,KAAgBS,EAAO;AAAA,MAAA;AAAA,MAGzB,UAAAF,gBAAAA,EAAAA;AAAAA,QAACG;AAAA,QAAA;AAAA,UACE,GAAGT;AAAA,UACJ,kBAAkBE;AAAA,UAClB,aAAaE;AAAA,UACb,eAAeR;AAAA,UACf,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,OAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IACR;AAAA,EAAA;AAGN,GC7Cac,IAA8B,CACzCZ,GACAa,MACc;;AACd,QAAMC,IAAqBD,OAAeV,IAAAH,EAAU,WAAV,gBAAAG,EAAkB;AAE5D,SAAO;AAAA,IACL,GAAGH;AAAA,IACH,QAAQ;AAAA,MACN,GAAGA,EAAU;AAAA,MACb,aAAac;AAAA,IAAA;AAAA,EACf;AAEJ;"}
package/dist/index.js CHANGED
@@ -1,250 +1,253 @@
1
1
  import { a as h, g as C, b, i as x } from "./styles.utils-C8CnV0SB.js";
2
- import { i as F, s as D } from "./color.utils-BSg_DFOh.js";
3
- import { c as y, a as R, b as k, g as L, i as O } from "./formatter.utils-ClBgeuH1.js";
2
+ import { i as D, s as F } from "./color.utils-BSg_DFOh.js";
3
+ import { c as y, a as R, b as k, g as L, i as O } from "./formatter.utils-BZMmas2O.js";
4
4
  import { b as E, c as M, a as A, g as B, l as v, d as w, u as $ } from "./dates.utils-Dai9OZEP.js";
5
- import { d as j, b as H, c as N, e as _, f as z, h as K, i as V, a as W, g as q, r as U, j as X, k as Y } from "./charts.utils-CJLmr9Q8.js";
6
- import { i as J, a as Q, r as ee, b as ae } from "./component.utils-Dua9clQJ.js";
7
- import { C as te, G as oe, d as se, a as ie, b as ne, i as le, s as pe, t as me, c as de } from "./component.inputs.constants-Bf2Ty2En.js";
8
- import { g as ue, a as ge } from "./timeRange.utils-CcP33PfM.js";
9
- import { p as fe } from "./preview.data.constants-Cf1TpbZu.js";
10
- import { i as Ce, b as be } from "./definition-DCNv1r9i.js";
11
- import { i as Se, b as Fe } from "./definition-b_Q1K06P.js";
12
- import { i as Te, b as ye } from "./definition-CGptoEwG.js";
13
- import { i as ke, b as Le } from "./definition-DWIyItYm.js";
14
- import { i as Ge, b as Ee } from "./definition-CnRhPW66.js";
15
- import { i as Ae, b as Be } from "./definition-YVbooAf6.js";
16
- import { g as we, a as $e, b as Ie } from "./bars.utils-DG6iNy-i.js";
17
- import { i as He, k as Ne } from "./definition-B5pATGjj.js";
18
- import { i as ze, k as Ke } from "./definition-eDsz1LSa.js";
19
- import { g as We } from "./kpis.utils-DsZ2GzuB.js";
20
- import { i as Ue, g as Xe, a as Ye, l as Ze } from "./definition-DfHOG4Fd.js";
21
- import { i as Qe, g as ea, a as aa, l as ra } from "./definition-RYVGlC6K.js";
22
- import { i as oa, g as sa, a as ia, l as na } from "./definition-uwrGYsP0.js";
23
- import { g as pa } from "./lines.utils-CEGfmIHB.js";
24
- import { i as da, l as ca } from "./definition-D6c43j2_.js";
25
- import { i as ga, s as Pa } from "./definition-JPgTRMBs.js";
26
- import { i as ha, d as Ca } from "./definition-B2TigGb3.js";
27
- import { i as xa, p as Sa } from "./definition-Dpo-1FJs.js";
28
- import { i as Da, d as Ta } from "./definition-DOQkt6mp.js";
29
- import { g as Ra, a as ka } from "./pies.utils-DyBQ0LjG.js";
30
- import { i as Oa, h as Ga } from "./definition-hgg6kcIq.js";
31
- import { i as Ma, g as Aa, a as Ba, b as va, c as wa, p as $a } from "./definition-CJHymHtY.js";
32
- import { i as ja, d as Ha, t as Na } from "./definition-C7um17eU.js";
33
- import { T as za, i as Ka, d as Va, t as Wa } from "./definition-DLsqkPjT.js";
34
- import { b as Ua, c as Xa, g as Ya, a as Za } from "./tables.utils-D0oPxjdp.js";
35
- import { g as Qa, u as er } from "./tables.hooks-fVC_4V5K.js";
36
- import { C as rr } from "./ChartCard-Cv9hqNdM.js";
37
- import { C as or, g as sr } from "./granularity.utils-DqPJsdYT.js";
38
- import { i as nr, e as lr } from "./definition-B4ALO0PD.js";
39
- import { i as mr, h as dr } from "./definition-mP5KhZwN.js";
40
- import { i as ur, m as gr } from "./definition-DxTb-MOm.js";
41
- import { u as fr } from "./charts.fillGaps.hooks-CPpTEo01.js";
42
- import { i as Cr, c as br, g as xr, a as Sr } from "./definition-B_WnKkA9.js";
43
- import { i as Dr, d as Tr, g as yr } from "./definition-Bf2gheY1.js";
44
- import { i as kr, d as Lr } from "./definition-DbspoO9C.js";
45
- import { i as Gr, m as Er } from "./definition-CUA9oFdm.js";
46
- import { i as Ar, s as Br } from "./definition-D6fsmeL7.js";
47
- import { i as wr, d as $r } from "./definition-B0EoSD5U.js";
48
- import { i as jr, m as Hr } from "./definition-CdcpkNRA.js";
49
- import { i as _r, d as zr } from "./definition-CS4RuL8e.js";
50
- import { i as Vr, m as Wr } from "./definition-DEqyuC5t.js";
51
- import { i as Ur, g as Xr } from "./definition-CQaZAYag.js";
52
- import { i as Zr, t as Jr } from "./definition-D9ZlqgLF.js";
53
- import { E as et } from "./EditorCard-DdYPPSGd.js";
54
- import { D as rt } from "./DimensionAndMeasureSingleSelectField-HJcwoxiQ.js";
55
- import { G as ot, g as st, a as it, b as nt } from "./GranularitySelectField-l18OwBvC.js";
56
- import { g as pt } from "./dimensionsAndMeasures.utils-z1Fh_wO2.js";
57
- import { i as dt } from "./index-BikfLMXU.js";
58
- import { i as ut } from "./index-ZWtLBqwf.js";
5
+ import { d as H, a as j, b as N, c as _, e as z, f as K, g as V, r as W, h as q, i as U } from "./theme.constants-Cl6fOHv-.js";
6
+ import { i as Y, a as Z, r as J, b as Q } from "./component.utils-Dua9clQJ.js";
7
+ import { C as ae, G as te, d as re, a as oe, b as se, i as ie, s as ne, t as le, c as pe } from "./component.inputs.constants-DnFrZzR7.js";
8
+ import { g as de, a as ce } from "./timeRange.utils-CcP33PfM.js";
9
+ import { p as ge } from "./preview.data.constants-Cf1TpbZu.js";
10
+ import { i as fe, b as he } from "./definition-mz09xu8Q.js";
11
+ import { i as be, b as xe } from "./definition-D1YtBczb.js";
12
+ import { i as De, b as Fe } from "./definition-BNffWCqm.js";
13
+ import { i as ye, b as Re } from "./definition-Ce2VcCyv.js";
14
+ import { i as Le, b as Oe } from "./definition-CMvwdXRu.js";
15
+ import { i as Ee, b as Me } from "./definition-D2bJQDNh.js";
16
+ import { g as Be, a as ve, b as we, c as $e } from "./bars.utils-DR-ga7ps.js";
17
+ import { i as He, k as je } from "./definition-Bm1ec3cN.js";
18
+ import { i as _e, k as ze } from "./definition-BNOhKWNT.js";
19
+ import { g as Ve } from "./kpis.utils-DsZ2GzuB.js";
20
+ import { i as qe, g as Ue, a as Xe, l as Ye } from "./definition-HByuRICY.js";
21
+ import { i as Je, g as Qe, a as ea, l as aa } from "./definition-DOaQylZq.js";
22
+ import { i as ra, g as oa, a as sa, l as ia } from "./definition-DQP0JMyo.js";
23
+ import { g as la } from "./lines.utils-CEGfmIHB.js";
24
+ import { i as ma, l as da } from "./definition-DIH0gF4I.js";
25
+ import { i as ua, s as ga } from "./definition-vdBo_sz-.js";
26
+ import { i as fa, d as ha } from "./definition-_hl_uvEW.js";
27
+ import { i as ba, p as xa } from "./definition-DwouHcfu.js";
28
+ import { i as Da, d as Fa } from "./definition-5MQbWUXL.js";
29
+ import { g as ya, a as Ra } from "./pies.utils-Bb2EFei6.js";
30
+ import { i as La, h as Oa } from "./definition-D30Z62sw.js";
31
+ import { i as Ea, g as Ma, a as Aa, b as Ba, c as va, p as wa } from "./definition-DvM-bBHc.js";
32
+ import { i as Ia, d as Ha, t as ja } from "./definition-DIkjRBmH.js";
33
+ import { T as _a, i as za, d as Ka, t as Va } from "./definition-nEosVAA3.js";
34
+ import { b as qa, c as Ua, g as Xa, a as Ya } from "./tables.utils-CigVmDOc.js";
35
+ import { g as Ja, u as Qa } from "./tables.hooks-fVC_4V5K.js";
36
+ import { C as at } from "./ChartCard-Cv9hqNdM.js";
37
+ import { C as rt, g as ot } from "./granularity.utils-B2u5dfRk.js";
38
+ import { i as it, e as nt } from "./definition-B4ALO0PD.js";
39
+ import { i as pt, h as mt } from "./definition-DMI3MDQJ.js";
40
+ import { i as ct, m as ut } from "./definition-Dd4MdyW4.js";
41
+ import { a as Pt, b as ft, g as ht } from "./charts.utils-BEwWG4s2.js";
42
+ import { u as bt } from "./charts.fillGaps.hooks-DgH30vXI.js";
43
+ import { i as St, c as Dt, g as Ft, a as Tt } from "./definition-Ba7J1LGI.js";
44
+ import { i as Rt, d as kt, g as Lt } from "./definition-HLAKpAEj.js";
45
+ import { i as Gt, d as Et } from "./definition-NZLRzHFa.js";
46
+ import { i as At, m as Bt } from "./definition-DISg7Yca.js";
47
+ import { i as wt, s as $t } from "./definition-CfCvupyD.js";
48
+ import { i as Ht, d as jt } from "./definition-BZVoO8bb.js";
49
+ import { i as _t, m as zt } from "./definition-CJR0UaGt.js";
50
+ import { i as Vt, d as Wt } from "./definition-B66i_lHu.js";
51
+ import { i as Ut, m as Xt } from "./definition-D59NL3vt.js";
52
+ import { i as Zt, g as Jt } from "./definition-luwVk1GE.js";
53
+ import { i as er, t as ar } from "./definition-BpHv0bRb.js";
54
+ import { E as rr } from "./EditorCard-DdYPPSGd.js";
55
+ import { D as sr } from "./DimensionAndMeasureSingleSelectField-B-HiSZ1m.js";
56
+ import { G as nr, g as lr, a as pr, b as mr } from "./GranularitySelectField-DpQLHVFc.js";
57
+ import { g as cr } from "./dimensionsAndMeasures.utils-DsVzuJ1x.js";
58
+ import { i as gr } from "./index-BikfLMXU.js";
59
+ import { i as fr } from "./index-ZWtLBqwf.js";
59
60
  const n = "remarkable-theme-fonts", i = "data-remarkable-preconnect", l = "data-remarkable-google-fonts", m = (e) => {
60
61
  if (document.querySelector(`link[${i}]`)) return;
61
62
  const a = document.createElement("link");
62
63
  a.rel = "preconnect", a.href = "https://fonts.googleapis.com", a.setAttribute(i, "1"), e.appendChild(a);
63
- const r = document.createElement("link");
64
- r.rel = "preconnect", r.href = "https://fonts.gstatic.com", r.crossOrigin = "anonymous", r.setAttribute(i, "1"), e.appendChild(r);
64
+ const t = document.createElement("link");
65
+ t.rel = "preconnect", t.href = "https://fonts.gstatic.com", t.crossOrigin = "anonymous", t.setAttribute(i, "1"), e.appendChild(t);
65
66
  }, d = (e) => {
66
67
  if (!e || e.length === 0 || typeof document > "u" || !document.head || document.querySelector(`link[${l}]`)) return;
67
68
  const a = document.head;
68
69
  m(a);
69
- const r = e.map((s) => {
70
- const t = encodeURIComponent(s.name.replace(/\s+/g, " ")), p = s.weights ?? "100..900";
71
- return `family=${t}:wght@${p}`;
70
+ const t = e.map((s) => {
71
+ const r = encodeURIComponent(s.name.replace(/\s+/g, " ")), p = s.weights ?? "100..900";
72
+ return `family=${r}:wght@${p}`;
72
73
  }).join("&"), o = document.createElement("link");
73
- o.rel = "stylesheet", o.href = `https://fonts.googleapis.com/css2?${r}&display=swap`, o.setAttribute(l, "1"), a.appendChild(o);
74
+ o.rel = "stylesheet", o.href = `https://fonts.googleapis.com/css2?${t}&display=swap`, o.setAttribute(l, "1"), a.appendChild(o);
74
75
  }, c = (e) => {
75
- const a = e.family.replace(/'/g, "\\'"), r = [];
76
+ const a = e.family.replace(/'/g, "\\'"), t = [];
76
77
  if (e.descriptors) {
77
- const t = e.descriptors;
78
- t.style != null && r.push(`font-style: ${t.style}`), t.weight != null && r.push(`font-weight: ${t.weight}`), t.stretch != null && r.push(`font-stretch: ${t.stretch}`), t.unicodeRange != null && r.push(`unicode-range: ${t.unicodeRange}`);
78
+ const r = e.descriptors;
79
+ r.style != null && t.push(`font-style: ${r.style}`), r.weight != null && t.push(`font-weight: ${r.weight}`), r.stretch != null && t.push(`font-stretch: ${r.stretch}`), r.unicodeRange != null && t.push(`unicode-range: ${r.unicodeRange}`);
79
80
  }
80
- const o = r.join("; "), s = o ? `; ${o}` : "";
81
+ const o = t.join("; "), s = o ? `; ${o}` : "";
81
82
  return `@font-face { font-family: '${a}'; src: url(${e.src})${s}; }`;
82
83
  }, u = (e) => {
83
84
  if (!e || e.length === 0 || typeof document > "u" || !document.head || e.length === 0) return;
84
85
  let a = document.getElementById(n);
85
- const r = e.map(c).join(`
86
+ const t = e.map(c).join(`
86
87
  `);
87
- a ? a.textContent = r : (a = document.createElement("style"), a.id = n, a.textContent = r, document.head.appendChild(a));
88
+ a ? a.textContent = t : (a = document.createElement("style"), a.id = n, a.textContent = t, document.head.appendChild(a));
88
89
  }, g = (e) => {
89
90
  e && (d(e.google), u(e.custom));
90
91
  };
91
92
  export {
92
- ke as BarChartDefaultHorizontalPro,
93
- Ce as BarChartDefaultPro,
94
- Ae as BarChartGroupedHorizontalPro,
95
- Te as BarChartGroupedPro,
96
- Ge as BarChartStackedHorizontalPro,
97
- Se as BarChartStackedPro,
98
- rr as ChartCard,
99
- or as ChartGranularitySelectField,
100
- dt as ColorEditorPro,
101
- Cr as ComparisonPeriodSelectFieldPro,
102
- te as ComparisonPeriodType,
103
- kr as DateRangePickerCustomPro,
104
- Dr as DateRangeSelectFieldPro,
105
- rt as DimensionAndMeasureSingleSelectField,
106
- _r as DimensionMeasureMultiSelectFieldPro,
107
- wr as DimensionSingleSelectFieldPro,
108
- ha as DonutChartPro,
93
+ ye as BarChartDefaultHorizontalPro,
94
+ fe as BarChartDefaultPro,
95
+ Ee as BarChartGroupedHorizontalPro,
96
+ De as BarChartGroupedPro,
97
+ Le as BarChartStackedHorizontalPro,
98
+ be as BarChartStackedPro,
99
+ at as ChartCard,
100
+ rt as ChartGranularitySelectField,
101
+ gr as ColorEditorPro,
102
+ St as ComparisonPeriodSelectFieldPro,
103
+ ae as ComparisonPeriodType,
104
+ Gt as DateRangePickerCustomPro,
105
+ Rt as DateRangeSelectFieldPro,
106
+ sr as DimensionAndMeasureSingleSelectField,
107
+ Vt as DimensionMeasureMultiSelectFieldPro,
108
+ Ht as DimensionSingleSelectFieldPro,
109
+ fa as DonutChartPro,
109
110
  Da as DonutLabelChartPro,
110
- et as EditorCard,
111
- nr as EmptyContainerPro,
112
- oe as Granularity,
113
- ot as GranularitySelectField,
114
- Ur as GranularitySelectFieldPro,
115
- Oa as HeatMapPro,
116
- mr as HorizontalDividerPro,
117
- ze as KpiChartNumberComparisonPro,
111
+ rr as EditorCard,
112
+ it as EmptyContainerPro,
113
+ te as Granularity,
114
+ nr as GranularitySelectField,
115
+ Zt as GranularitySelectFieldPro,
116
+ La as HeatMapPro,
117
+ pt as HorizontalDividerPro,
118
+ _e as KpiChartNumberComparisonPro,
118
119
  He as KpiChartNumberPro,
119
- oa as LineChartComparisonDefaultPro,
120
- Ue as LineChartDefaultPro,
121
- Qe as LineChartGroupedPro,
122
- da as LineChartTabbedPro,
123
- ut as MarkdownEditorPro,
124
- ur as MarkdownPro,
125
- Vr as MeasureMultiSelectFieldPro,
126
- jr as MeasureSingleSelectFieldPro,
127
- Gr as MultiSelectFieldPro,
128
- xa as PieChartPro,
129
- Ma as PivotTablePro,
130
- ga as ScatterChartPro,
131
- Ar as SingleSelectFieldPro,
132
- za as TABLE_SCROLLABLE_SIZE,
133
- ja as TableChartPaginatedPro,
134
- Ka as TableScrollablePro,
135
- Zr as TextFieldPro,
136
- Le as barChartDefaultHorizontalPro,
137
- be as barChartDefaultPro,
138
- Be as barChartGroupedHorizontalPro,
139
- ye as barChartGroupedPro,
140
- Ee as barChartStackedHorizontalPro,
141
- Fe as barChartStackedPro,
120
+ ra as LineChartComparisonDefaultPro,
121
+ qe as LineChartDefaultPro,
122
+ Je as LineChartGroupedPro,
123
+ ma as LineChartTabbedPro,
124
+ fr as MarkdownEditorPro,
125
+ ct as MarkdownPro,
126
+ Ut as MeasureMultiSelectFieldPro,
127
+ _t as MeasureSingleSelectFieldPro,
128
+ At as MultiSelectFieldPro,
129
+ ba as PieChartPro,
130
+ Ea as PivotTablePro,
131
+ ua as ScatterChartPro,
132
+ wt as SingleSelectFieldPro,
133
+ _a as TABLE_SCROLLABLE_SIZE,
134
+ Ia as TableChartPaginatedPro,
135
+ za as TableScrollablePro,
136
+ er as TextFieldPro,
137
+ Re as barChartDefaultHorizontalPro,
138
+ he as barChartDefaultPro,
139
+ Me as barChartGroupedHorizontalPro,
140
+ Fe as barChartGroupedPro,
141
+ Oe as barChartStackedHorizontalPro,
142
+ xe as barChartStackedPro,
142
143
  y as cache,
143
- br as comparisonPeriodSelectFieldPro,
144
- Lr as dateRangePickerCustomPro,
145
- Tr as dateRangeSelectFieldPro,
146
- j as defaultChartMenuProOptions,
147
- H as defaultComparisonPeriodOptions,
144
+ Dt as comparisonPeriodSelectFieldPro,
145
+ Et as dateRangePickerCustomPro,
146
+ kt as dateRangeSelectFieldPro,
147
+ H as defaultChartMenuProOptions,
148
+ j as defaultComparisonPeriodOptions,
148
149
  N as defaultDateRangeOptions,
149
- se as defaultGranularitySelectFieldOptions,
150
+ re as defaultGranularitySelectFieldOptions,
150
151
  _ as defaultTableCellStyleOptions,
151
152
  Ha as defaultTableChartPaginatedState,
152
- Va as defaultTableScrollableState,
153
- zr as dimensionMeasureMultiSelectFieldPro,
154
- ie as dimensionMeasureSubInputs,
155
- $r as dimensionSingleSelectFieldPro,
156
- Ca as donutChartPro,
157
- Ta as donutLabelChartPro,
158
- lr as emptyBlockPro,
153
+ Ka as defaultTableScrollableState,
154
+ Wt as dimensionMeasureMultiSelectFieldPro,
155
+ oe as dimensionMeasureSubInputs,
156
+ jt as dimensionSingleSelectFieldPro,
157
+ ha as donutChartPro,
158
+ Fa as donutLabelChartPro,
159
+ nt as emptyBlockPro,
159
160
  z as exportCSV,
160
161
  K as exportPNG,
161
162
  V as exportXLSX,
162
- st as getAvailableGranularityOptionsFromTimeRange,
163
- we as getBarChartProData,
164
- $e as getBarChartProOptions,
165
- Ie as getBarStackedChartProData,
163
+ lr as getAvailableGranularityOptionsFromTimeRange,
164
+ Be as getBarChartProData,
165
+ ve as getBarChartProOptions,
166
+ we as getBarStackedChartProData,
167
+ $e as getBarStackedChartProOptions,
166
168
  h as getColor,
167
- ue as getComparisonPeriodDateRange,
168
- ge as getComparisonPeriodLabel,
169
- xr as getComparisonPeriodSelectFieldProOptions,
170
- W as getDatalabelPercentage,
169
+ de as getComparisonPeriodDateRange,
170
+ ce as getComparisonPeriodLabel,
171
+ Ft as getComparisonPeriodSelectFieldProOptions,
172
+ Pt as getDatalabelPercentage,
171
173
  E as getDateRangeFromTimeRange,
172
- yr as getDateRangeSelectFieldProOptions,
173
- pt as getDimensionAndMeasureOptions,
174
+ Lt as getDateRangeSelectFieldProOptions,
175
+ cr as getDimensionAndMeasureOptions,
174
176
  R as getDimensionFieldName,
175
177
  C as getDimensionMeasureColor,
176
- sr as getDimensionWithGranularity,
177
- it as getGranularitySelectFieldOptions,
178
- We as getKpiResults,
179
- sa as getLineChartComparisonProData,
180
- ia as getLineChartComparisonProOptions,
181
- ea as getLineChartGroupedProData,
182
- aa as getLineChartGroupedProOptions,
183
- Xe as getLineChartProData,
184
- Ye as getLineChartProOptions,
185
- pa as getLineChartProOptionsOnClick,
178
+ ot as getDimensionWithGranularity,
179
+ ft as getDimensionWithoutTruncation,
180
+ pr as getGranularitySelectFieldOptions,
181
+ Ve as getKpiResults,
182
+ oa as getLineChartComparisonProData,
183
+ sa as getLineChartComparisonProOptions,
184
+ Qe as getLineChartGroupedProData,
185
+ ea as getLineChartGroupedProOptions,
186
+ Ue as getLineChartProData,
187
+ Xe as getLineChartProOptions,
188
+ la as getLineChartProOptionsOnClick,
186
189
  b as getObjectStableKey,
187
- Ra as getPieChartProData,
188
- ka as getPieChartProOptions,
189
- Aa as getPivotColumnTotalsFor,
190
- Ba as getPivotDimension,
191
- va as getPivotMeasures,
192
- wa as getPivotRowTotalsFor,
193
- nt as getSafeSelection,
190
+ ya as getPieChartProData,
191
+ Ra as getPieChartProOptions,
192
+ Ma as getPivotColumnTotalsFor,
193
+ Aa as getPivotDimension,
194
+ Ba as getPivotMeasures,
195
+ va as getPivotRowTotalsFor,
196
+ mr as getSafeSelection,
194
197
  k as getSubInputValue,
195
- Ua as getTableHeaderAlign,
196
- Xa as getTableHeaderMinWidth,
197
- Ya as getTableHeaders,
198
- Za as getTableRows,
199
- Qa as getTableSortedResults,
198
+ qa as getTableHeaderAlign,
199
+ Ua as getTableHeaderMinWidth,
200
+ Xa as getTableHeaders,
201
+ Ya as getTableRows,
202
+ Ja as getTableSortedResults,
200
203
  L as getThemeFormatter,
201
204
  M as getTimeRangeFromDateRange,
202
205
  A as getTimeRangeFromPresets,
203
206
  B as getTimeRangeLabel,
204
- ne as granularities,
205
- Xr as granularitySelectFieldPro,
206
- q as groupTailAsOther,
207
- Ga as heatMapPro,
208
- dr as horizontalDividerPro,
209
- J as i18n,
210
- Q as i18nSetup,
207
+ se as granularities,
208
+ Jt as granularitySelectFieldPro,
209
+ ht as groupTailAsOther,
210
+ Oa as heatMapPro,
211
+ mt as horizontalDividerPro,
212
+ Y as i18n,
213
+ Z as i18nSetup,
211
214
  x as injectCssVariables,
212
- le as inputs,
213
- F as isColorValid,
214
- Sr as isComparisonPeriodAvailable,
215
+ ie as inputs,
216
+ D as isColorValid,
217
+ Tt as isComparisonPeriodAvailable,
215
218
  O as isValidISODate,
216
- Ke as kpiChartNumberComparisonPro,
217
- Ne as kpiChartNumberPro,
218
- na as lineChartComparisonDefaultPro,
219
- Ze as lineChartDefaultPro,
220
- ra as lineChartGroupedPro,
221
- ca as lineChartWithKpiTabsPro,
219
+ ze as kpiChartNumberComparisonPro,
220
+ je as kpiChartNumberPro,
221
+ ia as lineChartComparisonDefaultPro,
222
+ Ye as lineChartDefaultPro,
223
+ aa as lineChartGroupedPro,
224
+ da as lineChartWithKpiTabsPro,
222
225
  v as loadDayjsLocale,
223
226
  g as loadThemeFonts,
224
227
  w as localToUtcDate,
225
- gr as markdownPro,
226
- Wr as measureMultiSelectFieldPro,
227
- Hr as measureSingleSelectFieldPro,
228
- Er as multiSelectFieldPro,
229
- Sa as pieChartPro,
230
- $a as pivotTablePro,
231
- fe as previewData,
232
- U as remarkableTheme,
233
- X as remarkableThemeFormatter,
234
- Y as remarkableThemeStyles,
235
- ee as resolveI18nProps,
236
- ae as resolveI18nString,
237
- Pa as scatterChartPro,
238
- D as setColorAlpha,
239
- Br as singleSelectFieldPro,
240
- pe as subInputs,
241
- Na as tableChartPaginated,
242
- Wa as tableScrollable,
243
- Jr as textFieldPro,
244
- me as timeDimensionSubInputs,
245
- de as timeDimensionWithGranularitySelectFieldSubInputs,
246
- fr as useFillGaps,
247
- er as useGetTableSortedResults,
228
+ ut as markdownPro,
229
+ Xt as measureMultiSelectFieldPro,
230
+ zt as measureSingleSelectFieldPro,
231
+ Bt as multiSelectFieldPro,
232
+ xa as pieChartPro,
233
+ wa as pivotTablePro,
234
+ ge as previewData,
235
+ W as remarkableTheme,
236
+ q as remarkableThemeFormatter,
237
+ U as remarkableThemeStyles,
238
+ J as resolveI18nProps,
239
+ Q as resolveI18nString,
240
+ ga as scatterChartPro,
241
+ F as setColorAlpha,
242
+ $t as singleSelectFieldPro,
243
+ ne as subInputs,
244
+ ja as tableChartPaginated,
245
+ Va as tableScrollable,
246
+ ar as textFieldPro,
247
+ le as timeDimensionSubInputs,
248
+ pe as timeDimensionWithGranularitySelectFieldSubInputs,
249
+ bt as useFillGaps,
250
+ Qa as useGetTableSortedResults,
248
251
  $ as useLoadDayjsLocale
249
252
  };
250
253
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/theme/fonts/fonts.utils.ts"],"sourcesContent":["import { ThemeFonts, ThemeFontCustom } from './fonts.types';\n\nconst REMARKABLE_FONTS_STYLE_ID = 'remarkable-theme-fonts';\nconst REMARKABLE_PRECONNECT_ATTR = 'data-remarkable-preconnect';\nconst REMARKABLE_GOOGLE_FONTS_ATTR = 'data-remarkable-google-fonts';\n\nconst injectGooglePreconnect = (head: HTMLHeadElement): void => {\n if (document.querySelector(`link[${REMARKABLE_PRECONNECT_ATTR}]`)) return;\n\n const pre1 = document.createElement('link');\n pre1.rel = 'preconnect';\n pre1.href = 'https://fonts.googleapis.com';\n pre1.setAttribute(REMARKABLE_PRECONNECT_ATTR, '1');\n head.appendChild(pre1);\n\n const pre2 = document.createElement('link');\n pre2.rel = 'preconnect';\n pre2.href = 'https://fonts.gstatic.com';\n pre2.crossOrigin = 'anonymous';\n pre2.setAttribute(REMARKABLE_PRECONNECT_ATTR, '1');\n head.appendChild(pre2);\n};\n\nconst injectGoogleFonts = (fonts: ThemeFonts['google']): void => {\n if (!fonts || fonts.length === 0) return;\n if (typeof document === 'undefined' || !document.head) return;\n if (document.querySelector(`link[${REMARKABLE_GOOGLE_FONTS_ATTR}]`)) return;\n\n const head = document.head;\n injectGooglePreconnect(head);\n\n const query = fonts\n .map((f) => {\n const encoded = encodeURIComponent(f.name.replace(/\\s+/g, ' '));\n const weights = f.weights ?? '100..900';\n return `family=${encoded}:wght@${weights}`;\n })\n .join('&');\n\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = `https://fonts.googleapis.com/css2?${query}&display=swap`;\n link.setAttribute(REMARKABLE_GOOGLE_FONTS_ATTR, '1');\n head.appendChild(link);\n};\n\nconst fontFaceCss = (font: ThemeFontCustom): string => {\n const family = font.family.replace(/'/g, \"\\\\'\");\n\n const descriptorParts: string[] = [];\n if (font.descriptors) {\n const d = font.descriptors;\n if (d.style != null) descriptorParts.push(`font-style: ${d.style}`);\n if (d.weight != null) descriptorParts.push(`font-weight: ${d.weight}`);\n if (d.stretch != null) descriptorParts.push(`font-stretch: ${d.stretch}`);\n if (d.unicodeRange != null) descriptorParts.push(`unicode-range: ${d.unicodeRange}`);\n }\n\n const descriptors = descriptorParts.join('; ');\n const decl = descriptors ? `; ${descriptors}` : '';\n\n return `@font-face { font-family: '${family}'; src: url(${font.src})${decl}; }`;\n};\n\nconst injectCustomFonts = (custom: ThemeFonts['custom']): void => {\n if (!custom || custom.length === 0) return;\n if (typeof document === 'undefined' || !document.head || custom.length === 0) return;\n\n let styleEl = document.getElementById(REMARKABLE_FONTS_STYLE_ID) as HTMLStyleElement | null;\n const css = custom.map(fontFaceCss).join('\\n');\n\n if (styleEl) {\n styleEl.textContent = css;\n } else {\n styleEl = document.createElement('style');\n styleEl.id = REMARKABLE_FONTS_STYLE_ID;\n styleEl.textContent = css;\n document.head.appendChild(styleEl);\n }\n};\n\nexport const loadThemeFonts = (fonts?: ThemeFonts): void => {\n if (!fonts) return;\n\n injectGoogleFonts(fonts.google);\n injectCustomFonts(fonts.custom);\n};\n"],"names":["REMARKABLE_FONTS_STYLE_ID","REMARKABLE_PRECONNECT_ATTR","REMARKABLE_GOOGLE_FONTS_ATTR","injectGooglePreconnect","head","pre1","pre2","injectGoogleFonts","fonts","query","f","encoded","weights","link","fontFaceCss","font","family","descriptorParts","d","descriptors","decl","injectCustomFonts","custom","styleEl","css","loadThemeFonts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAMA,IAA4B,0BAC5BC,IAA6B,8BAC7BC,IAA+B,gCAE/BC,IAAyB,CAACC,MAAgC;AAC9D,MAAI,SAAS,cAAc,QAAQH,CAA0B,GAAG,EAAG;AAEnE,QAAMI,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,MAAM,cACXA,EAAK,OAAO,gCACZA,EAAK,aAAaJ,GAA4B,GAAG,GACjDG,EAAK,YAAYC,CAAI;AAErB,QAAMC,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,MAAM,cACXA,EAAK,OAAO,6BACZA,EAAK,cAAc,aACnBA,EAAK,aAAaL,GAA4B,GAAG,GACjDG,EAAK,YAAYE,CAAI;AACvB,GAEMC,IAAoB,CAACC,MAAsC;AAG/D,MAFI,CAACA,KAASA,EAAM,WAAW,KAC3B,OAAO,WAAa,OAAe,CAAC,SAAS,QAC7C,SAAS,cAAc,QAAQN,CAA4B,GAAG,EAAG;AAErE,QAAME,IAAO,SAAS;AACtB,EAAAD,EAAuBC,CAAI;AAE3B,QAAMK,IAAQD,EACX,IAAI,CAACE,MAAM;AACV,UAAMC,IAAU,mBAAmBD,EAAE,KAAK,QAAQ,QAAQ,GAAG,CAAC,GACxDE,IAAUF,EAAE,WAAW;AAC7B,WAAO,UAAUC,CAAO,SAASC,CAAO;AAAA,EAC1C,CAAC,EACA,KAAK,GAAG,GAELC,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,MAAM,cACXA,EAAK,OAAO,qCAAqCJ,CAAK,iBACtDI,EAAK,aAAaX,GAA8B,GAAG,GACnDE,EAAK,YAAYS,CAAI;AACvB,GAEMC,IAAc,CAACC,MAAkC;AACrD,QAAMC,IAASD,EAAK,OAAO,QAAQ,MAAM,KAAK,GAExCE,IAA4B,CAAA;AAClC,MAAIF,EAAK,aAAa;AACpB,UAAMG,IAAIH,EAAK;AACf,IAAIG,EAAE,SAAS,QAAMD,EAAgB,KAAK,eAAeC,EAAE,KAAK,EAAE,GAC9DA,EAAE,UAAU,QAAMD,EAAgB,KAAK,gBAAgBC,EAAE,MAAM,EAAE,GACjEA,EAAE,WAAW,QAAMD,EAAgB,KAAK,iBAAiBC,EAAE,OAAO,EAAE,GACpEA,EAAE,gBAAgB,QAAMD,EAAgB,KAAK,kBAAkBC,EAAE,YAAY,EAAE;AAAA,EACrF;AAEA,QAAMC,IAAcF,EAAgB,KAAK,IAAI,GACvCG,IAAOD,IAAc,KAAKA,CAAW,KAAK;AAEhD,SAAO,8BAA8BH,CAAM,eAAeD,EAAK,GAAG,IAAIK,CAAI;AAC5E,GAEMC,IAAoB,CAACC,MAAuC;AAEhE,MADI,CAACA,KAAUA,EAAO,WAAW,KAC7B,OAAO,WAAa,OAAe,CAAC,SAAS,QAAQA,EAAO,WAAW,EAAG;AAE9E,MAAIC,IAAU,SAAS,eAAevB,CAAyB;AAC/D,QAAMwB,IAAMF,EAAO,IAAIR,CAAW,EAAE,KAAK;AAAA,CAAI;AAE7C,EAAIS,IACFA,EAAQ,cAAcC,KAEtBD,IAAU,SAAS,cAAc,OAAO,GACxCA,EAAQ,KAAKvB,GACbuB,EAAQ,cAAcC,GACtB,SAAS,KAAK,YAAYD,CAAO;AAErC,GAEaE,IAAiB,CAACjB,MAA6B;AAC1D,EAAKA,MAELD,EAAkBC,EAAM,MAAM,GAC9Ba,EAAkBb,EAAM,MAAM;AAChC;"}
1
+ {"version":3,"file":"index.js","sources":["../src/theme/fonts/fonts.utils.ts"],"sourcesContent":["import { ThemeFonts, ThemeFontCustom } from './fonts.types';\n\nconst REMARKABLE_FONTS_STYLE_ID = 'remarkable-theme-fonts';\nconst REMARKABLE_PRECONNECT_ATTR = 'data-remarkable-preconnect';\nconst REMARKABLE_GOOGLE_FONTS_ATTR = 'data-remarkable-google-fonts';\n\nconst injectGooglePreconnect = (head: HTMLHeadElement): void => {\n if (document.querySelector(`link[${REMARKABLE_PRECONNECT_ATTR}]`)) return;\n\n const pre1 = document.createElement('link');\n pre1.rel = 'preconnect';\n pre1.href = 'https://fonts.googleapis.com';\n pre1.setAttribute(REMARKABLE_PRECONNECT_ATTR, '1');\n head.appendChild(pre1);\n\n const pre2 = document.createElement('link');\n pre2.rel = 'preconnect';\n pre2.href = 'https://fonts.gstatic.com';\n pre2.crossOrigin = 'anonymous';\n pre2.setAttribute(REMARKABLE_PRECONNECT_ATTR, '1');\n head.appendChild(pre2);\n};\n\nconst injectGoogleFonts = (fonts: ThemeFonts['google']): void => {\n if (!fonts || fonts.length === 0) return;\n if (typeof document === 'undefined' || !document.head) return;\n if (document.querySelector(`link[${REMARKABLE_GOOGLE_FONTS_ATTR}]`)) return;\n\n const head = document.head;\n injectGooglePreconnect(head);\n\n const query = fonts\n .map((f) => {\n const encoded = encodeURIComponent(f.name.replace(/\\s+/g, ' '));\n const weights = f.weights ?? '100..900';\n return `family=${encoded}:wght@${weights}`;\n })\n .join('&');\n\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = `https://fonts.googleapis.com/css2?${query}&display=swap`;\n link.setAttribute(REMARKABLE_GOOGLE_FONTS_ATTR, '1');\n head.appendChild(link);\n};\n\nconst fontFaceCss = (font: ThemeFontCustom): string => {\n const family = font.family.replace(/'/g, \"\\\\'\");\n\n const descriptorParts: string[] = [];\n if (font.descriptors) {\n const d = font.descriptors;\n if (d.style != null) descriptorParts.push(`font-style: ${d.style}`);\n if (d.weight != null) descriptorParts.push(`font-weight: ${d.weight}`);\n if (d.stretch != null) descriptorParts.push(`font-stretch: ${d.stretch}`);\n if (d.unicodeRange != null) descriptorParts.push(`unicode-range: ${d.unicodeRange}`);\n }\n\n const descriptors = descriptorParts.join('; ');\n const decl = descriptors ? `; ${descriptors}` : '';\n\n return `@font-face { font-family: '${family}'; src: url(${font.src})${decl}; }`;\n};\n\nconst injectCustomFonts = (custom: ThemeFonts['custom']): void => {\n if (!custom || custom.length === 0) return;\n if (typeof document === 'undefined' || !document.head || custom.length === 0) return;\n\n let styleEl = document.getElementById(REMARKABLE_FONTS_STYLE_ID) as HTMLStyleElement | null;\n const css = custom.map(fontFaceCss).join('\\n');\n\n if (styleEl) {\n styleEl.textContent = css;\n } else {\n styleEl = document.createElement('style');\n styleEl.id = REMARKABLE_FONTS_STYLE_ID;\n styleEl.textContent = css;\n document.head.appendChild(styleEl);\n }\n};\n\nexport const loadThemeFonts = (fonts?: ThemeFonts): void => {\n if (!fonts) return;\n\n injectGoogleFonts(fonts.google);\n injectCustomFonts(fonts.custom);\n};\n"],"names":["REMARKABLE_FONTS_STYLE_ID","REMARKABLE_PRECONNECT_ATTR","REMARKABLE_GOOGLE_FONTS_ATTR","injectGooglePreconnect","head","pre1","pre2","injectGoogleFonts","fonts","query","f","encoded","weights","link","fontFaceCss","font","family","descriptorParts","d","descriptors","decl","injectCustomFonts","custom","styleEl","css","loadThemeFonts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAMA,IAA4B,0BAC5BC,IAA6B,8BAC7BC,IAA+B,gCAE/BC,IAAyB,CAACC,MAAgC;AAC9D,MAAI,SAAS,cAAc,QAAQH,CAA0B,GAAG,EAAG;AAEnE,QAAMI,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,MAAM,cACXA,EAAK,OAAO,gCACZA,EAAK,aAAaJ,GAA4B,GAAG,GACjDG,EAAK,YAAYC,CAAI;AAErB,QAAMC,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,MAAM,cACXA,EAAK,OAAO,6BACZA,EAAK,cAAc,aACnBA,EAAK,aAAaL,GAA4B,GAAG,GACjDG,EAAK,YAAYE,CAAI;AACvB,GAEMC,IAAoB,CAACC,MAAsC;AAG/D,MAFI,CAACA,KAASA,EAAM,WAAW,KAC3B,OAAO,WAAa,OAAe,CAAC,SAAS,QAC7C,SAAS,cAAc,QAAQN,CAA4B,GAAG,EAAG;AAErE,QAAME,IAAO,SAAS;AACtB,EAAAD,EAAuBC,CAAI;AAE3B,QAAMK,IAAQD,EACX,IAAI,CAACE,MAAM;AACV,UAAMC,IAAU,mBAAmBD,EAAE,KAAK,QAAQ,QAAQ,GAAG,CAAC,GACxDE,IAAUF,EAAE,WAAW;AAC7B,WAAO,UAAUC,CAAO,SAASC,CAAO;AAAA,EAC1C,CAAC,EACA,KAAK,GAAG,GAELC,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,MAAM,cACXA,EAAK,OAAO,qCAAqCJ,CAAK,iBACtDI,EAAK,aAAaX,GAA8B,GAAG,GACnDE,EAAK,YAAYS,CAAI;AACvB,GAEMC,IAAc,CAACC,MAAkC;AACrD,QAAMC,IAASD,EAAK,OAAO,QAAQ,MAAM,KAAK,GAExCE,IAA4B,CAAA;AAClC,MAAIF,EAAK,aAAa;AACpB,UAAMG,IAAIH,EAAK;AACf,IAAIG,EAAE,SAAS,QAAMD,EAAgB,KAAK,eAAeC,EAAE,KAAK,EAAE,GAC9DA,EAAE,UAAU,QAAMD,EAAgB,KAAK,gBAAgBC,EAAE,MAAM,EAAE,GACjEA,EAAE,WAAW,QAAMD,EAAgB,KAAK,iBAAiBC,EAAE,OAAO,EAAE,GACpEA,EAAE,gBAAgB,QAAMD,EAAgB,KAAK,kBAAkBC,EAAE,YAAY,EAAE;AAAA,EACrF;AAEA,QAAMC,IAAcF,EAAgB,KAAK,IAAI,GACvCG,IAAOD,IAAc,KAAKA,CAAW,KAAK;AAEhD,SAAO,8BAA8BH,CAAM,eAAeD,EAAK,GAAG,IAAIK,CAAI;AAC5E,GAEMC,IAAoB,CAACC,MAAuC;AAEhE,MADI,CAACA,KAAUA,EAAO,WAAW,KAC7B,OAAO,WAAa,OAAe,CAAC,SAAS,QAAQA,EAAO,WAAW,EAAG;AAE9E,MAAIC,IAAU,SAAS,eAAevB,CAAyB;AAC/D,QAAMwB,IAAMF,EAAO,IAAIR,CAAW,EAAE,KAAK;AAAA,CAAI;AAE7C,EAAIS,IACFA,EAAQ,cAAcC,KAEtBD,IAAU,SAAS,cAAc,OAAO,GACxCA,EAAQ,KAAKvB,GACbuB,EAAQ,cAAcC,GACtB,SAAS,KAAK,YAAYD,CAAO;AAErC,GAEaE,IAAiB,CAACjB,MAA6B;AAC1D,EAAKA,MAELD,EAAkBC,EAAM,MAAM,GAC9Ba,EAAkBb,EAAM,MAAM;AAChC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"lines.utils-CEGfmIHB.js","sources":["../src/components/charts/lines/lines.utils.ts"],"sourcesContent":["import { ChartDataset, ChartOptions, InteractionItem } from 'chart.js';\n\nexport type LineChartProOptionsClickArg = {\n dimensionValue: string | number | null;\n groupingDimensionValue?: string | boolean | null;\n};\nexport type LineChartProOptionsClick = (arg: LineChartProOptionsClickArg) => void;\n\ntype LineDataset = ChartDataset<'line'> & {\n rawLabel?: string;\n};\n\nexport const getLineChartProOptionsOnClick = (props: {\n onLineClicked?: LineChartProOptionsClick;\n}): ChartOptions<'line'> => {\n const { onLineClicked } = props;\n\n if (!onLineClicked) return {};\n\n return {\n onClick: (event, _elements, chart) => {\n const native = (event as unknown as { native?: Event }).native ?? (event as unknown as Event);\n\n // 1. Resolve the X-axis slice (all datasets at the same X)\n const slice = chart.getElementsAtEventForMode(native, 'x', { intersect: false }, false);\n\n if (!slice?.length) {\n onLineClicked({\n dimensionValue: null,\n groupingDimensionValue: null,\n });\n return;\n }\n\n const xIndex = slice[0]!.index;\n const dimensionValue = (chart.data.labels?.[xIndex] ?? null) as string | number | null;\n\n // 2. Resolve the specific series (group) via nearest point\n let nearest: InteractionItem | undefined = chart.getElementsAtEventForMode(\n native,\n 'nearest',\n { intersect: true },\n false,\n )[0];\n\n // If nearest is missing or points to a different X, fall back to an element in the slice\n if (!nearest || nearest.index !== xIndex) {\n nearest = slice.find((el) => {\n const ds: LineDataset = chart.data.datasets[el.datasetIndex] as LineDataset;\n const val = Array.isArray(ds?.data) ? ds.data[xIndex] : undefined;\n return val !== null && val !== undefined;\n });\n }\n\n // 3. Compute the grouping key with the requested fallbacks\n let groupingDimensionValue; // default when X is found but no nearest\n\n if (!nearest) {\n // No nearest even after fallback — keep false to signal \"no series picked\"\n // (axisDimensionValue is valid because slice existed)\n } else {\n const ds: LineDataset = chart.data.datasets[nearest.datasetIndex] as LineDataset;\n groupingDimensionValue = (ds?.rawLabel ?? null) as string | boolean | null;\n }\n\n onLineClicked({\n dimensionValue,\n groupingDimensionValue,\n });\n },\n };\n};\n"],"names":["getLineChartProOptionsOnClick","props","onLineClicked","event","_elements","chart","_a","native","slice","xIndex","dimensionValue","nearest","el","ds","val","groupingDimensionValue"],"mappings":"AAYO,MAAMA,IAAgC,CAACC,MAElB;AAC1B,QAAM,EAAE,eAAAC,MAAkBD;AAE1B,SAAKC,IAEE;AAAA,IACL,SAAS,CAACC,GAAOC,GAAWC,MAAU;AARnC,UAAAC;AASD,YAAMC,IAAUJ,EAAwC,UAAWA,GAG7DK,IAAQH,EAAM,0BAA0BE,GAAQ,KAAK,EAAE,WAAW,GAAA,GAAS,EAAK;AAEtF,UAAI,EAACC,KAAA,QAAAA,EAAO,SAAQ;AAClB,QAAAN,EAAc;AAAA,UACZ,gBAAgB;AAAA,UAChB,wBAAwB;AAAA,QAAA,CACzB;AACD;AAAA,MACF;AAEA,YAAMO,IAASD,EAAM,CAAC,EAAG,OACnBE,MAAkBJ,IAAAD,EAAM,KAAK,WAAX,gBAAAC,EAAoBG,OAAW;AAGvD,UAAIE,IAAuCN,EAAM;AAAA,QAC/CE;AAAA,QACA;AAAA,QACA,EAAE,WAAW,GAAA;AAAA,QACb;AAAA,MAAA,EACA,CAAC;AAGH,OAAI,CAACI,KAAWA,EAAQ,UAAUF,OAChCE,IAAUH,EAAM,KAAK,CAACI,MAAO;AAC3B,cAAMC,IAAkBR,EAAM,KAAK,SAASO,EAAG,YAAY,GACrDE,IAAM,MAAM,QAAQD,KAAA,gBAAAA,EAAI,IAAI,IAAIA,EAAG,KAAKJ,CAAM,IAAI;AACxD,eAAOK,KAAQ;AAAA,MACjB,CAAC;AAIH,UAAIC;AAEJ,UAAKJ,GAGE;AACL,cAAME,IAAkBR,EAAM,KAAK,SAASM,EAAQ,YAAY;AAChE,QAAAI,KAA0BF,KAAA,gBAAAA,EAAI,aAAY;AAAA,MAC5C;AAEA,MAAAX,EAAc;AAAA,QACZ,gBAAAQ;AAAA,QACA,wBAAAK;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA,IApDyB,CAAA;AAsD7B;"}
1
+ {"version":3,"file":"lines.utils-CEGfmIHB.js","sources":["../src/components/charts/lines/lines.utils.ts"],"sourcesContent":["import { ChartDataset, ChartOptions, InteractionItem } from 'chart.js';\n\nexport type LineChartProOptionsClickArg = {\n dimensionValue: string | number | null;\n groupingDimensionValue?: string | boolean | null;\n};\nexport type LineChartProOptionsClick = (arg: LineChartProOptionsClickArg) => void;\n\nexport type LineDataset = ChartDataset<'line'> & {\n rawLabel?: string;\n};\n\nexport const getLineChartProOptionsOnClick = (props: {\n onLineClicked?: LineChartProOptionsClick;\n}): ChartOptions<'line'> => {\n const { onLineClicked } = props;\n\n if (!onLineClicked) return {};\n\n return {\n onClick: (event, _elements, chart) => {\n const native = (event as unknown as { native?: Event }).native ?? (event as unknown as Event);\n\n // 1. Resolve the X-axis slice (all datasets at the same X)\n const slice = chart.getElementsAtEventForMode(native, 'x', { intersect: false }, false);\n\n if (!slice?.length) {\n onLineClicked({\n dimensionValue: null,\n groupingDimensionValue: null,\n });\n return;\n }\n\n const xIndex = slice[0]!.index;\n const dimensionValue = (chart.data.labels?.[xIndex] ?? null) as string | number | null;\n\n // 2. Resolve the specific series (group) via nearest point\n let nearest: InteractionItem | undefined = chart.getElementsAtEventForMode(\n native,\n 'nearest',\n { intersect: true },\n false,\n )[0];\n\n // If nearest is missing or points to a different X, fall back to an element in the slice\n if (!nearest || nearest.index !== xIndex) {\n nearest = slice.find((el) => {\n const ds: LineDataset = chart.data.datasets[el.datasetIndex] as LineDataset;\n const val = Array.isArray(ds?.data) ? ds.data[xIndex] : undefined;\n return val !== null && val !== undefined;\n });\n }\n\n // 3. Compute the grouping key with the requested fallbacks\n let groupingDimensionValue; // default when X is found but no nearest\n\n if (!nearest) {\n // No nearest even after fallback — keep false to signal \"no series picked\"\n // (axisDimensionValue is valid because slice existed)\n } else {\n const ds: LineDataset = chart.data.datasets[nearest.datasetIndex] as LineDataset;\n groupingDimensionValue = (ds?.rawLabel ?? null) as string | boolean | null;\n }\n\n onLineClicked({\n dimensionValue,\n groupingDimensionValue,\n });\n },\n };\n};\n"],"names":["getLineChartProOptionsOnClick","props","onLineClicked","event","_elements","chart","_a","native","slice","xIndex","dimensionValue","nearest","el","ds","val","groupingDimensionValue"],"mappings":"AAYO,MAAMA,IAAgC,CAACC,MAElB;AAC1B,QAAM,EAAE,eAAAC,MAAkBD;AAE1B,SAAKC,IAEE;AAAA,IACL,SAAS,CAACC,GAAOC,GAAWC,MAAU;AARnC,UAAAC;AASD,YAAMC,IAAUJ,EAAwC,UAAWA,GAG7DK,IAAQH,EAAM,0BAA0BE,GAAQ,KAAK,EAAE,WAAW,GAAA,GAAS,EAAK;AAEtF,UAAI,EAACC,KAAA,QAAAA,EAAO,SAAQ;AAClB,QAAAN,EAAc;AAAA,UACZ,gBAAgB;AAAA,UAChB,wBAAwB;AAAA,QAAA,CACzB;AACD;AAAA,MACF;AAEA,YAAMO,IAASD,EAAM,CAAC,EAAG,OACnBE,MAAkBJ,IAAAD,EAAM,KAAK,WAAX,gBAAAC,EAAoBG,OAAW;AAGvD,UAAIE,IAAuCN,EAAM;AAAA,QAC/CE;AAAA,QACA;AAAA,QACA,EAAE,WAAW,GAAA;AAAA,QACb;AAAA,MAAA,EACA,CAAC;AAGH,OAAI,CAACI,KAAWA,EAAQ,UAAUF,OAChCE,IAAUH,EAAM,KAAK,CAACI,MAAO;AAC3B,cAAMC,IAAkBR,EAAM,KAAK,SAASO,EAAG,YAAY,GACrDE,IAAM,MAAM,QAAQD,KAAA,gBAAAA,EAAI,IAAI,IAAIA,EAAG,KAAKJ,CAAM,IAAI;AACxD,eAAOK,KAAQ;AAAA,MACjB,CAAC;AAIH,UAAIC;AAEJ,UAAKJ,GAGE;AACL,cAAME,IAAkBR,EAAM,KAAK,SAASM,EAAQ,YAAY;AAChE,QAAAI,KAA0BF,KAAA,gBAAAA,EAAI,aAAY;AAAA,MAC5C;AAEA,MAAAX,EAAc;AAAA,QACZ,gBAAAQ;AAAA,QACA,wBAAAK;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA,IApDyB,CAAA;AAsD7B;"}